Пример #1
0
        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
            }
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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);
Пример #9
0
 /// <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();
 }
Пример #10
0
 /// <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();
 }