/// <summary> /// Henter eier av ett chatroom /// </summary> /// <param name="room">ett chatroom</param> /// <returns>aspnet_User</returns> public aspnet_User getOwner(Chatroom room) { aspnet_User user = (from u in db.aspnet_Users where u.UserId == room.OwnerId select u).FirstOrDefault(); return user; }
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 } }
/// <summary> /// Konstruktør som gir oss tilgang på flere lister /// i våre admin views. /// </summary> /// <param name="c">Ett chatroom</param> /// <param name="_username">brukernavn til den som er pålogget</param> public AdminViewModel(Chatroom c, string _username) { username = _username; db = new ChannelDataClassesDataContext(); rep = new AdminRepository(username); room = c; users = new SelectList(rep.ShowUsers, "UserId", "UserName"); chatrooms = new SelectList(rep.ShowChatrooms(), "OwnerId", "Name"); UpdatePermittedUsersList(c.Id); //permittedUsers = new SelectList(rep.PermittedUsers, "Chatroom", "UserId"); permittedUsers = new SelectList(rep.getUserNamesPermitted()); if (rep.IsPublic(chatroomId).ToLower() == "yes") isPublic = true; else isPublic = false; // maxUsers = rep.GetMaxUsers(chatroomId); }
/// <summary> /// Metoden henter ut to lister som sendes til viewet. Den ene er av brukere med tilgang, og den andre er med brukere som ikke har tilgang. /// Brukeren skal kunne velge i disse listene for å legge dem til i den andre listen. /// </summary> /// <param name="c"></param> /// <param name="u"></param> /// <param name="userName"></param> public ChannelFormViewModel(Chatroom c, List<Permitted_user> u, string userName) { userRep = new UserRepository(); channelRep = new ChannelRepository(); room = c; permittedUsers = u; allUsers = userRep.showUsersNotInChatroom(u); finalUsers = userRep.showUsersNotInChatroom(u); foreach (aspnet_User us in allUsers) // sjekker etter brukeren som laget chatroomet. For så å fjerne brukerobjektet fra en liste som blir sendt til viewet. { if (us.LoweredUserName == userName) finalUsers.Remove(us); } // Liste med brukere som ikke er tilatt i rommet newUsers = new MultiSelectList(finalUsers, "UserId", "UserName", selectedValuesUser); // Liste med brukere som er i rommet currentUsers = new MultiSelectList(userRep.showCurrentUsers(u), "UserId", "UserName", selectedValuesCurrentUser); /** * Skal brukes i Oblig 2 * * bannedUsers = b; bannedList = new MultiSelectList(channelRep.showBannedUsers(b), "UserId", "UserName", selectedValuesbannedUser); notBannedList = new MultiSelectList(channelRep.showUnBannedUsers(b), "UserId", "UserName", selectedValuesUnBannedUsers); */ }
/// <summary> /// Metoden henter en liste med brukere som brukeren skal kunne markere og gi tilgang til chatroomet. /// Listen vil ekskludere brukeren som oppretter chatroomet. /// </summary> /// <param name="c">Et chatroom objekt</param> /// <param name="userName">Brukernavn til brukeren</param> public ChannelFormViewModel(Chatroom c, string userName) { userRep = new UserRepository(); channelRep = new ChannelRepository(); room = c; allUsers = userRep.showAllUsers().ToList(); finalUsers = userRep.showAllUsers().ToList(); foreach (aspnet_User u in allUsers) // sjekker etter brukeren som laget chatroomet. For så å fjerne brukerobjektet fra en liste som blir sendt til viewet. { if (u.LoweredUserName == userName) finalUsers.Remove(u); //sletter brukeren fra viewet som brukes } newUsers = new MultiSelectList(finalUsers, "UserId", "UserName", selectedValuesUser); /* * Skal brukes i Oblig 2 bannedList = new MultiSelectList(channelRep.showAllUsers(), "UserId", "UserName", selectedValuesbannedUser); */ }
public ActionResult Submit(FormCollection collection) { try { Message mess = new Message(); Chatroom chat = new Chatroom(); //Logikk for å lagre en beskjed i databasen mess.Date = System.DateTime.Now; mess.AuthorId = userRep.getUserId(User.Identity.Name); UpdateModel(chat, "chat"); UpdateModel(mess, "mess"); mess.Chatroom = chat.Id; if (mess.Message1 == null || mess.Message1.Length > 200) //Skjekker om beskjedeb er tom { ModelState.AddModelError("mess.Message1", "Må være mellom 1 og 200 tegn"); return View("Room", new MessageFormViewModel(mess.Chatroom, mess)); } messageRep.addMessage(mess); return RedirectToAction("../Channel/Room/" + chat.Name); } catch { return View(); } }
private void detach_Chatrooms(Chatroom entity) { this.SendPropertyChanging(); entity.aspnet_User = null; }
partial void DeleteChatroom(Chatroom instance);
partial void UpdateChatroom(Chatroom instance);
partial void InsertChatroom(Chatroom instance);
/// <summary> /// Sletter ett chatroom /// </summary> /// <param name="room">ett chatroom klar til å slettes</param> public void deleteChatrooms(Chatroom room) { db.Chatrooms.DeleteOnSubmit(room); db.SubmitChanges(); }
/// <summary> /// Legger ett rom til databasen /// </summary> /// <param name="newChatRoom">ett rom som skal legges i databasen</param> public void addChannel(Chatroom newChatRoom) { db.Chatrooms.InsertOnSubmit(newChatRoom); db.SubmitChanges(); }
/// <summary> /// Oppdaterer endringer i ett chatroom /// </summary> /// <param name="room">ett rom som skal endres</param> public void updateChannel(Chatroom newroom) { db.SubmitChanges(); }
public ActionResult Submit(FormCollection collection) { try { Message mess = new Message(); Chatroom chat = new Chatroom(); Image image = new Image(); HttpPostedFileBase file; //Logikk for å lagre en beskjed i databasen mess.Date = System.DateTime.Now; mess.AuthorId = userRep.getUserId(User.Identity.Name); UpdateModel(chat, "chat"); UpdateModel(mess, "mess"); mess.Chatroom = chat.Id; if (mess.Message1 != null) { if (mess.Message1.Length > 200) //Skjekker om beskjedeb er tom { ModelState.AddModelError("mess.Message1", "Må være under 200 tegn"); return View("Room", new MessageFormViewModel(mess.Chatroom, mess)); } } file = Request.Files[0]; //Logikk for å få bilde inn i databasen if (file.ContentLength > 0) { image.imageName = file.FileName; image.imageSize = file.ContentLength; image.imageType = file.ContentType; byte[] theImage = new byte[file.ContentLength]; file.InputStream.Read(theImage, 0, (int)file.ContentLength); image.image1 = theImage; mess.imageId = messageRep.addImage(image); } messageRep.addMessage(mess); return RedirectToAction("../Channel/Room/"+chat.Id); } catch { return View("../Channel/"); } }