Ejemplo n.º 1
0
        private void LoadControl()
        {
            //Carga el nombre del Splash en caso de que ocurra un
            //error para registrarlo en el log
            Common.LogApplicationItem.UserControlName = "Splash";

            #region Datos Usuario
            User   usuarioDto = m_userDto;
            string password   = m_password;
            Login.Firm                   = usuarioDto.Firm;
            Login.passWord               = password;
            Login.PCC                    = usuarioDto.PCC;
            Login.TA                     = usuarioDto.TA;
            Login.UserId                 = usuarioDto.UserId;
            Login.Queue                  = usuarioDto.Queue;
            Login.Mail                   = usuarioDto.UserMail;
            Login.NombreCompleto         = usuarioDto.FamilyName;
            Login.IsMySabreBlocked       = usuarioDto.IsMySabreBlocked;
            Login.Agent                  = usuarioDto.Agent;
            Login.IsFramework35Installed = usuarioDto.IsFramework35Installed;
            Login.ProfileAllAccess       = usuarioDto.ProfileAllAccess;
            Login.ApplicationName        = usuarioDto.ApplicationName;
            Login.OrgId                  = usuarioDto.OrgId;
            UserBL.OrgIdBL               = usuarioDto.OrgId;
            Login.Supervisor             = usuarioDto.Supervisor;
            Login.UpgradeStatus          = usuarioDto.UpgradeStatus;
            //Crear perfil de properties de mySABRE por default
            #endregion


            if (Login.UpgradeStatus.Equals(0) && Login.ByParameters)
            {
                MessageBox.Show("Acción Cancelada. Ejecutar la aplicación MyCTS que se encuentra en el escritorio.");
                CloseApp();
            }
            else if (Login.UpgradeStatus.Equals(0) && !Login.ByParameters)
            {
                GlobalConstants.PATH_SABRE_USER     = string.Format(ConfigurationManager.AppSettings["PATH_MYSABRE_USER"] + "{0}", Login.Firm);
                GlobalConstants.PATH_SABRE_COMPILED = ConfigurationManager.AppSettings["PATH_MYSABRE_COMPILED"];
            }
            else if (Login.UpgradeStatus.Equals(2) && !Login.ByParameters)
            {
                bool exists = File.Exists(Path.Combine(ConfigurationManager.AppSettings["PATH_SABRERED_USER"], @"Profiles\3L64_1571\mysabre.exe"));
                if (!exists)
                {
                    MessageBox.Show("Su usuario no puede trabajar con la versión instalada en este equipo, se empezara a actualizar a MyCTS2");
                    Login.UpgradeStatus = 1;
                    UpdateSRW();
                }
            }

            GlobalConstants.PATH_SABRE_USER     = ConfigurationManager.AppSettings["PATH_SABRERED_USER"];
            GlobalConstants.PATH_SABRE_COMPILED = ConfigurationManager.AppSettings["PATH_SABRERED_COMPILED"];

            try
            {
                SendMessages("Inicializando . . .");

                Parameters.ServerDateTime = MyCTS.Services.Contracts.Productivity.GetCurrentDateTime();
                Parameters.LocalDateTime  = DateTime.Now;

                //Verifica que el usuario tenga framework 3.5 instalado
                if (usuarioDto.InstallFramework35)
                {
                    SilentInstaller.CheckFrameworkVersion();
                }

                DeleteInitialFiles();
                GlobalConstants.FilesDBList = CatalogsBL.GetCatalogsFileNames();
                try
                {
                    MyCTSAPI.EnabledBrowser(true);
                }
                catch {}

                // Actualizar a SRW
                UpdateSRW();

                //Tiempos de respuesta del API para comandos manuales y comandos extendidos
                try
                {
                    Parameters.CurrentTimeAPINormal   = ParameterBL.GetParameterValue("CurrentTimeAPINormal").Values;
                    Parameters.CurrentTimeAPIExtended = ParameterBL.GetParameterValue("CurrentTimeAPIExtended").Values;
                }
                catch
                {
                    Parameters.CurrentTimeAPINormal   = "29";
                    Parameters.CurrentTimeAPIExtended = "240";
                }
                Parameters.TimeExtendedAPI = false;
            }
            catch { }

            #region Verificando configuración . . .

            string[] driversPath  = new string[] { "c:\\", "d:\\" };
            string   strPath      = string.Empty;
            string   strPathTurbo = string.Empty;
            string   strTA        = null;

            try
            {
                SendMessages("Verificando configuración . . .");
                if (string.IsNullOrEmpty(usuarioDto.TA))
                {
                    Login.IsFirstTime = true;
                    foreach (string myDrive in driversPath)
                    {
                        //Obtener la TA de cada maquina.
                        strPath       = myDrive + Resources.Constants.PATH_TA_FILE;
                        strTA         = GetTAUserMachine(strPath);
                        usuarioDto.TA = strTA;
                        if (!string.IsNullOrEmpty(strTA))
                        {
                            break;
                        }
                    }
                }
                //Update la TA
                UserBL.UpdateUser(usuarioDto.ApplicationId, usuarioDto.UserId, usuarioDto.UserName, usuarioDto.LoweredUserName, usuarioDto.UserMail,
                                  DateTime.Now, usuarioDto.Firm, password, usuarioDto.FamilyName, usuarioDto.Agent, usuarioDto.Queue, usuarioDto.PCC, usuarioDto.TA);

                //Obtiene el profile del usuario.
                Profile profileDto = m_userDto.ProfileUser;

                //Cambiar el nombre del archivo de TurboSABRE
                if (profileDto != null)
                {
                    string bannerText = Common.GetProfileElement("BANNER", profileDto.PropertyNames, profileDto.PropertyValuesString);
                    if (string.IsNullOrEmpty(bannerText))
                    {
                        bannerText = Resources.Constants.BANNER_TEXT;
                    }
                    Login.BannerText  = bannerText;
                    Login.UserProfile = profileDto;

                    if (!profileDto.LastUpdatedDate.Equals(DateTime.MinValue))
                    {
                        foreach (string myDrive in driversPath)
                        {
                            //Obtener la TA de cada maquina.
                            strPathTurbo = myDrive + Resources.Constants.PATH_TURBO_FILE;
                            ChangeTurboSABREFile(strPathTurbo);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Common.AddMessageToLog(ex);
                MessageBox.Show("No ha sido posible verificar la información del perfil, por favor contacte con el área de soporte.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                CloseApp();
            }
            #endregion

            ActualizaVersionDeMyCTS();

            #region Creando datos del perfil . . .
            SendMessages("Cargando datos del perfil . . .");
            try
            {
                SetSettingsUser();
            }
            catch (Exception ex)
            {
                Common.AddMessageToLog(ex);
                MessageBox.Show("No ha sido posible copiar los archivos de configuración, por favor contacte con el área de soporte.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                CloseApp();
            }

            #endregion

            #region Cargando archivos de inicio . . .
            SendMessages("Cargando archivos de inicio . . .");
            try
            {
                LoadMissingCatalogs();
            }
            catch (Exception ex)
            {
                Common.AddMessageToLog(ex);
                MessageBox.Show("No ha sido posible descargar la información, por favor contacte con el área de soporte.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                CloseApp();
            }
            #endregion

            //Obtiene la contraseña para poder ingresar comandos de forma manual
            Parameter parameter = ParameterBL.GetParameterValue("ManualCommands");
            Parameters.PasswordManualCommands = (parameter != null) ? parameter.Values : string.Empty;

            parameter = ParameterBL.GetParameterValue("SecondsLogs");
            Parameters.SecondsLogs = (parameter != null) ? parameter.Values : "60000";

            parameter = ParameterBL.GetParameterValue("NumCommandsToInsertLogs");
            Parameters.NumCommandsToInsertLogs = (parameter != null) ? parameter.Values : "15";

            CloseThisWin();
        }
Ejemplo n.º 2
0
        private void LoadMissingCatalogs()
        {
            string        pathCatalogs = GlobalConstants.PATH_SABRE_USER + "\\xml";
            DirectoryInfo dir          = new DirectoryInfo(pathCatalogs);

            if (!dir.Exists)
            {
                dir.Create();
            }

            string        filesToLoad       = string.Empty;
            string        logicalFileTemp   = string.Empty;
            string        physicalFileTemp1 = string.Empty;
            List <string> filesNamesToLoad  = new List <string>();
            bool          isLoaded          = false;
            int           len = GlobalConstants.FilesDBList.Count;

            //busca los archivos que tenga cargados el usuario en su máquina
            //para cargar solamente aquellos que no tengan o sean versiones anteriores
            for (int i = 0; i < len; i++)
            {
                logicalFileTemp = GlobalConstants.FilesDBList[i];
                if (string.IsNullOrEmpty(logicalFileTemp))
                {
                    break;
                }
                //elimina la nomenclatura para identificar la version (yyyyMMdd) y guión bajo
                logicalFileTemp = logicalFileTemp.Substring(0, logicalFileTemp.Length - 8);
                FileInfo[] singleFile = dir.GetFiles(logicalFileTemp + "*.xml");

                //si no encuentro el archivo fisicamente en el cliente lo cargo
                foreach (FileInfo f in singleFile)
                {
                    physicalFileTemp1 = f.Name.ToLower().Replace(".xml", string.Empty);
                    logicalFileTemp   = GlobalConstants.FilesDBList[i];

                    if (!physicalFileTemp1.Equals(logicalFileTemp))
                    {
                        filesToLoad += "'" + logicalFileTemp + "',";
                        filesNamesToLoad.Add(logicalFileTemp); //guarda el nombre original de la base de datos para escribirlo
                        f.Delete();
                    }
                    isLoaded = true;
                }

                if (!isLoaded)
                {
                    logicalFileTemp = GlobalConstants.FilesDBList[i];
                    filesToLoad    += "'" + logicalFileTemp + "',";
                    filesNamesToLoad.Add(logicalFileTemp);
                }
                isLoaded = false;
            }

            if (!string.IsNullOrEmpty(filesToLoad))
            {
                filesToLoad += "''";
                ArrayList catalogsCollection = CatalogsBL.GetMissingCatalog(filesToLoad);
                if (catalogsCollection != null)
                {
                    len = catalogsCollection.Count;
                    for (int i = 0; i < len; i++)
                    {
                        List <ListItem> catalogs = catalogsCollection[i] as List <ListItem>;
                        string          pathfile = pathCatalogs + "\\" + filesNamesToLoad[i];
                        WriteXMLFile(catalogs, pathfile);
                    }
                }
            }
        }