예제 #1
0
        //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;
            }
        }
예제 #2
0
        //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;
            }
        }