public async Task <IActionResult> Unbook(long?id)
        {
            if (User.HasClaim("LaundryUser", "IsLaundryUser"))
            {
                var unBookOrder = await _dataAccess.ReservedList.GetUnBookOrder(id);

                if (unBookOrder == null)
                {
                    return(NotFound());
                }
                var bookingOrder = await _dataAccess.BookingList.GetBookingListOrder(unBookOrder.OldId);



                bookingOrder.Status = true;
                _dataAccess.ReservedList.RemoveBooking(unBookOrder);
                /*Log Entry*/
                var LUser        = User.Identity.Name;
                var tempUserUn   = _dataAccess.LaundryUsers.GetSingleLaundryUser(LUser);
                var laundryLogUn = new LaundryLog();
                laundryLogUn.LaundryUser = tempUserUn;
                laundryLogUn.LogDate     = DateTime.Now;
                laundryLogUn.LogInfo     = ($"Unbooked machine {unBookOrder.Machine.MachineId} that was reserved at {unBookOrder.Date} at {unBookOrder.Time}");
                _dataAccess.LaundryLogs.AddLaundryLog(laundryLogUn);
                _dataAccess.Complete();


                var ReservedBookingList = await _dataAccess.ReservedList.GetReservedBookingList();

                List <BookingListViewModel> modelList = new List <BookingListViewModel>();

                foreach (var booking in ReservedBookingList)
                {
                    if (booking.Name == User.Identity.Name)
                    {
                        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);
                        _dataAccess.Complete();
                    }
                }

                return(View("UsersBookings", modelList));
            }

            return(Unauthorized());
        }
Beispiel #2
0
        public void AddLaundryLog_AddedCorrectly_True()
        {
            var logToAdd = new LaundryLog()
            {
                LogInfo = "LogTest2",
                LogDate = new DateTime(2021 - 10 - 10)
            };

            _uut.LaundryLogs.AddLaundryLog(logToAdd);
            _uut.Complete();

            var temp = _uut.LaundryLogs.LaundryLogExists("LogTest2");

            Assert.True(temp);

            Dispose();
        }
Beispiel #3
0
        public void Seed()
        {
            _context.Database.EnsureCreated();
            //var admin1 = new UserAdmin()
            //{
            //    Name = "Tester1",
            //    PaymentMethod = "Cash",
            //    FinancialBalance = 1200,
            //    PaymentDueDate = new DateTime(2021 - 08 - 08),
            //    Email = "*****@*****.**",
            //    UserName = "******",
            //    EmailConfirmed = true
            //};
            //_uut.UserAdmins.AddUserAdmin(admin1);
            //_uut.Complete();

            //var user1 = new LaundryUser()
            //{
            //    Name = "Peter Pedal",
            //    PaymentMethod = "cash",
            //    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.Complete();

            var log1 = new LaundryLog()
            {
                LogInfo = "Logtest1",
                LogDate = new DateTime(2021 - 05 - 15)
            };

            _uut.LaundryLogs.AddLaundryLog(log1);
            _uut.Complete();
        }
        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());
        }
Beispiel #5
0
        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();
            }
        }