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; }
public static CreateEditGrupoNecesidadViewModel ConvertToCreateEditGrupoNecesidadViewModel(GrupoNecesidad grupo, IEnumerable <Necesidad> necesidades) { var grupoVM = new CreateEditGrupoNecesidadViewModel(); var necesidadComun = necesidades.FirstOrDefault(); grupoVM.ListaNecesidades = necesidades.Select(x => x.ConvertToCreateEditNecesidadViewModel()).ToList(); grupoVM.NombreGrupo = grupo.Nombre; grupoVM.DescripcionGrupo = grupo.Descripcion; grupoVM.GrupoNecesidadId = grupo.GrupoNecesidadId; grupoVM.EstadoGrupo = grupo.GrupoCerrado; grupoVM.CentroId = necesidadComun.CentroId; grupoVM.ClienteId = necesidadComun.Proyecto.ClienteId; grupoVM.DetalleTecnologia = necesidadComun.Observaciones; grupoVM.DisponibilidadReubicacion = (necesidadComun.CambioResidencia == true); grupoVM.DisponibilidadViajes = (necesidadComun.DisponibilidadViaje == true); grupoVM.FechaSolicitud = necesidadComun.FechaSolicitud; grupoVM.MesesAsignacionId = necesidadComun.MesesAsignacionId; grupoVM.NecesidadIdioma = (necesidadComun.NecesidadIdioma == true); grupoVM.OficinaId = necesidadComun.OficinaId; grupoVM.ProyectoId = necesidadComun.ProyectoId; grupoVM.SectorId = necesidadComun.SectorId; grupoVM.TipoServicioId = (necesidadComun.Proyecto.ServicioId.HasValue) ? necesidadComun.Proyecto.ServicioId.Value : 0; grupoVM.Activo = grupo.IsActivo; return(grupoVM); }
private static GrupoNecesidadesRowViewModel ConvertToGrupoNecesidadRowViewModel(this GrupoNecesidad grupoNecesidad) { GrupoNecesidadesRowViewModel grupoNecesidadRowViewModel = new GrupoNecesidadesRowViewModel(); var numeroNecesidadesAsignadas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId != (int)EstadoNecesidadEnum.Cancelado); var numeroNecesidadesAbiertas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Abierta); var numeroNecesidadesPreasiganas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Preasignada); var numeroNecesidadesCerradas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Cerrada); grupoNecesidadRowViewModel.GrupoNecesidadId = grupoNecesidad.GrupoNecesidadId; grupoNecesidadRowViewModel.NombreGrupo = grupoNecesidad.Nombre; grupoNecesidadRowViewModel.NecesidadesAsignadas = numeroNecesidadesAsignadas; grupoNecesidadRowViewModel.NecesidadesAbiertas = numeroNecesidadesAbiertas; grupoNecesidadRowViewModel.NecesidadesPreasignadas = numeroNecesidadesPreasiganas; grupoNecesidadRowViewModel.NecesidadesCerradas = numeroNecesidadesCerradas; if (grupoNecesidad.GrupoCerrado) { grupoNecesidadRowViewModel.EstadoGrupo = "Cerrado"; } else { grupoNecesidadRowViewModel.EstadoGrupo = "Abierto"; } if (numeroNecesidadesAsignadas > 0) { grupoNecesidadRowViewModel.NombreCliente = grupoNecesidad.NecesidadesAsignadas.FirstOrDefault().Proyecto.Cliente.Nombre; grupoNecesidadRowViewModel.NombreProyecto = grupoNecesidad.NecesidadesAsignadas.FirstOrDefault().Proyecto.Nombre; } return(grupoNecesidadRowViewModel); }
public static NecesidadGrupoRowExportToExcelViewModel ConvertToNecesidadGrupoRowExportToExcelViewModel(this GrupoNecesidad grupoNecesidad) { var necesidadGrupoRowExportToExcelViewModel = new NecesidadGrupoRowExportToExcelViewModel { Referencia = grupoNecesidad.GrupoNecesidadId, Nombre = grupoNecesidad.Nombre, Cliente = grupoNecesidad.NecesidadesAsignadas.FirstOrDefault().Proyecto.Cliente.Nombre, Proyecto = grupoNecesidad.NecesidadesAsignadas.FirstOrDefault().Proyecto.Nombre, NumNecesidades = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId != (int)EstadoNecesidadEnum.Cancelado), NumNecesidadesAbiertas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Abierta), NumNecesidadesPreasignadas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Preasignada), NumNecesidadesCerradas = grupoNecesidad.NecesidadesAsignadas.Count(x => x.IsActivo && x.EstadoNecesidadId == (int)EstadoNecesidadEnum.Cerrada), Estado = grupoNecesidad.IsActivo.ToString() }; if (!grupoNecesidad.GrupoCerrado) { necesidadGrupoRowExportToExcelViewModel.Estado = "Abierto"; } else { necesidadGrupoRowExportToExcelViewModel.Estado = "Cerrado"; } return(necesidadGrupoRowExportToExcelViewModel); }