コード例 #1
0
        private static void ApplicationExit(object sender, EventArgs e)
        {
            // last change for cleanup code here!

            // only restart if user requested, not an unhandled app exception...
            AppProcessHelper.RestartIfRequired();
        }
コード例 #2
0
        public override void Process()
        {
            if (Updater.CheckUpdateSyncWithInfo())
            {
                var token = Updater.GetTokenSource();

                try
                {
                    token.Cancel();
                }
                catch (AggregateException ex)
                    when(ex.InnerExceptions.Any(inner => inner is TaskCanceledException))
                    {
                        var canceledTasks = ex.InnerExceptions
                                            .Where(inner => inner is TaskCanceledException)
                                            .Select(x => ((TaskCanceledException)x).Task);

                        foreach (var t in canceledTasks)
                        {
                            t.Dispose();
                        }
                    }
                finally
                {
                    token.Dispose();
                }

                Updater.UpdateHot();
                AppProcessHelper.BeginReStart();
                //Application.ExitThread();
                //Application.Restart();
                //Application.Exit();
            }
        }
コード例 #3
0
        private static void Main()
        {
            if (!AppProcessHelper.SetSingleInstance())
            {
                Environment.Exit(-1);
            }

            ServicePointManager.DefaultConnectionLimit = 100;

            RegisterStartup(Globals.ProductName);
            var clickOnce = new ClickOnceHelper(Globals.PublisherName, Globals.ProductName);

            clickOnce.UpdateUninstallParameters();

            string
                _remoteServer = string.Empty,
                _remoteToken  = string.Empty;

            //LeerFicherosConfiguracion(ref _remoteServer, ref _remoteToken);

            //RemoteConfig.Setup(_remoteServer, _remoteToken);
            //LocalConfig.Setup(GetConnexionLocal());

            //Task.Factory.StartNew(() => new PowerSwitchProgramado(FisiotesFactory.New()).SincronizarAsync(Updater.GetCancellationToken(), delayLoop: 60000));
            //Task.Factory.StartNew(() => new PowerSwitchManual(FisiotesFactory.New()).SincronizarAsync(Updater.GetCancellationToken(), delayLoop: 60000));
            Task.Factory.StartNew(() => new UpdateVersionSincronizador().SincronizarAsync(new CancellationToken(), delayLoop: 200));

            var notifyIcon = new NotifyIcon();

            notifyIcon.ContextMenuStrip  = GetSincronizadorMenuStrip();
            notifyIcon.Icon              = Resources.sync;
            notifyIcon.Visible           = true;
            Application.ApplicationExit += ApplicationExit;
            Application.ApplicationExit += (sender, @event) => notifyIcon.Visible = false;
            Application.Run(new SincronizadorApplication());
        }
コード例 #4
0
 public static void RestartIfRequired(this Application app)
 => AppProcessHelper.RestartIfRequired();
コード例 #5
0
 public static void PreventRestart(this Application app, bool state = true)
 => AppProcessHelper.PreventRestart(state);
コード例 #6
0
 public static void BeginReStart(this Application app)
 => AppProcessHelper.BeginReStart();
コード例 #7
0
 public static bool ReleaseSingleInstance(this Application app)
 => AppProcessHelper.ReleaseSingleInstance();
コード例 #8
0
 public static bool SetSingleInstance(this Application app)
 => AppProcessHelper.SetSingleInstance();
