public void Editar(Balance balance) { //Encuentro el balance a actualizar var balanceAntiguo = ListaBalance.Find(x => x.GastoIngreso == balance.GastoIngreso && x.BalanceId == balance.BalanceId); //Encuentro el gasto o ingreso a actualizar en la base de datos y cambio uno a uno los valores if (balance.GastoIngreso == "Ingreso") { var IngresoAntiguo = dataService.Get <Ingresos>(true).Find(x => x.IngresoId.ToString() == balance.BalanceId); IngresoAntiguo.Dia = balance.Dia; IngresoAntiguo.Mes = balance.Mes; IngresoAntiguo.Anio = balance.Anio; IngresoAntiguo.IngresoNombre = balance.Origen; IngresoAntiguo.IngresoCantidad = balance.Cantidad; dataService.Update(IngresoAntiguo, true); } else { var GastoAntiguo = dataService.Get <Gastos>(true).Find(x => x.GastosId.ToString() == balance.BalanceId); GastoAntiguo.Dia = balance.Dia; GastoAntiguo.Mes = balance.Mes; GastoAntiguo.Anio = balance.Anio; GastoAntiguo.GastoNombre = balance.Origen; GastoAntiguo.GastosCantidad = balance.Cantidad; dataService.Update(GastoAntiguo, true); } balanceAntiguo = balance; CollectionBalance = new ObservableCollection <Balance>(ListaBalance.OrderBy(x => double.Parse(x.Fecha.Substring(0, 2))).ToList()); instanciarPaginasService.Instanciar(); }
private void CargarLaObservableCollection(string selectedItemMes, string selectedItemAño) { ListaBalance.Clear(); //Agregado de objetos balance a las observable collection en caso de que se encuentren el mes y el año pertenecientes a la fecha del día. En función de los ingresos if (dataService.Get <Ingresos>(true).Exists(x => x.Mes == selectedItemMes && x.Anio == selectedItemAño)) { foreach (var ListadeBalanceIngreso in dataService.Get <Ingresos>(true).Where(x => x.Mes == selectedItemMes && x.Anio == selectedItemAño).ToList()) { Balance = new Balance { BalanceId = ListadeBalanceIngreso.IngresoId.ToString(), Dia = ListadeBalanceIngreso.Dia, Mes = ListadeBalanceIngreso.Mes, Anio = ListadeBalanceIngreso.Anio, Fecha = string.Format("{0}/{1}/{2}", ListadeBalanceIngreso.Dia, ListadeBalanceIngreso.Mes, ListadeBalanceIngreso.Anio), ImagenFecha = "date", GastoIngreso = "Ingreso", Cantidad = ListadeBalanceIngreso.IngresoCantidad, ImagenMonto = "money", ColorGastoIngreso = Color.Green, Origen = ListadeBalanceIngreso.IngresoNombre, ImagenOrigen = "income" }; if (!double.TryParse((string)Balance.Cantidad, out double result)) { Balance.Cantidad = 0.ToString(); } ListaBalance.Add(Balance); } } //Agregado de objetos balance a las observable collection en caso de que se encuentren el mes y el año pertenecientes a la fecha del día. En función de los gastos if (dataService.Get <Gastos>(true).Exists(x => x.Mes == selectedItemMes && x.Anio == selectedItemAño)) { foreach (var ListadeBalanceGastos in dataService.Get <Gastos>(true).Where(x => x.Mes == selectedItemMes && x.Anio == selectedItemAño).ToList()) { Balance = new Balance { BalanceId = ListadeBalanceGastos.GastosId.ToString(), Dia = ListadeBalanceGastos.Dia, Mes = ListadeBalanceGastos.Mes, Anio = ListadeBalanceGastos.Anio, Fecha = string.Format("{0}/{1}/{2}", ListadeBalanceGastos.Dia, ListadeBalanceGastos.Mes, ListadeBalanceGastos.Anio), ImagenFecha = "date", GastoIngreso = ListadeBalanceGastos.Categoria, Cantidad = string.Format("-{0}", ListadeBalanceGastos.GastosCantidad), ImagenMonto = "money", ColorGastoIngreso = Color.Red, Origen = ListadeBalanceGastos.GastoNombre }; if (Balance.Cantidad.Contains("--")) { Balance.Cantidad = Balance.Cantidad.Replace("--", "-"); } if (!double.TryParse((string)Balance.Cantidad, out double result)) { Balance.Cantidad = 0.ToString(); } switch (Balance.GastoIngreso) { case "Servicios": Balance.ImagenOrigen = "servicios"; break; case "Ocio": Balance.ImagenOrigen = "ocio"; break; case "Provisiones": Balance.ImagenOrigen = "provisiones"; break; case "Impuestos": Balance.ImagenOrigen = "impuestos"; break; default: Balance.ImagenOrigen = "Sin Imagen Disponible"; break; } ListaBalance.Add(Balance); } } CollectionBalance = new ObservableCollection <Balance>(ListaBalance.OrderByDescending(x => double.Parse(x.Dia)).ToList()); BalanceTotal = ListaBalance.Sum(x => double.Parse(x.Cantidad)).ToString(); if (double.Parse(BalanceTotal) < 0) { ColorBalance = Color.Red; } else if (double.Parse(BalanceTotal) > 0) { ColorBalance = Color.Green; } }