//create room public bool case10(StructDocMess mess) { try { dbb _db = new dbb(); var user = _db.UserNotType.First(t => t.Id.ToString() == mess.index_user); if (user != null) { var newroom = new C_Room(); newroom.NameRoom = mess.name_room; _db.C_Room.Add(newroom); _db.SaveChanges(); var room = _db.C_Room.Where(t => t.NameRoom == mess.name_room).ToList().Last(); var userInRoom = new C_User_In_Room(); userInRoom.UserNotType = user; userInRoom.C_Room = room; userInRoom.Admin = true; userInRoom.Participant = true; _db.C_User_In_Room.Add(userInRoom); _db.SaveChanges(); mess.index_room = room.TableId; mess.count_users_in_room = 1; _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess)); } return(true); } catch (DbEntityValidationException e) { string message = ""; foreach (DbEntityValidationResult validationError in e.EntityValidationErrors) { message = "Object: " + validationError.Entry.Entity.ToString(); foreach (DbValidationError err in validationError.ValidationErrors) { message = message + err.ErrorMessage + ""; } } Console.WriteLine(message); throw; } }
//response invitation from user //new user in Room | send user in room and add public bool case21(StructDocMess mess) { try { dbb _db = new dbb(); var room = _db.C_Room.Where(t => t.TableId == mess.index_room).ToList().First(); var user = _db.UserNotType.Where(t => t.Id.ToString() == mess.index_user).ToList().First(); StructDocMess fDocMess = new StructDocMess(); if (mess.text_message.Substring(0, 4) == "True") { var user_was_in_room = _db.C_User_In_Room.Where(t => t.UserNotType.Id.ToString() == mess.index_user && t.C_Room.TableId == mess.index_room).ToList(); if (!user_was_in_room.Any()) { var user_in_room = new C_User_In_Room(); user_in_room.C_Room = room; user_in_room.UserNotType = user; user_in_room.Participant = true; user_in_room.Admin = false; _db.C_User_In_Room.Add(user_in_room); _db.SaveChanges(); } else { user_was_in_room.First().Participant = true; _db.SaveChanges(); } var s = _db.C_User_In_Room.Where(t => t.UserNotType.NameUser == user.NameUser).ToList().First(); var Mess_in_room = new message_on_room(); Mess_in_room.C_User_In_Room = s; Mess_in_room.text_mess = mess.text_message.Substring(5, mess.text_message.Length - 5); Mess_in_room.time_mess = DateTime.Now; _db.message_on_room.Add(Mess_in_room); _db.SaveChanges(); fDocMess.index_command = "25"; fDocMess.index_user = "******"; fDocMess.name_user = "******"; fDocMess.index_room = mess.index_room; fDocMess.name_room = mess.name_room; fDocMess.text_message = mess.text_message.Substring(5, mess.text_message.Length - 5) + mess.name_user; fDocMess.time_message = DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss"); var all_user = _db.C_User_In_Room .Where(t => t.C_Room.TableId == room.TableId && t.UserNotType.Id != user.Id && t.Participant).ToList(); foreach (var VARIABLE in all_user) { int r = VARIABLE.UserNotType.index_in_list ?? -1; if (r != -1) { if (ServerObject.DictionaryClients.ContainsKey(r)) { ServerObject.DictionaryClients[r].ClientObject .SendMess(XmlParser.XmlParser.struct_to_string(mess)); ServerObject.DictionaryClients[r].ClientObject .SendMess(XmlParser.XmlParser.struct_to_string(fDocMess)); } } } } else if (mess.text_message.Substring(0, 5) == "False") { fDocMess.index_command = "25"; fDocMess.index_user = "******"; fDocMess.name_user = "******"; fDocMess.index_room = mess.index_room; fDocMess.name_room = mess.name_room; fDocMess.text_message = mess.text_message.Substring(6, mess.text_message.Length - 6) + mess.name_user; fDocMess.time_message = DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss"); var all_user = _db.C_User_In_Room .Where(t => t.C_Room.TableId == room.TableId && t.UserNotType.Id != user.Id && t.Participant).ToList(); foreach (var VARIABLE in all_user) { int r = VARIABLE.UserNotType.index_in_list ?? -1; if (r != -1) { if (ServerObject.DictionaryClients.ContainsKey(r)) { ServerObject.DictionaryClients[r].ClientObject .SendMess(XmlParser.XmlParser.struct_to_string(fDocMess)); } } } } else { Console.WriteLine("case 21: Error"); } return(true); } catch (Exception e) { Console.WriteLine(e); throw; } }