public async Task <TerciarizacionDTO> Agregar(TerciarizacionDTO terciarizacionDTO)
        {
            try
            {
                Terciarizacion busqueda = await db.Terciarizaciones.FirstOrDefaultAsync(s => s.Fecha.Date == terciarizacionDTO.Fecha.Date &&
                                                                                        s.Proveedor.Id == terciarizacionDTO.Proveedor.Id);

                if (busqueda == null)
                {
                    Terciarizacion terciarizacion = mapper.Map <TerciarizacionDTO, Terciarizacion>(terciarizacionDTO);

                    Proveedor pro = await db.Proveedores.FindAsync(terciarizacion.Proveedor.Id);

                    db.Entry(pro).State      = EntityState.Unchanged;
                    terciarizacion.Proveedor = pro;

                    var addTerciarizacion = await db.Terciarizaciones.AddAsync(terciarizacion);

                    await db.SaveChangesAsync();

                    return(mapper.Map <Terciarizacion, TerciarizacionDTO>(addTerciarizacion.Entity));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public async Task <TerciarizacionDTO> Actualizar(TerciarizacionDTO terciarizacionDTO)
        {
            try
            {
                if (terciarizacionDTO != null)
                {
                    Terciarizacion terciarizaDB = await db.Terciarizaciones.Include(i => i.Proveedor).SingleAsync(f => f.Id == terciarizacionDTO.Id);

                    Terciarizacion terciariza = mapper.Map <TerciarizacionDTO, Terciarizacion>(terciarizacionDTO, terciarizaDB);
                    db.Entry(terciariza.Proveedor).State = EntityState.Unchanged;
                    var update = db.Terciarizaciones.Update(terciariza);

                    await db.SaveChangesAsync();

                    return(mapper.Map <Terciarizacion, TerciarizacionDTO>(update.Entity));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public async Task <IActionResult> NuevoActualizar([FromBody] TerciarizacionDTO terciarizacionDTO)
        {
            if (terciarizacionDTO != null && terciarizacionDTO.Id == 0)
            {
                //nuevo funcionario
                var resultado = await terciarizacionRepositorio.Agregar(terciarizacionDTO);

                if (resultado == null)
                {
                    return(BadRequest());
                }
                return(Ok(resultado));
            }
            else
            {
                var resultado = await terciarizacionRepositorio.Actualizar(terciarizacionDTO);

                if (resultado == null)
                {
                    return(BadRequest());
                }

                return(Ok(resultado));
            }
        }
 public async Task <TerciarizacionDTO> Obtener(int tercId)
 {
     try
     {
         TerciarizacionDTO terc = mapper.Map <Terciarizacion, TerciarizacionDTO>
                                      (await db.Terciarizaciones.Include(i => i.Proveedor).SingleAsync(p => p.Id == tercId));
         return(terc);
     }
     catch (Exception e)
     {
         return(null);
     }
 }
        public async Task <TerciarizacionDTO> Agregar(TerciarizacionDTO tercDTO)
        {
            var response = await httpClient.PostAsJsonAsync("/api/Terciarizacion", tercDTO);

            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

                var nuevo = JsonConvert.DeserializeObject <TerciarizacionDTO>(content);
                return(nuevo);
            }
            else
            {
                return(null);
            }
        }