Beispiel #1
0
        /// <summary>
        /// Actualiza el idioma del usuario en sesión, según el id del idioma pasado por parámetro.
        /// </summary>
        /// <param name="languageId"></param>
        /// <returns></returns>
        public ResultBM ChangeCurrentLanguage(int languageId)
        {
            // Se recupera el usuario de la sesión para cambiarle el id del idioma
            UserDAL  userDal = new UserDAL();
            UserDTO  userDto = userDal.GetUser(SessionHelper.GetLoggedUser().Id);
            UserBM   userBm  = new UserBM(userDto);
            ResultBM updateResult;

            try
            {
                int originalLanguage = userBm.LanguageId;
                userBm.LanguageId = languageId;

                updateResult = UpdateUser(userBm);

                if (updateResult.IsValid())
                {
                    //Quizá debería manejarme con el modelo de lenguage
                    LanguageBLL languageBll = new LanguageBLL();
                    LanguageBM  languageBm  = languageBll.GetLanguage(languageId);
                    SessionHelper.SetLanguage(languageBm);
                    SessionHelper.GetLoggedUser().LanguageId = languageId;
                }
                else
                {
                    userBm.LanguageId = originalLanguage;
                }

                return(updateResult);
            }
            catch (Exception exception)
            {
                return(new ResultBM(ResultBM.Type.EXCEPTION, SessionHelper.GetTranslation("UPDATING_ERROR") + " " + exception.Message, exception));
            }
        }
Beispiel #2
0
 private static void ConvertIntoList(LanguageBM languageBm)
 {
     instance.translations = new Dictionary <String, String>();
     foreach (TranslationBM translation in  languageBm.Translations)
     {
         instance.translations.Add(translation.labelCode, translation.translation);
     }
 }
Beispiel #3
0
        /// <summary>
        /// Convierte el DTO en BM.
        /// </summary>
        /// <param name="log"></param>
        /// <returns></returns>
        private LanguageBM ConvertIntoBusinessModel(LanguageDTO entity, List <TranslationBM> translation = null)
        {
            LanguageBM result = new LanguageBM();

            result.Id           = entity.id;
            result.Name         = entity.name;
            result.Translations = translation;
            return(result);
        }
Beispiel #4
0
        /// <summary>
        /// Settea el lenguage y actualiza los suscriptores con el nuevo idioma.
        /// </summary>
        /// <param name="languageBm"></param>
        public static void SetLanguage(LanguageBM languageBm)
        {
            instance.languageBm = languageBm;
            ConvertIntoList(languageBm);

            foreach (KeyValuePair <object, string> obj in instance.suscriptorsToTranslate)
            {
                RegisterForTranslation(obj.Key, obj.Value);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Devuelve el Business Model del idioma, incluyendo las traducciones asociadas.
        /// </summary>
        /// <param name="languageId"></param>
        /// <returns></returns>
        public LanguageBM GetLanguage(int languageId)
        {
            TranslationBLL       translationBll = new TranslationBLL();
            List <TranslationBM> translations   = translationBll.GetTranslations(languageId);
            LanguageDAL          languageDal    = new LanguageDAL();
            LanguageDTO          language       = languageDal.GetLanguage(languageId);
            LanguageBM           result         = ConvertIntoBusinessModel(language, translations);

            return(result);
        }
Beispiel #6
0
        private void cmdAccept_Click(object sender, EventArgs e)
        {
            try
            {
                LanguageBM language = (LanguageBM)cmbLanguage.SelectedValue;
                UserBLL    userBll  = new UserBLL();

                ResultBM result = userBll.ChangeCurrentLanguage(language.Id);

                if (result.IsValid())
                {
                    this.Close();
                }
                else
                {
                    MessageBox.Show(result.description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            } catch (Exception excpetion) {
                MessageBox.Show("Se ha producido el siguiente error: " + excpetion.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Inicia la sesión, lo que implica almacenar los datos del usuario y su configuración (idioma y permisos).
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static SessionHelper StartSession(UserBM userMdl, ProfileBM profileMdl, LanguageBM languageBm)
        {
            if (instance == null)
            {
                instance                        = new SessionHelper();
                instance.userMdl                = userMdl;
                instance.profileMdl             = profileMdl;
                instance.languageBm             = languageBm;
                instance.suscriptorsToTranslate = new Dictionary <object, string>();
                ConvertIntoList(languageBm);
            }

            //No sé si se necesita porque no opero actualmente con la sesion
            return(instance);
        }
Beispiel #8
0
        private void cmdAccept_Click(object sender, EventArgs e)
        {
            DialogResult pressed = MessageBox.Show(SessionHelper.GetTranslation("SAVE_CHANGES_QUESTION"), "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (pressed == DialogResult.No)
            {
                return;
            }

            try
            {
                UserBLL       userBll  = new UserBLL();
                LanguageBM    language = (LanguageBM)cmbLanguage.SelectedValue;
                PermissionMDL profile  = (PermissionMDL)cmbProfile.SelectedValue;
                ResultBM      saveResult;
                UserBM        userBm;

                if (txtPassword.Text != txtPasswordCheck.Text)
                {
                    MessageBox.Show("El password asignado no coincide con el de verificación.", "Validación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                if (isUpdate)
                {
                    this.Entity.Name         = txtName.Text;
                    this.Entity.Active       = chkIsActive.Checked;
                    this.Entity.LanguageId   = language.Id;
                    this.Entity.PermissionId = profile.Code;

                    //Hubo cambio de password
                    bool updatePassword = txtPassword.Text.Length > 0;
                    if (updatePassword)
                    {
                        this.Entity.Password = txtPassword.Text;
                    }

                    saveResult = userBll.UpdateUser(this.Entity, updatePassword);

                    if (saveResult.IsValid())
                    {
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(saveResult.description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    userBm     = new UserBM(txtName.Text, chkIsActive.Checked, language.Id, profile.code, txtPassword.Text);
                    saveResult = userBll.SaveUser(userBm);

                    if (saveResult.IsValid())
                    {
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(saveResult.description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show("Se ha producido el siguiente error: " + exception.Message, "EXCEPCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }