//fjerner fremtidige reservationer fra brugeren public void RemoveFutureRes(string name) { LaundryUser laundryUser = _db.LaundryUsers.Find(name); List <Reservation> resList = laundryUser.Reservations.ToList(); foreach (var res in resList) { if (res.reservationDate.GetValueOrDefault() > DateTime.Now) { //hvis alle relationer er lavet fra C# koden/Linq behøver sletningen af maskiner ikke at vaere der, da Linq selv sletter mange til mange relationen List <Machine> machineList = res.Machines.ToList(); foreach (var machine in machineList) { res.Machines.Remove(machine); } _db.Reservations.Remove(res); } } try { _db.SaveChanges(); } catch (DbUpdateException e) { Console.WriteLine(e.InnerException); } }
public ActionResult AllReservations(String userid) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); Service.Service.SetInactiveResFromMachinePastDate(MinPastResTime); return(View(laundryUser)); }
public static void UserTotalCostPayed(LaundryUser user) { foreach (StartedWashCost start in user.Reservations.Where(res => res.reservationUsed.GetValueOrDefault()).SelectMany(res => res.StartedWashCosts)) { start.payed = true; } Db.SaveChanges(); }
public static Reservation CreateReservation(LaundryUser laundryUser, DateTime date) { Reservation tempReservation = new Reservation { LaundryUser1 = laundryUser, reservationDate = date, reservationUsed = false, inactive = false }; Db.Reservations.Add(tempReservation); Db.SaveChanges(); return(tempReservation); }
public ActionResult SeeTodaysAvailableMacinhes(string userid) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); try { Reservation r = Service.Service.CreateReservation(laundryUser, DateTime.Today); Service.Service.AddWashTimeReservation(r, laundryUser.LaundryRoom1.FindWashTime()); } catch (Exception e) { return(View("PickDate", laundryUser)); } return(RedirectToAction("TodaysMachinesReady", new { userid = laundryUser.name })); }
public ActionResult Index(FormCollection fc) { String name = fc["name"]; try { LaundryUser laundryUser = Service.Service.FindLaundryUser(name); return(RedirectToAction("PickDate", new { userid = laundryUser.name })); } catch (Exception) { ModelState.AddModelError("LoginError", "no user found with that name"); return(View("")); } }
public static LaundryUser CreateLaundryUser(LaundryRoom laundryRoom, String name) { LaundryUser tempLaundryUser = null; try { tempLaundryUser = new LaundryUser(); tempLaundryUser.LaundryRoom1 = laundryRoom; tempLaundryUser.name = name; Db.LaundryUsers.Add(tempLaundryUser); Db.SaveChanges(); } catch (DbUpdateException) { throw new Exception("There is already a user named: " + tempLaundryUser.name); } return tempLaundryUser; }
public ActionResult PickDate(String userid, FormCollection fc) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); try { DateTime date = Service.Service.ValidateDate(fc["date"]); Reservation r = Service.Service.CreateReservation(laundryUser, date); return(RedirectToAction("PickWashTime", new { userid = laundryUser.name, resid = r.id })); } catch (Exception e) { ModelState.AddModelError("DateError", e.Message); return(View(laundryUser)); } }
public static LaundryUser CreateLaundryUser(LaundryRoom laundryRoom, String name) { LaundryUser tempLaundryUser = null; try { tempLaundryUser = new LaundryUser(); tempLaundryUser.LaundryRoom1 = laundryRoom; tempLaundryUser.name = name; Db.LaundryUsers.Add(tempLaundryUser); Db.SaveChanges(); } catch (DbUpdateException) { throw new Exception("There is already a user named: " + tempLaundryUser.name); } return(tempLaundryUser); }
public ActionResult TodaysMachinesReady(String userid) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); return(View(laundryUser)); }
public void TestData() { LaundryRoom = new LaundryRoom(); LaundryRoom.name = "laundryroom 1"; LaundryRoom.maxReservationPerUser = 456; Machine machine1 = new Machine(); machine1.LaundryRoom1 = LaundryRoom; machine1.machineType = "TestVaskemaskine"; machine1.timesUsed = 0; machine1.broken = false; Machine machine2 = new Machine(); machine2.LaundryRoom1 = LaundryRoom; machine2.machineType = "TestVaskemaskine"; machine2.timesUsed = 0; machine2.broken = false; Machine machine3 = new Machine(); machine3.LaundryRoom1 = LaundryRoom; machine3.machineType = "TestVaskemaskine"; machine3.timesUsed = 0; machine3.broken = false; LaundryUser = new LaundryUser(); LaundryUser.name = "Eunji1"; LaundryUser.LaundryRoom1 = LaundryRoom; Reservation r1 = new Reservation(); r1.reservationDate = new DateTime(2015, 01, 05); r1.LaundryUser1 = LaundryUser; r1.Machines.Add(machine1); r1.Machines.Add(machine2); Reservation r2 = new Reservation(); r2.reservationDate = new DateTime(2016, 12, 04); r2.LaundryUser1 = LaundryUser; r2.Machines.Add(machine1); Reservation r3 = new Reservation(); r3.reservationDate = new DateTime(2016, 12, 03); r3.LaundryUser1 = LaundryUser; r3.Machines.Add(machine1); r3.Machines.Add(machine3); Reservation r4 = new Reservation(); r4.reservationDate = new DateTime(2015, 01, 03); r4.LaundryUser1 = LaundryUser; r4.Machines.Add(machine1); r4.Machines.Add(machine3); try { _db.LaundryRooms.Add(LaundryRoom); _db.LaundryUsers.Add(LaundryUser); _db.Machines.Add(machine1); _db.Machines.Add(machine2); _db.Machines.Add(machine3); _db.Reservations.Add(r1); _db.Reservations.Add(r2); _db.Reservations.Add(r3); _db.Reservations.Add(r4); _db.SaveChanges(); } catch (DbUpdateException e) { Console.WriteLine(e.InnerException); } }
public ActionResult PickWashTime(String userid, int resid) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); return(View(laundryUser)); }
public static void SeedUsers(UserManager <ApplicationUser> userManager, ApplicationDbContext context) { ApplicationDbContext _context = context; IDataAccessAction dataAcces = new DataAccsessAction(_context); const bool emailConfirmed = true; //=================== Creating LaundryUsers ========================== const string laundryUserEmail = "*****@*****.**"; const string laundryUserPassword = "******"; const string laundryUserCell = "20212223"; const string laundryUserName = "******"; const string laundryUserPayment = "MobilePay"; const bool active = true; if (!dataAcces.LaundryUsers.LaundryUserExists(laundryUserEmail)) { var user3 = new LaundryUser(); user3.UserName = laundryUserEmail; user3.Email = laundryUserEmail; user3.EmailConfirmed = emailConfirmed; user3.PhoneNumber = laundryUserCell; user3.Name = laundryUserName; user3.PaymentMethod = laundryUserPayment; user3.ActiveUser = active; IdentityResult result = userManager.CreateAsync(user3, laundryUserPassword).Result; if (result.Succeeded) //Add claim to user { userManager.AddClaimAsync(user3, new Claim("LaundryUser", "IsLaundryUser")).Wait(); } } const string laundryUser2Email = "*****@*****.**"; const string laundryUser2Password = "******"; const string laundryUser2Cell = "88888888"; const string laundryUser2Name = "Dave Jensens"; const string laundryUser2Payment = "MobilePay"; if (!dataAcces.LaundryUsers.LaundryUserExists(laundryUser2Email)) { var user4 = new LaundryUser(); user4.UserName = laundryUser2Email; user4.Email = laundryUser2Email; user4.EmailConfirmed = emailConfirmed; user4.PhoneNumber = laundryUser2Cell; user4.Name = laundryUser2Name; user4.PaymentMethod = laundryUser2Payment; user4.ActiveUser = active; IdentityResult result = userManager.CreateAsync(user4, laundryUser2Password).Result; if (result.Succeeded) //Add claim to user { userManager.AddClaimAsync(user4, new Claim("LaundryUser", "IsLaundryUser")).Wait(); } } //=================== Creating LaundryLog ========================== const string infoForLog = "This is a damn test"; DateTime logTime = DateTime.Now; const string infoForLog2 = "This is a damn test too"; DateTime logTime2 = DateTime.Now; var user3ForLog = dataAcces.LaundryUsers.GetSingleLaundryUser("*****@*****.**"); if (user3ForLog != null) { if (user3ForLog.LaundryHistory.Count() == 0) { var user3Log = new LaundryLog(); user3Log.LogDate = logTime; user3Log.LogInfo = infoForLog; user3ForLog.LaundryHistory.Add(user3Log); context.SaveChanges(); } } //var user3Log2 = new LaundryLog(); //user3Log2.LogDate = logTime2; //user3Log2.LogInfo = infoForLog2; //user3ForLog.LaundryHistory.Add(user3Log2); //dataAcces.Complete(); //=================== Creating UserAdmin user ========================== const string userAdminEmail = "*****@*****.**"; const string userAdminPassword = "******"; const string userAdminCell = "20212223"; const string userAdminName = "Knud Knudsen"; const string userAdminPayment = "MobilePay"; if (!dataAcces.UserAdmins.UserExists(userAdminEmail)) { var user2 = new UserAdmin(); user2.UserName = userAdminEmail; user2.Email = userAdminEmail; user2.EmailConfirmed = emailConfirmed; user2.PhoneNumber = userAdminCell; user2.Name = userAdminName; user2.PaymentMethod = userAdminPayment; IdentityResult result = userManager.CreateAsync(user2, userAdminPassword).Result; if (result.Succeeded) //Add claim to user { userManager.AddClaimAsync(user2, new Claim("UserAdmin", "IsUserAdmin")).Wait(); } } var useradmin = dataAcces.UserAdmins.GetSingleUserAdmin(userAdminEmail); if (useradmin != null) { //Adding user to UserAdmin: if (useradmin.Users != null) { useradmin.Users.Add(dataAcces.LaundryUsers.GetSingleLaundryUser(laundryUserEmail)); } dataAcces.Complete(); } //==================== Creating System Admin user ============================================ const string systemAdminEmail = "*****@*****.**"; const string systemAdminPassword = "******"; const string systemAdminCell = "20212223"; const string systemAdminName = "Kvart Palle"; if (!dataAcces.SystemAdmins.UserExists(systemAdminEmail)) { var user1 = new SystemAdmin(); user1.UserName = systemAdminEmail; user1.Email = systemAdminEmail; user1.EmailConfirmed = emailConfirmed; user1.PhoneNumber = systemAdminCell; user1.Name = systemAdminName; IdentityResult result = userManager.CreateAsync(user1, systemAdminPassword).Result; if (result.Succeeded) //Add claim to user { userManager.AddClaimAsync(user1, new Claim("SystemAdmin", "IsSystemAdmin")).Wait(); } //Adding users to SystemAdmin: var systemAdmin = dataAcces.SystemAdmins.GetSingleSystemAdmin(systemAdminEmail); systemAdmin.LaundryUsers.Add(dataAcces.LaundryUsers.GetSingleLaundryUser(laundryUserEmail)); systemAdmin.UserAdmins.Add(dataAcces.UserAdmins.GetSingleUserAdmin(userAdminEmail)); dataAcces.Complete(); } }
public void Seed() { _context.Database.EnsureCreated(); var user1 = new LaundryUser() { Name = "testerlaundryuser", PaymentMethod = "cash", Address = new Address() { Country = "Denmark", StreetAddress = "Testvej 1", Zipcode = "8700" }, ActiveUser = true, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 10 - 08) }; var user2 = new LaundryUser() { Name = "testerlaundryuser2", PaymentMethod = "mobilepay", Address = new Address() { Country = "Denmark", StreetAddress = "Testvej 1", Zipcode = "8700" }, ActiveUser = true, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 10 - 08) }; _uut.LaundryUsers.AddLaundryUser(user1); _uut.LaundryUsers.AddLaundryUser(user2); _uut.Complete(); var machine1 = new Machine() { Type = "Washer", ModelNumber = "123456789dt", InstallationDate = new DateTime(2021 - 10 - 08) }; var machine2 = new Machine() { Type = "Dryer", ModelNumber = "123456789ht", InstallationDate = new DateTime(2021 - 10 - 08) }; _uut.Machines.AddMachine(machine1); _uut.Machines.AddMachine(machine2); _uut.Complete(); var admin1 = new UserAdmin() { Name = "Tester1", PaymentMethod = "Cash", Machines = new List <Machine>() { machine1, machine2 }, Users = new List <LaundryUser>() { user1, user2 }, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 08 - 08), Email = "*****@*****.**", UserName = "******", EmailConfirmed = true }; _uut.UserAdmins.AddUserAdmin(admin1); _uut.Complete(); var systemAdmin = new SystemAdmin() { Name = "Jefe", UserAdmins = new List <UserAdmin> { admin1 }, LaundryUsers = new List <LaundryUser> { user1, user2 }, Email = "*****@*****.**", EmailConfirmed = true, PhoneNumber = "12345678", UserName = "******" }; _uut.SystemAdmins.AddSystemAdmin(systemAdmin); _uut.Complete(); }
public void Seed() { _context.Database.EnsureCreated(); var user1 = new LaundryUser() { Name = "testerlaundryuser", PaymentMethod = "cash", Address = new Address() { Country = "Denmark", StreetAddress = "Testvej 1", Zipcode = "8700" }, ActiveUser = true, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 10 - 08) }; var user2 = new LaundryUser() { Name = "testerlaundryuser2", PaymentMethod = "mobilepay", Address = new Address() { Country = "Denmark", StreetAddress = "Testvej 1", Zipcode = "8700" }, ActiveUser = true, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 10 - 08) }; var machine1 = new Machine() { Type = "Washer", ModelNumber = "123456789dt", InstallationDate = new DateTime(2021 - 10 - 08) }; var machine2 = new Machine() { Type = "Dryer", ModelNumber = "123456789ht", InstallationDate = new DateTime(2021 - 10 - 08) }; var admin1 = new UserAdmin() { Name = "Tester1", PaymentMethod = "Cash", Machines = new List <Machine>() { machine1, machine2 }, Users = new List <LaundryUser>() { user1, user2 }, FinancialBalance = 1200, PaymentDueDate = new DateTime(2021 - 08 - 08), Email = "*****@*****.**", UserName = "******", EmailConfirmed = true }; var admin2 = new UserAdmin() { Name = "Tester2", PaymentMethod = "Mobilepay", //Machines = new List<Machine>() { machine1, machine2 }, //Users = new List<LaundryUser>() { user1, user2 }, FinancialBalance = 1400, PaymentDueDate = new DateTime(2021 - 10 - 08), Email = "*****@*****.**", UserName = "******", EmailConfirmed = true }; _context.UserAdmins.AddRange(admin1, admin2); _context.SaveChanges(); }
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 ActionResult Reservation(String userid) { LaundryUser laundryUser = Service.Service.FindLaundryUser(userid); return(View(laundryUser)); }