protected void btnGrabar_Click(object sender, EventArgs e) { try { lblMensaje.Text = ""; Observacion observacion = new Observacion(); observacion.HoraInicio2 = new Hora() { Id = 0 }; observacion.HoraTermino2 = new Hora() { Id = 0 }; observacion.EstadoReparacion = new EstadoReparacion() { Id = 1 }; observacion.Maestro = new Maestro() { Id = 1 }; observacion.Partida = new Partida() { Id = 1 }; observacion.Causa = new Causa() { Id = 1 }; observacion.Recinto = new Recinto() { Id = 1 }; observacion.TipoObservacion = new TipoObservacion() { Id = 10 }; DataTable dt = ViewState["dataSource"] as DataTable; foreach (DataRow row in dt.Rows) { if (row.RowState != DataRowState.Deleted) { #region variables DataTable string rowInmobiliaria = row["Inmobiliaria"].ToString().Trim(); string rowProyecto = row["Proyecto"].ToString().Trim(); string rowSupervisorConstructora = row["Supervisor Constructora"].ToString(); string rowSupervisorInmobiliaria = row["Solicitante Supervisor Inmob#"].ToString(); string rowFechaObservacion = row["Fecha"].ToString(); string rowInmueble = row["DEPTO"].ToString(); string rowDescripcion = row["Observación"].ToString().Trim(); string rowPropietario = row["Propietario"].ToString(); string rowRutPropietario = row["Rut"].ToString(); string rowFechaEntrega = row["Fecha Entrega"].ToString(); string rowNombreResidente = row["Residente"].ToString(); string rowTeléfonoResidente = row["Teléfono"].ToString(); string rowFechaCoordinación = row["Fecha Coordinación"].ToString(); int rowTipoHorario = Convert.ToInt32(row["Tipo Horario"].ToString()); string rowHoraInicio = row["Hora Inicio"].ToString(); string rowHoraTermino = row["Hora Termino"].ToString(); string rowTipoObservacion = row["Tipo Observacion"].ToString(); string rowTipoInmueble = row["Tipo de Inmueble"].ToString(); #endregion if (rowInmobiliaria != "") { observacion.SupervisorConstructora = DatosSupervisor.BuscarSupervisor(rowSupervisorConstructora); observacion.SupervisorInmobiliaria = DatosSupervisor.BuscarSupervisor(rowSupervisorInmobiliaria); observacion.FechaObservacion = DateTime.Parse(rowFechaObservacion).ToString("yyyy-MM-dd"); if (DatosProyecto.BuscarProyecto(rowProyecto).Id == 0) { //No Existe el proyecto ingresado desde el Excel if (DatosInmobiliaria.BuscarInmobiliaria(rowInmobiliaria).Id == 0) { //Tampoco existe la inmobiliria... //Se realiza el ingreso de ambos Inmobiliaria inmo = new Inmobiliaria() { Nombre = rowInmobiliaria }; DatosInmobiliaria.AgregarInmobiliaria(inmo); Proyecto obj = new Proyecto() { Inmobiliaria = DatosInmobiliaria.BuscarInmobiliaria(rowInmobiliaria), NombreProyecto = rowProyecto }; DatosProyecto.AgregarProyecto(obj); } else { //Ya existe la inmobiliaria, por lo que solo se busca y se realiza el ingreso del proyecto Proyecto obj = new Proyecto() { Inmobiliaria = DatosInmobiliaria.BuscarInmobiliaria(rowInmobiliaria), NombreProyecto = rowProyecto }; DatosProyecto.AgregarProyecto(obj); } } Proyecto proyecto = DatosProyecto.BuscarProyecto(rowProyecto); Inmueble inmueble = DatosInmueble.BuscarInmueble(rowInmueble, proyecto.Id); if (inmueble.Id != 0) { //Existe el inmueble observacion.Inmueble = inmueble; } else { //No existe y se genera con los datos provenientes del excel Inmueble obj = new Inmueble(); obj.Condominio = new Condominio() { //SIN CONDOMINIO Id = 30 }; obj.Etapa = new Etapa() { //ETAPA 1 Id = 14 }; obj.Proyecto = proyecto; obj.NumInmueble = rowInmueble; obj.TipoInmueble = DatosTipoInmueble.BuscarTipoInmueble(rowTipoInmueble); DatosInmueble.AgregarInmueble(obj); } observacion.DescObservacion = rowDescripcion; //-----------------------------------------Datos del propietario--------------------------------------------------------------- observacion.RutPropietario = rowRutPropietario; observacion.Propietario = DatosPropietario.BuscarPropietario(rowPropietario); if (observacion.Propietario.Id == 0) { if (observacion.RutPropietario.Trim() != "") { observacion.Propietario.Rut = observacion.RutPropietario.Trim(); } observacion.Propietario.Nombre = rowPropietario; DatosPropietario.AgregarPropietario(observacion.Propietario); } if (rowFechaEntrega.Trim() != "") { observacion.FechaEntrega = DateTime.Parse(rowFechaEntrega).ToString("yyyy-MM-dd"); } else { observacion.FechaEntrega = ""; } observacion.NombreResidente = rowNombreResidente; observacion.TelefonoResidente = rowTeléfonoResidente; observacion.FechaCoordinacion = DateTime.Parse(rowFechaCoordinación).ToString("yyyy-MM-dd"); if (rowTipoHorario == 0) { observacion.HoraInicio = DatosHoras.BuscarHoraPorDescripcion(DateTime.Parse(rowHoraInicio).ToString("HH:mm")); observacion.HoraTermino = DatosHoras.BuscarHoraPorDescripcion(DateTime.Parse(rowHoraTermino).ToString("HH:mm")); observacion.TipoHorario = 0; } else { observacion.HoraInicio = DatosHoras.BuscarHoraPorDescripcion("9:00"); observacion.HoraTermino = DatosHoras.BuscarHoraPorDescripcion("18:30"); observacion.TipoHorario = 1; } observacion.TipoObservacion = DatosTipoObservacion.BuscarTipoObservacion(rowTipoObservacion); int id = DatosObservacion.CompararObservacion(observacion.Inmueble.Id, observacion.DescObservacion); if (id != 0) { Coordinacion obj = new Coordinacion() { Observacion = new Observacion() { Id = id }, Fecha = observacion.FechaCoordinacion, HoraInicio = observacion.HoraInicio, HoraTermino = observacion.HoraTermino }; DatosCoordinacion.AgregarCoordinacion(obj); } else { DatosObservacion.AgregarObservacion(observacion); } } } } divMensaje.Attributes.Add("class", "alert alert-success col-md-8"); lblMensaje.Text = "Planilla agregada Correctamente"; } catch (Exception Ex) { lblMensaje.Text = Ex.Message; } }