コード例 #9
0
        private static void Main()
        {
            if (!AppProcessHelper.SetSingleInstance())
            {
                Environment.Exit(-1);
            }

            ServicePointManager.DefaultConnectionLimit = 100;

            RegisterStartup(Globals.ProductName);
            var clickOnce = new ClickOnceHelper(Globals.PublisherName, Globals.ProductName);

            clickOnce.UpdateUninstallParameters();

            Initialize();

            //SisfarmaFactory.Create().Configuraciones.Update("versionSincronizador", $"{ApplicationDeployment.CurrentDeployment.CurrentVersion}");
            SisfarmaFactory.Create().Configuraciones.Update("versionSincronizador", "1.0");

            SincronizadorTaskManager.TaskSincronizadores
            //.AddSincronizador(new Domain.Core.Sincronizadores.PuntoPendienteSincronizadorEmp1(
            //    farmacia: FarmaciaFactory.Create(),
            //    fisiotes: SisfarmaFactory.Create()),
            //    delay: SincronizadorTaskManager.DelayPuntosPendiente)
            //.AddSincronizador(new Domain.Core.Sincronizadores.PuntoPendienteSincronizadorEmp2(
            //    farmacia: FarmaciaFactory.Create(),
            //    fisiotes: SisfarmaFactory.Create()),
            //    delay: SincronizadorTaskManager.DelayPuntosPendiente)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ClienteSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create())
            //            .SetHorarioVaciemientos("1500", "2300"),
            //        delay: SincronizadorTaskManager.DelayClientes)
            //.AddSincronizador(new Domain.Core.Sincronizadores.HuecoSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayClientesHuecos)
            //.AddSincronizador(new Domain.Core.Sincronizadores.CategoriaSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayCategoria)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ControlStockFechaEntradaSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayControlStockFechas)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ControlStockFechaSalidaSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayControlStockFechas)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ControlStockSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayControlStock)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ControlSinStockSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayControlStock)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ProductoCriticoSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayProductosCriticos)
            //.AddSincronizador(new Domain.Core.Sincronizadores.EncargoSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayEncargos)
            //.AddSincronizador(new Domain.Core.Sincronizadores.FamiliaSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayFamilia)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ListaSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayListas)
            .AddSincronizador(new Domain.Core.Sincronizadores.SinonimoSincronizador(
                                  farmacia: FarmaciaFactory.Create(),
                                  fisiotes: SisfarmaFactory.Create())
                              .SetHorarioVaciamientos("1000", "1230", "1730", "1930"),
                              delay: SincronizadorTaskManager.DelaySinomimos)
            //.AddSincronizador(new Domain.Core.Sincronizadores.PedidoSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayPedidos)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ProveedorSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayProveedores)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ProveedorHistorialSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayProveedoresHistorico)
            //.AddSincronizador(new Domain.Core.Sincronizadores.PuntoPendienteActualizacionSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayPuntosPendiente)
            //.AddSincronizador(new Domain.Core.Sincronizadores.VentaMensualActualizacionSincronizadorEmp1(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create(),
            //        listaDeArticulo: FarmaciaContext.ListaDeArticulo),
            //        delay: SincronizadorTaskManager.DelayVentaMensual)
            //.AddSincronizador(new Domain.Core.Sincronizadores.VentaMensualActualizacionSincronizadorEmp2(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create(),
            //        listaDeArticulo: FarmaciaContext.ListaDeArticulo),
            //        delay: SincronizadorTaskManager.DelayVentaMensual)
            //.AddSincronizador(new Domain.Core.Sincronizadores.VentaPendienteSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayPuntosPendiente)
            //.AddSincronizador(new Domain.Core.Sincronizadores.ProductoBorradoActualizacionSincronizador(
            //        farmacia: FarmaciaFactory.Create(),
            //        fisiotes: SisfarmaFactory.Create()),
            //        delay: SincronizadorTaskManager.DelayProductosBorrar);
            ;
            Task.Factory.StartNew(() => new PowerSwitchProgramado(SisfarmaFactory.Create()).SincronizarAsync(Updater.GetCancellationToken(), delayLoop: 60000));
            Task.Factory.StartNew(() => new PowerSwitchManual(SisfarmaFactory.Create()).SincronizarAsync(Updater.GetCancellationToken(), delayLoop: 60000));
            Task.Factory.StartNew(() => new UpdateVersionSincronizador().SincronizarAsync(new CancellationToken(), delayLoop: 20000));

            var notifyIcon = new NotifyIcon();

            notifyIcon.ContextMenuStrip  = GetSincronizadorMenuStrip();
            notifyIcon.Icon              = Resources.sync;
            notifyIcon.Visible           = true;
            Application.ApplicationExit += ApplicationExit;
            Application.ApplicationExit += (sender, @event) => notifyIcon.Visible = false;
            Application.Run(new SincronizadorApplication());
        }