Example #1
0
        public ActionResult Index(string Email, string[] ListFriends)
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();
            BigSearchFriendModel model  = new BigSearchFriendModel();

            model.tosendinginv = new SearchFriendModel();

            model.tosendinginv.ListFriends = ListFriends;
            model.toinivitations           = new SearchFriendModel();

            ApplicationUser user      = getUser();
            var             allusers  = dbcont.Users.ToArray();
            var             inviteeID = allusers[0].Id;

            foreach (var x in allusers)
            {
                if (x.Email.Equals(Email))
                {
                    inviteeID = x.Id;
                }
            }

            Invitation invitetoAdd = new Invitation
            {
                firstUserId  = user.Id,
                secondUserId = inviteeID
            };

            using (var db = new conferenceEntities2())
            {
                db.Invitation.Add(invitetoAdd);
                db.SaveChanges();
            }
            return(View(model));
        }
Example #2
0
        }     //roomNotExists()

        /// <summary>
        /// Pobiera listę znajomych danego użytkownika
        /// </summary>
        /// <param name="applicationUser">Aktualnie zalogowany użytkownik</param>
        /// <returns></returns>
        private List <SearchFriendModel> getFriends(ApplicationUser applicationUser)
        {
            using (var db = new conferenceEntities2())
            {
                ApplicationUser[] users;
                using (ApplicationDbContext adb = new ApplicationDbContext())
                {
                    users = adb.Users.ToArray();
                }//using

                var friendIdsList = (from friend in db.Friends
                                     where friend.firstUserId == applicationUser.Id
                                     select friend.secondUserId).ToList();

                List <SearchFriendModel> friendsCustomList = new List <SearchFriendModel>();

                foreach (var friendId in friendIdsList)
                {
                    string username = users.First(u => u.Id == friendId).UserName;
                    friendsCustomList.Add(new SearchFriendModel {
                        Email = username
                    });
                }//foreach

                return(friendsCustomList);
            } //using
        }     //getFriends()
Example #3
0
        }         //inviteToRoom()

        public string roomInvite()
        {
            ApplicationUser user     = getUser();
            string          response = "";
            // adres serwera
            string url = Request.Url.Host;

            using (var db = new conferenceEntities2())
            {
                // pobieranie zaproszeń do pokoju
                var allRoomInvitations = db.Set <RoomsInvitations>();
                RoomsInvitations[] myRoomInvitations = (from invitation in allRoomInvitations
                                                        where invitation.invitee == user.Id
                                                        select invitation).ToArray();

                // lista wszystkich użytkowników
                ApplicationDbContext adb = new ApplicationDbContext();
                var users = adb.Users.ToArray();

                foreach (RoomsInvitations ri in myRoomInvitations)
                {
                    string inviterName = users.First(u => u.Id == ri.inviterId).UserName;
                    var    room        = db.Rooms.First(r => r.roomId == ri.roomId);
                    string msg         = "<figure id=\"roomInvite" + room.name + "\">Użytkownik <b>" + inviterName + "</b> zaprosił Cię do pokoju <b>" + room.name + "</b><br />"
                                         + "Link do pokoju: " + url + "/?" + room.name + "<br />" + "Hasło: "
                                         + "<form style='display:inline' action = \"/?" + room.name + "\" method = \"post\"><input type=\"password\" value=\""
                                         + room.roomPassword + "\" name = \"password\"><input type = \"submit\" value = \"Dołącz\"></form>"
                                         + "<button type=\"button\" value=\"" + room.name + "\" id=\"deleteInvitationButton\">Usuń</button><br /></figure>";

                    response += msg;
                } //foreach
            }     //using

            return(response);
        }//roomInvite()
Example #4
0
        }     //removeEmptyRoomInvitations()

        /// <summary>
        /// Dodawanie nowego pokoju
        /// </summary>
        /// <param name="roomToAdd">Pokój do dodania</param>
        /// <param name="oldRoomToAdd">Pokój do dodania</param>
        /// <returns></returns>
        private bool addRoom(Rooms roomToAdd, OldRooms oldRoomToAdd)
        {
            using (var db = new conferenceEntities2())
            {
                var rooms    = db.Set <Rooms>();
                var oldRooms = db.Set <OldRooms>();

                // dodwanie pokojów do bazy
                rooms.Add(roomToAdd);
                oldRooms.Add(oldRoomToAdd);
                db.SaveChanges();

                int roomId    = roomToAdd.roomId;
                int oldRoomId = oldRoomToAdd.oldRoomId;
                if (roomId == oldRoomId)
                {
                    // dodawanie twórcy do utworzonego pokoju
                    addUserToRoom(roomId, roomToAdd.ownerId);

                    return(true);
                }//if

                // usuwanie pokojów z bazy jeśli mają inne id
                rooms.Remove(roomToAdd);
                oldRooms.Remove(oldRoomToAdd);
                db.SaveChanges();
            }//using

            return(false);
        }//addRoom()
