/// <summary> /// Retrorna HealthInstitution_ProfesionalBE HealthInstitution por parametros /// </summary> /// <returns></returns> public static AuthHealthInstitutionRes AuthHealthInstitution(Guid pHealthInstitutionId, Int32?pProfesionalId, Guid?userId) { AuthHealthInstitutionReq req = new AuthHealthInstitutionReq(); req.BusinessData.HealthInstId = pHealthInstitutionId; req.BusinessData.ProfesionalId = pProfesionalId; req.BusinessData.UserId = userId; if (frmBase_TabForm.IndentityUserInfo != null) { req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString(); } AuthHealthInstitutionRes res = req.ExecuteService <AuthHealthInstitutionReq, AuthHealthInstitutionRes>(req); if (res.Error != null) { throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error); } return(res); }
/// <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); } //Validamos Profesional Vs HealthInstitution AuthHealthInstitutionRes resAtuh = Controller.AuthHealthInstitution(HealthInst.HealthInstitutionId, null, (Guid)frmBase_TabForm.IndentityUserInfo.ProviderId); if (resAtuh.BusinessData.Authenticated) { GetProfesionalRes resProf = Controller.GetProfesional(null, false, true, true, (Guid)frmBase_TabForm.IndentityUserInfo.ProviderId, HealthInst.HealthInstitutionId); Controller.CurrentProfesional = resProf.BusinessData.profesional; Controller.CurrentHealthInstitution_Profesional = resProf.BusinessData.HealthInstitution_Profesional; Controller.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 Profecionales vinculados a Instituciones los roles se obtienen en base al profecional 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); } }