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)); }
} //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()
} //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()
} //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()
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)); }
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)); } }
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()
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()
} //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(); } }
} //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()
} //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()
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()
}//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()
}//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()
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()
// 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)); }
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)); }
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()); }