Example #5
0
        public ActionResult Contact()
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();

            var allusers = dbcont.Users.ToArray();

            BigSearchFriendModel model = new BigSearchFriendModel();

            model.toinivitations = new SearchFriendModel();

            ApplicationUser user = getUser();

            try
            {
                ViewBag.Nick = user.Email.ToString();

                using (var db = new conferenceEntities2())
                {
                    var find = from docs in db.Invitation where docs.secondUserId == user.Id select docs;

                    var invitations = find.ToArray();



                    if (invitations.Count() > 0)
                    {
                        ViewBag.mess = invitations.Count().ToString();

                        model.toinivitations.ListFriends = new string[invitations.Count()];
                        int licz = 0;
                        foreach (var x in invitations)
                        {
                            foreach (var z in allusers)
                            {
                                if (z.Id.Equals(x.firstUserId))
                                {
                                    model.toinivitations.ListFriends.SetValue(z.Email, licz);
                                    licz++;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        ViewBag.mess = null;
                    }
                }
            }
            catch (Exception)
            {
            }

            ViewBag.Message = "Temat: Wideokonferncje";

            return(View(model));
        }
Example #6
0
        public ActionResult Friendrejected(string email, string[] model, string view)
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();

            ApplicationUser user     = getUser();
            var             allusers = dbcont.Users.ToArray();

            BigSearchFriendModel br = new BigSearchFriendModel();

            br.toinivitations = new SearchFriendModel();

            br.toinivitations.Email       = email;
            br.toinivitations.ListFriends = model;
            var IDfr = allusers[0].Id;

            foreach (var x in allusers)
            {
                if (x.Email.Equals(email))
                {
                    IDfr = x.Id;
                    break;
                }
            }
            var        find = from docs in db.Invitation where docs.secondUserId == user.Id where docs.firstUserId == IDfr select docs;
            Invitation inv  = null;

            if (find.Any())
            {
                inv = find.First();
            }


            using (var db = new conferenceEntities2())
            {
                if (inv != null)
                {
                    db.Invitation.Attach(inv);
                    db.Invitation.Remove(inv);
                }

                db.SaveChanges();
            }
            br.tofriends = getFriends(user);

            if (view.Equals("contact"))
            {
                return(View("../Home/Contact", br));
            }
            else
            {
                return(View("../Home/Index", br));
            }
        }
Example #7
0
        public void delRoomInvite(string roomname)
        {
            ApplicationUser user = getUser();

            using (var db = new conferenceEntities2())
            {
                var roomIdToDel = db.Rooms.First(r => r.name == roomname).roomId;
                var invToDel    = db.RoomsInvitations.First(i => i.roomId == roomIdToDel && i.invitee == user.Id);

                db.RoomsInvitations.Remove(invToDel);
                db.SaveChanges();
            } //using
        }     //delRoomInvite()
Example #8
0
        public string inviteToRoom(string username, string roomname)
        {
            // użytkownik zapraszający
            ApplicationUser user = getUser();

            ApplicationUser[] users;
            using (ApplicationDbContext adb = new ApplicationDbContext())
            {
                users = adb.Users.ToArray();
            }//using
            string invitedUserId;

            try
            {
                // użytkownik zapraszany
                var invitedUser = users.First(u => u.UserName == username);
                invitedUserId = invitedUser.Id;
            }//try
            catch (InvalidOperationException)
            {
                return("Nie ma takiego użytkownika");
            }

            RoomsInvitations invitation = new RoomsInvitations()
            {
                inviterId = user.Id,
                invitee   = invitedUserId
            };

            using (var db = new conferenceEntities2())
            {
                var invitations = db.Set <RoomsInvitations>();
                var rooms       = db.Set <Rooms>();
                int roomId      = rooms.First(r => r.name == roomname).roomId;

                try
                {
                    // sprawdzanie czy użytkownik był wcześniej zaproszony
                    invitations.First(i => i.inviterId == invitation.inviterId && i.invitee == invitation.invitee && i.roomId == roomId);
                    return("Ten użytkownik został już wcześniej zaproszony.");
                }//try
                catch (InvalidOperationException)
                {
                    // wysyłanie zaproszenia
                    invitation.roomId = roomId;
                    invitations.Add(invitation);
                    db.SaveChanges();
                    return("Wysłano zaproszenie.");
                } //catch
            }     //using
        }         //inviteToRoom()
Example #9
0
        }         //deleteRoomIfEmpty()

        /// <summary>
        /// Usuwanie zaproszeń do pustego pokoju
        /// </summary>
        /// <param name="roomId">ID pokoju</param>
        private void removeEmptyRoomInvitations(int roomId)
        {
            using (var db = new conferenceEntities2())
            {
                RoomsInvitations[] roomsInvitations = (from roomsInv in db.RoomsInvitations
                                                       where roomsInv.roomId == roomId
                                                       select roomsInv).ToArray();
                foreach (var ri in roomsInvitations)
                {
                    db.RoomsInvitations.Remove(ri);
                }
                db.SaveChanges();
            } //using
        }     //removeEmptyRoomInvitations()
        public void Add(string content, string roomnamee)
        {
            using (var db = new conferenceEntities2())
            {
                var his    = db.Set <ChatHistory>();
                var roomid = db.Rooms.First(r => r.name == roomnamee).roomId;


                ChatHistory chat = new ChatHistory {
                    userId = User.Identity.GetUserId(), oldRoomId = roomid, roomname = roomnamee, username = User.Identity.GetUserName(), content = content
                };
                his.Add(chat);
                db.SaveChanges();
            }
        }
