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); } }
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()); }