/* * Metod för att blocka en användare. * Inparametrarna är: * ID:t på den användare som ska blockas * ID:t på den admin som blockar användaren * Orsaken till blockningen * Dagens datum * Datumet till vilket användaren är blockad */ public bool BlockUser(int Id, int AdminId, string reason, DateTime dateTo) { // Hitta rätt användare i databasen var user = db.Users.Where(x => x.ID == Id).FirstOrDefault(); // Nytt objekt för den blockade användaren BlockedUsers blocked = new BlockedUsers(); // Konvertera värdet av variablen DateTo så att den endast visar datum var toDate = dateTo.Date; // Variabel för dagens datum och tid var dateandtime = DateTime.Now; // Konvertera dagens datum och tid till endast datum var date = dateandtime.Date; // Om användare inte redan är blockad if (user.StatusID != 3) { // Användaren tilldelas status-id 3, vilket innebär blockad user.StatusID = 3; // Det nya objektet, som sparas i databasen, ´tilldelas värdena av användaruppgifterna blocked.UserID = Id; blocked.SuspendedBy = AdminId; blocked.Reason = reason; blocked.DateFrom = date; blocked.DateTo = toDate; // Objektet läggs till i databasen db.BlockedUsers.Add(blocked); db.SaveChanges(); return(true); } // Om användaren redan är blockad else { return(false); } }
/* * Denna metod kollar om en blockering skall låsas upp, utifrån dagens datum samt det datum vid vilket användaren blockades. * Metoden tar Id:t från den specifika användaren som inparameter. */ private bool CheckBlockDate(int BlockedId) { // Hitta användaren i BlockedUser-tabellen BlockedUsers BlockedUser = (from x in db.BlockedUsers where x.UserID == BlockedId select x).FirstOrDefault(); // Om en användare hittas if (BlockedUser != null) { // Om dagens datum är längre fram i tiden än det datum som blockeringen skall tas bort if (DateTime.Now > BlockedUser.DateTo) { /* * Användaren finns nu både i User-tabellen coh i BlockedUser-tabellen. * I User-tabellen vill vi kunna ändra status-Id på användaren från 3 (blockad) till 1 (aktiv). * Därför plockar vi nu även ut användaren från User-tabellen. */ var user = db.Users.Where(x => x.ID == BlockedId).FirstOrDefault(); // Här ändras Status-Id:t user.StatusID = 1; // Den blockade användaren tas bort ur BlockedUser-tabellen och finns nu således bara kvar i User-tabellen db.BlockedUsers.Remove(BlockedUser); // Ändringarna sparas i databasen db.SaveChanges(); return(true); } // Om dagens datum inte är längre fram i tiden än det datum till vilket användaren ska vara blockad else { return(false); } } // Om en användare inte hittas i BlockedUser-tabellen else { return(false); } }