Example #11
0
        }     //getFriends()

        /// <summary>
        /// Sprawdzanie czy podane hasło pasuje do hasła pokoju.
        /// </summary>
        /// <param name="roomName">Nazwa pokoju</param>
        /// <param name="password">Hasło</param>
        /// <returns>true - hasło poprawne, false - niepoprawne</returns>
        private bool checkPass(string roomName, string password)
        {
            try
            {
                using (var db = new conferenceEntities2())
                {
                    Rooms room = db.Rooms.First(r => r.name == roomName && r.roomPassword == password);
                } //using
                return(true);
            }     //try
            catch (InvalidOperationException)
            {
                return(false);
            } //catch
        }     //checkPass()
Example #12
0
        }     //addUserToRoom()

        private bool checkRoomName(string name)
        {
            try
            {
                using (var db = new conferenceEntities2())
                {
                    var rooms = db.Set <Rooms>();
                    rooms.First(r => r.name == name);
                } //using
            }     //try
            catch (InvalidOperationException)
            {
                return(true);
            }//catch

            return(false);
        }//checkRoomName()
Example #13
0
        private bool roomNotExists(string roomName)
        {
            try
            {
                using (var db = new conferenceEntities2())
                {
                    db.Rooms.First(r => r.name == roomName);
                }//using

                // pokój isnieje
                return(false);
            }//try
            catch (InvalidOperationException)
            {
                // pokój nie istnieje
                return(true);
            } //catch
        }     //roomNotExists()
Example #14
0
        }//addRoom()

        /// <summary>
        /// Dodawanie użytkownika do tabel UsersInRoom i UsersInOldRoom
        /// </summary>
        /// <param name="roomId">ID pokoju</param>
        /// <param name="userId">ID użytkownika</param>
        private void addUserToRoom(int roomId, string userId)
        {
            using (var db = new conferenceEntities2())
            {
                // dodawanie użytkownika do aktywnego pokoju
                try
                {
                    // jeśli rzuci wyjątek to znaczy, że użytkownik jeszcze nie jest dodany
                    db.UsersInRoom.First(u => u.roomId == roomId && u.userId == userId);
                }//try
                catch (InvalidOperationException)
                {
                    // dodaj użytkownika
                    UsersInRoom userInRoom = new UsersInRoom()
                    {
                        roomId = roomId,
                        userId = userId
                    };
                    db.UsersInRoom.Add(userInRoom);
                }//catch

                // dodawanie użytkownika do archiwalnego pokoju
                try
                {
                    // jw.
                    db.UsersInOldRoom.First(u => u.oldRoomId == roomId && u.userId == userId);
                }//try
                catch (InvalidOperationException)
                {
                    UsersInOldRoom usersInOldRoom = new UsersInOldRoom()
                    {
                        oldRoomId = roomId,
                        userId    = userId
                    };
                    db.UsersInOldRoom.Add(usersInOldRoom);
                }//catch

                // zapisz zmiany
                db.SaveChanges();
            } //using
        }     //addUserToRoom()
