Пример #1
0
 public static void ExecSyncUI()
 {
     MetricsManager.TrackEvent("UIPerformSync");
     model = new SyncronizerModel
     {
         versionName = GetVersionName(),
         db          = new SyncronizerDA(SQLite_Android.DB.dataBase),
         dbCache     = new CacheDA(SQLite_Android.DB.dataBase)
     };
     controller = new SyncronizerCon(model);
     controller.ExecRestApis();
 }
Пример #2
0
 static void PopulateSync()
 {
     if (model == null || controller == null)
     {
         model = new SyncronizerModel
         {
             db      = new SyncronizerDA(Sqlite_IOS.DB.dataBase),
             dbCache = new CacheDA(Sqlite_IOS.DB.dataBase)
         };
         UIDevice.CurrentDevice.BatteryMonitoringEnabled = true;
         controller = new SyncronizerCon(model);
     }
 }
Пример #3
0
        void ExecLogin()
        {
            model.empresa  = txtEmpresaLogin.Text;
            model.login    = txtUsuarioLogin.Text;
            model.password = txtSenhaLogin.Text;

            var bounds = UIScreen.MainScreen.Bounds;

            loadingOverlay = new LoadingOverlay(bounds);
            loadingOverlay.ExecOverLay();
            View.Add(loadingOverlay);

            new Thread(new ThreadStart(delegate
            {
                try
                {
                    SyncronizerModel modelSync;
                    SyncronizerCon controllerSync;
                    var infoUser = controller.DoLogin(model.empresa, model.login, model.password);
                    infoUser     = GetAvatarDeUsuario(infoUser);
                    GetLogoEmpresa(infoUser.SERVIDOR.Substring(0, infoUser.SERVIDOR.IndexOf(".",
                                                                                            StringComparison.CurrentCulture)), infoUser);
                    InvokeOnMainThread(() =>
                    {
                        controller.InsertNewUser(infoUser);
                        modelSync = new SyncronizerModel()
                        {
                            db      = new SyncronizerDA(Sqlite_IOS.DB.dataBase),
                            dbCache = new CacheDA(Sqlite_IOS.DB.dataBase)
                        };
                        controllerSync = new SyncronizerCon(modelSync);
                        controllerSync.ExecRestApis();
#if !DEBUG
                        BITHockeyManager.SharedHockeyManager.UserId    = infoUser.ID;
                        BITHockeyManager.SharedHockeyManager.UserEmail = infoUser.SERVIDOR;
                        BITHockeyManager.SharedHockeyManager.StartManager();
#endif
                        MoveToFeedPDV();
                    });
                }
                catch (InvalidLoginException loginError)
                {
                    InvokeOnMainThread(() =>
                    {
                        var alert = UIAlertController.Create(loginError.Message, null, UIAlertControllerStyle.Alert);
                        alert.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, null));
                        alert.View.TintColor = UIColor.FromRGB(10, 88, 90);
                        PresentViewController(alert, true, null);
                    });
                }
                catch (Exception ex)
                {
                    var exi = ex.Message;
                    InvokeOnMainThread(() =>
                    {
                        var alert = UIAlertController.Create(
                            "Ocorreu um erro inesperado, verifique sua conexão e os dados de login",
                            null, UIAlertControllerStyle.Alert);
                        alert.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, null));
                        alert.View.TintColor = UIColor.FromRGB(10, 88, 90);
                        PresentViewController(alert, true, null);
                    });
                }
                finally
                {
                    InvokeOnMainThread(() =>
                    {
                        loadingOverlay.Hide();
                    });
                }
            })).Start();
        }
Пример #4
0
        public static void ExecSync()
        {
            var difTime = (DateTime.Now - lastHitSync).TotalSeconds;

            if (difTime >= 11)
            {
                lastHitSync = DateTime.Now;
                itsRunning  = true;
                MetricsManager.TrackEvent("PerformSync");
                model = new SyncronizerModel
                {
                    versionName = GetVersionName(),
                    db          = new SyncronizerDA(SQLite_Android.DB.dataBase),
                    dbCache     = new CacheDA(SQLite_Android.DB.dataBase)
                };
                controller = new SyncronizerCon(model);
                try
                {
                    UploadImages();
                    controller.ExecRestApis();
                }
                catch (InvalidLoginException invalid)
                {
                    try
                    {
                        model.db.RemoveUser(invalid.userID);
                    }
                    catch (InvalidOperationException) { }
                    finally
                    {
                        context.SendBroadcast(new Intent(MenuPDVsModel.ACTION_FINISHED_SYNC));
                    }
                }
                catch (Java.Lang.Exception)
                {
                    MetricsManager.TrackEvent("SyncDataFail");
                }
                finally
                {
                    context.SendBroadcast(new Intent(MenuPDVsModel.ACTION_FINISHED_SYNC));
                }

                itsRunning = false;
                if (string.IsNullOrEmpty(controller.exceptionMessage) || controller.exceptionMessage == "Socket closed")
                {
                    AddNotificationPdv(controller.GetNovosPdvsNotification());
                }
                else if (controller.invalidException != null)
                {
                    try
                    {
                        model.db.RemoveUser(controller.invalidException.userID);
                    }
                    catch (InvalidOperationException) { }
                    finally
                    {
                        context.SendBroadcast(new Intent(MenuPDVsModel.ACTION_FINISHED_SYNC));
                    }
                }
                else
                {
                    context.SendBroadcast(new Intent(MenuPDVsModel.ACTION_FINISHED_SYNC));
                    if (!controller.exceptionMessage.ToUpper().Contains("RESET BY PEER") ||
                        controller.exceptionMessage.ToUpper().Contains("SOCKET") ||
                        controller.exceptionMessage.ToUpper().Contains("TIMEOUT") ||
                        controller.exceptionMessage.ToUpper().Contains("TIME OUT"))
                    {
                        MetricsManager.TrackEvent("SyncDataFail");
                        MetricsManager.TrackEvent(controller.exceptionMessage);
#if DEBUG
                        Console.WriteLine(controller.exceptionMessage);
                        throw new Exception(controller.exceptionMessage);
#endif
                    }
                }
            }
        }