public override GetHealthInstitutionByIdRes Execute(GetHealthInstitutionByIdReq pServiceRequest) { GetHealthInstitutionByIdRes wRes = new GetHealthInstitutionByIdRes(); wRes.BusinessData = HealthInstitutionDAC.GetById(pServiceRequest.BusinessData.HealthInstId, null); return(wRes); }
public override RetriveHealthInstitutionRes Execute(RetriveHealthInstitutionReq pServiceRequest) { RetriveHealthInstitutionRes wRes = new RetriveHealthInstitutionRes(); wRes.BusinessData = HealthInstitutionDAC.RetriveHealthInstitutionByParams(pServiceRequest.BusinessData.TextToSearch); return(wRes); }
public override AuthHealthInstitutionRes Execute(AuthHealthInstitutionReq pServiceRequest) { AuthHealthInstitutionRes wRes = new AuthHealthInstitutionRes(); wRes.BusinessData.Authenticated = HealthInstitutionDAC.AuthenticateUser(pServiceRequest.BusinessData.HealthInstId, pServiceRequest.BusinessData.ProfesionalId, pServiceRequest.BusinessData.UserId); //wRes.BusinessData.HealthInstitution_ProfesionalBE = HealthInstitutionDAC.Get_HealthInstitution_Profesional((pServiceRequest.BusinessData.HealthInstId, pServiceRequest.BusinessData.ProfesionalId)); if (wRes.BusinessData.Authenticated == false) { wRes.BusinessData.Message = "No es un usuario autorizado para ingresar en la institución seleccionada"; } //string cultura = Fwk.ServiceManagement.ServiceMetadata.ProviderSection.GetProvider(pServiceRequest.ContextInformation.ProviderName).DefaultCulture; //string cultura2 = pServiceRequest.ContextInformation.DefaultCulture; return(wRes); }
public override RetriveProfesionalesRes Execute(RetriveProfesionalesReq pServiceRequest) { RetriveProfesionalesRes wRes = new RetriveProfesionalesRes(); List <Profesional_FullViewBE> wProfesional_FullView_List = null; if (pServiceRequest.BusinessData.HealthInstId.HasValue) { ///Busca profecionales ya relacionados con una Institución //Si es padre if (HealthInstitutionDAC.IsParent(pServiceRequest.BusinessData.HealthInstId.Value)) { //Profesionales directamente relacionados wProfesional_FullView_List = ProfesionalesDAC.SearchBy_HealthInstRelated(pServiceRequest.BusinessData.HealthInstId.Value); //Lista de id de profesionales ya incluidos n la lista List <Int32> prof_ids_JustRetrived = (from s in wProfesional_FullView_List select s.IdProfesional).ToList <Int32>(); //Instituciones hijas List <Guid> inst_chids_ids = HealthInstitutionDAC.RetriveHealthInstitution_Childs_Ids(pServiceRequest.BusinessData.HealthInstId.Value); foreach (Guid id in inst_chids_ids) { var only_inthis_child_List = ProfesionalesDAC.SearchBy_HealthInstRelated(pServiceRequest.BusinessData.HealthInstId.Value, prof_ids_JustRetrived); wProfesional_FullView_List.AddRange(only_inthis_child_List); //Lista de id de profesionales ya incluidos en la lista wProfesional_FullView_List prof_ids_JustRetrived.AddRange((from s in wProfesional_FullView_List select s.IdProfesional).ToList <Int32>()); } } else // Si es Hijo { //Profecionales directamente relacionados wProfesional_FullView_List = ProfesionalesDAC.SearchBy_HealthInstRelated(pServiceRequest.BusinessData.HealthInstId.Value); } } else { ///Busca profecionales solo por nobre y apellido wProfesional_FullView_List = ProfesionalesDAC.SearchByParams(pServiceRequest.BusinessData.Nombre, pServiceRequest.BusinessData.Apellido); } wRes.BusinessData.AddRange(wProfesional_FullView_List); return(wRes); }
public override GetProfesionalRes Execute(GetProfesionalReq pServiceRequest) { GetProfesionalRes res = new GetProfesionalRes(); if (pServiceRequest.BusinessData.IncludeScheduler && !pServiceRequest.BusinessData.IdProfesional.HasValue) { throw new FunctionalException("El servicio GetProfesional requiere el IdProfesional para incluir la programacion del profesional"); } if (pServiceRequest.BusinessData.IdProfesional.HasValue) { res.BusinessData.profesional = ProfesionalesDAC.GetById(pServiceRequest.BusinessData.IdProfesional.Value); } if (pServiceRequest.BusinessData.UserGuid.HasValue) { res.BusinessData.profesional = ProfesionalesDAC.GetByUserGuid(pServiceRequest.BusinessData.UserGuid.Value); } if (res.BusinessData.profesional == null) { throw new FunctionalException("El usuario no esta asociado a un profesional valido o habilitado en el sistema"); } if (pServiceRequest.BusinessData.IncludeScheduler && pServiceRequest.BusinessData.IdProfesional.HasValue) { res.BusinessData.ResourceSchedulerList = SchedulingDAC.RetriveBy_ResourceId(pServiceRequest.BusinessData.IdProfesional.Value, pServiceRequest.BusinessData.HealthInstitutionId.Value); } Fwk.Security.BC.UserBC userBc = new Fwk.Security.BC.UserBC(pServiceRequest.ContextInformation.AppId, pServiceRequest.SecurityProviderName); Fwk.Security.Common.User user = new Fwk.Security.Common.User(); Fwk.Security.Common.RolList rolList = null; if (pServiceRequest.BusinessData.IncludeSecurityInfo) { if (!string.IsNullOrEmpty(res.BusinessData.profesional.UserName)) { userBc.GetUserByParams(res.BusinessData.profesional.UserName, out user, out rolList); var roles = from r in rolList select r.RolName; user.Roles = roles.ToArray <string>(); } res.BusinessData.User = user; ///Si != nul indica q se trata de un usuario profesional relacionado a una instoitución if (pServiceRequest.BusinessData.HealthInstitutionId.HasValue) { HealthInstitution_ProfesionalBE wHealthInstitution_ProfesionalBE = HealthInstitutionDAC.Get_HealthInstitution_Profesional(pServiceRequest.BusinessData.HealthInstitutionId.Value, res.BusinessData.profesional.IdProfesional, null); res.BusinessData.User.Roles = res.BusinessData.User.Roles.Union(wHealthInstitution_ProfesionalBE.Roles).ToArray <String>(); res.BusinessData.HealthInstitution_Profesional = wHealthInstitution_ProfesionalBE; } } if (pServiceRequest.BusinessData.IncludeAllInstitutions) { res.BusinessData.HealthInstitution_ProfesionalList = ProfesionalesDAC.Retrive_HealthInstitution_Relationships( res.BusinessData.profesional.IdProfesional); } return(res); }
public override UpdateProfesionalRes Execute(UpdateProfesionalReq pServiceRequest) { RolList lst = null; UpdateProfesionalRes wRes = new UpdateProfesionalRes(); pServiceRequest.BusinessData.profesional.LastAccessUserId = Guid.Parse(pServiceRequest.ContextInformation.UserId); pServiceRequest.BusinessData.profesional.Persona.LastAccessUserId = Guid.Parse(pServiceRequest.ContextInformation.UserId); ProfesionalesDAC.Update(pServiceRequest.BusinessData.profesional); ///Ejemplo //A = 1,2,3, existent_roles //B = 2,3,5, vienen del servicio q son los que quedan //B-A = 5, roles a agregar //A-B = 1, roles a eliminar #region ROLES A NIVEL DE SF if (pServiceRequest.BusinessData.User != null) { //Elimino todos los roles del usuario Fwk.Security.Common.RolList rolList_sf_A = FwkMembership.GetRolesForUser(pServiceRequest.BusinessData.User.UserName, pServiceRequest.SecurityProviderName); var roles_sf_A_ids = from r in rolList_sf_A select r.RolName; var roles_sf_B_ids = from r in pServiceRequest.BusinessData.User.GetRolList() where r.RolName.StartsWith("sf_") select r.RolName; //A-B roles a eliminar var roles_To_Delette_ids = roles_sf_A_ids.Except <string>(roles_sf_B_ids); if (roles_To_Delette_ids.Count() != 0) { lst = new RolList(); var to_remove = rolList_sf_A.Where(r => roles_To_Delette_ids.Contains(r.RolName.Trim())); lst.AddRange(to_remove); FwkMembership.RemoveUserFromRoles(pServiceRequest.BusinessData.User.UserName, lst, pServiceRequest.SecurityProviderName); } //A-B roles a eliminar var roles_To_Add_ids = roles_sf_B_ids.Except <string>(roles_sf_A_ids); //B-A roles a agregar if (roles_To_Add_ids.Count() != 0) { lst = new RolList(); foreach (string rolName in roles_To_Add_ids) { lst.Add(new Rol(rolName)); } //Asigno los nuevos roles del usuario FwkMembership.CreateRolesToUser(lst, pServiceRequest.BusinessData.User.UserName, pServiceRequest.SecurityProviderName); } #endregion #region ROLES A NIVEL INSTITUCIONAL if (pServiceRequest.BusinessData.HealthInstitutionId.HasValue) { Guid userId = new Guid(pServiceRequest.BusinessData.User.ProviderId.ToString()); ///Obtener los roles asignados previamente string[] existent_roles_A = ProfesionalesDAC.Get_HealtInstitute_UsersInRoles(userId, pServiceRequest.BusinessData.HealthInstitutionId.Value); //vienen del servicio q son los que quedan var roles_B = from r in pServiceRequest.BusinessData.User.GetRolList() where r.RolName.StartsWith("inst_") select r.RolName; //Agregar foreach (string rolName in roles_B.Except(existent_roles_A)) { HealthInstitutionDAC.Profesional_UsersInRoles_Assign( pServiceRequest.BusinessData.HealthInstitutionId.Value, pServiceRequest.BusinessData.profesional.IdProfesional, userId, rolName); } //Quitar roles foreach (string rolName in existent_roles_A.Except(roles_B)) { HealthInstitutionDAC.Profesional_RemoveRol( pServiceRequest.BusinessData.HealthInstitutionId.Value, pServiceRequest.BusinessData.profesional.IdProfesional, userId, rolName); } } } return(wRes); }