public async Task <IActionResult> CalculateExpensesByAdmin(string StartDate, string EndDate) { try { if (String.IsNullOrEmpty(StartDate) && String.IsNullOrEmpty(EndDate)) { var model = new CalculateExpensesVM() { _Expenses = null, StartDate = null, EndDate = null }; return(View("CalculateExpensesByAdmin", model)); } else { var result = new SearchExpenses() { StartDate = StartDate, EndDate = EndDate }; var SearchExpenses = await Task.Run(() => _ExpensesServ.SearchExpenses(result)); var list = new List <CalculateExpensesVM_Expenses>(); foreach (var item in SearchExpenses._Expenses.ToList()) { var temp = new CalculateExpensesVM_Expenses() { Id = item.Id, Name = item.Name, Amount = item.Amount, Date = item.Date, ExpenseTypeId = item.ExpenseTypeId, ExpenseTypeName = item.ExpenseTypeName }; list.Add(temp); } ; var model = new CalculateExpensesVM() { _Expenses = list, ammount = SearchExpenses.DateRangeAmount, StartDate = StartDate, EndDate = EndDate }; return(View("CalculateExpensesByAdmin", model)); } } catch { return(BadRequest()); } }
public SearchExpenses SearchExpenses(SearchExpenses obj) { var model = (dynamic)null; try { DateTime StartDate = Convert.ToDateTime(obj.StartDate); DateTime EndDate = Convert.ToDateTime(obj.EndDate); var ExpensesList = _ExpensesRepo.GetAll().ToList(); var ExpenseTypeList = _ExpenseTypesRepo.GetAll().ToList(); var query = (from _Expenses in ExpensesList join _ExpenseType in ExpenseTypeList on _Expenses?.ExpenseTypeId equals _ExpenseType?.Id orderby _ExpenseType.Name ascending where _Expenses.Date >= StartDate && _Expenses.Date <= EndDate select new { _Expenses, _ExpenseType }); var getAmount = (from p in ExpensesList where p.Date >= StartDate && p.Date <= EndDate select p.Amount); var allGetAmount = getAmount.Sum(); var list = new List <SearchExpenses_Expenses>(); foreach (var item in query) { var temp = new SearchExpenses_Expenses() { Id = item._Expenses.Id, Name = item._Expenses.Name, Amount = item._Expenses.Amount, Date = item._Expenses.Date, ExpenseTypeId = item._Expenses.ExpenseTypeId, ExpenseTypeName = item._ExpenseType.Name }; list.Add(temp); } ; model = new SearchExpenses() { _Expenses = list, DateRangeAmount = allGetAmount }; } catch (Exception) { } return(model); }
public async Task <IActionResult> CalculateExpenses(string StartDate, string EndDate, int pg = 1) { try { if (String.IsNullOrEmpty(StartDate) && String.IsNullOrEmpty(EndDate)) { var model = new CalculateExpensesVM() { _Expenses = null, StartDate = null, EndDate = null }; return(View("CalculateExpenses", model)); } else { var result = new SearchExpenses() { StartDate = StartDate, EndDate = EndDate }; var SearchExpenses = await Task.Run(() => _ExpensesServ.SearchExpenses(result)); var list = new List <CalculateExpensesVM_Expenses>(); foreach (var item in SearchExpenses._Expenses.ToList()) { var temp = new CalculateExpensesVM_Expenses() { Id = item.Id, Name = item.Name, Amount = item.Amount, Date = item.Date, ExpenseTypeId = item.ExpenseTypeId, ExpenseTypeName = item.ExpenseTypeName }; list.Add(temp); } ; #region "Paging" const int pageSize = 5; if (pg < 1) { pg = 1; } int recsCount = list.Count(); var pager = new Pager(recsCount, pg, pageSize); int recSkip = (pg - 1) * pageSize; var data = list.Skip(recSkip).Take(pager.PageSize).ToList(); this.ViewBag.Pager = pager; var model = new CalculateExpensesVM() { _Expenses = data, ammount = SearchExpenses.DateRangeAmount, StartDate = StartDate, EndDate = EndDate }; #endregion "Paging" return(View("CalculateExpenses", model)); } } catch { return(BadRequest()); } }