Пример #1
0
        public String GetCategoryName(int CategoryId)
        {
            CategoryExpenseClient ac       = new CategoryExpenseClient();
            CategoryExpense       category = ac.Find(CategoryId);

            return(category.Name);
        }
Пример #2
0
        public object GetExpensePerCategory(int id)
        {
            var exp = from e in db.Expenses
                      join c in db.ResourceItemCategories
                      on e.ResourceItemCategoryId equals c.Id
                      group e by c.Name into g
                      select new { name = g.Key, thesum = g.Sum(e => e.Cost) };

            var expenses = new List <CategoryExpense>();

            foreach (var e in exp)
            {
                var expense = new CategoryExpense();
                expense.Category       = e.name;
                expense.ExpensePercent = e.thesum;
                expenses.Add(expense);
            }

            //var expense = new CategoryExpense();
            //expense.Category = "cat 1";
            //expense.ExpensePercent = 11;
            //expenses.Add(expense);
            //expense = new CategoryExpense();
            //expense.Category = "cat 2";
            //expense.ExpensePercent = 15;
            //expenses.Add(expense);
            //expense = new CategoryExpense();
            //expense.Category = "cat 3";
            //expense.ExpensePercent = 22;
            //expenses.Add(expense);

            return(expenses);
        }
        public ActionResult Create(CategoryExpense CategoryExpense)
        {
            CategoryExpenseClient client = new CategoryExpenseClient();

            client.Create(CategoryExpense);
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> PutCategory([FromRoute] int id, [FromBody] CategoryExpense CategoryExpense)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != CategoryExpense.Id)
            {
                return(BadRequest());
            }

            _context.Entry(CategoryExpense).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CategoryExpenseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public ActionResult Edit(CategoryExpense CEVM)
        {
            CategoryExpenseClient client = new CategoryExpenseClient();

            client.Edit(CEVM);
            return(RedirectToAction("Index"));
        }
Пример #6
0
        protected ObservableCollection <CategoryExpense> GetCategorizedMonthResults(IEnumerable <Expense> expenses)
        {
            //var categories = await CategoriesDataStore.GetItemsAsync(true);
            var categories = App.CategoriesList;

            //List<string> categoryStrings = categories.Select(category => category.Name).ToList();

            try
            {
                ObservableCollection <CategoryExpense> categoryExpenses = new ObservableCollection <CategoryExpense>();

                foreach (var category in categories)
                {
                    var sum = expenses.Where(expense => expense.BudgetItem.Name == category).Sum(expense => expense.Money);

                    CategoryExpense categoryExpense = new CategoryExpense {
                        Category = category, Money = sum
                    };
                    categoryExpenses.Add(categoryExpense);
                }
                return(categoryExpenses);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                throw;
            }
        }
Пример #7
0
        private static int CalculatePercentOfExecution(CategoryExpense category)
        {
            if (category.PlannedMoney == 0 && category.Money > 0)
            {
                return(999);
            }

            return((int)(category.Money / category.PlannedMoney * 100));
        }
Пример #8
0
        public CategoryExpenseDto UpdateCategoryExpenseAmountSpentAndAmountLeft(CategoryExpenseDto categoryExpenseDto)
        {
            CategoryExpense categoryExpense = _categoriesDAL.UpdateCategoryExpenseAmountSpentAndAmountLeft(categoryExpenseDto.CategoryExpenseId, categoryExpenseDto.AmountSpent, categoryExpenseDto.AmountLeft);

            if (categoryExpense != null)
            {
                CategoryExpenseDto mappedCategoryExpense = _mapper.Map <CategoryExpenseDto>(categoryExpense);

                return(mappedCategoryExpense);
            }
            return(null);
        }
        public async Task <IActionResult> PostCategoryExpense([FromBody] CategoryExpense CategoryExpense)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.CategoryExpense.Add(CategoryExpense);

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCategoryExpense", new { id = CategoryExpense.Id }, CategoryExpense));
        }
        public ActionResult Create()
        {
            ClaimsPrincipal currentUser = User;

            var userId = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;

            var model = new CategoryExpense
            {
                UserId = userId
            };

            return(View(model));
        }
 public bool Edit(CategoryExpense CategoryExpense)
 {
     try
     {
         HttpClient client = new HttpClient
         {
             BaseAddress = new Uri(Base_URL)
         };
         client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
         HttpResponseMessage response = client.PutAsJsonAsync("CategoryExpenses/" + CategoryExpense.Id, CategoryExpense).Result;
         return(response.IsSuccessStatusCode);
     }
     catch
     {
         return(false);
     }
 }
