Пример #1
0
 public void attSaldo(Carteira cart, Gasto gast)
 {
     string[] carteiraE = File.ReadAllLines("Carteira.txt");
     cart.saldo = float.Parse(carteiraE[0]);
     cart.saldo = gast.saldoN;
     cart.gravarC(cart);
 }
Пример #2
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Monto,Dia,Mes,Anio,Categoria,Descripcion")] Gasto gasto)
        {
            if (id != gasto.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(gasto);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GastoExists(gasto.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(gasto));
        }
Пример #3
0
        private async void _btnActualizar_Click(object sender, EventArgs e)
        {
            if (_gastoSeleccionado != null)
            {
                try
                {
                    var gasto = new Gasto()
                    {
                        Id          = _gastoSeleccionado.Id,
                        Descripcion = _descripcion.Text,
                        Monto       = Convert.ToDouble(_monto.Text),
                        Fecha       = Convert.ToDateTime(_fechaGasto.Text),
                        Servicio    = _servicioSeleccionado,
                        ServicioId  = _servicioSeleccionado.Id
                    };
                    await _gastoService.ActualizarGasto(_gastoSeleccionado.Id, gasto);

                    Toast.MakeText(this.Activity, "Se ha actualizado el servicio correctamente.", ToastLength.Long)
                    .Show();
                    LimpiarCampos();
                }
                catch
                {
                    Toast.MakeText(this.Activity, "Hubo un problema al tratar de actualizar el servicio. Intente de nuevo mas tarde.",
                                   ToastLength.Long).Show();
                }

                ActualizarGastos();
            }
        }
Пример #4
0
        public async Task <IActionResult> Buscar(int id)
        {
            var usuario = User.Identity.Name;

            try
            {
                if (!await gastosDAL.ValidaUsuario(usuario, id))
                {
                    throw new KeyNotFoundException("Gasto não foi encontrado ou você não tem acesso a ele!");
                }

                Gasto gasto = await gastosDAL.Find(id);

                return(Ok(gasto));
            }
            catch (KeyNotFoundException ex)
            {
                gravadorLog.GravarLogErro(ex, 400, $"Usuário: {usuario} - GastoId: {id}");
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                gravadorLog.GravarLogErro(ex, 500);
                return(StatusCode(500));
            }
        }
Пример #5
0
        public Gasto EliminarGasto(Gasto gasto)
        {
            try
            {
                SqlParameter[] parametro = new SqlParameter[1];

                parametro[0]       = new SqlParameter("@IdGasto", SqlDbType.Int);
                parametro[0].Value = gasto.Codigo;

                DbDataReader reader = SqlHelper.ExecuteReader(_conexion.GetConnection(), "EliminarGasto", parametro);
            }
            catch (SqlException e)
            {
                throw new ConsultarGastoBDExceptions
                          ("Error de Consulta en Base de DAtos", e);
            }

            catch (Exception e)
            {
                throw new ConsultarGastoBDExceptions
                          ("Error de Consulta en Base de DAtos", e);
            }


            return(gasto);
        }
Пример #6
0
        public void FiltrarGastosPorFechaTest()
        {
            Repositorio  Repo          = new Repositorio();
            ManagerGasto unManager     = new ManagerGasto(Repo);
            string       FechaAFiltrar = new DateTime(2018, 1, 2).ToString("MMMM yyyy");
            Moneda       NuevaMoneda   = new Moneda("Dolar", "USD", 43.00M);

            Repo.AgregarMoneda(NuevaMoneda);
            Categoria cat1 = new Categoria("Cine");
            Categoria cat2 = new Categoria("Entretenimiento");
            Categoria cat3 = new Categoria("CiAutosne");

            Repo.AgregarCategoria(cat1);
            Repo.AgregarCategoria(cat2);
            Repo.AgregarCategoria(cat3);
            Gasto Gasto1 = new Gasto("Gasto1", 100.00M, cat1, new DateTime(2019, 1, 1), NuevaMoneda, 12.00M);
            Gasto Gasto2 = new Gasto("Gasto2", 100.00M, cat2, new DateTime(2019, 1, 1), NuevaMoneda, 12.00M);
            Gasto Gasto3 = new Gasto("Gasto3", 100.00M, cat3, new DateTime(2018, 1, 2), NuevaMoneda, 12.00M);

            Repo.AgregarGasto(Gasto1);
            Repo.AgregarGasto(Gasto2);
            Repo.AgregarGasto(Gasto3);
            List <Gasto> ListaFiltrada = unManager.FiltrarGastosPorFecha(FechaAFiltrar);

            Assert.AreEqual(1, ListaFiltrada.Count);
        }
Пример #7
0
        public IActionResult Delete(int id)
        {
            Gasto Gasto = _context.Gasto.Find(id);

            if (Gasto != null)
            {
                try
                {
                    var historial = _context.HistorialFinanciero.Where(x => x.IdGasto == id).ToList();
                    foreach (var item in historial)
                    {
                        var bitacora = _context.Bitacora.Where(x => x.IdHistorial == item.IdHistorial).FirstOrDefault();
                        _context.Bitacora.Remove(bitacora);
                        _context.HistorialFinanciero.Remove(item);
                        _context.SaveChanges();
                    }
                    _context.Gasto.Remove(Gasto);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento eliminado";
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }
            }
            else
            {
                TempData["err"] = "No se encontro el elemento";
            }
            return(RedirectToAction("Index"));
        }
Пример #8
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,FechaCreacion,CategoriaGastoId,ProveedorId,MetodoPago,Importe,Comentario")] Gasto gasto)
        {
            if (id != gasto.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(gasto);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GastoExists(gasto.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoriaGastoId"] = new SelectList(_context.Set <CategoriaGasto>(), "Id", "Nombre", gasto.CategoriaGastoId);
            ViewData["ProveedorId"]      = new SelectList(_context.Proveedor, "Id", "Nombre", gasto.ProveedorId);
            return(View(gasto));
        }
Пример #9
0
        public async Task <IHttpActionResult> Create(Gasto model)
        {
            var result = new AjaxResult();

            try
            {
                Controllers.Seguridad.Seguridad seguridad = new Controllers.Seguridad.Seguridad();
                model.GastoId       = seguridad.generaConsecutivo("Gastos");
                model.GastoLinea    = 1;
                model.GastoFecha    = DateTime.Today;
                model.GastoFechaMod = DateTime.Today;
                model.GastoValor    = Decimal.Parse(model.GastoValor.ToString().Replace(".", ","));
                if (ModelState.IsValid)
                {
                    db.Gasto.Add(model);
                    await db.SaveChangesAsync();

                    AddLog("", model.GastoId, model);

                    return(Ok(result.True("Record saved")));
                }
                else
                {
                    //return InternalServerError(new Exception("Error, All field are required"));
                    string s = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
                    return(Ok(result.False(s)));
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Пример #10
0
        public string ModificarGasto(int id_Expense, DateTime fecha, string detalle, string total)
        {
            Gasto modificarProducto = new Gasto(id_Expense, fecha, detalle, total);

            using (ServicioGasto elProducto = new ServicioGasto())
                return(elProducto.ModificarProducto(modificarProducto));
        }
Пример #11
0
    public async Task <ServiceResponse <GetGastoDto> > PutGasto(UpdateGastoDto updatedGasto)
    {
        ServiceResponse <GetGastoDto> serviceResponse = new ServiceResponse <GetGastoDto>();

        try
        {
            Gasto gasto = await _context.Gastos.FindAsync(updatedGasto.ID);

            gasto.Nombre           = updatedGasto.Nombre;
            gasto.Importe          = updatedGasto.Importe;
            gasto.Pagado           = updatedGasto.Pagado;
            gasto.FechaVencimiento = updatedGasto.FechaVencimiento;

            //_context.Entry(_mapper.Map<Gasto>(updatedGasto)).State = EntityState.Modified;
            _context.Gastos.Update(gasto);
            await _context.SaveChangesAsync();

            serviceResponse.Data = _mapper.Map <GetGastoDto>(updatedGasto);
        }
        catch (Exception ex)
        {
            serviceResponse.Success = false;
            serviceResponse.Message = ex.Message;
        }
        return(serviceResponse);
    }
Пример #12
0
        public string InsertarGasto(DateTime fecha, string detalle, string total)
        {
            Gasto nuevoGasto = new Gasto(fecha, detalle, total);

            using (ServicioGasto elGasto = new ServicioGasto())
                return(elGasto.InsertarGasto(nuevoGasto));
        }
Пример #13
0
 public void ValidacionAgregarGasto(Gasto unGasto)
 {
     this.ValidacionDescripcionGasto(unGasto.Descripcion);
     this.ValidacionFechaGasto(unGasto.Fecha);
     this.ValidarMonto(unGasto.Monto);
     Repo.AgregarGasto(unGasto);
 }
Пример #14
0
    public void registrarGasto(Carteira cart)
    {
        int   op   = 0;
        Gasto gast = new Gasto();

        gast.saldoA = cart.saldo;
        do
        {
            Console.Clear();
            Console.WriteLine("De quanto foi seu gasto?");
            gast.price = float.Parse(Console.ReadLine());
            Console.WriteLine("Dê um nome(tag) para seu gasto.");
            gast.tag    = Console.ReadLine();
            gast.saldoN = gast.saldoA - gast.price;
            gravarGasto(gast);
            attSaldo(cart, gast);
            Console.Clear();
            Console.WriteLine("Gasto registrado com sucesso.");
            Console.WriteLine("Deseja registrar outro gasto?");
            Console.WriteLine("1 - Para 'SIM', 2 - para 'NÃO'");
            op = int.Parse(Console.ReadLine());
            if ((op < 1) || (op > 2))
            {
                Console.WriteLine("Opção inválida");
            }
        }while (op != 2);
        Console.Clear();
    }
        public ActionResult editItem()
        {
            int    id    = Convert.ToInt32(Request.QueryString["id"]);
            String nome  = Request.QueryString["nome"];
            int    tipo  = Convert.ToInt32(Request.QueryString["tipo"]);
            int    dia   = Convert.ToInt32(Request.QueryString["dia"]);
            double valor = Convert.ToDouble(Request.QueryString["valor"]);


            Item   item        = LAD.ItemLAD.pesquisar(id);
            double ultimoValor = (double)item.valor;

            LAD.ItemLAD.atualizar(id, valor, nome, dia, tipo);

            Gasto  gasto      = LAD.GastoLAD.Pesquisar.pesquisar((int)item.gasto_id);
            double gastoValor = (int)gasto.valor;

            gastoValor += (valor - ultimoValor);
            LAD.GastoLAD.atualizar(gastoValor, gasto.id);


            LAD.UsuarioLAD.Atualizar.addSaldo((int)Session["User"], (valor - ultimoValor));
            Session["Saldo"] = LAD.UsuarioLAD.Pesquisar.id((int)Session["User"]).saldo;


            return(RedirectToAction("PlanilhaDeGastosMensal", "Financeiro", gasto));
        }
        /// <summary>
        /// Método q retorna lista de gastos no formato de lista de objetos
        /// </summary>
        /// <returns></returns>
        private static void GetGastos()
        {
            var tipos = new[] { "C", "B" }; // comida | bebida

            try
            {
                var churrascoId = _dataAccess.GetChurrascos().Where(x => x.Titulo == "Churrasco Hammer 2021").FirstOrDefault().Id;

                for (int i = 0; i <= 15; i++)
                {
                    var fakeGasto = new Faker <DatabaseModels.Gasto>()
                                    .RuleFor(x => x.IdChurrasco, f => churrascoId)
                                    .RuleFor(x => x.Descricao, f => f.Lorem.Word())
                                    .RuleFor(x => x.Valor, f => f.Random.Number(5, 25))
                                    .RuleFor(x => x.Tipo, f => f.PickRandom(tipos))
                                    .RuleFor(x => x.DataCompra, f => f.Date.Past());

                    _dataAccess.InsertGasto(fakeGasto);
                }

                var listaGastosComidaDb = _dataAccess.GetGastosPorTipo(churrascoId, "C");
                var listaGastosBebidaDb = _dataAccess.GetGastosPorTipo(churrascoId, "B");

                foreach (var item in listaGastosComidaDb)
                {
                    var gasto = new Gasto
                    {
                        Id         = item.Id,
                        Descricao  = item.Descricao,
                        Tipo       = item.Tipo,
                        DataCompra = item.DataCompra,
                        Valor      = item.Valor
                    };

                    totalGastosComida += gasto.Valor;

                    listaGastosComida.Add(gasto);
                }

                foreach (var item in listaGastosBebidaDb)
                {
                    var gasto = new Gasto
                    {
                        Id         = item.Id,
                        Descricao  = item.Descricao,
                        Tipo       = item.Tipo,
                        DataCompra = item.DataCompra,
                        Valor      = item.Valor
                    };

                    totalGastosBebida += gasto.Valor;

                    listaGastosBebida.Add(gasto);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #17
0
        public void CargarFechasDondeHuboGastosTest()
        {
            Repositorio  Repo        = new Repositorio();
            ManagerGasto unManager   = new ManagerGasto(Repo);
            Moneda       NuevaMoneda = new Moneda("Dolar", "USD", 43.00M);

            Repo.AgregarMoneda(NuevaMoneda);
            Categoria cat1 = new Categoria("Cine");
            Categoria cat2 = new Categoria("Entretenimiento");
            Categoria cat3 = new Categoria("CiAutosne");

            Repo.AgregarCategoria(cat1);
            Repo.AgregarCategoria(cat2);
            Repo.AgregarCategoria(cat3);
            Gasto Gasto1 = new Gasto("Gasto1", 100.00M, cat1, new DateTime(2019, 1, 1), NuevaMoneda, 12.00M);
            Gasto Gasto2 = new Gasto("Gasto2", 100.00M, cat2, new DateTime(2019, 1, 20), NuevaMoneda, 12.00M);
            Gasto Gasto3 = new Gasto("Gasto3", 100.00M, cat3, new DateTime(2020, 1, 14), NuevaMoneda, 12.00M);

            Repo.AgregarGasto(Gasto1);
            Repo.AgregarGasto(Gasto2);
            Repo.AgregarGasto(Gasto3);
            List <string> Lista = unManager.CargarFechasDondeHuboGastos();

            Assert.AreEqual(Lista[1], "January 2020");
        }
Пример #18
0
        internal Gasto obtenerGasto(string id)
        {
            long number1    = 0;
            bool canConvert = long.TryParse(id, out number1);

            if (canConvert == true)
            {
                SqlConnection conn = new SqlConnection(connString);
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(String.Format("select * from tblCompras where id_compra = {0} order by descripcion", id), conn))
                {
                    cmd.CommandType = CommandType.Text;
                    using (SqlDataReader r = cmd.ExecuteReader())
                    {
                        Gasto gasto = new Gasto();
                        while (r.Read())
                        {
                            gasto.IdGasto     = r[0].ToString();
                            gasto.Concepto    = r[1].ToString().TrimEnd();
                            gasto.Cantidad    = Convert.ToInt32(r[2].ToString());
                            gasto.ValorCompra = r[3].ToString();
                            gasto.ValorTotal  = r[4].ToString();
                            gasto.Fecha       = r[5].ToString();
                        }
                        conn.Close();
                        return(gasto);
                    }
                }
            }
            return(null);
        }
Пример #19
0
        public void SumaDeGastosParaFechaTest()
        {
            Repositorio  Repo                = new Repositorio();
            ManagerGasto unManager           = new ManagerGasto(Repo);
            List <Gasto> ListParaSumarMontos = new List <Gasto>();
            Moneda       NuevaMoneda         = new Moneda("Dolar", "USD", 43.00M);

            Repo.AgregarMoneda(NuevaMoneda);
            Categoria cat1 = new Categoria("Cine");
            Categoria cat2 = new Categoria("Entretenimiento");
            Categoria cat3 = new Categoria("CiAutosne");

            Repo.AgregarCategoria(cat1);
            Repo.AgregarCategoria(cat2);
            Repo.AgregarCategoria(cat3);
            Gasto Gasto1 = new Gasto("Gasto1", 100.00M, cat1, new DateTime(2019, 1, 1), NuevaMoneda, 12.00M);
            Gasto Gasto2 = new Gasto("Gasto2", 100.00M, cat2, new DateTime(2019, 1, 20), NuevaMoneda, 12.00M);
            Gasto Gasto3 = new Gasto("Gasto3", 100.00M, cat3, new DateTime(2019, 1, 12), NuevaMoneda, 12.00M);

            ListParaSumarMontos.Add(Gasto1);
            ListParaSumarMontos.Add(Gasto2);
            ListParaSumarMontos.Add(Gasto3);
            decimal resultado = decimal.Parse(unManager.SumaDeGastosParaFecha(ListParaSumarMontos));

            Assert.AreEqual(3600.00M, Math.Round(resultado, 2));
        }
        //Metodo para la SP de insertar producto
        public string InsertarGasto(Gasto elGasto)
        {
            miComando = new MySqlCommand();
            Console.WriteLine("Gestor Insert_newexpens");

            miComando.CommandText = "Insert_newexpens";

            miComando.Parameters.Add("@date", MySqlDbType.DateTime);
            miComando.Parameters["@date"].Value = elGasto.Fecha;

            miComando.Parameters.Add("@details", MySqlDbType.VarChar);
            miComando.Parameters["@details"].Value = elGasto.Detalle;

            miComando.Parameters.Add("@amount", MySqlDbType.VarChar);
            miComando.Parameters["@amount"].Value = elGasto.Total;


            respuesta = this.ejecutaSentencia(miComando);

            if (respuesta == "")
            {
                respuesta += "Se ha realizado correctamente la transaccion";
            }

            Console.WriteLine(respuesta);
            Console.WriteLine("FIN Gestor Insert_newexpens");

            return(respuesta);
        }
Пример #21
0
 public void EliminarGasto(Gasto unGastoBorrar)
 {
     if (this.ListaGastos.Contains(unGastoBorrar))
     {
         this.ListaGastos.Remove(unGastoBorrar);
     }
 }
        //metodo para la SP de Modificar Gasto
        public string ModificarProducto(Gasto elGasto)
        {
            miComando = new MySqlCommand();
            Console.WriteLine("Gestor modify_expense");

            miComando.CommandText = "modify_expense";


            miComando.Parameters.Add("@id_expense", MySqlDbType.Int32);
            miComando.Parameters["@id_expense"].Value = elGasto.Id_expense;

            miComando.Parameters.Add("@date", MySqlDbType.DateTime);
            miComando.Parameters["@date"].Value = elGasto.Fecha;

            miComando.Parameters.Add("@details", MySqlDbType.VarChar);
            miComando.Parameters["@details"].Value = elGasto.Detalle;

            miComando.Parameters.Add("@amount", MySqlDbType.VarChar);
            miComando.Parameters["@amount"].Value = elGasto.Total;

            respuesta = this.ejecutaSentencia(miComando);

            if (respuesta == "")
            {
                respuesta += "Se ha realizado correctamente la transacción";
            }

            Console.WriteLine(respuesta);
            Console.WriteLine("Fin Gestor modify_expense");

            return(respuesta);
        }
Пример #23
0
        public IList <Gasto> ConsultarGastoPorTipo()
        {
            IList <Core.LogicaNegocio.Entidades.Gasto> gastos = new List <Core.LogicaNegocio.Entidades.Gasto>();

            try
            {
                DbDataReader reader = SqlHelper.ExecuteReader(_conexion.GetConnection(), "ConsultarGastoPorTipo");

                while (reader.Read())
                {
                    Gasto _gasto = new Gasto();

                    _gasto.Codigo       = (int)reader["IdGasto"];
                    _gasto.Estado       = (string)reader["Estado"];
                    _gasto.Monto        = float.Parse(reader["Monto"].ToString());
                    _gasto.FechaGasto   = (DateTime)reader["Fecha"];
                    _gasto.FechaIngreso = (DateTime)reader["FechaIngreso"];
                    _gasto.Tipo         = (string)reader["Tipo"];
                    _gasto.Descripcion  = (string)reader["Descripcion"];

                    gastos.Add(_gasto);
                }
            }
            catch (SqlException e)
            {
                System.Console.Write(e);
            }


            return(gastos);
        }
Пример #24
0
        public async Task <ActionResult <int> > Post(Gasto gasto)
        {
            context.Add(gasto);
            await context.SaveChangesAsync();

            return(gasto.Id);
        }
Пример #25
0
        public void Delete(int id)
        {
            Gasto gasto = _context.Gasto.Find(id);

            _context.Gasto.Remove(gasto);
            _context.SaveChanges();
        }
Пример #26
0
        public async Task <ActionResult> Put(Gasto gasto)
        {
            context.Attach(gasto).State = EntityState.Modified;
            await context.SaveChangesAsync();

            return(NoContent());
        }
            public static void cadastrar(Gasto gasto)
            {
                SGFEntities db = new SGFEntities();

                db.Gasto.Add(gasto);
                db.SaveChanges();
            }
        public ActionResult adicionarItem(EditGastoView egv)
        {
            Item item = new Item();

            item.gasto_id = (int)Session["GastoId"];
            item.nome     = egv.itemNome;
            item.valor    = Convert.ToDouble(egv.itemValor);
            item.dia      = DateTime.Now.Day;
            if (egv.itemTipo == "Essencial" || egv.itemTipo == null)
            {
                item.tipo = 0;
            }
            if (egv.itemTipo == "Não-Essencial")
            {
                item.tipo = 1;
            }
            if (egv.itemTipo == "Investimento")
            {
                item.tipo = 2;
            }

            LAD.UsuarioLAD.Atualizar.reduceSaldo((int)Session["User"], (double)item.valor);
            Session["Saldo"] = LAD.UsuarioLAD.Pesquisar.id((int)Session["User"]).saldo;

            LAD.ItemLAD.adicionar(item);
            Gasto  gasto     = LAD.GastoLAD.Pesquisar.pesquisar((int)item.gasto_id);
            double novoValor = (double)gasto.valor + (double)item.valor;

            LAD.GastoLAD.atualizar(novoValor, gasto.id);
            gasto = LAD.GastoLAD.Pesquisar.pesquisar((int)item.gasto_id);
            return(RedirectToAction("EditGasto", "Financeiro", gasto));
        }
Пример #29
0
 /// <summary>
 /// Modificar Gasto
 /// </summary>
 /// <param name="g"></param>
 public void ModificarGasto(Gasto g)
 {
     BeginTransaction();
     try
     {
         if (g.ListFormaPago == null || g.ListFormaPago.Count == 0)
         {
             throw new ExcepcionPropia("Debe indicar al menos una forma de pago");
         }
         if (g.Monto != g.ListFormaPago.Sum(gg => gg.Monto))
         {
             throw new ExcepcionPropia("El total del gasto debe ser igual a la suma de las formas de pago");
         }
         foreach (FormaPago fp in g.ListFormaPago)
         {
             deleteFormaPagoGasto(g.IdGasto, fp.IdtipoFormaPago);
             insertFormaPagoGasto(g.IdGasto, fp.IdtipoFormaPago, fp.Monto);
         }
         updateGasto(g);
         CommitTransaction();
     }
     catch (ExcepcionPropia myex)
     {
         RollbackTransaction();
         ControladorExcepcion.tiraExcepcion(myex.Message);
     }
     catch (Npgsql.NpgsqlException myex)
     {
         RollbackTransaction();
         ControladorExcepcion.tiraExcepcion(myex.Message);
     }
 }
Пример #30
0
        public async Task PutGasto(string id, Gasto gasto)
        {
            var httpClient = new HttpClient();

            try
            {
                var json = JsonConvert.SerializeObject(gasto);

                StringContent content = new StringContent(json);

                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                HttpResponseMessage response = null;

                response = await httpClient.PutAsync(Url + id, content);

                if (response.IsSuccessStatusCode)
                {
                    Debug.WriteLine(@"\tGasto actualizado.");
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"\tERROR {0}", ex.Message);
            }
        }