Exemplo n.º 1
0
 public HttpResponseMessage Post([FromBody] CalendarioExcursionModel calendarioexcursion)
 {
     return(op.Crear(calendarioexcursion, this.ModelState));
 }
Exemplo n.º 2
0
 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());
     }
 }