public async Task <ActionResult <RegistroGastos> > Delete([FromBody] RegistroGastos _RegistroGastos)
        {
            try
            {
                string     baseadress = config.Value.urlbase;
                HttpClient _client    = new HttpClient();
                _client.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));

                var result = await _client.PostAsJsonAsync(baseadress + "api/RegistroGastos/Delete", _RegistroGastos);

                string valorrespuesta = "";
                if (result.IsSuccessStatusCode)
                {
                    valorrespuesta  = await(result.Content.ReadAsStringAsync());
                    _RegistroGastos = JsonConvert.DeserializeObject <RegistroGastos>(valorrespuesta);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(BadRequest($"Ocurrio un error: {ex.Message}"));
            }
            return(new ObjectResult(new DataSourceResult {
                Data = new[] { _RegistroGastos }, Total = 1
            }));
        }
        public async Task <ActionResult> Insert(RegistroGastos _RegistroGastosP)
        {
            RegistroGastos _RegistroGastos = _RegistroGastosP;

            try
            {
                string     baseadress = config.Value.urlbase;
                HttpClient _client    = new HttpClient();
                _client.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));
                _RegistroGastos.UsuarioCreacion     = HttpContext.Session.GetString("user");
                _RegistroGastos.UsuarioModificacion = HttpContext.Session.GetString("user");
                var result = await _client.PostAsJsonAsync(baseadress + "api/RegistroGastos/Insert", _RegistroGastos);

                string valorrespuesta = "";
                if (result.IsSuccessStatusCode)
                {
                    valorrespuesta  = await(result.Content.ReadAsStringAsync());
                    _RegistroGastos = JsonConvert.DeserializeObject <RegistroGastos>(valorrespuesta);
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"Ocurrio un error{ex.Message}"));
            }
            return(new ObjectResult(new DataSourceResult {
                Data = new[] { _RegistroGastos }, Total = 1
            }));
        }
        public async Task <IActionResult> GetRegistroGastosById(int Id)
        {
            RegistroGastos Items = new RegistroGastos();

            try
            {
                Items = await _context.RegistroGastos.Where(q => q.Id.Equals(Id)).FirstOrDefaultAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(BadRequest($"Ocurrio un error:{ex.Message}"));
            }

            return(await Task.Run(() => Ok(Items)));
        }
        public async Task <ActionResult <RegistroGastos> > Insert([FromBody] RegistroGastos payload)
        {
            RegistroGastos RegistroGastos = payload;

            try
            {
                _context.RegistroGastos.Add(RegistroGastos);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(BadRequest($"Ocurrio un error:{ex.Message}"));
            }

            return(await Task.Run(() => Ok(RegistroGastos)));
        }
        public async Task <ActionResult <RegistroGastos> > SaveRegistroGastos([FromBody] RegistroGastosDTO _RegistroGastosS)
        {
            {
                string valorrespuesta = "";
                try
                {
                    RegistroGastos _RegistroGastos = new RegistroGastos();
                    string         baseadress      = config.Value.urlbase;
                    HttpClient     _client         = new HttpClient();
                    _client.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));

                    var result = await _client.GetAsync(baseadress + "api/RegistroGastos/GetRegistroGastosById/" + _RegistroGastosS.Id);

                    _RegistroGastosS.FechaModificacion   = DateTime.Now;
                    _RegistroGastosS.UsuarioModificacion = HttpContext.Session.GetString("user");
                    if (result.IsSuccessStatusCode)
                    {
                        valorrespuesta  = await(result.Content.ReadAsStringAsync());
                        _RegistroGastos = JsonConvert.DeserializeObject <RegistroGastos>(valorrespuesta);
                    }
                    if (_RegistroGastos == null)
                    {
                        _RegistroGastos = new Models.RegistroGastos();
                    }
                    if (_RegistroGastos.Id == 0)
                    {
                        _RegistroGastosS.FechaCreacion   = DateTime.Now;
                        _RegistroGastosS.UsuarioCreacion = HttpContext.Session.GetString("user");
                        var insertresult = await Insert(_RegistroGastosS);
                    }
                    else
                    {
                        _RegistroGastosS.FechaCreacion   = DateTime.Now;
                        _RegistroGastosS.UsuarioCreacion = HttpContext.Session.GetString("user");
                        var updateresult = await Update(_RegistroGastosS.Id, _RegistroGastosS);
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                    throw ex;
                }
                return(Json(_RegistroGastosS));
            }
        }
        public async Task <IActionResult> Delete([FromBody] RegistroGastos payload)
        {
            RegistroGastos RegistroGastos = new RegistroGastos();

            try
            {
                RegistroGastos = _context.RegistroGastos
                                 .Where(x => x.Id == (int)payload.Id)
                                 .FirstOrDefault();
                _context.RegistroGastos.Remove(RegistroGastos);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(await Task.Run(() => BadRequest($"Ocurrio un error:{ex.Message}")));
            }

            return(await Task.Run(() => Ok(RegistroGastos)));
        }
        public async Task <ActionResult <RegistroGastos> > Update([FromBody] RegistroGastos _RegistroGastos)
        {
            try
            {
                RegistroGastos _RegistroGastosQ = (from c in _context.RegistroGastos
                                                   .Where(q => q.Id == _RegistroGastos.Id)
                                                   select c
                                                   ).FirstOrDefault();

                _RegistroGastos.FechaCreacion   = _RegistroGastosQ.FechaCreacion;
                _RegistroGastos.UsuarioCreacion = _RegistroGastosQ.UsuarioCreacion;

                _context.Entry(_RegistroGastosQ).CurrentValues.SetValues((_RegistroGastos));
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(await Task.Run(() => BadRequest($"Ocurrio un error:{ex.Message}")));
            }

            return(await Task.Run(() => Ok(_RegistroGastos)));
        }
        public async Task <ActionResult> Update(Int64 Id, RegistroGastos _RegistroGastosP)
        {
            try
            {
                string     baseadress = config.Value.urlbase;
                HttpClient _client    = new HttpClient();
                _client.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));
                var result = await _client.PutAsJsonAsync(baseadress + "api/RegistroGastos/Update", _RegistroGastosP);

                string valorrespuesta = "";
                if (result.IsSuccessStatusCode)
                {
                    valorrespuesta   = await(result.Content.ReadAsStringAsync());
                    _RegistroGastosP = JsonConvert.DeserializeObject <RegistroGastos>(valorrespuesta);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(BadRequest($"Ocurrio un error{ex.Message}"));
            }
            return(Ok(_RegistroGastosP));
        }