예제 #1
0
 /// <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;
 }
예제 #2
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
            }
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
            */
        }
예제 #5
0
 /// <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);
       */
 }
예제 #6
0
        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);
예제 #11
0
 /// <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();
 }
예제 #12
0
 /// <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();
 }
예제 #13
0
 /// <summary>
 /// Oppdaterer endringer i ett chatroom
 /// </summary>
 /// <param name="room">ett rom som skal endres</param>
 public void updateChannel(Chatroom newroom)
 {
     db.SubmitChanges();
 }
예제 #14
0
        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/");
            }
        }