Example #1
0
        public async Task <IActionResult> Details(string id)
        {
            var userRecord = id is null ? UserContext.ApplicationUser : await UserManager.FindByIdAsync(id);

            if (userRecord is null)
            {
                userRecord = UserContext.ApplicationUser;
            }

            AccountRepository.CanEdit(userRecord.Id);

            var viewModel = new ViewModels.Account.DetailsPage {
                AvatarPath     = userRecord.AvatarPath,
                Id             = userRecord.Id,
                DisplayName    = userRecord.DisplayName,
                NewEmail       = userRecord.Email,
                EmailConfirmed = userRecord.EmailConfirmed,
                BirthdayDays   = DayPickList(userRecord.Birthday.Day),
                BirthdayMonths = MonthPickList(userRecord.Birthday.Month),
                BirthdayYears  = YearPickList(userRecord.Birthday.Year),
                BirthdayDay    = userRecord.Birthday.Day.ToString(),
                BirthdayMonth  = userRecord.Birthday.Month.ToString(),
                BirthdayYear   = userRecord.Birthday.Year.ToString(),
                Settings       = SettingsRepository.GetUserSettingsList(userRecord.Id)
            };

            ModelState.Clear();

            return(ForumViewResult.ViewResult(this, viewModel));
        }
Example #2
0
        public async Task <IActionResult> Details(InputModels.UpdateAccountInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await AccountRepository.UpdateAccount(input);

                return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var userRecord = AccountRepository.First(item => item.Id == input.Id);

                AccountRepository.CanEdit(userRecord.Id);

                var viewModel = new ViewModels.Account.DetailsPage {
                    DisplayName    = input.DisplayName,
                    NewEmail       = input.NewEmail,
                    AvatarPath     = userRecord.AvatarPath,
                    Id             = userRecord.Id,
                    EmailConfirmed = userRecord.EmailConfirmed,
                    BirthdayDays   = DayPickList(input.BirthdayDay),
                    BirthdayMonths = MonthPickList(input.BirthdayMonth),
                    BirthdayYears  = YearPickList(input.BirthdayYear),
                    BirthdayDay    = input.BirthdayDay.ToString(),
                    BirthdayMonth  = input.BirthdayMonth.ToString(),
                    BirthdayYear   = input.BirthdayYear.ToString(),
                    Settings       = SettingsRepository.GetUserSettingsList(userRecord.Id)
                };

                return(await Task.Run(() => { return ForumViewResult.ViewResult(this, viewModel); }));
            }
        }
Example #3
0
        public async Task <IActionResult> Details(string id = "")
        {
            var userRecord = string.IsNullOrEmpty(id) ? UserContext.ApplicationUser : await UserManager.FindByIdAsync(id);

            if (userRecord is null)
            {
                userRecord = UserContext.ApplicationUser;
            }

            AccountRepository.CanEdit(userRecord.Id);

            var viewModel = new ViewModels.Account.DetailsPage {
                AvatarPath       = userRecord.AvatarPath,
                Id               = userRecord.Id,
                DisplayName      = userRecord.DisplayName,
                NewEmail         = userRecord.Email,
                EmailConfirmed   = userRecord.EmailConfirmed,
                BirthdayDays     = DayPickList(userRecord.Birthday.Day),
                BirthdayMonths   = MonthPickList(userRecord.Birthday.Month),
                BirthdayDay      = userRecord.Birthday.Day.ToString(),
                BirthdayMonth    = userRecord.Birthday.Month.ToString(),
                FrontPage        = userRecord.FrontPage,
                FrontPageOptions = FrontPagePickList(userRecord.FrontPage),
                MessagesPerPage  = userRecord.MessagesPerPage,
                PopularityLimit  = userRecord.PopularityLimit,
                Poseys           = userRecord.Poseys,
                ShowFavicons     = userRecord.ShowFavicons,
                TopicsPerPage    = userRecord.TopicsPerPage,
                ShowBirthday     = userRecord.ShowBirthday
            };

            ModelState.Clear();

            return(await ForumViewResult.ViewResult(this, viewModel));
        }
