Ejemplo n.º 1
0
        public async Task <IHttpActionResult> GuardarTemporada(Gpr_Temporada_InsercionDTO gpr_TemporadaI)
        {
            List <Gpr_Temporada> temporadasActivas = db.Gpr_Temporada.Where(X => X.IdGprGalpon == gpr_TemporadaI.IdGprGalpon && X.FechaFin == null).ToList();
            Gpr_Galpon           galpon            = db.Gpr_Galpon.Where(X => X.IdGprGalpon == gpr_TemporadaI.IdGprGalpon).FirstOrDefault();

            if (temporadasActivas.Count > 0)
            {
                return(Content(HttpStatusCode.BadRequest, "Sólo puede haber una temporada activa por galpón, ingrese una fecha de fin para la temporada actual."));
            }

            if (galpon.CantidadAves < gpr_TemporadaI.CantidadAves)
            {
                return(Content(HttpStatusCode.BadRequest, "La cantidad de aves durante la temporada, no debe superar la capacidad del galpón."));
            }

            Mapper.Initialize(cfg => cfg.CreateMap <Gpr_Temporada_InsercionDTO, Gpr_Temporada>());

            Gpr_Temporada gpr_Temporada = Mapper.Map <Gpr_Temporada>(gpr_TemporadaI);

            gpr_Temporada.FechaCreacion  = DateTime.Now;
            gpr_Temporada.Estado         = true;
            gpr_Temporada.UsuarioCreador = gpr_TemporadaI.UsuarioCreador;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Gpr_Temporada.Add(gpr_Temporada);
            await db.SaveChangesAsync();

            Gpr_Estado_Ave estadoAve = new Gpr_Estado_Ave();

            estadoAve.CantidadAves       = gpr_TemporadaI.CantidadAves;
            estadoAve.Estado             = true;
            estadoAve.FechaCreacion      = DateTime.Now;
            estadoAve.IdGprTemporada     = gpr_Temporada.IdGprTemporada;
            estadoAve.IdGprTipoEstadoAve = 1;

            db.Gpr_Estado_Ave.Add(estadoAve);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = gpr_Temporada.IdGprTemporada }, gpr_Temporada));
            //return Ok(GetGpr_Temporada(gpr_Temporada.IdGprTemporada));
        }
        public async Task <IHttpActionResult> GuardarGalpon(Gpr_Galpon_InsercionDTO gpr_GalponI)
        {
            Mapper.Initialize(cfg => cfg.CreateMap <Gpr_Galpon_InsercionDTO, Gpr_Galpon>());

            Gpr_Galpon gpr_Galpon = Mapper.Map <Gpr_Galpon>(gpr_GalponI);

            gpr_Galpon.FechaCreacion = DateTime.Now;
            gpr_Galpon.Estado        = true;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Gpr_Galpon.Add(gpr_Galpon);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = gpr_Galpon.IdGprGalpon }, gpr_Galpon));
        }
        public async Task <IHttpActionResult> ModificarGalpon(int id, Gpr_Galpon_ModificacionDTO gpr_GalponM)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != gpr_GalponM.IdGprGalpon)
            {
                return(BadRequest());
            }

            Gpr_Galpon gpr_Galpon = await db.Gpr_Galpon.FindAsync(id);

            gpr_Galpon.Estado             = gpr_GalponM.Estado;
            gpr_Galpon.FechaModificacion  = DateTime.Now;
            gpr_Galpon.Descripcion        = gpr_GalponM.Descripcion;
            gpr_Galpon.CantidadAves       = gpr_GalponM.CantidadAves;
            gpr_Galpon.UsuarioModificador = gpr_GalponM.UsuarioModificador;

            db.Entry(gpr_Galpon).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!VerificarGalpon(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            //return StatusCode(HttpStatusCode.NoContent);
            return(Ok(db.Gpr_Galpon));
        }