private async void AgregarGasto() { //Crea el objeto Ingreso, lo agrego a la lista del mes, y después se hace la sumatoria de la lista if (MontoGasto == "0" || string.IsNullOrEmpty(MontoGasto) || string.IsNullOrWhiteSpace(MontoGasto)) { await dialogService.ShowMessage("Error", "Debe asignar un valor mayor que cero"); return; } if (SelectedItem == null) { await dialogService.ShowMessage("Error", "Se debe seleccionar una categoría"); return; } Gastos = new Gastos(); Gastos.Anio = Date.ToString("yyyy", culture); Gastos.Mes = Date.ToString("MMM", culture); Gastos.Dia = Date.ToString("dd", culture); Gastos.ImagenFecha = "date"; if (string.IsNullOrEmpty(OrigenGasto)) { OrigenGasto = "Sin Origen"; } Gastos.Categoria = SelectedItem; Gastos.GastoNombre = string.Format("{0}{1}", OrigenGasto.Substring(0, 1).ToUpper(), OrigenGasto.Substring(1)); switch (Gastos.Categoria) { case "Servicios": Gastos.ImagenOrigen = "servicios"; break; case "Ocio": Gastos.ImagenOrigen = "ocio"; break; case "Provisiones": Gastos.ImagenOrigen = "provisiones"; break; case "Impuestos": Gastos.ImagenOrigen = "impuestos"; break; default: Gastos.ImagenOrigen = "Sin Imagen Disponible"; break; } if (MontoGasto == null) { MontoGasto = 0.ToString(); } if (!double.TryParse(MontoGasto, out double result)) { await dialogService.ShowMessage("Error", "El contenido del monto debe ser un número"); MontoGasto = null; return; } if (!MontoGasto.Contains("-")) { Gastos.GastosCantidad = string.Format("-{0}", MontoGasto); } else { Gastos.GastosCantidad = string.Format("{0}", MontoGasto); } Gastos.ImagenMonto = "money"; ListaGastos.Add(Gastos); //Realizar la sumatoria con los ingresos pertenecientes al mes y año elegido SumaGasto = ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio).ToList().Sum(x => double.Parse(x.GastosCantidad)).ToString(); SumaGastoCategoria = ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio && x.Categoria == SelectedItem).ToList().Sum(x => double.Parse(x.GastosCantidad)).ToString(); MontoGasto = null; OrigenGasto = null; dataService.Save(ListaGastos, true); CollectionGastos = new ObservableCollection <Gastos>(ListaGastos.Where(x => x.Mes == Gastos.Mes && x.Anio == Gastos.Anio && x.Categoria == SelectedItem).OrderByDescending(x => double.Parse(x.Dia)).ToList()); instanciarPaginasService.Instanciar(); }