/// <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)); } }
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); } }
/// <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); }
/// <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); } }
/// <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); }
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); } }
/// <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); }
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); } }