public PlannedExpenseViewModel()
        {
            PlannedexpRep = new PlannedExpenseRepository();
            catRep        = new CategoryRepository();
            CategoryList  = new ObservableCollection <Category>();
            Repeatability = new ObservableCollection <String>();

            var iList = catRep.GetCategoriesAsync();

            foreach (Category i in iList.Result)
            {
                CategoryList.Add(i);
            }
            Repeatability.Add("Codziennie");
            Repeatability.Add("Co tydzień");
            Repeatability.Add("Co miesiąc");

            SavePlannedExpenseCommand = new Command(async() =>
            {
                var plannedExpense             = new PlannedExpense();
                plannedExpense.Description     = TheDescription;
                plannedExpense.Value           = Convert.ToDouble(TheValue);
                plannedExpense.StartDate       = TheStartDate;
                plannedExpense.NextExpenseDate = TheStartDate;
                plannedExpense.EndDate         = TheEndDate;
                plannedExpense.CategoryId      = CategoryId + 1;
                plannedExpense.Repeatability   = RepeatabilityId + 1;
                await PlannedexpRep.SavePlannedExpAsync(plannedExpense);
                TheDescription = string.Empty;
                TheValue       = "0";
                CategoryId     = -1;
            });
        }
Beispiel #2
0
        async void OnItemTapped(object sender, ItemTappedEventArgs e)
        {
            PlannedExpense tappedExpenseItem = e.Item as PlannedExpense;
            var            PlannedExpenseVM  = new PlannedExpenseViewModel(tappedExpenseItem);
            var            plannedExpense    = new AddPlannedExpenseView();

            plannedExpense.BindingContext = PlannedExpenseVM;

            await Navigation.PushAsync(plannedExpense);
        }
        public async Task <bool> UpdatePlannedExpenseAsync(PlannedExpense plannedExpense)
        {
            if (plannedExpense == null)
            {
                return(false);
            }
            _dataContext.PlannedExpenses.Update(plannedExpense);
            var updated = await _dataContext.SaveChangesAsync();

            return(updated > 0);
        }
Beispiel #4
0
 public Task SavePlannedExpAsync(PlannedExpense plannedExpense)
 {
     if (plannedExpense.ID != 0)
     {
         return(_database.UpdateAsync(plannedExpense));
     }
     else
     {
         return(_database.InsertAsync(plannedExpense));
     }
 }
        public async Task <IActionResult> UpdatePlannedExpense(int?plannedExpenseId)
        {
            if (plannedExpenseId == null)
            {
                return(NotFound());
            }

            PlannedExpense plannedExpense = await _budgetService.GetPlannedExpenseByIdAsync((int)plannedExpenseId);

            if (plannedExpense == null)
            {
                return(NotFound());
            }

            return(View(plannedExpense));
        }
        public async Task <IActionResult> UpdatePlannedExpense([Bind("Id,Amount,Kind,Date,IsPaid,PaidDate,BudgetId")] PlannedExpense plannedExpense)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if ((plannedExpense.IsPaid && plannedExpense.PaidDate == null) || (plannedExpense.IsPaid == false && plannedExpense.PaidDate != null))
                    {
                        return(View(plannedExpense));
                    }
                    await _budgetService.UpdatePlannedExpenseAsync(plannedExpense);

                    return(RedirectToAction("Details", "Budget", new { budgetId = plannedExpense.BudgetId }));
                }
                catch (Exception)
                {
                    return(NotFound());
                }
            }
            return(View(plannedExpense));
        }
        public async Task <IActionResult> CreatePlannedExpense(int budgetId, [Bind("Id,Amount,Kind,Date,IsPaid,PaidDate")] PlannedExpense plannedExpense)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    plannedExpense.Amount = (decimal)plannedExpense.Amount;
                    if (!plannedExpense.IsPaid)
                    {
                        plannedExpense.PaidDate = null;
                    }
                    await _budgetService.CreateBudgetExpenseAsync(budgetId, plannedExpense);

                    return(RedirectToAction("Details", "Budget", new { budgetId = budgetId }));
                }
                catch (Exception)
                {
                    return(NotFound());
                }
            }
            return(View(plannedExpense));
        }
        public async Task <bool> CreateBudgetExpenseAsync(int budgetId, PlannedExpense plannedExpense)
        {
            if (plannedExpense == null)
            {
                return(false);
            }
            var created = 0;

            using (var trans = await _dataContext.Database.BeginTransactionAsync())
            {
                var budget = _dataContext.Budgets.FirstOrDefault(x => x.Id == budgetId);
                plannedExpense.Budget = budget;


                _dataContext.PlannedExpenses.Add(plannedExpense);
                budget.Expenses.Add(plannedExpense);

                created = await _dataContext.SaveChangesAsync();

                trans.Commit();
            }
            return(created > 0);
        }
        private void CreatePlannedExpensesForNewDetailedCategories(int mainCatId, DateTime date)
        {
            var newPlannedExpenses = new List <PlannedExpense>();
            var detCategories      = _detailedCRepo.GetDetailedCategoriesOfMainCategory(mainCatId);

            foreach (var detCategory in detCategories)
            {
                var plannedExpense = _plannedExpenseRepo.GetPlannedExpenseOfDetailedCat(detCategory.Id, date);
                if (plannedExpense == null)
                {
                    PlannedExpense newPlannedExp = new PlannedExpense()
                    {
                        Amount             = 0,
                        MonthOfYear        = date,
                        DetailedCategoryId = detCategory.Id
                    };
                    newPlannedExpenses.Add(newPlannedExp);
                }
            }
            if (newPlannedExpenses.Count != 0)
            {
                _plannedExpenseRepo.AddPlannedExpenses(newPlannedExpenses);
            }
        }
 public void UpdatePlannedExpense(PlannedExpense plannedExpense)
 {
     _context.Attach(plannedExpense);
     _context.Entry(plannedExpense).Property("Amount").IsModified = true;
     _context.SaveChanges();
 }
Beispiel #11
0
 public Task DeletePlannedExpAsync(PlannedExpense plannedExpense)
 {
     return(_database.DeleteAsync(plannedExpense));
 }