Ejemplo n.º 1
0
        public async Task Create(PeriodoFI model)
        {
            try
            {
                if (!model.ExisteEn(dbGI.DbSetPeriodoFI.Where(e => e.PeriodoFIId != model.PeriodoFIId).Select(e => e.Nombre).ToList(), "Nombre"))
                {
                    dbGI.DbSetPeriodoFI.Add(model);
                    await dbGI.SaveChangesAsync();

                    try
                    {
                        //////creacion del periodo de recepcion
                        PeriodoRecepcionRepository precep     = new PeriodoRecepcionRepository();
                        PeriodoRecepcion           modelRecep = new PeriodoRecepcion();
                        modelRecep.PeriodoFIId         = model.PeriodoFIId;
                        modelRecep.FechaInicioPlaneada = model.FechaInicioPlaneada;
                        modelRecep.FechaInicioReal     = model.FechaInicioReal;
                        var fechaFin = model.FechaInicioReal;
                        fechaFin = fechaFin.AddDays(30);

                        modelRecep.FechaTerminoPlaneada = fechaFin;
                        modelRecep.FechaTerminoReal     = fechaFin;
                        await precep.Create(modelRecep);

                        //////creacion del periodo de replica
                        PeriodoReplicaRepository replicaDB = new PeriodoReplicaRepository();
                        PeriodoReplica           replica   = new PeriodoReplica();
                        var fechaFInReplica = fechaFin.AddDays(31);
                        replica.PeriodoFIId          = model.PeriodoFIId;
                        replica.FechaInicioPlaneada  = fechaFin.AddDays(1);
                        replica.FechaInicioReal      = replica.FechaInicioPlaneada;
                        replica.FechaTerminoPlaneada = fechaFInReplica;
                        replica.FechaTerminoReal     = fechaFInReplica;
                        await replicaDB.Create(replica);
                    }
                    catch (Exception err)
                    {
                        await this.Delete(model.PeriodoFIId);

                        throw new Exception(err.Message, err);
                    }
                }
                else
                {
                    throw new ApplicationException("Ya existe un registro con ese nombre.");
                }
            }
            catch (ApplicationException e)
            {
                throw new ApplicationException(e.Message, e);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
 public async Task Create(PeriodoReplica model)
 {
     try
     {
         dbGI.DbSetPeriodoReplica.Add(model);
         await dbGI.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
        public async Task Update(PeriodoReplica model)
        {
            try
            {
                var _model = await dbGI.DbSetPeriodoReplica.FirstOrDefaultAsync(e => e.PeriodoReplicaId == model.PeriodoReplicaId);

                if (_model != null)
                {
                    dbGI.Entry(_model).CurrentValues.SetValues(model);
                    await dbGI.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task <IHttpActionResult> Create([FromBody] PeriodoReplica model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                await _repo.Create(model);

                return(Ok("Registro creado exitosamente!"));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }