コード例 #1
0
        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));
        }
コード例 #2
0
        /// <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");
        }
コード例 #3
0
        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);
        }