コード例 #1
0
        public async Task Update(BecarioInterno BI)// UpdateSolicitud
        {
            try
            {
                var result = await _ctx.BecarioInterno.FirstOrDefaultAsync(e => e.BecarioInternoId == BI.BecarioInternoId);

                if (result != null)
                {
                    if (await ValidarDuplicados(BI))
                    {
                        throw new ApplicationException("Ya existe un registro con ese nombre. Intente cambiar el tipo de beca o las fecha de inicio o término");
                    }
                    if (BI.Adjunto != null)
                    {
                        Adjunto key = await new AdjuntoRepository().CreateAd(BI.Adjunto);
                        BI.AdjuntoId = key.AdjuntoId;
                    }
                    _ctx.Entry(result).CurrentValues.SetValues(BI);
                    await _ctx.SaveChangesAsync();

                    PersonasRepository prep = new PersonasRepository();
                    Personas           p    = await prep.GetByClave(BI.ClavePersona);

                    p.ultimaActualizacion = DateTime.Now;
                    await prep.Update(p);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
コード例 #2
0
        public async Task <IHttpActionResult> Create(BecarioInterno BI)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _repository.Create(BI);

                return(Ok("Registro creado correctamente!"));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
コード例 #3
0
        public async Task <IHttpActionResult> ValidarDuplicados(BecarioInterno Obj)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                var exis = await _repository.ValidarDuplicados(Obj);

                return(Ok(exis));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
コード例 #4
0
        public async Task <IHttpActionResult> UpdateEstado(BecarioInterno Obj)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _repository.UpdateEstado(Obj);

                return(Ok("Registro actualizado correctamente!"));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
コード例 #5
0
 public async Task Create(BecarioInterno BI)
 {
     try
     {
         if (await ValidarDuplicados(BI))
         {
             throw new ApplicationException("Ya existe un registro con ese nombre. Intente cambiar el tipo de beca o las fecha de inicio o término");
         }
         _ctx.BecarioInterno.Add(BI);
         await _ctx.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
コード例 #6
0
        public async Task UpdateEstado(BecarioInterno BI)
        {
            try
            {
                var result = await _ctx.BecarioInterno.FirstOrDefaultAsync(e => e.BecarioInternoId == BI.BecarioInternoId);

                if (result != null)
                {
                    result.EstadoFlujoId = BI.EstadoFlujoId;

                    await _ctx.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
コード例 #7
0
        public async Task <IHttpActionResult> Update(BecarioInterno Obj)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                // if (Obj.Adjunto != null)
                // {
                //     //Elimar archivo
                //     if (Obj.Adjunto.nombre == "eliminar")
                //     {
                //         int id = Convert.ToInt32(Obj.AdjuntoId);
                //         Obj.AdjuntoId = null;
                //         await _repository.Update(Obj);
                //         await _adjuntoRepo.Delete(id);
                //         return Ok();
                //     }
                //     ///Agregar archivo al editar
                //     if (Obj.Adjunto.AdjuntoId == 0)
                //     {
                //         Adjunto key = await _adjuntoRepo.CreateAd(Obj.Adjunto);
                //         Obj.AdjuntoId = key.AdjuntoId;
                //         Obj.Adjunto.AdjuntoId = key.AdjuntoId;
                //         await _repository.Update(Obj);
                //         return Ok(key);
                //     }
                // }
                //solución de ALAN replicada
                // if (Obj.Adjunto != null)
                //     Obj.AdjuntoId = Obj.Adjunto.AdjuntoId;
                await _repository.Update(Obj);

                return(Ok(Obj));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
コード例 #8
0
        /// <summary>
        /// Valida que no existan registros de becarios internos
        /// </summary>
        /// <param name="model"><BecarioInterno>model</param>
        /// <returns>Boolean</returns>
        public async Task <Boolean> ValidarDuplicados(BecarioInterno model)
        {
            try
            {
                var registros = await _ctx.BecarioInterno.Where(e => e.ClavePersona == model.ClavePersona &&
                                                                e.BecaInternaId == model.BecaInternaId &&
                                                                DbFunctions.TruncateTime(e.FechaInicioBeca) == DbFunctions.TruncateTime(model.FechaInicioBeca) &&
                                                                DbFunctions.TruncateTime(e.FechaTerminoBeca) == DbFunctions.TruncateTime(model.FechaTerminoBeca) &&
                                                                e.BecarioInternoId != model.BecarioInternoId)
                                .AsNoTracking().CountAsync();

                if (registros > 0)
                {
                    return(true);
                }
                return(false);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }