/// <summary> /// Inicializa uma nova instancia de <see cref="T:SPromoterMobile.Controller.SyncronizerCon"/>. /// </summary> /// <param name="cache">Model com DbCache inicializado.</param> public SyncronizerCon(CacheDA cache) { model = new SyncronizerModel { dbCache = cache }; }
public SyncronizerCon(SyncronizerModel modelConst) { model = new SyncronizerModel() { db = modelConst.db, dbCache = modelConst.dbCache, versionName = modelConst.versionName }; userInfos = model.db.SelectInfoDeUsuarios(); }
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(); }
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); } }
void GetLogoEmpresa(string empresa, TB_USUARIO tableInfo) { var containerLocal = new ContainerRestCon(); var arquivo = containerLocal.GetNomeArquivo(empresa + ".jpg"); try { if (arquivo == null) { var modelSync = new SyncronizerModel() { dbCache = new CacheDA(Sqlite_IOS.DB.dataBase) }; new AzureStorage().DownloadImage(empresa + ".jpg", tableInfo.SERVIDOR); } } catch (Container404Exception) { arquivo = null; } }
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(); }
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 } } } }