Example #15
0
        }//leavingRoom()

        /// <summary>
        /// Usuwa pokój jeśli ten jest pusty
        /// </summary>
        /// <param name="roomId">ID pokoju</param>
        private void deleteRoomIfEmpty(int roomId)
        {
            using (var db = new conferenceEntities2())
            {
                try
                {
                    // jeśli sekwencja jest pusta to rzuci wyjątek
                    db.UsersInRoom.First(u => u.roomId == roomId);
                }//try
                catch (InvalidOperationException)
                {
                    // nie ma użytkowników w pokoju, więc zostanie usunięty
                    var room = db.Rooms.First(r => r.roomId == roomId);

                    // usuwanie zależnośći
                    removeEmptyRoomInvitations(roomId);

                    // usuwanie pokoju
                    db.Rooms.Remove(room);
                    db.SaveChanges();
                } //catch
            }     //using
        }         //deleteRoomIfEmpty()
Example #16
0
        public void leavingRoom(string roomname)
        {
            int roomId;

            using (var db = new conferenceEntities2())
            {
                try
                {
                    roomId = db.Rooms.First(r => r.name == roomname).roomId;
                    string userId    = getUser().Id;
                    var    userToDel = db.UsersInRoom.First(u => u.userId == userId && u.roomId == roomId);

                    // usuwanie
                    db.UsersInRoom.Remove(userToDel);
                    db.SaveChanges();
                }//try
                catch (InvalidOperationException) {
                    return;
                };
            }//using

            // usuwanie pokoju jeżeli jest pusty
            deleteRoomIfEmpty(roomId);
        }//leavingRoom()
