AniDBmini.AniDBAPI.Execute C# (CSharp) Method

Execute() private method

Executes a given command. And returns a response.
private Execute ( string cmd ) : APIResponse
cmd string
return APIResponse
        private APIResponse Execute(string cmd)
        {
#if !DEBUG
            string e_cmd = cmd;
            string e_response = String.Empty;

            if (isLoggedIn)
                e_cmd += (e_cmd.Contains("=") ? "&" : " ") + "s=" + sessionKey;

            data = Encoding.UTF8.GetBytes(e_cmd);
            conn.Send(data, data.Length);
            data = conn.Receive(ref apiserver);

            m_lastCommand = DateTime.Now;
            queryLog.Add(m_lastCommand);

            e_response = Encoding.UTF8.GetString(data, 0, data.Length);
            RETURN_CODE e_code = (RETURN_CODE)int.Parse(e_response.Substring(0, 3));

            switch (e_code)
            {
                case RETURN_CODE.LOGIN_FIRST:
                case RETURN_CODE.ACCESS_DENIED:
                case RETURN_CODE.INVALID_SESSION:
                    isLoggedIn = false;
                    if (Login(user, pass))
                        return Execute(cmd);
                    else
                    {
                        var login = new LoginWindow();
                        login.Show();
                        mainWindow.Close();
                        return new APIResponse();
                    }
                default:                    
                    return new APIResponse { Message = e_response, Code = e_code };
            }
#else
            return new APIResponse { Message = "\n411|7562|7488|1928235|0|0|0|0|0|0|3|6|54|4117|0|0|94407", Code = (RETURN_CODE)200 }; 
#endif
        }