public static bool DeletePosFoldersDataAndNewDataIfPosIsDown()
        {
            var posProcessName    = SettingsData.AlohaIber.Replace(SettingsData.Constants.EXTENSION_EXE, String.Empty);
            var lstGndDirectories = Directory.GetDirectories(SettingsData.AlohaPath).Select(e => new DirectoryInfo(e).Name).Where(e => e.StartsWith("20") && e.Length == 8).ToList();

            if (lstGndDirectories.Any())
            {
                ProcessExt.ForceKillProcess(posProcessName);
                foreach (var gndDirectory in lstGndDirectories)
                {
                    DirExt.ForceDeleteFolder(Path.Combine(SettingsData.AlohaPath, gndDirectory));
                }
            }

            if (ProcessExt.ProcessIsRunning(posProcessName))
            {
                return(false);
            }

            var dataFolder = Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.DATA_FOLDER);

            DirExt.ForceDeleteFolder(dataFolder);

            var newDataFolder = Path.Combine(SettingsData.AlohaPath, SettingsData.Constants.Franchise.NEWDATA_FOLDER);

            DirExt.ForceDeleteFolder(newDataFolder);

            return(true);
        }
        private void ReinitPosIfNotCurrentDobOrDifferentFranchise(bool isUpdated, string fileCode, string dataFolder,
                                                                  dynamic dataFolderFranchise, string tmpFolder)
        {
            if (isUpdated == false || !File.Exists(fileCode))
            {
                //Kill Iber process if exists
                ProcessExt.ForceKillProcess(SettingsData.AlohaIber.Replace(SettingsData.Constants.EXTENSION_EXE, String.Empty));

                //Delete DATA folders
                DirExt.ForceDeleteFolder(dataFolder);
                //Copy directories of franchise
                DirExt.ForceCopyFolder(Path.Combine(SettingsData.AlohaPath, dataFolderFranchise.ToString()),
                                       dataFolder);
                try
                {
                    DirExt.ForceToCreateFile(fileCode);
                }
                catch (Exception ex)
                {
                    SharedLogger.LogErrorToFile(ex, fileCode);
                }
                //WaitForTopMostToDisable(process);

                ChangeAlohaIniDate(dataFolder);
                DeleteTransLog(dataFolder);
                DeleteTmpFiles(tmpFolder);
            }
        }
Exemplo n.º 3
0
        private async Task <Unit> OnRestartPos()
        {
            await Task.Run(() =>
            {
                ProcessExt.ForceKillProcess(SettingsData.AlohaIber.Replace(SettingsData.Constants.EXTENSION_EXE, String.Empty));

                if (!PosService.DeletePosFoldersDataAndNewDataIfPosIsDown())
                {
                    ShowPosApp();
                    return;
                }
                ReloadPosAction.SafeExecuteAction();
            });

            return(new Unit());
        }