public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { Microsoft.AspNetCore.Identity.SignInResult result = null; if (Input.Username.Contains('@')) { try { Rail_WebUser user = _userManager.FindByEmailAsync(Input.Username).Result; result = await _signInManager.PasswordSignInAsync(user.UserName, Input.Password, Input.RememberMe, lockoutOnFailure : false); } catch { result = Microsoft.AspNetCore.Identity.SignInResult.Failed; } } else { try { result = await _signInManager.PasswordSignInAsync(Input.Username, Input.Password, Input.RememberMe, lockoutOnFailure : false); } catch { ModelState.AddModelError(string.Empty, "Login Failed, we maybe experiencing issues at the moment."); return(Page()); } } if (result.Succeeded) { _logger.LogInformation("User logged in."); return(LocalRedirect(returnUrl)); } if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); return(RedirectToPage("./Lockout")); } else { ModelState.AddModelError(string.Empty, "Invalid login attempt."); return(Page()); } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new Rail_WebUser { UserName = Input.Username, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName, PhoneNumber = Input.Phone, HouseName = Input.HouseName, Address1 = Input.Address1, Address2 = Input.Address2, Postcode = Input.Postcode }; try { var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your account", $"Please confirm your account by clicking <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'> here</a>."); ViewData["StatusMessage"] = "Please make sure to confirm your account with the email you just recieved."; //await _signInManager.SignInAsync(user, isPersistent: false); //Removed unless we need the user to be auto logged in. return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } catch { ModelState.AddModelError(string.Empty, "Login Failed, we maybe experiencing issues at the moment."); return(Page()); } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task <IActionResult> Ticket() { Rail_WebUser user = null; string username = null; try { user = await _userManager.GetUserAsync(User); username = user.UserName; } catch { } if (username != null) { Service serviceInst = resultModel.modelInstance.resultValue[0]; Models.Ticket ticketInst = resultModel.modelInstance.ticketInstance; string ticketRef = ticketInst.reference; string serviceDet = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", serviceInst.dep_name, serviceInst.arr_name, serviceInst.dep_time.ToShortTimeString() , serviceInst.arr_time.ToShortTimeString(), ticketInst.date.ToShortDateString(), serviceInst.service_operator, ticketInst.classType, ticketInst.time, ticketInst.totalCost); OrderHistory o = new OrderHistory { Username = username, TicketRef = ticketRef, TicketDet = serviceDet }; _context.Add(o); await _context.SaveChangesAsync(); } return(View(resultModel.modelInstance)); }
public async Task <IActionResult> TicketCheck(string refer, string arrCode, bool std, bool fst) { refer = refer.Replace('.', '+'); refer = refer.Replace('^', '/'); Send("GetOne" + "{" + refer + "{" + arrCode); Read(); string classType = null; string cost = null; if (std == true && fst == false) { classType = "Standard"; cost = "£15.00"; } else if (std == false && fst == true) { classType = "First Class"; cost = "£20.00"; } DateTime timestamp = DateTime.UtcNow; Random rnd = new Random(); string randomList = "abcdefghijklmnopqrstuvwxyz0123456789"; string reference = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}", randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)], randomList[rnd.Next(0, 35)]).ToUpper(); Service r = resultModel.modelInstance.resultValue[0]; Ticket returnedTicket = new Ticket { reference = reference, arrCode = arrCode, classType = classType, date = timestamp.Date, time = timestamp.ToShortTimeString(), depCode = r.dep_code, totalCost = cost }; resultModel.modelInstance.ticketInstance = returnedTicket; Rail_WebUser user = null; string email = ""; try { user = await _userManager.GetUserAsync(User); email = await _userManager.GetEmailAsync(user); await SendEmail(email); } catch { } return(View(resultModel.modelInstance)); }