Пример #12
0
        public void GetExpensesPerCategory()
        {
            CategoryExpenses.Clear();
            var totalExpenseAmount = Expense.TotalExpensesAmount();

            foreach (var category in Models.Categories.CategoriesCollection)
            {
                var expenses         = Expense.GetExpenses(category);
                var AmountInCategory = expenses.Sum(expense => expense.Amount);

                var categoryExpense = new CategoryExpense()
                {
                    Category           = category,
                    ExpensesPercentage = AmountInCategory / totalExpenseAmount
                };
                CategoryExpenses.Add(categoryExpense);
            }
        }
        public void GetExpensesPerCategory()
        {
            CategoryExpenses.Clear();
            var totalExpensesAmount = Expense.GetTotalExpensesAmount();

            foreach (var category in Categories)
            {
                var expenses = Expense.GetExpenses(category);
                var expensesAmountInCategory = expenses.Sum(e => e.Amount);

                var categoryExpense = new CategoryExpense
                {
                    Category           = category,
                    ExpensesPercentage = expensesAmountInCategory / totalExpensesAmount
                };

                CategoryExpenses.Add(categoryExpense);
            }
        }
Пример #14
0
        /*
         * public DataResult UpdateCategoryExpense(CategoryExpenseDto categoryExpenseDto)
         * {
         *  CategoryExpense categoryExpense = _categoriesDAL.GetCategoryExpenseById(categoryExpenseDto.CategoryExpenseId);
         *
         *  if (categoryExpense != null)
         *  {
         *      if (Decimal.Compare(categoryExpense.UpperBudgetAmount, categoryExpenseDto.UpperBudgetAmount) != 0 || Decimal.Compare(categoryExpense.LowerBudgetAmount, categoryExpenseDto.LowerBudgetAmount) != 0)
         *      {
         *          decimal updatedLowerBudgetAmount = categoryExpenseDto.LowerBudgetAmount;
         *          decimal updatedUpperBudgetAmount = categoryExpenseDto.UpperBudgetAmount;
         *
         *          _categoriesDAL.UpdateCategoryExpenseBudgetLimits(categoryExpenseDto.CategoryExpenseId, updatedUpperBudgetAmount, updatedLowerBudgetAmount);
         *      }
         *      else if (Decimal.Compare(categoryExpense.AmountLeft, categoryExpenseDto.AmountLeft) != 0 || Decimal.Compare(categoryExpense.AmountSpent, categoryExpenseDto.AmountSpent) != 0)
         *      {
         *          decimal updatedAmountLeft = categoryExpenseDto.AmountLeft;
         *          decimal updatedAmountSpent = categoryExpenseDto.AmountSpent;
         *
         *          _categoriesDAL.UpdateCategoryExpenseAmountSpentAndAmountLeft(categoryExpenseDto.CategoryExpenseId, updatedAmountSpent, updatedAmountLeft);
         *      }
         *  }
         *
         *  CategoryExpense updatedCategoryExpense = _categoriesDAL.GetCategoryExpenseById(categoryExpenseDto.CategoryExpenseId);
         *
         *  if (updatedCategoryExpense != null)
         *  {
         *      CategoryExpenseDto mappedCategoryExpense = _mapper.Map<CategoryExpenseDto>(updatedCategoryExpense);
         *
         *      return mappedCategoryExpense;
         *  }
         *
         *  return null;
         * }
         */

        public DataResult UpdateCategoryExpenseBudgetLimits(CategoryExpenseDto categoryExpenseDto)
        {
            List <string>      validationMessages    = new List <string>();
            bool               success               = false;
            CategoryExpenseDto mappedCategoryExpense = null;

            CategoryExpense categoryExpense   = _categoriesDAL.UpdateCategoryExpenseBudgetLimits(categoryExpenseDto.CategoryExpenseId, categoryExpenseDto.UpperBudgetAmount, categoryExpenseDto.LowerBudgetAmount);
            decimal         updatedAmountLeft = categoryExpense.UpperBudgetAmount - categoryExpense.AmountSpent;

            if (updatedAmountLeft < 0)
            {
                updatedAmountLeft = 0;
            }

            categoryExpense = _categoriesDAL.UpdateCategoryExpenseAmountSpentAndAmountLeft(categoryExpenseDto.CategoryExpenseId, categoryExpense.AmountSpent, updatedAmountLeft);

            if (categoryExpense != null)
            {
                List <Transaction> transactions = _transactionsDAL.GetTransactionsByCategoryExpenseId(categoryExpense.CategoryExpenseId).OrderByDescending(t => t.Date).ToList();
                categoryExpense.Transactions = transactions;

                mappedCategoryExpense = _mapper.Map <CategoryExpenseDto>(categoryExpense);

                if (mappedCategoryExpense != null)
                {
                    success = true;
                }
            }

            if (!success)
            {
                validationMessages.Add("Could not update budget limits. Please refresh page and try again.");
            }

            return(new DataResult(mappedCategoryExpense, success, validationMessages));
        }
