//CLEAR ITEM LIST
 //remove user from list connection users
 protected internal void RemoveConnection(string id)
 {
     try
     {
         dbb M = new dbb();
         // получаем по id закрытое подключение
         var client = DictionaryClients.FirstOrDefault(c => c.Value.ClientObject.Id == id);
         if (client.Value != null)
         {
             DictionaryClients.Remove(client.Key);
             //clients.Remove(client.);
             //var sqlObj = M.UserNotType.Where(t => t.index_in_list == _index).ToList();
             var sqlObj = M.UserNotType.Where(t => t.index_in_list == client.Key).ToList();
             if (sqlObj.Any())
             {
                 sqlObj.First().index_in_list = null;
                 M.SaveChanges();
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
Example #2
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;
            }
        }
Example #3
0
        //new mess in room
        public bool case25(StructDocMess mess)
        {
            try
            {
                dbb _db  = new dbb();
                var User = _db.C_User_In_Room.Where(t => t.UserNotType.Id.ToString() == mess.index_user && t.C_Room.TableId == mess.index_room && t.Participant).ToList();
                if (User.Any())
                {
                    message_on_room messageOnRoom = new message_on_room();
                    messageOnRoom.C_User_In_Room = _db.C_User_In_Room
                                                   .Where(t => t.C_Room.TableId == mess.index_room &&
                                                          t.UserNotType.Id.ToString() == mess.index_user)
                                                   .ToList().First();
                    messageOnRoom.text_mess = mess.text_message;
                    messageOnRoom.time_mess = DateTime.ParseExact(mess.time_message, "yyyy.MM.dd-HH.mm.ss",
                                                                  System.Globalization.CultureInfo.InvariantCulture);
                    _db.message_on_room.Add(messageOnRoom);
                    _db.SaveChanges();
                    var usersInRoom = _db.C_User_In_Room
                                      .Where(t => t.C_Room.TableId == mess.index_room && t.Participant).ToList();
                    foreach (var VARIABLE in usersInRoom)
                    {
                        int v2 = -1;
                        if (VARIABLE.UserNotType.index_in_list.HasValue)
                        {
                            v2 = VARIABLE.UserNotType.index_in_list.Value;
                        }
                        if (v2 != -1)
                        {
                            if (ServerObject.DictionaryClients.ContainsKey(v2))
                            {
                                ServerObject.DictionaryClients[v2].ClientObject
                                .SendMess(XmlParser.XmlParser.struct_to_string(mess));
                            }
                        }
                    }
                }
                else
                {
                    mess.text_message = "9E0D14D2-6A42-43F0-BEA6-F75E780EB63B";
                    _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #4
0
 //exit user
 public bool case3(StructDocMess mess)
 {
     try
     {
         dbb _db = new dbb();
         var r   = _db.UserNotType.Where(t => t.Id.ToString() == mess.index_user).ToList();
         if (r.Any())
         {
             r.First().index_in_list = null;
             _db.SaveChanges();
             return(true);
         }
         return(false);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Example #5
0
        //registration user
        public bool case2(StructDocMess mess)//reg false if there is user treu if reg
        {
            try
            {
                dbb _db = new dbb();
                var r   = _db.UserNotType.Where(t => t.NameUser == mess.name_user).ToList();
                if (!r.Any())
                {
                    UserNotType userNotType = new UserNotType();
                    userNotType.NameUser      = mess.name_user;
                    userNotType.Password      = mess.password_user;
                    userNotType.index_in_list = ser.ServerObject.DictionaryClients.Last(t => t.Value.ClientObject == _clientObject).Key;
                    //userNotType.index_in_list = ser.ServerObject.clients.FindIndex(t => t.ClientObject == _clientObject);
                    _db.UserNotType.Add(userNotType);
                    _db.SaveChanges();

                    r = _db.UserNotType.Where(t => t.NameUser == mess.name_user && t.Password == mess.password_user).ToList();
                    mess.index_user   = r.First().Id.ToString();
                    mess.text_message = "True";
                    string fd = XmlParser.XmlParser.struct_to_string(mess);
                    //Console.WriteLine(fd);
                    _clientObject.SendMess(fd);
                    return(true);
                }
                else
                {
                    mess.text_message = "False";
                    _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                    return(false);
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
                throw;
            }
        }
Example #6
0
 public ActionResult Create(DbUserOrder book)
 {
     ff.DbUserOrder.Add(book);
     ff.SaveChanges();
     return(RedirectToAction("Index"));
 }
Example #7
0
        //exit of room
        public bool case90(StructDocMess mess)
        {
            try
            {
                dbb _db = new dbb();
                List <C_User_In_Room> userInRoom = _db.C_User_In_Room
                                                   .Where(t => t.UserNotType.Id.ToString() == mess.index_user && t.C_Room.TableId == mess.index_room).ToList();
                if (userInRoom.Any())
                {
                    message_on_room sMessageOnRoom = new message_on_room();
                    sMessageOnRoom.Room_U    = userInRoom.First().TableId;
                    sMessageOnRoom.text_mess = "Вышел из чата пользователь под иmенеm:" + mess.name_user;
                    sMessageOnRoom.time_mess = DateTime.Now;
                    _db.message_on_room.Add(sMessageOnRoom);
                    _db.SaveChanges();

                    var _user = userInRoom.First();
                    _user.Participant = false;
                    _user.Admin       = false;
                    _db.SaveChanges();

                    var adm = _db.C_User_In_Room
                              .Where(t => t.Admin && t.Participant && t.C_Room.TableId == mess.index_room).ToList();
                    if (!adm.Any())
                    {
                        var r5 = _db.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room && t.Participant)
                                 .ToList();
                        if (r5.Any())
                        {
                            r5[0].Admin = true;
                        }
                        _db.SaveChanges();
                    }

                    StructDocMess fDocMess = new StructDocMess();
                    fDocMess.index_command = "26";
                    fDocMess.index_user    = "******";
                    fDocMess.name_user     = "******";
                    fDocMess.index_room    = mess.index_room;
                    fDocMess.name_room     = mess.name_room;
                    fDocMess.text_message  = "Вышел из чата пользователь под иmенеm: " + mess.name_user;
                    fDocMess.time_message  = DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss");


                    List <C_User_In_Room> LUser = _db.C_User_In_Room
                                                  .Where(t => t.C_Room.TableId == mess.index_room && t.Participant)
                                                  .ToList();
                    int index = -1;
                    //Console.WriteLine("Вышел из группы: {0}\tКоличество людей в группе {1}",mess.name_user, LUser.Count);
                    foreach (var VARIABLE in LUser)
                    {
                        if (VARIABLE.UserNotType.index_in_list.HasValue)
                        {
                            index = VARIABLE.UserNotType.index_in_list.Value;
                        }
                        // Console.WriteLine("case90 номер в масиве: {0}", index);
                        if (ServerObject.DictionaryClients.ContainsKey(index))
                        {
                            ServerObject.DictionaryClients[index].ClientObject
                            .SendMess(XmlParser.XmlParser.struct_to_string(fDocMess));
                            //Console.WriteLine("Сообщения о выходе отправлено: {0}", mess.text_message);
                        }

                        index = -1;
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #8
0
        // response to invitation the call
        public bool case85(StructDocMess mess)
        {
            try
            {
                dbb _db = new dbb();
                if (mess.text_message == "True")
                {
                    var usersInRoom = _db.C_User_In_Room
                                      .Where(t => t.C_Room.TableId == mess.index_room).ToList();
                    int v2 = 0;
                    if (usersInRoom[0].UserNotType.index_in_list.HasValue)
                    {
                        v2 = usersInRoom[0].UserNotType.index_in_list.Value;
                    }
                    int v4 = 0;
                    if (usersInRoom[1].UserNotType.index_in_list.HasValue)
                    {
                        v4 = usersInRoom[1].UserNotType.index_in_list.Value;
                    }
                    Console.WriteLine("v2-{0}:v4-{1}", v2, v4);

                    if (ServerObject.DictionaryClients.ContainsKey(v2) && ServerObject.DictionaryClients.ContainsKey(v4))
                    {
                        mess.index_user = usersInRoom[1].UserNotType.Id.ToString();
                        mess.name_user  = usersInRoom[1].UserNotType.NameUser;
                        //Console.WriteLine("v4 port-{0}", ServerObject.DictionaryClients[v4].port_udp);
                        mess.text_message =
                            ((IPEndPoint)(ServerObject.DictionaryClients[v4].ClientObject.client.Client.RemoteEndPoint)).Address
                            .ToString() +
                            ":" + ServerObject.DictionaryClients[v4].port_udp;
                        ServerObject.DictionaryClients[v2].ClientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));

                        mess.index_user = usersInRoom[0].UserNotType.Id.ToString();
                        mess.name_user  = usersInRoom[0].UserNotType.NameUser;
                        //Console.WriteLine("v2 port-{0}", ServerObject.DictionaryClients[v2].port_udp);
                        mess.text_message =
                            ((IPEndPoint)(ServerObject.DictionaryClients[v2].ClientObject.client.Client
                                          .RemoteEndPoint)).Address
                            .ToString() +
                            ":" + ServerObject.DictionaryClients[v2].port_udp;
                        ServerObject.DictionaryClients[v4].ClientObject
                        .SendMess(XmlParser.XmlParser.struct_to_string(mess));

                        var sd = _db.C_User_In_Room.Where(t =>
                                                          t.UserNotType.Id.ToString() == mess.index_user && t.Participant &&
                                                          t.C_Room.TableId == mess.index_room).ToList();
                        if (sd.Any())
                        {
                            message_on_room me = new message_on_room();
                            me.Room_U    = sd.First().TableId;
                            me.text_mess = "Make call";
                            me.time_mess = DateTime.Now;
                            _db.message_on_room.Add(me);
                            _db.SaveChanges();
                        }
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #9
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;
            }
        }
Example #10
0
        // (Admin) delete user of room
        public bool case16(StructDocMess mess)
        {
            try
            {
                dbb _db  = new dbb();
                var nany = _db.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room && t.UserNotType.Id.ToString() == mess.index_user && t.Admin && t.Participant).ToList();
                if (nany.Any())
                {
                    var main_q = _db.C_User_In_Room.Where(t =>
                                                          t.C_Room.TableId == mess.index_room && t.UserNotType.Id.ToString() == mess.text_message)
                                 .ToList();
                    if (main_q.Any())
                    {
                        main_q.First().Participant = false;
                        _db.SaveChanges();

                        StructDocMess fDocMess = new StructDocMess();
                        fDocMess.index_command = "26";
                        fDocMess.index_user    = "******";
                        fDocMess.name_user     = "******";
                        fDocMess.index_room    = mess.index_room;
                        fDocMess.name_room     = mess.name_room;
                        fDocMess.text_message  = "Удален пользователь: " + main_q.First().UserNotType.NameUser;
                        fDocMess.time_message  = DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss");

                        var Mess_in_room = new message_on_room();
                        Mess_in_room.C_User_In_Room = main_q.First();
                        Mess_in_room.text_mess      = "Удален пользователь: " + main_q.First().UserNotType.NameUser;
                        Mess_in_room.time_mess      = DateTime.Now;
                        _db.message_on_room.Add(Mess_in_room);
                        _db.SaveChanges();

                        var all_user_in_room = _db.C_User_In_Room
                                               .Where(t => t.C_Room.TableId == mess.index_room && t.Participant).ToList();
                        foreach (var cUserInRoom in all_user_in_room)
                        {
                            int r = cUserInRoom.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));
                                }
                            }
                        }

                        var all_user_in_room1 = _db.UserNotType
                                                .Where(t => t.Id.ToString() == mess.text_message).ToList();
                        fDocMess.text_message = "9E0D14D2-6A42-43F0-BEA6-F75E780EB63B";

                        foreach (var cUserInRoom in all_user_in_room1)
                        {
                            //Console.WriteLine("send");
                            int r = cUserInRoom.index_in_list ?? -1;
                            if (r != -1)
                            {
                                if (ServerObject.DictionaryClients.ContainsKey(r))
                                {
                                    ServerObject.DictionaryClients[r].ClientObject
                                    .SendMess(XmlParser.XmlParser.struct_to_string(fDocMess));
                                }
                            }
                        }
                    }
                }
                else
                {
                    mess.text_message = "AA2B206A-8857-44E0-8190-4F93A9BCC06F";
                    _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }