/// <summary> /// Método que se va a ejecutar al hacer click en el botón "Aceptar" o en "Cambiar Clave" /// </summary> /// <param name="pChangePassword">Parámetro que determina si se hizo click o no en Cambiar clave</param> /// <returns></returns> private bool AcceptForm(bool pChangePassword) { try { //Validamos si los ErrorProviders tienen error if (!dxErrorProvider1.HasErrors && ValidateValues()) { //Autenticamos el usuario AuthenticateUser(); //Validamos si el usuario Debe cambiar el password o si presionó el botón "Cambiar Clave" if (!ValidateChangePassword(pChangePassword)) { return(false); } if (HealthInst == null) { MessageBox.Show("Selecione una institución donde iniciar sesión"); return(false); } Guid guid = Guid.Parse(frmBase_TabForm.IndentityUserInfo.ProviderId.ToString()); //Validamos Profesional Vs HealthInstitution AuthHealthInstitutionRes resAtuh = ServiceCalls.AuthHealthInstitution(HealthInst.HealthInstitutionId, null, guid); if (resAtuh.BusinessData.Authenticated) { GetProfesionalRes resProf = ServiceCalls.GetProfesional(null, false, true, true, guid, HealthInst.HealthInstitutionId); ServiceCalls.CurrentProfesional = resProf.BusinessData.profesional; ServiceCalls.CurrentHealthInstitution_Profesional = resProf.BusinessData.HealthInstitution_Profesional; ServiceCalls.CurrentHealthInstitution = HealthInst; FormBase.IndentityUserInfo.Roles = resProf.BusinessData.User.Roles; } else { this.MessageViewer.Title = "Mensaje de seguridad"; this.MessageViewer.Show(resAtuh.BusinessData.Message); return(false); } //Validamos si el usuario posee Roles y el InitAuthorizationFactory //Esta validacion se realiza aqui por que si se trata de usuarios Profesionales vinculados a Instituciones los roles se obtienen en base al Profesional y usuario // No solo con el User de ASPNET if (!ValidateRoles() || !FormBaseInitAuthorizationFactory()) { return(false); } //Si pasa todas las validaciones establecemos el DialogResult en OK y devolvemos true this.DialogResult = DialogResult.OK; return(true); } else { return(false); } } catch (Fwk.Exceptions.FunctionalException funcionalEx) { this.MessageViewer.Title = "Mensaje de seguridad"; this.MessageViewer.Show(funcionalEx); return(false); } catch (Exception ex) { this.MessageViewer.Title = "Mensaje de seguridad"; this.ExceptionViewer.Show(ex); return(false); } }