Пример #15
0
        public DataResult UpdateCategoryStatuses(string userId, List <CategoryStatusDto> categoryStatusDtos)
        {
            List <string>    validationMessages     = new List <string>();
            bool             success                = false;
            CategoryData     categoryData           = _categoriesDAL.GetCategoryData(userId);
            MonthExpenditure activeMonthExpenditure = _monthExpenditureDAL.GetActiveMonthExpenditure(userId);
            CategoryDataDto  categoryDataDto        = null;

            if (activeMonthExpenditure != null)
            {
                List <CategoryExpense> categoryExpenses = _categoriesDAL.GetCategoryExpensesByMonthExpenditureId(activeMonthExpenditure.MonthExpenditureId).ToList();
                bool updateStatus = true;

                foreach (var categoryStatus in categoryStatusDtos.Where(cs => cs.State != State.Unchanged))
                {
                    if (categoryStatus.State == State.Unchanged)
                    {
                        continue;
                    }
                    else if (categoryStatus.State == State.Added)
                    {
                        CategoryExpense categoryExpense = _categoriesDAL.CreateCategoryExpense(userId, categoryStatus.CategoryTypeId, activeMonthExpenditure.MonthExpenditureId);
                        updateStatus = (categoryExpense == null) ? false : true;
                    }
                    else if (categoryStatus.State == State.Deleted)
                    {
                        CategoryExpense categoryExpense = categoryExpenses.FirstOrDefault(ce => ce.CategoryTypeId == categoryStatus.CategoryTypeId);
                        updateStatus = _categoriesDAL.DeleteCategoryExpense(categoryExpense.CategoryExpenseId);
                    }

                    updateStatus = _categoriesDAL.UpdateCategoryStatus(userId, categoryStatus.CategoryTypeId, categoryStatus.IsActive);
                }

                if (updateStatus)
                {
                    List <CategoryStatusDto> categoryStatuses = MapCategoryStatuses(userId);
                    categoryExpenses = _categoriesDAL.GetCategoryExpensesByMonthExpenditureId(activeMonthExpenditure.MonthExpenditureId).OrderBy(ce => ce.CategoryTypeId).ToList();

                    foreach (CategoryExpense categoryExpense in categoryExpenses)
                    {
                        List <Transaction> transactions = _transactionsDAL.GetTransactionsByCategoryExpenseId(categoryExpense.CategoryExpenseId).OrderByDescending(t => t.Date).ToList();
                        categoryExpense.Transactions = transactions;
                    }

                    List <CategoryExpenseDto> mappedCategoryExpense = _mapper.Map <List <CategoryExpenseDto> >(categoryExpenses);

                    categoryDataDto = new CategoryDataDto()
                    {
                        CategoryExpenses = mappedCategoryExpense,
                        CategoryStatuses = categoryStatuses
                    };
                }

                success = updateStatus;
            }

            if (!success)
            {
                validationMessages.Add("Cannot update category settings. Please refresh page and try again.");
            }

            return(new DataResult(categoryDataDto, success, validationMessages));
        }