Ejemplo n.º 1
0
        //[System.Web.Services.Protocols.SoapHeader("Authentication")]
        public CloudResults Execute(CloudCommand command)
        {
            var results  = new CloudResults();
            var messages = new List <string>();

            try
            {
                if (command.Action == CloudAction.Delete)
                {
                    messages.Add(Delete(command.UserControllers));
                    messages.Add(Delete(command.UserGames));
                }
                else
                {
                    messages.Add(Upsert(command.UserControllers));
                    messages.Add(Upsert(command.UserGames));
                }
                results.ErrorMessage = string.Join("\r\n", messages.Where(x => !string.IsNullOrEmpty(x)));
            }
            catch (Exception ex)
            {
                results.ErrorCode    = 1;
                results.ErrorMessage = ex.Message;
            }
            return(results);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  Submit changed data to the cloud.
        /// </summary>
        Exception Execute <T>(CloudAction action)
        {
            var ws = new WebServiceClient();

            ws.Url = SettingsManager.Options.InternetDatabaseUrl;
            CloudResults result = null;

            try
            {
                var citems = data.Where(x => x.Action == action);
                var items  = citems.Select(x => x.Item).OfType <T>().ToList();
                if (items.Count > 0)
                {
                    var command = new CloudCommand();
                    command.Action = action;
                    if (typeof(T) == typeof(UserGame))
                    {
                        command.UserGames = items as List <UserGame>;
                    }
                    else if (typeof(T) == typeof(UserController))
                    {
                        command.UserControllers = items as List <UserController>;
                    }
                    // Add secure credentials.
                    var rsa = new JocysCom.ClassLibrary.Security.Encryption("Cloud");
                    if (string.IsNullOrEmpty(rsa.RsaPublicKeyValue))
                    {
                        var username = rsa.RsaEncrypt("username");
                        var password = rsa.RsaEncrypt("password");
                        ws.SetCredentials(username, password);
                    }
                    result = ws.Execute(command);
                    if (result.ErrorCode > 0)
                    {
                        queueTimer.SleepTimer.Interval = 5 * 60 * 1000;
                        return(new Exception(result.ErrorMessage));
                    }
                    foreach (var item in citems)
                    {
                        data.Remove(item);
                    }
                }
            }
            catch (Exception ex)
            {
                // Sleep for 5 minutes;
                queueTimer.SleepTimer.Interval = 5 * 60 * 1000;
                return(ex);
            }
            return(null);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///  Submit changed data to the cloud.
        /// </summary>
        void Execute <T>(CloudAction action)
        {
            MainForm.Current.LoadingCircle = true;
            var ws = new WebServiceClient();

            ws.Url = MainForm.Current.OptionsPanel.InternetDatabaseUrlComboBox.Text;
            CloudResults result = null;

            try
            {
                var items = data.Where(x => x.Action == action).Select(x => x.Item).OfType <T>().ToList();
                if (items.Count > 0)
                {
                    var command = new CloudCommand();
                    command.Action = action;
                    if (typeof(T) == typeof(Game))
                    {
                        command.Games = items as List <Game>;
                    }
                    else if (typeof(T) == typeof(UserController))
                    {
                        command.UserControllers = items as List <UserController>;
                    }
                    // Add secure credentials.
                    var rsa = new JocysCom.ClassLibrary.Security.Encryption("Cloud");
                    if (string.IsNullOrEmpty(rsa.RsaPublicKeyValue))
                    {
                        var username = rsa.RsaEncrypt("username");
                        var password = rsa.RsaEncrypt("password");
                        ws.SetCredentials(username, password);
                    }
                    result = ws.Execute(command);
                    MainForm.Current.SetHeaderBody(result.ErrorCode == 0 ? MessageBoxIcon.Information : MessageBoxIcon.Error, result.ErrorMessage);
                }
            }
            catch (Exception ex)
            {
                var error = ex.Message;
                if (ex.InnerException != null)
                {
                    error += "\r\n" + ex.InnerException.Message;
                }
                MainForm.Current.SetHeaderBody(MessageBoxIcon.Error, error);
            }
        }