Esempio n. 1
0
        // GET: Receipts/Create
        public async Task <IActionResult> Create()
        {
            var viewModel = new ReceiptViewModel
            {
                AppUsers = new SelectList(await _uow.BaseRepository <AppUser>().AllAsync(), nameof(AppUser.Id),
                                          nameof(AppUser.UserNickname))
            };

            return(View(viewModel));
        }
Esempio n. 2
0
        // GET: Loans/Create
        public async Task <IActionResult> Create()
        {
            var viewModel = new LoanViewModel
            {
                LoanGivers = new SelectList(await _uow.BaseRepository <AppUser>().AllAsync(), nameof(AppUser.Id),
                                            nameof(AppUser.UserNickname)),
                LoanTakers = new SelectList(await _uow.BaseRepository <AppUser>().AllAsync(), nameof(AppUser.Id),
                                            nameof(AppUser.UserNickname)),
                ReceiptParticipants = new SelectList(await _uow.ReceiptParticipants.AllAsync(),
                                                     nameof(ReceiptParticipant.Id), nameof(ReceiptParticipant.Id))
            };

            return(View(viewModel));
        }
Esempio n. 3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var email = await _userManager.GetEmailAsync(user);

            if (Input.Email != email)
            {
                var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

                if (!setEmailResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Unexpected error occurred setting email for user with ID '{userId}'.");
                }
            }

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            if (Input.PhoneNumber != phoneNumber)
            {
                var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

                if (!setPhoneResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Unexpected error occurred setting phone number for user with ID '{userId}'.");
                }
            }

            var nickname = user.UserNickname;

            if (Input.Nickname != nickname)
            {
                try
                {
                    user.UserNickname = Input.Nickname;
                    _uow.BaseRepository <AppUser>().Update(user);
                    await _uow.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    //TODO: handle duplicate nickname better than this
                    Console.WriteLine("DUPLICATE NICKNAME! TODO: handle duplicate nickname better than this");
                }
            }

            await _signInManager.RefreshSignInAsync(user);

            StatusMessage = "Your profile has been updated";
            return(RedirectToPage());
        }