public object Put([FromBody] InformeInspeccionModificarNissanViewModel viewModel) { try { InformeInspeccionNissan informeInspeccionNissan = _informeInspeccionNissanRepositorio.BuscarInformeInspeccionPorId(viewModel.InformeInspeccionId); informeInspeccionNissan.ModificarNombreDescripcion(viewModel.Nombre, viewModel.Descripcion); foreach (var G in viewModel.Grupos) { List<DetalleInformeInspeccionNissan> detalles = new List<DetalleInformeInspeccionNissan>(); if (G.Id <= 0) // Todos los Objectos son nuevos { foreach (var D in G.Detalles) { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); detalles.Add(detalle); //detalle.AgregarOpciones(OpcionesCheckCalidad, OpcionesCheckRevision, OpcionesMedicion); } informeInspeccionNissan.AgregarGrupo(G.DescripcionGrupo, detalles, TipoGrupoInformeInspeccionNissan.Revision); } else { foreach (var D in G.Detalles) { if (D.Id <= 0) // Grupo Existe, pero es un nuevo Detalle, Nuevas Opciones { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); informeInspeccionNissan.AgregarDetalleEnGrupo(G.Id, detalle); } else // Grupo Existe, Detalle Existe, se agrega o modifica opciones { informeInspeccionNissan.ModificarDescripcionDetalleEnGrupo(G.Id, D.Id, D.Descripcion); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Id = OCC.Id, Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Id = OCR.Id, Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Id = OM.Id, Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } informeInspeccionNissan.AgregarOModificarOpcionesDetalleEnGrupo(G.Id, D.Id, OpcionesCheckCalidad, OpcionesCheckRevision, OpcionesMedicion); } } informeInspeccionNissan.ModificarGrupo(G.Id, G.DescripcionGrupo, TipoGrupoInformeInspeccionNissan.Revision); } } foreach (var G in viewModel.GruposCalidad) { List<DetalleInformeInspeccionNissan> detalles = new List<DetalleInformeInspeccionNissan>(); if (G.Id <= 0) // Todos los Objectos son nuevos { foreach (var D in G.Detalles) { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); detalles.Add(detalle); } informeInspeccionNissan.AgregarGrupo(G.DescripcionGrupo, detalles, TipoGrupoInformeInspeccionNissan.Calidad); } else { foreach (var D in G.Detalles) { if (D.Id <= 0) // Grupo Existe, pero es un nuevo Detalle, Nuevas Opciones { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); informeInspeccionNissan.AgregarDetalleEnGrupo(G.Id, detalle); } else // Grupo Existe, Detalle Existe, se agrega o modifica opciones { informeInspeccionNissan.ModificarDescripcionDetalleEnGrupo(G.Id, D.Id, D.Descripcion); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Id = OCC.Id, Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Id = OCR.Id, Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Id = OM.Id, Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } informeInspeccionNissan.AgregarOModificarOpcionesDetalleEnGrupo(G.Id, D.Id, OpcionesCheckCalidad, OpcionesCheckRevision, OpcionesMedicion); } } informeInspeccionNissan.ModificarGrupo(G.Id, G.DescripcionGrupo, TipoGrupoInformeInspeccionNissan.Calidad); } } foreach (var G in viewModel.GruposEspeciales) { List<DetalleInformeInspeccionNissan> detalles = new List<DetalleInformeInspeccionNissan>(); if (G.Id <= 0) // Todos los Objectos son nuevos { foreach (var D in G.Detalles) { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); detalles.Add(detalle); //detalle.AgregarOpciones(OpcionesCheckCalidad, OpcionesCheckRevision, OpcionesMedicion); } informeInspeccionNissan.AgregarGrupo(G.DescripcionGrupo, detalles, TipoGrupoInformeInspeccionNissan.Medicion); } else { foreach (var D in G.Detalles) { if (D.Id <= 0) // Grupo Existe, pero es un nuevo Detalle, Nuevas Opciones { DetalleInformeInspeccionNissan detalle = new DetalleInformeInspeccionNissan(); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } detalle.Descripcion = D.Descripcion; detalle.Opciones = OpcionesCheckCalidad.Concat(OpcionesCheckRevision).Concat(OpcionesMedicion).ToList(); informeInspeccionNissan.AgregarDetalleEnGrupo(G.Id, detalle); } else // Grupo Existe, Detalle Existe, se agrega o modifica opciones { informeInspeccionNissan.ModificarDescripcionDetalleEnGrupo(G.Id, D.Id, D.Descripcion); List<Opcion> OpcionesCheckCalidad = new List<Opcion>(); List<Opcion> OpcionesCheckRevision = new List<Opcion>(); List<Opcion> OpcionesMedicion = new List<Opcion>(); if (D.OpcionesCheckCalidad != null) { foreach (var OCC in D.OpcionesCheckCalidad) { OpcionesCheckCalidad.Add(new Opcion { Id = OCC.Id, Descripcion = OCC.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad }); } } if (D.OpcionesCheckRevision != null) { foreach (var OCR in D.OpcionesCheckRevision) { OpcionesCheckRevision.Add(new Opcion { Id = OCR.Id, Descripcion = OCR.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision }); } } if (D.OpcionesMedicion != null) { foreach (var OM in D.OpcionesMedicion) { OpcionesMedicion.Add(new Opcion { Id = OM.Id, Descripcion = OM.Descripcion, CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion }); } } informeInspeccionNissan.AgregarOModificarOpcionesDetalleEnGrupo(G.Id, D.Id, OpcionesCheckCalidad, OpcionesCheckRevision, OpcionesMedicion); } } informeInspeccionNissan.ModificarGrupo(G.Id, G.DescripcionGrupo, TipoGrupoInformeInspeccionNissan.Medicion); } } if (viewModel.GruposAnulados != null) { foreach (var G in viewModel.GruposAnulados) { informeInspeccionNissan.AnularGrupo(G.Id); } } if (viewModel.DetallesAnulados != null) { foreach (var D in viewModel.DetallesAnulados) { //informeInspeccionNissan.AnularDetalleEnGrupo(D.Id); foreach (var grupo in informeInspeccionNissan.GruposDetallesInformeInspeccionNissan) { foreach (var detalle in grupo.Detalles) { if (detalle.Id == D.Id) { //detalle.Inactivar(); detalle.IndicadorEstado = EstadoEntidad.Inactivo; } } } } } if (viewModel.OpcionesAnulados != null) { foreach (var O in viewModel.OpcionesAnulados) { informeInspeccionNissan.AnularOpcionEnGrupo(O.Id); } } _informeInspeccionNissanRepositorio.ModificarInformeInspeccion(informeInspeccionNissan); } catch (Exception e) { return new { Status = 500, Mensaje = e.Message }; } return new { Status = 200, Mensaje = "OK!" }; }
public InformeInspeccionNissan Crear(InformeInspeccionPostNissanViewModel informeInspeccionPostNissanViewModel) { InformeInspeccionNissan informeInspeccion = new InformeInspeccionNissan(); List<GrupoInformeInspeccionNissan> grupos = new List<GrupoInformeInspeccionNissan>(); #region GruposRevision foreach (var grupo in informeInspeccionPostNissanViewModel.Grupos) { GrupoInformeInspeccionNissan grupoInformeInspeccion = new GrupoInformeInspeccionNissan(); List<DetalleInformeInspeccionNissan> detallesInformeInspeccionNissan = new List<DetalleInformeInspeccionNissan>(); foreach (var detalle in grupo.Detalles) { DetalleInformeInspeccionNissan detalleInformeInspeccionNissan = new DetalleInformeInspeccionNissan(); List<Opcion> opcionesCheckRevision = new List<Opcion>(); List<Opcion> opcionesMedicion = new List<Opcion>(); List<Opcion> opcionesCalidad = new List<Opcion>(); if (detalle.OpcionesCheckRevision != null) { foreach (var opcion in detalle.OpcionesCheckRevision) { opcionesCheckRevision.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesMedicion != null) { foreach (var opcion in detalle.OpcionesMedicion) { opcionesMedicion.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesCheckCalidad != null) { foreach (var opcion in detalle.OpcionesCheckCalidad) { opcionesCalidad.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad, Descripcion = opcion.Descripcion } ); } } detalleInformeInspeccionNissan.Descripcion = detalle.Descripcion; detalleInformeInspeccionNissan.AgregarOpciones(opcionesCheckRevision.ToList()); detallesInformeInspeccionNissan.Add(detalleInformeInspeccionNissan); } grupoInformeInspeccion.Descripcion = grupo.DescripcionGrupo; grupoInformeInspeccion.Detalles = detallesInformeInspeccionNissan; grupoInformeInspeccion.IndicadorEstado = EstadoEntidad.Activo; grupoInformeInspeccion.TipoGrupo = TipoGrupoInformeInspeccionNissan.Revision; grupos.Add(grupoInformeInspeccion); } #endregion #region GruposCalidad foreach (var grupo in informeInspeccionPostNissanViewModel.GruposCalidad) { GrupoInformeInspeccionNissan grupoInformeInspeccion = new GrupoInformeInspeccionNissan(); List<DetalleInformeInspeccionNissan> detallesInformeInspeccionNissan = new List<DetalleInformeInspeccionNissan>(); foreach (var detalle in grupo.Detalles) { DetalleInformeInspeccionNissan detalleInformeInspeccionNissan = new DetalleInformeInspeccionNissan(); List<Opcion> opcionesCheckRevision = new List<Opcion>(); List<Opcion> opcionesMedicion = new List<Opcion>(); List<Opcion> opcionesCalidad = new List<Opcion>(); if (detalle.OpcionesCheckRevision != null) { foreach (var opcion in detalle.OpcionesCheckRevision) { opcionesCheckRevision.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesMedicion != null) { foreach (var opcion in detalle.OpcionesMedicion) { opcionesMedicion.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesCheckCalidad != null) { foreach (var opcion in detalle.OpcionesCheckCalidad) { opcionesCalidad.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad, Descripcion = opcion.Descripcion } ); } } detalleInformeInspeccionNissan.Descripcion = detalle.Descripcion; detalleInformeInspeccionNissan.AgregarOpciones(opcionesCalidad.ToList()); detallesInformeInspeccionNissan.Add(detalleInformeInspeccionNissan); } grupoInformeInspeccion.Descripcion = grupo.DescripcionGrupo; grupoInformeInspeccion.Detalles = detallesInformeInspeccionNissan; grupoInformeInspeccion.IndicadorEstado = EstadoEntidad.Activo; grupoInformeInspeccion.TipoGrupo = TipoGrupoInformeInspeccionNissan.Calidad; grupos.Add(grupoInformeInspeccion); } #endregion #region GruposEspeciales foreach (var grupo in informeInspeccionPostNissanViewModel.GruposEspeciales) { GrupoInformeInspeccionNissan grupoInformeInspeccion = new GrupoInformeInspeccionNissan(); List<DetalleInformeInspeccionNissan> detallesInformeInspeccionNissan = new List<DetalleInformeInspeccionNissan>(); foreach (var detalle in grupo.Detalles) { DetalleInformeInspeccionNissan detalleInformeInspeccionNissan = new DetalleInformeInspeccionNissan(); List<Opcion> opcionesCheckRevision = new List<Opcion>(); List<Opcion> opcionesMedicion = new List<Opcion>(); List<Opcion> opcionesCalidad = new List<Opcion>(); if (detalle.OpcionesCheckRevision != null) { foreach (var opcion in detalle.OpcionesCheckRevision) { opcionesCheckRevision.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckRevision, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesMedicion != null) { foreach (var opcion in detalle.OpcionesMedicion) { opcionesMedicion.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionMedicion, Descripcion = opcion.Descripcion } ); } } if (detalle.OpcionesCheckCalidad != null) { foreach (var opcion in detalle.OpcionesCheckCalidad) { opcionesCalidad.Add(new Opcion { CodigoAgrupacion = TipoOpcionNissan.OpcionCheckCalidad, Descripcion = opcion.Descripcion } ); } } detalleInformeInspeccionNissan.Descripcion = detalle.Descripcion; detalleInformeInspeccionNissan.AgregarOpciones(opcionesCheckRevision.Concat(opcionesMedicion).ToList()); detallesInformeInspeccionNissan.Add(detalleInformeInspeccionNissan); } grupoInformeInspeccion.Descripcion = grupo.DescripcionGrupo; grupoInformeInspeccion.Detalles = detallesInformeInspeccionNissan; grupoInformeInspeccion.IndicadorEstado = EstadoEntidad.Activo; grupoInformeInspeccion.TipoGrupo = TipoGrupoInformeInspeccionNissan.Medicion; grupos.Add(grupoInformeInspeccion); } #endregion informeInspeccion.Nombre = informeInspeccionPostNissanViewModel.Nombre; informeInspeccion.Descripcion = informeInspeccionPostNissanViewModel.Descripcion; informeInspeccion.GruposDetallesInformeInspeccionNissan = grupos; return informeInspeccion; }
public void AgregarDetalleEnGrupo(int idGrupo, DetalleInformeInspeccionNissan detalle) { GrupoInformeInspeccionNissan grupo = this.GruposDetallesInformeInspeccionNissan.Where(g => g.Id == idGrupo).First(); grupo.AgregarDetalle(detalle); }