public InformeInspeccionFordViewModel(InformeInspeccionFordCompleto informeInspeccionFordCompleto)
            : this()
        {
            MapearModelDesde(informeInspeccionFordCompleto.InformeInspeccionFord);

            List<ValorOpcion> valoresOpcion = BuscadorObjetos.BuscarTodosLosObjetosDelTipo<ValorOpcion>(informeInspeccionFordCompleto);
            List<Modelo.OpcionViewModel> opcionesViewModel = BuscadorObjetos.BuscarTodosLosObjetosDelTipo<Modelo.OpcionViewModel>(this.Model);

            foreach (var valorOpcion in valoresOpcion)
            {
                Modelo.OpcionViewModel opcionViewModel = opcionesViewModel.FirstOrDefault(ovm => ovm.Id == valorOpcion.OpcionId);
                if(opcionViewModel != null)
                    opcionViewModel.Valor = valorOpcion.Valor == "true" ? true : false;
            }

            Model.Comentarios = informeInspeccionFordCompleto.Comentarios;
            Model.AsesorServicio = informeInspeccionFordCompleto.AsesorServicio;
            Model.NombreTecnico = informeInspeccionFordCompleto.Tecnico;
            Model.CLIENTE = informeInspeccionFordCompleto.Cliente.Nombre;
            Model.EMAIL = informeInspeccionFordCompleto.Cliente.CorreoElectronico;
            Model.Fecha = informeInspeccionFordCompleto.Fecha.ToShortDateString();
            Model.Marca = informeInspeccionFordCompleto.InformacionVehiculoFord.Marca;
            Model.MODELO = informeInspeccionFordCompleto.InformacionVehiculoFord.Modelo;
            Model.OT = informeInspeccionFordCompleto.RoTag;
            Model.ANIO = informeInspeccionFordCompleto.InformacionVehiculoFord.Anio;
            Model.MESINSPECCIONESTATAL = informeInspeccionFordCompleto.MesInspeccionEstatal;
            Model.MILLAJE = informeInspeccionFordCompleto.InformacionVehiculoFord.Millaje;
            Model.VIN = informeInspeccionFordCompleto.InformacionVehiculoFord.Vin;
            Model.PLACA = informeInspeccionFordCompleto.InformacionVehiculoFord.Placa;
        }
 public void MapearDesde(InformeInspeccionFordCompleto informeInspeccionFordCompleto)
 {
     Id = informeInspeccionFordCompleto.Id;
     NombreCliente = informeInspeccionFordCompleto.Cliente.Nombre;
     Fecha = informeInspeccionFordCompleto.Fecha.ToShortDateString();
     NombreTecnico = informeInspeccionFordCompleto.Tecnico;
 }
        public void Guardar(InformeInspeccionFordCompleto informeInspeccionFordCompleto)
        {
            int codigoTemporal = 0;
            foreach (var detalle in informeInspeccionFordCompleto.DetalleCompleto)
            {
                if (detalle.Id <= 0)
                {
                    detalle.Id = --codigoTemporal;
                }

                foreach (var valor in detalle.Valores)
                {
                    if(valor.Id <= 0)
                    {
                        valor.Id = --codigoTemporal;
                    }
                    valor.DetalleInformeInspeccionCompletoId = detalle.Id;
                }
            }

            _fordContext.InformeInspeccionFordCompleto.Attach(informeInspeccionFordCompleto);
            _fordContext.SaveChanges();
        }
            internal InformeInspeccionFordCompleto CrearInformeInspeccionCompleto()
            {
                InformeInspeccionFordCompleto informeInspeccionFordCompleto =
                    new InformeInspeccionFordCompleto
                        (
                            new ClienteFord(CLIENTE,EMAIL),
                            new InformacionVehiculoFord(Marca,MODELO,ANIO.Value,MILLAJE,VIN,PLACA),
                            Convert.ToDateTime(Fecha),
                            Comentarios,
                            AsesorServicio,
                            NombreTecnico,
                            OT,
                            MESINSPECCIONESTATAL
                        );
                informeInspeccionFordCompleto.InformeInspeccionId = InformeInspeccionId;

                foreach (var detalle in GrupoArticuloMantenimiento.Detalle)
                {
                    List<ValorOpcion> valores = new List<ValorOpcion>();

                    foreach (var opcion in detalle.OpcionesDesgaste)
                    {
                        valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                    }

                    foreach (var opcion in detalle.OpcionesReparacion)
                    {
                        valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                    }

                    informeInspeccionFordCompleto.AgregarDetalle(detalle.Id, valores);
                }

                foreach (var detalle in GrupoDesgasteLlanta.Detalle)
                {
                    List<ValorOpcion> valores = new List<ValorOpcion>();

                    foreach (var opcion in detalle.OpcionesDesgaste)
                    {
                        valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                    }

                    foreach (var opcion in detalle.OpcionesReparacion)
                    {
                        valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                    }

                    informeInspeccionFordCompleto.AgregarDetalle(detalle.Id, valores);
                }

                foreach (var subGrupo in GrupoDesgasteFreno.SubGrupos)
                {
                    foreach (var detalle in subGrupo.Detalle)
                    {
                        List<ValorOpcion> valores = new List<ValorOpcion>();

                        foreach (var opcion in detalle.OpcionesAtencion)
                        {
                            valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                        }

                        foreach (var opcion in detalle.OpcionesReparacion)
                        {
                            valores.Add(new ValorOpcion(opcion.Id,opcion.Valor ? "true" : "false"));
                        }

                        informeInspeccionFordCompleto.AgregarDetalle(detalle.Id, valores);
                    }
                }

                foreach (var subGrupo in GrupoSistemaComponente .SubGrupos)
                {
                    foreach (var detalle in subGrupo.Detalle)
                    {
                        List<ValorOpcion> valores = new List<ValorOpcion>();

                        foreach (var opcion in detalle.OpcionesAtencion)
                        {
                            valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                        }

                        foreach (var opcion in detalle.OpcionesReparacion)
                        {
                            valores.Add(new ValorOpcion(opcion.Id, opcion.Valor ? "true" : "false"));
                        }

                        informeInspeccionFordCompleto.AgregarDetalle(detalle.Id, valores);
                    }
                }

                return informeInspeccionFordCompleto;
            }
 public InformeInspeccionFordCompletoViewModel(InformeInspeccionFordCompleto informeInspeccionFordCompleto)
 {
     MapearDesde(informeInspeccionFordCompleto);
 }