Example #4
0
        public async Task <IActionResult> UpdateAvatar(InputModels.UpdateAvatarInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await AccountRepository.UpdateAvatar(input);

                return(await this.RedirectFromService(serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var userRecord = input.Id is null ? UserContext.ApplicationUser : await UserManager.FindByIdAsync(input.Id);

                if (userRecord is null)
                {
                    userRecord = UserContext.ApplicationUser;
                }

                AccountRepository.CanEdit(userRecord.Id);

                var viewModel = new ViewModels.Account.DetailsPage {
                    AvatarPath       = userRecord.AvatarPath,
                    Id               = userRecord.Id,
                    DisplayName      = userRecord.DisplayName,
                    NewEmail         = userRecord.Email,
                    EmailConfirmed   = userRecord.EmailConfirmed,
                    BirthdayDays     = DayPickList(userRecord.Birthday.Day),
                    BirthdayMonths   = MonthPickList(userRecord.Birthday.Month),
                    BirthdayDay      = userRecord.Birthday.Day.ToString(),
                    BirthdayMonth    = userRecord.Birthday.Month.ToString(),
                    FrontPage        = userRecord.FrontPage,
                    FrontPageOptions = FrontPagePickList(userRecord.FrontPage),
                    MessagesPerPage  = userRecord.MessagesPerPage,
                    PopularityLimit  = userRecord.PopularityLimit,
                    Poseys           = userRecord.Poseys,
                    ShowFavicons     = userRecord.ShowFavicons ?? true,
                    TopicsPerPage    = userRecord.TopicsPerPage
                };

                return(View(nameof(Details), viewModel));
            }
        }
Example #5
0
        public async Task <IActionResult> UpdateAvatar(InputModels.UpdateAvatarInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await AccountRepository.UpdateAvatar(input);

                return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var userRecord = input.Id is null ? UserContext.ApplicationUser : await UserManager.FindByIdAsync(input.Id);

                if (userRecord is null)
                {
                    userRecord = UserContext.ApplicationUser;
                }

                AccountRepository.CanEdit(userRecord.Id);

                var viewModel = new ViewModels.Account.DetailsPage {
                    AvatarPath     = userRecord.AvatarPath,
                    Id             = userRecord.Id,
                    DisplayName    = userRecord.DisplayName,
                    NewEmail       = userRecord.Email,
                    EmailConfirmed = userRecord.EmailConfirmed,
                    BirthdayDays   = DayPickList(userRecord.Birthday.Day),
                    BirthdayMonths = MonthPickList(userRecord.Birthday.Month),
                    BirthdayYears  = YearPickList(userRecord.Birthday.Year),
                    BirthdayDay    = userRecord.Birthday.Day.ToString(),
                    BirthdayMonth  = userRecord.Birthday.Month.ToString(),
                    BirthdayYear   = userRecord.Birthday.Year.ToString(),
                };

                return(ForumViewResult.ViewResult(this, nameof(Details), viewModel));
            }
        }
Example #6
0
        public async Task <IActionResult> Details(InputModels.UpdateAccountInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await AccountRepository.UpdateAccount(input);

                return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                var userRecord = (await AccountRepository.Records()).First(item => item.Id == input.Id);

                AccountRepository.CanEdit(userRecord.Id);

                var viewModel = new ViewModels.Account.DetailsPage {
                    DisplayName      = input.DisplayName,
                    NewEmail         = input.NewEmail,
                    AvatarPath       = userRecord.AvatarPath,
                    Id               = userRecord.Id,
                    EmailConfirmed   = userRecord.EmailConfirmed,
                    BirthdayDays     = DayPickList(input.BirthdayDay),
                    BirthdayMonths   = MonthPickList(input.BirthdayMonth),
                    BirthdayDay      = input.BirthdayDay.ToString(),
                    BirthdayMonth    = input.BirthdayMonth.ToString(),
                    FrontPage        = userRecord.FrontPage,
                    FrontPageOptions = FrontPagePickList(userRecord.FrontPage),
                    MessagesPerPage  = userRecord.MessagesPerPage,
                    PopularityLimit  = userRecord.PopularityLimit,
                    Poseys           = userRecord.Poseys,
                    ShowFavicons     = userRecord.ShowFavicons,
                    TopicsPerPage    = userRecord.TopicsPerPage
                };

                return(await ForumViewResult.ViewResult(this, viewModel));
            }
        }