public HttpResponseMessage Post([FromBody] CalendarioExcursionModel calendarioexcursion) { return(op.Crear(calendarioexcursion, this.ModelState)); }
public HttpResponseMessage Crear(CalendarioExcursionModel datos, ModelStateDictionary modelo) { try { if (modelo.IsValid) { if (contexto.excursionactividad.FirstOrDefault(p => p.exact_id == datos.Exact_id) == null) { resp.Codigo = (int)Codigos.REGISTRO_NO_ENCONTRADO; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.REGISTRO_NO_ENCONTRADO); resp.Mensaje_error = Errores.error6; return(resp.ObjectoRespuesta()); } if (datos.Hasta <= datos.Desde) { resp.Codigo = (int)Codigos.ERROR_DE_VALIDACION; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION); resp.Erroresvalidacion = new List <string>(); resp.Erroresvalidacion.Add(Errores.error7); return(resp.ObjectoRespuesta()); } if (datos.Desde <= DateTime.Now) { resp.Codigo = (int)Codigos.ERROR_DE_VALIDACION; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION); resp.Erroresvalidacion = new List <string>(); resp.Erroresvalidacion.Add(Errores.error22); return(resp.ObjectoRespuesta()); } List <calendarioexcursion> inputs = new List <calendarioexcursion>(); DateTime aux; List <calendarioexcursion> registradas = contexto.calendarioexcursion.Where(p => p.exact_id == datos.Exact_id && p.fecha >= datos.Desde).ToList <calendarioexcursion>(); while (datos.Desde <= datos.Hasta) { aux = datos.Desde; foreach (string hora in datos.Horarios) { aux = aux.AddTicks(TimeSpan.Parse(hora).Ticks); if (datos.Dias.Where(p => p == Enum.GetName(typeof(DiasSemana), (int)aux.DayOfWeek)).FirstOrDefault() != null) { inputs.Add(new calendarioexcursion() { exact_id = datos.Exact_id, estadoexcursion_id = 1, fecha = aux }); } aux = aux.AddTicks(-TimeSpan.Parse(hora).Ticks); } datos.Desde = datos.Desde.AddDays(1); } var query = (from item1 in inputs join item2 in registradas on item1.fecha equals item2.fecha into g from o in g where o.exact_id == datos.Exact_id select new { fecha = o.fecha.ToString("dd/MM/yyyy HH:mm:ss") }).ToList(); if (query.Count() == 0) { inputs.ForEach(p => contexto.calendarioexcursion.Add(p)); contexto.SaveChanges(); resp.Codigo = (int)Codigos.OK; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.OK); return(resp.ObjectoRespuesta()); } List <string> salida = new List <string>(query.Count()); query.ForEach(p => salida.Add(p.fecha)); resp.Codigo = (int)Codigos.ERROR_EXISTEN_FECHAS_REPETIDAS; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_EXISTEN_FECHAS_REPETIDAS); resp.Contenido = salida; return(resp.ObjectoRespuesta()); } else { resp.Codigo = (int)Codigos.ERROR_DE_VALIDACION; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_VALIDACION); resp.Objetoerror = modelo; return(resp.ObjectoRespuesta()); } } catch (Exception ex) { resp.Codigo = (int)Codigos.ERROR_DE_SERVIDOR; resp.Mensaje = Enum.GetName(typeof(Codigos), (int)Codigos.ERROR_DE_SERVIDOR); resp.Excepcion = Excepcion.Create(ex); return(resp.ObjectoRespuesta()); } }