Example #17
0
        // GET: Friends
        public ActionResult Index()
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();
            BigSearchFriendModel model  = new BigSearchFriendModel();

            model.tosendinginv   = new SearchFriendModel();
            model.toinivitations = new SearchFriendModel();
            var allusers = dbcont.Users.ToArray();


            ApplicationUser user = getUser();
            int             pom  = 0;

            using (var db = new conferenceEntities2())
            {
                var find = from docs in db.Invitation where docs.firstUserId == user.Id select docs;

                var invitations = find.ToArray();

                model.tosendinginv.ListFriends = new string[allusers.Count() - 1 - invitations.Count()];
                int licz = 0;
                foreach (var x in allusers)
                {
                    licz = 0;
                    if (!x.Email.Equals(user.Email.ToString()))
                    {
                        if (invitations.Count() != 0)
                        {
                            while (invitations.Count() != licz)
                            {
                                if (!invitations[licz].secondUserId.Equals(x.Id))
                                {
                                    if (licz == invitations.Count() - 1)
                                    {
                                        model.tosendinginv.ListFriends.SetValue(x.Email, pom);
                                        pom++;
                                    }
                                }
                                else
                                {
                                    break;
                                }
                                licz++;
                            }
                        }
                        else
                        {
                            model.tosendinginv.ListFriends.SetValue(x.Email, pom);
                            pom++;
                        }
                    }
                }
            }


            try
            {
                ViewBag.Nick = user.Email.ToString();

                using (var db = new conferenceEntities2())
                {
                    var find = from docs in db.Invitation where docs.secondUserId == user.Id select docs;

                    var invitations = find.ToArray();

                    if (invitations.Count() == 0)
                    {
                        ViewBag.pom = "yes";
                    }
                    else
                    {
                        ViewBag.pom = "no";
                    }

                    if (invitations.Count() > 0)
                    {
                        ViewBag.mess = invitations.Count().ToString();

                        model.toinivitations.ListFriends = new string[invitations.Count()];
                        int licz = 0;
                        foreach (var x in invitations)
                        {
                            foreach (var z in allusers)
                            {
                                if (z.Id.Equals(x.firstUserId))
                                {
                                    model.toinivitations.ListFriends.SetValue(z.Email, licz);
                                    licz++;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        ViewBag.mess = null;
                    }
                }
            }
            catch (Exception)
            {
            }


            return(View(model));
        }
Example #18
0
        public ActionResult Friendinviteaccept(string email, string[] model, string[] array)
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();

            ApplicationUser user     = getUser();
            var             allusers = dbcont.Users.ToArray();

            BigSearchFriendModel br = new BigSearchFriendModel();

            br.toinivitations           = new SearchFriendModel();
            br.tosendinginv             = new SearchFriendModel();
            br.tosendinginv.ListFriends = array;

            br.toinivitations.Email       = email;
            br.toinivitations.ListFriends = model;
            var IDfr = allusers[0].Id;

            foreach (var x in allusers)
            {
                if (x.Email.Equals(email))
                {
                    IDfr = x.Id;
                    break;
                }
            }

            Friends fr1 = new Friends
            {
                firstUserId  = user.Id,
                secondUserId = IDfr
            };

            Friends fr2 = new Friends
            {
                firstUserId  = IDfr,
                secondUserId = user.Id
            };



            using (var db = new conferenceEntities2())
            {
                var        find = from docs in db.Invitation where docs.secondUserId == user.Id where docs.firstUserId == IDfr select docs;
                Invitation inv  = null;
                if (find.Any())
                {
                    inv = find.First();
                }

                db.Friends.Add(fr1);
                db.Friends.Add(fr2);
                db.SaveChanges();
                if (inv != null)
                {
                    db.Invitation.Attach(inv);
                    db.Invitation.Remove(inv);
                }

                db.SaveChanges();
            }


            return(View("../Friends/Index", br));
        }
Example #19
0
        public ActionResult Index(string password)
        {
            ApplicationDbContext dbcont = new ApplicationDbContext();

            var allusers = dbcont.Users.ToArray();

            BigSearchFriendModel model = new BigSearchFriendModel();

            model.toinivitations = new SearchFriendModel();

            ApplicationUser user = getUser();

            try
            {
                ViewBag.Nick = user.Email.ToString();

                using (var db = new conferenceEntities2())
                {
                    var find = from docs in db.Invitation where docs.secondUserId == user.Id select docs;

                    var invitations = find.ToArray();



                    if (invitations.Count() > 0)
                    {
                        ViewBag.mess = invitations.Count().ToString();

                        model.toinivitations.ListFriends = new string[invitations.Count()];
                        int licz = 0;
                        foreach (var x in invitations)
                        {
                            foreach (var z in allusers)
                            {
                                if (z.Id.Equals(x.firstUserId))
                                {
                                    model.toinivitations.ListFriends.SetValue(z.Email, licz);
                                    licz++;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        ViewBag.mess = null;
                    }
                }
            }
            catch (Exception)
            {
            }


            try
            {
                // sprawdzanie URL, jeśli nie rzuci wyjątku to znaczy, że użytkownik wszedł do pokoju
                string   url        = Request.Url.AbsoluteUri;
                string[] splitedUrl = url.Split('?');
                string   roomName   = splitedUrl[1];

                // sprawdzanie czy pokój isnieje
                if (roomNotExists(roomName))
                {
                    return(View("RoomNotExist"));
                }

                // inicjalizacja pustego hasła (pokój nie ma hasła)
                if (string.IsNullOrEmpty(password))
                {
                    password = "";
                }

                // sprawdzanie hasła do pokoju
                if (checkPass(roomName, password))
                {
                    using (var db = new conferenceEntities2())
                    {
                        // usuwanie zaproszeń do pokoju (jeśli były)
                        int roomId           = db.Rooms.First(r => r.name == roomName).roomId;
                        var invitationsArray = (from invit in db.RoomsInvitations
                                                where invit.invitee == user.Id && invit.roomId == roomId
                                                select invit).ToArray();
                        foreach (var i in invitationsArray)
                        {
                            db.RoomsInvitations.Remove(i);
                        }//foreach
                        db.SaveChanges();

                        // dodawanie uzytkownika do aktywnego pokoju
                        addUserToRoom(roomId, user.Id);
                    }//using

                    // lista znajomych
                    model.tofriends = getFriends(getUser());

                    return(View(model));
                }//if

                ViewBag.roomName = roomName;
                ViewBag.pass     = password;
                try
                {
                    ViewBag.Nick = user.Email.ToString();
                }
                catch (NullReferenceException)
                {
                    // nic nie rób
                }
                return(View("RoomPassword"));
            }//try
            catch (IndexOutOfRangeException)
            {
                // nic nie rób
            }

            // jeśli użytkownik jest zalogowany to wyświetl mu listę znajomych
            if (user != null)
            {
                model.tofriends = getFriends(user);
                return(View(model));
            }//if

            return(View());
        }