Пример #1
0
        private void SaveProjectToSession(CalendarroUsers dbUser, int?projectId = null)
        {
            //Najprawdopodobniej tylko testowe dodawanie projektu do sesji
            var projectUserRel = _context.ProjectUserRelation.FirstOrDefault(rel => rel.User == dbUser);

            if (projectUserRel == null)
            {
                return;
            }

            Projects project;

            if (projectId != null)
            {
                project = _context.Projects
                          .Where(p => p.ProjectId == projectId)
                          .FirstOrDefault();
            }
            else
            {
                project = _context.Projects.FirstOrDefault(project => project.ProjectId == projectUserRel.ProjectId);
            }

            var allRelations = _context.ProjectUserRelation
                               .Where(x => x.User == dbUser)
                               .Select(a => a.ProjectId)
                               .ToList();

            if (project == null)
            {
                return;
            }

            if (allRelations.Contains(project.ProjectId))
            {
                var mappedProject     = _currentProject = _mapper.Map <ProjectDto>(project);
                var serializedProject = JsonConvert.SerializeObject(mappedProject);
                HttpContext.Session.SetString("Project", serializedProject);
            }
        }
Пример #2
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");

            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

            if (ModelState.IsValid)
            {
                var user = new CalendarroUser
                {
                    UserName = Input.Email,
                    Email    = Input.Email,
                };

                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    var calUser = new CalendarroUsers
                    {
                        Token       = user.Id,
                        CreateDate  = DateTime.Now,
                        City        = Input.City,
                        Description = Input.Description,
                        EMail       = Input.Email,
                        Name        = Input.FirstName,
                        HouseNumber = Input.HouseNumber,
                        PhoneNumber = Input.PhoneNumber,
                        SurName     = Input.LastName,
                        Street      = Input.Street
                    };

                    await _calendarroContext.CalendarroUsers.AddAsync(calUser);

                    await _calendarroContext.SaveChangesAsync();

                    //_sendGridLogic.SendEmail(Input.Email);
                }

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(Page());
        }