public ActionResult Index(string dat1, string dat2) { DateTime dtFrom = Convert.ToDateTime(dat1); DateTime dtTo = Convert.ToDateTime(dat2); int userid = Int32.Parse(_currentUser.id); ExpensesListViewModel ex_lvm = new ExpensesListViewModel(); var expenses = db.Expenses.Where(e => e.Userid == userid && e.Date_Time >= dtFrom && e.Date_Time <= dtTo).GroupBy(x => x.Date_Time).ToList(); List <DateTime> dates = new List <DateTime>(); foreach (var a in expenses) { dates.Add(a.Key.Date); } dates = dates.Distinct().ToList(); foreach (var r in dates) { DateTime r1 = r.Add(new TimeSpan(0, 23, 59, 59, 999)); ExpensesAvgPDayViewModel ex_avg = new ExpensesAvgPDayViewModel { Expenses = db.Expenses.Where(e => e.Userid == userid && e.Date_Time >= r && e.Date_Time <= r1) }; ex_avg.Avarage_pday = Math.Round(ex_avg.Expenses.Average(e => e.Amount), 2); ExpensesWeekViewModel ex_week = new ExpensesWeekViewModel(); ex_week.AllDayExpenses.Add(ex_avg); ex_week.Year_Week = GetYearWeek(r); ex_week.Sum_pweek = ex_avg.Expenses.Sum(e => e.Amount); ex_lvm.WeekExpenses.Add(ex_week); } ViewBag.Message = _currentUser.First_Name + " " + _currentUser.Last_Name + "( " + _currentUser.Email + " )"; return(View(ex_lvm)); }
/// <summary> /// ctor. /// </summary> public ExpensesListView() { InitializeComponent(); BindingContext = _viewModel = new ExpensesListViewModel(); FoodIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_food.png"); PersonalIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_personal.png"); GroceriesIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_groceries.png"); BonuslIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_bonus.png"); UtilitiesIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_utilities.png"); CarIcon.Source = ImageSource.FromResource("Tulsi.Images.expenses_car.png"); }
public async Task <ExpensesListViewModel> GetAllAsync(int?catId, int?page, string sortBy = "") { var viewModel = new ExpensesListViewModel(); var categories = await _categoryRepository.GetAllAsync(); categories = categories.Prepend(new Category { Id = 0, Name = "All categories" }); IQueryable <Expense> list = table .Where(x => x.ApplicationUserId == GetCurrentUserId()); if (catId != null && catId != 0) { list = list .Where(x => x.CategoryId == catId.Value); viewModel.CurrentCategory = await _categoryRepository.GetByIdAsync(catId.Value); } else { viewModel.CurrentCategory = categories.ElementAt(0); } viewModel.CategoriesSelectList = new SelectList(categories, "Id", "Name", viewModel.CurrentCategory.Id); viewModel.SortOrder = new Dictionary <string, string>() { { "category", "categorydesc" }, { "amount", "amountdesc" }, { "date", "datedesc" } }; viewModel.CurrentSort = sortBy; switch (sortBy) { case "categorydesc": list = list.OrderByDescending(x => x.Category.Name); viewModel.SortOrder["category"] = "categoryasc"; break; case "categoryasc": list = list.OrderBy(x => x.Category.Name); viewModel.SortOrder["category"] = "categorydesc"; break; case "amountdesc": list = list.OrderByDescending(x => x.Amount); viewModel.SortOrder["amount"] = "amountasc"; break; case "amountasc": list = list.OrderBy(x => x.Amount); viewModel.SortOrder["amount"] = "amountdesc"; break; case "datedesc": list = list.OrderByDescending(x => x.Date); viewModel.SortOrder["date"] = "dateasc"; break; case "dateasc": list = list.OrderBy(x => x.Date); viewModel.SortOrder["date"] = "datedesc"; break; default: viewModel.CurrentSort = ""; break; } viewModel.Items = await PaginatedList <Expense> .CreateAsync(list, page ?? 1); return(viewModel); }