示例#1
0
        public async Task <IActionResult> Index(int page = 1)
        {
            int take     = 15;
            int skip     = take * (page - 1);
            var mailList = await _mailService.GetUserInboxPaginatedAsync(skip, take);

            PaginateViewModel paginateModel = new PaginateViewModel()
            {
                ItemCount    = mailList.Count,
                CurrentPage  = page,
                ItemsPerPage = take
            };

            if (paginateModel.MaxPage > 0 && paginateModel.CurrentPage > paginateModel.MaxPage)
            {
                return(RedirectToRoute(
                           new
                {
                    page = paginateModel.LastPage ?? 1
                }));
            }

            MailListViewModel viewModel = new MailListViewModel()
            {
                Mail          = mailList.Data,
                PaginateModel = paginateModel
            };

            return(View(viewModel));
        }
示例#2
0
        public async Task <IActionResult> ViewAll(int page = 1)
        {
            const int take     = 15;
            int       skip     = take * (page - 1);
            var       mailList = await _mailService.GetAllPaginatedAsync(skip, take);

            var paginateModel = new PaginateViewModel
            {
                ItemCount    = mailList.Count,
                CurrentPage  = page,
                ItemsPerPage = take
            };

            if (paginateModel.PastMaxPage)
            {
                return(RedirectToRoute(
                           new
                {
                    page = paginateModel.LastPage ?? 1
                }));
            }

            var viewModel = new MailListViewModel
            {
                Mail          = mailList.Data,
                PaginateModel = paginateModel,
                CanDelete     = UserHasPermission(Permission.DeleteAnyMail)
            };

            return(View(viewModel));
        }
示例#3
0
        public MailListView(MailListViewModel viewModel)
        {
            InitializeComponent();

            Loaded += (s, e) =>
            {
                DataContext = viewModel;
            };
        }
示例#4
0
        public async Task <IActionResult> Mail(int id, int page = 1)
        {
            try
            {
                int take = 15;
                int skip = take * (page - 1);

                var mail = await _mailService.GetUserPaginatedAsync(id, skip, take);

                PaginateViewModel paginateModel = new PaginateViewModel()
                {
                    ItemCount    = mail.Count,
                    CurrentPage  = page,
                    ItemsPerPage = take
                };
                if (paginateModel.MaxPage > 0 && paginateModel.CurrentPage > paginateModel.MaxPage)
                {
                    return(RedirectToRoute(
                               new
                    {
                        page = paginateModel.LastPage ?? 1
                    }));
                }

                var user = await _userService.GetDetails(id);

                SetPageTitle(user);

                MailListViewModel viewModel = new MailListViewModel()
                {
                    Mails             = mail.Data,
                    PaginateModel     = paginateModel,
                    Id                = id,
                    HouseholdCount    = await _userService.FamilyMemberCountAsync(user.HouseholdHeadUserId ?? id),
                    HeadOfHouseholdId = user.HouseholdHeadUserId,
                    HasAccount        = !string.IsNullOrWhiteSpace(user.Username),
                    CanRemoveMail     = UserHasPermission(Permission.DeleteAnyMail),
                    CanSendMail       = UserHasPermission(Permission.MailParticipants)
                };
                return(View(viewModel));
            }
            catch (GraException gex)
            {
                ShowAlertWarning("Unable to view participant's mail: ", gex);
                return(RedirectToAction("Index"));
            }
        }