public SaveGrupoNecesidadResponse SaveGrupoNecesidad(CreateEditSoloGrupoNecesidadViewModel viewModel, int?centro)
        {
            var            response = new SaveGrupoNecesidadResponse();
            GrupoNecesidad grupo    = new GrupoNecesidad();

            try
            {
                if (viewModel.GrupoNecesidadId == null)
                {
                    grupo.UpdateGrupoNecesidad(viewModel);
                    _grupoNecesidadRepository.Create(grupo);
                }
                else
                {
                    var grupoActual = _grupoNecesidadRepository.GetOne(x => x.GrupoNecesidadId == viewModel.GrupoNecesidadId.Value);
                    grupoActual.UpdateGrupoNecesidad(viewModel);
                    _grupoNecesidadRepository.Update(grupoActual);
                }

                response.GrupoNecesidadId = _grupoNecesidadRepository.GetOne(x => x.Nombre == viewModel.NombreGrupo &&
                                                                             x.IsActivo && !x.GrupoCerrado && (!(x.Usuario.CentroId.HasValue) || x.Usuario.CentroId == centro.Value)).GrupoNecesidadId;
                response.IsValid = true;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                response.IsValid      = false;
            }
            return(response);
        }
 public static void UpdateGrupoNecesidad(this GrupoNecesidad grupoNecesidad, CreateEditSoloGrupoNecesidadViewModel grupoNecesidadVM)
 {
     if (grupoNecesidadVM.GrupoNecesidadId.HasValue)
     {
         grupoNecesidad.ModifiedBy       = ModifiableEntityHelper.GetCurrentUser();
         grupoNecesidad.Modified         = ModifiableEntityHelper.GetCurrentDate();
         grupoNecesidad.GrupoNecesidadId = grupoNecesidadVM.GrupoNecesidadId.Value;
     }
     else
     {
         grupoNecesidad.CreatedBy = ModifiableEntityHelper.GetCurrentUser();
         grupoNecesidad.Created   = ModifiableEntityHelper.GetCurrentDate();
     }
     grupoNecesidad.Nombre       = grupoNecesidadVM.NombreGrupo;
     grupoNecesidad.Descripcion  = grupoNecesidadVM.DescripcionGrupo;
     grupoNecesidad.GrupoCerrado = grupoNecesidadVM.EstadoGrupo;
     grupoNecesidad.IsActivo     = true;
 }