public ActionResult CreateChatrooms(FormCollection collection) { try { Chatroom room = new Chatroom(); List<Permitted_user> users = new List<Permitted_user>(); user = new Permitted_user(); //Logikk for å legge til ett nytt rom room.Date = System.DateTime.Now; room.OwnerId = userRep.getUserId(User.Identity.Name); UpdateModel(room, "room"); if (room.Name == null) //Skjekker om man skriver inn romnavn { ModelState.AddModelError("room.Name", "Dette feltet må fylles ut"); return View(new ChannelFormViewModel(room, User.Identity.Name)); } if (!input.IsMatch(room.Name)) //Skjekker om rommet er i rett format { ModelState.AddModelError("room.Name", "Navnet kan bare være av bokstaver og tall, samt 25 eller færre tegn."); return View(new ChannelFormViewModel(room, User.Identity.Name)); } channelRep.addChannel(room); string[] selectedValues; if (!(collection["Users"] == null)) //Henter en liste over brukerid, og skjekker om en er null { selectedValues = collection["Users"].Split(','); if (room.IsPublic == "No") //Hvis rommet er public er det ikke vits å ha tilatte brukere { foreach (string s in selectedValues) //For hver bruker du velger legger han dem til i databasen { user = new Permitted_user(); user.Chatroom = room.Id; user.UserId = Guid.Parse(s); userRep.addPermittedUsers(user); } } } //Om alt gikk bra sendes du til Channel/Index return RedirectToAction("Index"); } catch { return View("DatabaseError"); //Sendes til ett error view } }
public ActionResult EditChatrooms(int id, FormCollection collection) { try { //Logikk for å endre ett rom Chatroom room = channelRep.showChatroom(id); UpdateModel(room, "room"); List<Permitted_user> users = userRep.showUserWithChatroom(id); if (room.Name == null) //Skjekker om man har skrevet inn romnavn { ModelState.AddModelError("room.Name", "Dette feltet må fylles ut"); return View(new ChannelFormViewModel(room, users, User.Identity.Name)); } if (!input.IsMatch(room.Name)) //Skjekker om rommet er i rett format { ModelState.AddModelError("room.Name", "Navnet kan bare være av bokstaver og tall, samt 25 eller færre tegn."); return View(new ChannelFormViewModel(room, users, User.Identity.Name)); } channelRep.updateChannel(room); //Samme logikk som i Create if (!(collection["Users"] == null)) { string[] selectedValues = collection["Users"].Split(','); foreach (string s in selectedValues) { user = new Permitted_user(); user.Chatroom = room.Id; user.UserId = Guid.Parse(s); userRep.addPermittedUsers(user); } } //Her legger han brukere du velger å fjerne fra rommet ditt i en liste //og så sletter dem fra databasen if (!(collection["CurrentUsers"] == null)) { string[] selectedCurrentUsers = collection["CurrentUsers"].Split(','); foreach (string s in selectedCurrentUsers) { Permitted_user u = userRep.showPermittedUser(s); userRep.deletePermittedUsers(u); System.Threading.Thread.Sleep(10); // Fant ut at databasen ikke håndterte spørringene raskt nok, og ikke alle gikk gjennom hvær gang, så la inn en liten pause. } } return RedirectToAction("ListRooms"); } catch { return View("DatabaseError"); } }
public ActionResult Room(int id) { Chatroom channel = channelRep.showChatroom(id); user = userRep.showPermittedUser(userRep.getUserId(User.Identity.Name).ToString()); List<Permitted_user> users = userRep.showUserWithChatroom(id); view = new MessageFormViewModel(id); if (channel == null) //Skjekker om rommet finnes return View("Notfound"); if (user == null) return View("Error"); foreach (Permitted_user u in users) //Skjekker om brukeren har tilgang til rommet eller om man eier det. { if (channel.IsPublic == "No" && u.UserId == user.UserId) return View(view); else if (channel.OwnerId == (userRep.getOwner(channel).UserId)) return View(view); } if (channel.IsPublic == "Yes") return View(view); //Kommer man hit har det skjedd noe galt return View("Error"); }
private void detach_Permitted_users(Permitted_user entity) { this.SendPropertyChanging(); entity.Chatroom1 = null; }
private void detach_Permitted_users(Permitted_user entity) { this.SendPropertyChanging(); entity.aspnet_User = null; }
partial void DeletePermitted_user(Permitted_user instance);
partial void UpdatePermitted_user(Permitted_user instance);
partial void InsertPermitted_user(Permitted_user instance);
/// <summary> /// Fjerner bruker fra ditt rom /// </summary> /// <param name="user">en tilatt bruker</param> public void deletePermittedUsers(Permitted_user user) { db.Permitted_users.DeleteOnSubmit(user); db.SubmitChanges(); }
/// <summary> /// Legger til tilatte brukere /// </summary> /// <param name="user">en tilatt bruker</param> public void addPermittedUsers(Permitted_user user) { db.Permitted_users.InsertOnSubmit(user); db.SubmitChanges(); }