Example #1
0
        public void RunApplication(MediaDataType mediaType)
        {
            bool stopRun = false;

            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;

            LicenseHelper.Register();

            var textSettings = new StartFormTextConfiguration();

            textSettings.Load(Path.Combine(Common.Core.Configuration.ResourceManager.Instance.AppRootFolderPath, "sync_text.xml"));

            MediaMetaData.Instance.Init(mediaType);
            var appTitle = String.Format("SellerPoint for {0}", MediaMetaData.Instance.DataTypeString);

            if (BusinessObjects.Instance.PowerPointManager.IsPowerPointMultipleInstances())
            {
                using (var form = new FormPowerPointSeveralInstancesWarning())
                {
                    form.Text = appTitle;
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                }
            }

            PopupMessageHelper.Instance.Title = appTitle;
            AppProfileManager.Instance.InitApplication(MediaMetaData.Instance.AppType);

            FileStorageManager.Instance.UsingLocalMode += (o, e) =>
            {
                if (FileStorageManager.Instance.UseLocalMode)
                {
                    return;
                }
                FormStart.CloseProgress();
                if (FileStorageManager.Instance.DataState != DataActualityState.Updated)
                {
                    PopupMessageHelper.Instance.ShowWarning("Server is not available. Application will be closed");
                    stopRun = true;
                    Application.Exit();
                    return;
                }
                if (PopupMessageHelper.Instance.ShowWarningQuestion("Server is not available. Do you want to continue to work in local mode?", "adSALESapps.com ") != DialogResult.Yes)
                {
                    stopRun = true;
                    Application.Exit();
                }
            };

            FileStorageManager.Instance.Authorizing += (o, e) =>
            {
                var authManager = new AuthManager();
                FormStart.SetTitle(textSettings.VersionText ?? "Checking credentials...");
                e.LightCheck = true;
                authManager.Auth(e);
            };

            FormStart.ShowProgress();
            FormStart.SetTitle(textSettings.ConnectText ?? "Connecting to adSALEScloud…");
            var thread = new Thread(() =>
            {
                AsyncHelper.RunSync(() => FileStorageManager.Instance.InitStorage());
                if (FileStorageManager.Instance.Activated)
                {
                    AsyncHelper.RunSync(() => AppProfileManager.Instance.LoadProfile());
                }
            });

            thread.Start();
            while (thread.IsAlive)
            {
                Application.DoEvents();
            }

            if (stopRun)
            {
                return;
            }

            if (FileStorageManager.Instance.Activated)
            {
                if (FileStorageManager.Instance.SubStorages.Any() &&
                    String.IsNullOrEmpty(AppProfileManager.Instance.SubStorageName))
                {
                    if (FileStorageManager.Instance.SubStorages.Count > 1)
                    {
                        FormStart.CloseProgress();

                        using (var form = new FormMediaSettings())
                        {
                            form.comboBoxEditMedia.Properties.Items.AddRange(FileStorageManager.Instance.SubStorages);
                            form.comboBoxEditMedia.EditValue = FileStorageManager.Instance.SubStorages.FirstOrDefault();
                            if (form.ShowDialog() == DialogResult.OK)
                            {
                                AppProfileManager.Instance.SubStorageName = form.comboBoxEditMedia.EditValue as string;
                                AppProfileManager.Instance.SaveProfile();
                                FormStart.ShowProgress();
                            }
                            else
                            {
                                FormStart.Destroy();
                                return;
                            }
                        }
                    }
                    else
                    {
                        AppProfileManager.Instance.SubStorageName = FileStorageManager.Instance.SubStorages.FirstOrDefault();
                        AppProfileManager.Instance.SaveProfile();
                    }
                }

                thread = new Thread(() =>
                {
                    AsyncHelper.RunSync(() => FileStorageManager.Instance.CheckDataSate());
                });
                thread.Start();
                while (thread.IsAlive)
                {
                    Application.DoEvents();
                }

                FileStorageManager.Instance.Downloading += OnFileDownloading;
                FileStorageManager.Instance.Extracting  += OnFileExtracting;

                if (FileStorageManager.Instance.DataState == DataActualityState.NotExisted)
                {
                    FormStart.SetTitle(textSettings.InitialLoadingText ?? "Syncing adSALEScloud for the 1st time…");
                }
                else if (FileStorageManager.Instance.DataState == DataActualityState.Outdated)
                {
                    FormStart.SetTitle(textSettings.RefreshText ?? "Refreshing data from adSALEScloud…");
                }
                else
                {
                    FormStart.SetTitle("Loading application data...");
                }

                thread = new Thread(() =>
                {
                    AsyncHelper.RunSync(() => Business.Media.Configuration.ResourceManager.Instance.LoadSubStorageIndependentResources());

                    Controller.Instance.InitBusinessObjects();
                    AsyncHelper.RunSync(FileStorageManager.Instance.FixCommonDataState);
                });
                thread.Start();
                while (thread.IsAlive)
                {
                    Application.DoEvents();
                }

                FormStart.SetTitle(textSettings.LaunchText ?? "Launching SellerPoint...");
                Application.DoEvents();

                FormMain.Instance.Init();

                Controller.Instance.InitForm();

                FileStorageManager.Instance.Downloading -= OnFileDownloading;
                FileStorageManager.Instance.Extracting  -= OnFileExtracting;
            }

            FormStart.CloseProgress();
            FormStart.Destroy();

            if (FileStorageManager.Instance.Activated)
            {
                if (BusinessObjects.Instance.PowerPointManager.SettingsSource == SettingsSourceEnum.PowerPoint &&
                    MasterWizardManager.Instance.SelectedWizard != null &&
                    !MasterWizardManager.Instance.SelectedWizard.HasSlideConfiguration(SlideSettingsManager.Instance.SlideSettings))
                {
                    var availableMasterWizards = MasterWizardManager.Instance.MasterWizards.Values.Where(w => w.HasSlideConfiguration(SlideSettingsManager.Instance.SlideSettings)).ToList();
                    if (availableMasterWizards.Any())
                    {
                        using (var form = new FormSelectMasterWizard())
                        {
                            form.comboBoxEditSlideFormat.Properties.Items.AddRange(availableMasterWizards);
                            form.comboBoxEditSlideFormat.EditValue = availableMasterWizards.FirstOrDefault();
                            if (form.ShowDialog() != DialogResult.OK)
                            {
                                return;
                            }
                            SettingsManager.Instance.SelectedWizard = ((MasterWizard)form.comboBoxEditSlideFormat.EditValue).Name;
                            MasterWizardManager.Instance.SetMasterWizard();
                        }
                    }
                    else
                    {
                        PopupMessageHelper.Instance.ShowWarning("You already have a PowerPoint file opened that is not compatible with Sales Ninja.\nPlease close that presentation, and open Sales Ninja again.");
                        return;
                    }
                }
                Application.Run(FormMain.Instance);
            }
            else
            {
                PopupMessageHelper.Instance.ShowWarning("This app is not activated. Contact adSALESapps Support ([email protected])");
            }
        }
        public void RunForm()
        {
            bool stopRun = false;

            var appTitle = "6 Minute Seller";

            if (PowerPointManager.IsPowerPointMultipleInstances())
            {
                using (var form = new FormPowerPointSeveralInstancesWarning())
                {
                    form.Text = appTitle;
                    if (form.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                }
            }

            PopupMessageHelper.Instance.Title = appTitle;

            AppProfileManager.Instance.InitApplication(AppTypeEnum.Dashboard);

            FileStorageManager.Instance.UsingLocalMode += (o, e) =>
            {
                if (FileStorageManager.Instance.UseLocalMode)
                {
                    return;
                }
                FormStart.CloseProgress();
                if (FileStorageManager.Instance.DataState != DataActualityState.Updated)
                {
                    PopupMessageHelper.Instance.ShowWarning("Server is not available. Application will be closed");
                    stopRun = true;
                }
                else if (PopupMessageHelper.Instance.ShowWarningQuestion("Server is not available. Do you want to continue to work in local mode?") != DialogResult.Yes)
                {
                    stopRun = true;
                }
                if (stopRun)
                {
                    FormStart.Destroy();
                }
            };

            FileStorageManager.Instance.Authorizing += (o, e) =>
            {
                var authManager = new AuthManager();
                FormStart.SetTitle("Checking credentials...");
                e.LightCheck = true;
                authManager.Auth(e);
            };

            FormStart.ShowProgress();
            FormStart.SetTitle("Connecting to adSALEScloud…");
            var thread = new Thread(() => AsyncHelper.RunSync(() => FileStorageManager.Instance.InitStorage()));

            thread.Start();
            while (thread.IsAlive)
            {
                Application.DoEvents();
            }

            if (stopRun)
            {
                return;
            }

            FileStorageManager.Instance.Downloading += (sender, args) =>
                                                       FormStart.SetDetails(args.ProgressPercent < 100 ?
                                                                            String.Format("Loading {0} - {1}%", args.FileName, args.ProgressPercent) :
                                                                            String.Empty);
            FileStorageManager.Instance.Extracting += (sender, args) =>
                                                      FormStart.SetDetails(args.ProgressPercent < 100 ?
                                                                           String.Format("Extracting {0} - {1}%", args.FileName, args.ProgressPercent) :
                                                                           String.Empty);

            if (FileStorageManager.Instance.Activated)
            {
                if (FileStorageManager.Instance.DataState == DataActualityState.NotExisted)
                {
                    FormStart.SetTitle("Syncing adSALEScloud for the 1st time…");
                }
                else if (FileStorageManager.Instance.DataState == DataActualityState.Outdated)
                {
                    FormStart.SetTitle("Refreshing data from adSALEScloud…");
                }
                else
                {
                    FormStart.SetTitle("Loading application data...");
                }

                thread = new Thread(() =>
                {
                    AsyncHelper.RunSync(Init);
                    AsyncHelper.RunSync(FileStorageManager.Instance.FixCommonDataState);
                });
                thread.Start();
                while (thread.IsAlive)
                {
                    Application.DoEvents();
                }

                FormMain.Instance.Init();
            }
            FormStart.CloseProgress();
            FormStart.Destroy();

            if (FileStorageManager.Instance.Activated)
            {
                if (PowerPointManager.SettingsSource == SettingsSourceEnum.PowerPoint &&
                    MasterWizardManager.Instance.SelectedWizard != null &&
                    !MasterWizardManager.Instance.SelectedWizard.HasSlideConfiguration(SlideSettingsManager.Instance.SlideSettings))
                {
                    var availableMasterWizards = MasterWizardManager.Instance.MasterWizards.Values.Where(w => w.HasSlideConfiguration(SlideSettingsManager.Instance.SlideSettings)).ToList();
                    if (availableMasterWizards.Any())
                    {
                        using (var form = new FormSelectMasterWizard())
                        {
                            form.comboBoxEditSlideFormat.Properties.Items.AddRange(availableMasterWizards);
                            form.comboBoxEditSlideFormat.EditValue = availableMasterWizards.FirstOrDefault();
                            if (form.ShowDialog() != DialogResult.OK)
                            {
                                return;
                            }
                            SettingsManager.Instance.SelectedWizard = ((MasterWizard)form.comboBoxEditSlideFormat.EditValue).Name;
                            MasterWizardManager.Instance.SetMasterWizard();
                        }
                    }
                    else
                    {
                        PopupMessageHelper.Instance.ShowWarning("You already have a PowerPoint file opened that is not compatible with this application.\nPlease close that presentation, and open Sales Ninja again.");
                        return;
                    }
                }
                Application.Run(FormMain.Instance);
            }
            else
            {
                PopupMessageHelper.Instance.ShowWarning("This app is not activated. Contact adSALESapps Support ([email protected])");
            }
        }
Example #3
0
        public void RunApplication(bool forceUpdateMode)
        {
            bool stopRun = false;

            AppProfileManager.Instance.InitApplication(AppTypeEnum.AdBar);
            PopupMessageHelper.Instance.Title = "adsalesapps";

            FileStorageManager.Instance.UsingLocalMode += (o, e) =>
            {
                if (FileStorageManager.Instance.UseLocalMode)
                {
                    return;
                }
                FormStart.CloseProgress();
                if (FileStorageManager.Instance.DataState != DataActualityState.Updated)
                {
                    PopupMessageHelper.Instance.ShowWarning("Server is not available. Application will be closed");
                    stopRun = true;
                }
                else if (PopupMessageHelper.Instance.ShowWarningQuestion("Server is not available. Do you want to continue to work in local mode?") != DialogResult.Yes)
                {
                    stopRun = true;
                }
                if (stopRun)
                {
                    FormStart.Destroy();
                }
            };

            FileStorageManager.Instance.Authorizing += (o, e) =>
            {
                var authManager = new AdBarAuthManager();
                Settings.GrayConnectConfig.Load();
                FormStart.SetTitle("Checking credentials...");
                authManager.Auth(e);
                if (!e.Authorized)
                {
                    LoadAtStartupHelper.UnsetLoadAtStartup();
                }
            };

            FormStart.ShowProgress();
            FormStart.SetTitle("Connecting to adSALEScloud…");
            var thread = new Thread(() =>
            {
                AsyncHelper.RunSync(() => FileStorageManager.Instance.InitStorage());
                if (FileStorageManager.Instance.Activated)
                {
                    AsyncHelper.RunSync(() => FileStorageManager.Instance.CheckDataSate(forceUpdateMode));
                }
            });

            thread.Start();
            while (thread.IsAlive)
            {
                Application.DoEvents();
            }

            if (stopRun)
            {
                return;
            }

            FileStorageManager.Instance.Downloading += OnFileDownloading;
            FileStorageManager.Instance.Extracting  += OnFileExtracting;

            if (FileStorageManager.Instance.Activated)
            {
                if (FileStorageManager.Instance.DataState == DataActualityState.NotExisted)
                {
                    FormStart.SetTitle("Syncing adSALEScloud for the 1st time…");
                }
                else if (FileStorageManager.Instance.DataState == DataActualityState.Outdated)
                {
                    FormStart.SetTitle("Refreshing data from adSALEScloud…");
                }
                else
                {
                    FormStart.SetTitle("Loading application data...");
                }

                thread = new Thread(() =>
                {
                    AsyncHelper.RunSync(LoadBusinessObjects);
                    AsyncHelper.RunSync(FileStorageManager.Instance.FixCommonDataState);
                });
                thread.Start();
                while (thread.IsAlive)
                {
                    Application.DoEvents();
                }
            }

            FileStorageManager.Instance.Downloading -= OnFileDownloading;
            FileStorageManager.Instance.Extracting  -= OnFileExtracting;
            FormStart.CloseProgress();
            FormStart.Destroy();

            if (FileStorageManager.Instance.Activated)
            {
                if (Settings.PatchUpdaterConfig.RunUpdater && (!Settings.UserSettings.LastPatchUpdate.HasValue || Settings.UserSettings.LastPatchUpdate.Value < Settings.PatchUpdaterConfig.PatchDate))
                {
                    var confirm = true;
                    if (Settings.PatchUpdaterConfig.ShowUpdaterInfo && !String.IsNullOrEmpty(Settings.PatchUpdaterConfig.UpdaterText))
                    {
                        confirm = PopupMessageHelper.Instance.ShowWarningQuestion(
                            String.Format("{0}. Do you want to apply?", Settings.PatchUpdaterConfig.UpdaterText)) == DialogResult.Yes;
                    }
                    if (confirm)
                    {
                        Settings.UserSettings.LastPatchUpdate = Settings.PatchUpdaterConfig.PatchDate;
                        Settings.UserSettings.Save();

                        var updaterExecutablePath = Path.Combine(ResourceManager.Instance.AppRootFolderPath, "PatchUpdater.exe");
                        var pathRootFolder        = new StorageDirectory(ResourceManager.Instance.SpecialAppsFolder.RelativePathParts.Merge(new[] { "special_apps", "sfx_updater" }));
                        if (File.Exists(updaterExecutablePath))
                        {
                            try
                            {
                                var process = new Process();
                                process.StartInfo.FileName  = updaterExecutablePath;
                                process.StartInfo.Arguments = String.Format("\"{0}\"", pathRootFolder.LocalPath);
                                process.Start();
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                else if (Settings.MaintenanceConfig.MaintenanceEnabled)
                {
                    if (Settings.MaintenanceConfig.ShowInfo)
                    {
                        Application.Run(new FormMaintenance());
                    }
                }
                else
                {
                    Application.Run(new FormMain());
                }
            }
            else
            {
                PopupMessageHelper.Instance.ShowWarning("This app is not activated. Contact adSALESapps Support ([email protected])");
            }
        }