public async Task <IActionResult> CreateUserAdmin(SystemAdminViewModel vm) { ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { //Til systemadmin til at oprette de forskellige typer brugere var user = new UserAdmin() { UserName = vm.Input.Email, Email = vm.Input.Email, Name = vm.Input.Name, WorkAddress = new Address() { StreetAddress = vm.Input.StreetAddress, Zipcode = vm.Input.Zipcode }, PhoneNumber = vm.Input.Phonenumber, PaymentMethod = vm.Input.PaymentMethod, EmailConfirmed = true }; var result = await _userManager.CreateAsync(user, vm.Input.Password); if (result.Succeeded) { await _userManager.AddClaimAsync(user, new Claim("UserAdmin", "IsUserAdmin")); _logger.LogInformation("UserAdmin is created! "); var systemadmin = await _dataAccess.SystemAdmins.GetSingleSystemAdminAsync(User.Identity.Name); systemadmin.UserAdmins.Add(user); _dataAccess.Complete(); //if (_userManager.Options.SignIn.RequireConfirmedAccount) //{ // return RedirectToPage("RegisterConfirmation", new { email = vm.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(RedirectToAction(nameof(Index))); }
public IActionResult DeleteUser(string username) { if (User.HasClaim("UserAdmin", "IsUserAdmin") || User.HasClaim("SystemAdmin", "IsSystemAdmin")) { if (username == null) { return(NotFound()); } if (_userAdminViewModel.CurrentLaundryUser != null) { if (_userAdminViewModel.CurrentLaundryUser.UserName == username || _userAdminViewModel.CurrentLaundryUser.Email == username) { _userAdminViewModel.CurrentLaundryUser = null; } } var userToDelete = _dataAccess.LaundryUsers.GetSingleLaundryUser(username); _dataAccess.LaundryUsers.DeleteUser(userToDelete); _dataAccess.Complete(); return(RedirectToAction(nameof(MyUsers))); } return(Unauthorized()); }
public IActionResult CheckIn(WaiterViewModel waiterViewModel, string btn) { var id = int.Parse(btn); foreach (var guest in waiterViewModel.Guests) { if (guest.GuestID == id) { _dataAccess.Guests.CheckIn(guest.GuestID); _dataAccess.Complete(); } } TempData["Room Index"] = waiterViewModel.Guests.SingleOrDefault(g => g.GuestID == id).HotelRoomID; return(RedirectToAction(nameof(Index))); }
public IActionResult CompleteGuest(ReceptionistViewModel receptionistViewModel, string bookButton) { //Hvis reservationen ligger idag, tjek for dette, ellers ikke if (_dataAccess.Guests.ReservationPossible(receptionistViewModel.CurrentGuest.GuestID, receptionistViewModel.CurrentGuest.LastReservationDate)) { _dataAccess.Guests.MakeReservation(receptionistViewModel.CurrentGuest.GuestID, receptionistViewModel.CurrentGuest.LastReservationDate); _dataAccess.Complete(); TempData["Booking"] = bookButton; } else { TempData["Fail"] = bookButton; } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl ??= Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { //Til useradmin til at oprette laundrytime brugere if (User.HasClaim("UserAdmin", "IsUserAdmin")) { var user = new LaundryUser { UserName = Input.Email, Email = Input.Email, Name = Input.Name, ActiveUser = true, Address = new Address() { StreetAddress = Input.StreetAddress, Zipcode = Input.Zipcode }, PhoneNumber = Input.Phonenumber, PaymentMethod = Input.PaymentMethod }; 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); await _userManager.AddClaimAsync(user, new Claim("LaundryUser", "IsLaundryUser")); 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); MailMessage message = new MailMessage() { From = new MailAddress("*****@*****.**"), // sender must be a full email address Subject = "Please confirm your e-mail", IsBodyHtml = true, Body = $"<h3>Hello {user.Name}</h3><p>Thank you for registering with Laundry Time!</p> " + $"<p>Below you will find your user information:</p> <p>User name: {user.Email} </p> " + $"<p>Password: {Input.Password} </p> " + $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>. " + $"<br/> <br/> <img width='100' src='https://t4.ftcdn.net/jpg/03/09/29/23/360_F_309292393_4G7XxgXz5ftKSuSStItdT2ZK1snVEH08.jpg'/> <p>Kind regards</p> <p>Laundry Time</p>", BodyEncoding = System.Text.Encoding.UTF8, SubjectEncoding = System.Text.Encoding.UTF8, To = { user.Email } }; string smsMsg = $"Hi {user.Name}!\n\nThank you for registering with Laundry Time!\n" + $"Below you will find your user information:\nUser name: {user.Email}" + $"\nPassword: {Input.Password}\n\n" + $"Please remember to confirm your account by clicking the link in the mail sent to {user.Email}"; SendMail(message); SendSMS(user.PhoneNumber, smsMsg); if (User.Identity != null) { var useradmin = _dataAccess.UserAdmins.GetSingleUserAdmin(User.Identity.Name); useradmin.Users.Add(user); _dataAccess.Complete(); } 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); } } //Til systemadmin til at oprette de forskellige typer brugere if (User.HasClaim("SystemAdmin", "IsSystemAdmin")) { var user = new UserAdmin { UserName = Input.Email, Email = Input.Email, Name = Input.Name, PhoneNumber = Input.Phonenumber, PaymentMethod = Input.PaymentMethod }; 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); 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); MailMessage message = new MailMessage() { From = new MailAddress("*****@*****.**"), // sender must be a full email address Subject = "Please confirm your e-mail", IsBodyHtml = true, Body = $"<h3>Hello {user.Name}</h3><p>Thank you for registering with Laundry Time!</p> " + $"<p>Below you will find your user information:</p> <p>User name: {user.Email} </p> " + $"<p>Password: {Input.Password} </p> " + $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>. " + $"<br/> <br/> <img width='100' src='https://t4.ftcdn.net/jpg/03/09/29/23/360_F_309292393_4G7XxgXz5ftKSuSStItdT2ZK1snVEH08.jpg'/> <p>Kind regards</p> <p>Laundry Time</p>", BodyEncoding = System.Text.Encoding.UTF8, SubjectEncoding = System.Text.Encoding.UTF8, To = { user.Email } }; string smsMsg = $"Hi {user.Name}!\n\nThank you for registering with Laundry Time!\n" + $"Below you will find your user information:\nUser name: {user.Email}" + $"\nPassword: {Input.Password}\n\n" + $"Please remember to confirm your account by clicking the link in the mail sent to {user.Email}"; SendMail(message); SendSMS(user.PhoneNumber, smsMsg); 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); } } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task <IActionResult> Book(long?id) { if (User.HasClaim("LaundryUser", "IsLaundryUser")) { var bookingOrder = await _dataAccess.BookingList.SingleBook(id); if (bookingOrder == null) { return(NotFound()); } else { var reservedBookings = new ReservedListModel() { Date = bookingOrder.Date, Machine = bookingOrder.Machine, Time = bookingOrder.Time, OldId = bookingOrder.Id, Name = User.Identity.Name }; //_context.ReservedListModels.Add(reservedBookings); _dataAccess.ReservedList.AddSingleReservation(reservedBookings); bookingOrder.Status = false; var LUser = User.Identity.Name; var tempUser = _dataAccess.LaundryUsers.GetSingleLaundryUser(LUser); var laundryLog = new LaundryLog() { LaundryUser = tempUser, LogDate = DateTime.Now, LogInfo = $"Booked machine {reservedBookings.Machine.MachineId} of the type {reservedBookings.Machine.Type} for {reservedBookings.Date} at {reservedBookings.Time}" }; _dataAccess.LaundryLogs.AddLaundryLog(laundryLog); _dataAccess.Complete(); } //Dette bliver ikke brugt. Hvad er dettes formål? var BookingList = await _dataAccess.BookingList.GetBookingList(); List <BookingListViewModel> modelList = new List <BookingListViewModel>(); foreach (var booking in BookingList) { if (booking.Status == true) { BookingListViewModel model = new BookingListViewModel(); model.BookingID = booking.Id; model.Date = booking.Date; model.MachineName = booking.Machine.MachineId; model.MachineType = booking.Machine.Type; model.Time = booking.Time; modelList.Add(model); } } DateViewModel dvm = new DateViewModel() { Datedata = bookingOrder.Date }; return(RedirectToAction("AvailableBookings", dvm)); } return(Unauthorized()); }