Exemplo n.º 1
0
        //call end message
        public bool case86(StructDocMess mess)
        {
            try
            {
                dbb _db = new dbb();
                List <C_User_In_Room> LUser = _db.C_User_In_Room
                                              .Where(t => t.C_Room.TableId == mess.index_room && t.UserNotType.Id.ToString() != mess.index_user)
                                              .ToList();
                int index = -1;
                foreach (var VARIABLE in LUser)
                {
                    if (VARIABLE.UserNotType.index_in_list.HasValue)
                    {
                        index = VARIABLE.UserNotType.index_in_list.Value;
                    }
                    if (ServerObject.DictionaryClients.ContainsKey(index))
                    {
                        ServerObject.DictionaryClients[index].ClientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 2
0
 //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);
     }
 }
Exemplo n.º 3
0
        //inviting call
        public bool case80(StructDocMess mess)
        {
            try
            {
                dbb _db         = new dbb();
                var usersInRoom = _db.C_User_In_Room
                                  .Where(t => t.C_Room.TableId == mess.index_room && t.UserNotType.Id.ToString() != mess.index_user && t.UserNotType.NameUser != mess.name_user && t.Participant).ToList();
                foreach (var VARIABLE in usersInRoom)
                {
                    int v2 = 0;
                    if (VARIABLE.UserNotType.index_in_list.HasValue)
                    {
                        v2 = VARIABLE.UserNotType.index_in_list.Value;
                    }
                    if (ServerObject.DictionaryClients.ContainsKey(v2))
                    {
                        ServerObject.DictionaryClients[v2].ClientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 4
0
        //create report of the message
        public string ViewMessage()
        {
            dbb _db = new dbb();
            List <message_on_room> data1    = _db.message_on_room.ToList();
            string       app_path_directory = AppDomain.CurrentDomain.BaseDirectory;
            string       path_to_xlsx       = app_path_directory + "Report.xlsx";
            string       name_file          = "";
            string       str       = "";
            ExcelPackage xlPackage = new ExcelPackage(new FileInfo(path_to_xlsx));

            var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select sheet here

            myWorksheet.Cells[1, 1].Value = "Группы";
            myWorksheet.Cells[1, 3].Value = "Пользователь";
            myWorksheet.Cells[1, 5].Value = "Сообщения";

            myWorksheet.Cells[1, 1].Style.WrapText = true;
            myWorksheet.Cells[1, 3].Style.WrapText = true;
            myWorksheet.Cells[1, 5].Style.WrapText = true;

            myWorksheet.Cells["A1:B1"].Merge = true;
            myWorksheet.Cells["C1:D1"].Merge = true;
            myWorksheet.Cells["E1:F1"].Merge = true;

            myWorksheet.Cells[2, 1].Value = "Номер";
            myWorksheet.Cells[2, 2].Value = "Имя";
            myWorksheet.Cells[2, 3].Value = "Имя";
            myWorksheet.Cells[2, 4].Value = "Пароль";
            myWorksheet.Cells[2, 5].Value = "Время отправки";
            myWorksheet.Cells[2, 6].Value = "Текст";



            int t = 3;

            foreach (var VARIABLE in data1)
            {
                myWorksheet.Cells[t, 1].Value = VARIABLE.TableId.ToString();
                myWorksheet.Cells[t, 2].Value = VARIABLE.C_User_In_Room.C_Room.NameRoom;
                myWorksheet.Cells[t, 3].Value = VARIABLE.C_User_In_Room.UserNotType.NameUser;
                myWorksheet.Cells[t, 4].Value = VARIABLE.C_User_In_Room.UserNotType.Password;
                myWorksheet.Cells[t, 5].Value = VARIABLE.time_mess.ToString();
                myWorksheet.Cells[t, 6].Value = VARIABLE.text_mess;
                t += 1;
            }

            str = app_path_directory + @"RepotsMessage\";
            Directory.CreateDirectory(str);

            name_file = @"NewReport" + DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss") + @".xlsx";
            var file = File.Create(str + name_file);

            file.Close();
            var fi = new FileInfo(str + name_file);

            xlPackage.SaveAs(fi);


            return(str + name_file);
        }
Exemplo n.º 5
0
        //login user
        public bool case1(StructDocMess mess)//log
        {
            try
            {
                dbb _db = new dbb();
                var r   = _db.UserNotType.Where(t => t.NameUser == mess.name_user && t.Password == mess.password_user).ToList();
                var d   = ServerObject.DictionaryClients.Where(t => t.Value.ClientObject == _clientObject).ToList();
                if (r.Any() && d.Any())
                {
                    int coutline = _db.Database.ExecuteSqlCommand("update UserNotType set index_in_list =" +
                                                                  d.Last().Key + " where Id = " +
                                                                  r.First().Id);
                    //Console.WriteLine("count line: " + coutline);
                    //Console.WriteLine("case 1: " + d.Last().Key);

                    mess.index_user   = r.First().Id.ToString();
                    mess.text_message = "True";
                    _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                    return(true);
                }
                else
                {
                    mess.text_message = "False";
                    _clientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
                    return(false);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 6
0
 //send invitation by name user
 public bool case20(StructDocMess mess)//send invait
 {
     try
     {
         dbb   _db       = new dbb();
         Int32 r         = -1;
         var   main_user = _db.UserNotType.Where(t => t.Id.ToString() == mess.index_user).ToList().First();
         var   m1        = _db.C_User_In_Room.Where(t => t.Participant && t.C_Room.TableId == mess.index_room && t.UserNotType.NameUser == mess.text_message)
                           .ToList();
         var m = _db.UserNotType.Where(t => t.NameUser == mess.text_message).ToList()
                 .ToList();
         bool ddAny = m1.Any();
         //Console.WriteLine(ddAny);
         if (!ddAny && m.Any())
         {
             if (m.First().index_in_list.HasValue)
             {
                 r = m.First().index_in_list.Value;
             }
             if (ServerObject.DictionaryClients.ContainsKey(r))
             {
                 mess.count_users_in_room = _db.C_User_In_Room
                                            .Where(t => t.C_Room.TableId == mess.index_room && t.Participant).ToList().Count;
                 ServerObject.DictionaryClients[r].ClientObject
                 .SendMess(XmlParser.XmlParser.struct_to_string(mess));
                 return(true);
             }
             else
             {
                 if (main_user.index_in_list.HasValue)
                 {
                     r = main_user.index_in_list.Value;
                 }
                 if (ServerObject.DictionaryClients.ContainsKey(r))
                 {
                     string sf = XmlParser.XmlParser.struct_to_string(mess);
                     ServerObject.DictionaryClients[r].ClientObject.SendMess(sf);
                 }
                 return(false);
             }
         }
         else
         {
             if (main_user.index_in_list.HasValue)
             {
                 r = main_user.index_in_list.Value;
             }
             if (ServerObject.DictionaryClients.ContainsKey(r))
             {
                 ServerObject.DictionaryClients[r].ClientObject.SendMess(XmlParser.XmlParser.struct_to_string(mess));
             }
             return(false);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Exemplo n.º 7
0
        //method for receiving all messages in the group of the user
        // mess      =   main type data network (struct)
        // return    =   string xml
        public static string struct_all_mess_in_room_to_string(StructDocMess mess)
        {
            dbb dbb = new dbb();

            try
            {
                var      XD                = new XDocument();
                XElement element           = new XElement("Message");
                XElement iphoneCompanyElem = new XElement("index_command", mess.index_command);
                element.Add(iphoneCompanyElem);


                var userAllRooms = dbb.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room).ToList();
                if (userAllRooms.Count >= 0)
                {
                    foreach (var uir in userAllRooms.Take(1))
                    {
                        XElement elementRoom = new XElement("Room");
                        iphoneCompanyElem = new XElement("index_room", uir.C_Room.TableId);
                        elementRoom.Add(iphoneCompanyElem);

                        var messallInRoom = dbb.message_on_room
                                            .Where(t => t.C_User_In_Room.C_Room.TableId == uir.C_Room.TableId).ToList();
                        XElement elementRoomMess = new XElement("Mess_in_room");
                        foreach (var messageLoop in messallInRoom.Skip(messallInRoom.Count - 20))
                        {
                            XElement elementOneMess = new XElement("Mess");

                            iphoneCompanyElem = new XElement("mess_str", messageLoop.text_mess);
                            elementOneMess.Add(iphoneCompanyElem);
                            iphoneCompanyElem = new XElement("mess_time",
                                                             messageLoop.time_mess.Value.ToString("yyyy.MM.dd-HH.mm.ss"));
                            elementOneMess.Add(iphoneCompanyElem);

                            XElement elementMessUser = new XElement("User_in_mess");
                            iphoneCompanyElem = new XElement("index_user", messageLoop.C_User_In_Room.UserNotType.Id);
                            elementMessUser.Add(iphoneCompanyElem);
                            iphoneCompanyElem = new XElement("name_user",
                                                             messageLoop.C_User_In_Room.UserNotType.NameUser);
                            elementMessUser.Add(iphoneCompanyElem);
                            iphoneCompanyElem = new XElement("img_user", "");
                            elementMessUser.Add(iphoneCompanyElem);
                            elementOneMess.Add(elementMessUser);
                            elementRoomMess.Add(elementOneMess);
                        }

                        elementRoom.Add(elementRoomMess);
                        element.Add(elementRoom);
                    }
                }
                XD.Add(element);
                return(XD.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 8
0
        //method to get a list to find users for a group
        // mess      =   main type data network (struct)
        // return    =   string xml
        public static string struct_search_user_to_string(StructDocMess mess, int take)
        {
            dbb dbb = new dbb();

            try
            {
                var      XD                = new XDocument();
                XElement element           = new XElement("Message");
                XElement iphoneCompanyElem = new XElement("index_command", mess.index_command);
                element.Add(iphoneCompanyElem);

                List <UserNotType>    LUsers     = new List <UserNotType>();
                List <C_User_In_Room> lUsersList = new List <C_User_In_Room>();
                try
                {
                    LUsers     = dbb.UserNotType.Where(t => t.NameUser.Contains(mess.text_message)).OrderBy(t => t.NameUser).Take(take).ToList();
                    lUsersList = dbb.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room && t.Participant == true).ToList();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }

                if (LUsers.Any())
                {
                    XElement elementAllUsers = new XElement("Users");
                    foreach (var us in LUsers)
                    {
                        var ss = lUsersList.Where(t => t.UserNotType.NameUser == us.NameUser).ToList();
                        if (!ss.Any())
                        {
                            XElement elementUsers = new XElement("User");
                            iphoneCompanyElem = new XElement("index_user", us.Id);
                            elementUsers.Add(iphoneCompanyElem);
                            iphoneCompanyElem = new XElement("name_user", us.NameUser);
                            elementUsers.Add(iphoneCompanyElem);
                            iphoneCompanyElem = new XElement("img_user", "");
                            elementUsers.Add(iphoneCompanyElem);
                            elementAllUsers.Add(elementUsers);
                        }
                    }
                    element.Add(elementAllUsers);
                }
                XD.Add(element);
                return(XD.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 9
0
 //thread method
 // gets data with socket (udp type)
 public void Process()
 {
     alive = true;
     try
     {
         while (alive)
         {
             IPEndPoint remoteIp = null;
             byte[]     data     = client.Receive(ref remoteIp);
             string     str      = Encoding.UTF8.GetString(data, 0, data.Length);
             sendInfo(str, remoteIp);
             string[] arrayStr = str.Split(':');
             //Console.WriteLine("{0}:{1}", arrayStr[0], arrayStr[1]);
             if (arrayStr.Length > 1)
             {
                 int f = 0;
                 if (arrayStr[0] == "1" && Int32.TryParse(arrayStr[1], out f))
                 {
                     string str_with_array = arrayStr[1];
                     dbb    dataBaceDbb    = new dbb();
                     var    user           = dataBaceDbb.UserNotType.Where(t => t.Id.ToString() == str_with_array).ToList();
                     if (user.Any())
                     {
                         var user1 = user.First();
                         int r     = -1;
                         if (user1.index_in_list.HasValue)
                         {
                             r = user1.index_in_list.Value;
                         }
                         if (r != -1 && ServerObject.DictionaryClients.ContainsKey(r))
                         {
                             ServerObject.DictionaryClients[r].port_udp = remoteIp.Port;
                             //Console.WriteLine("Enter port in dic: {0}", ServerObject.DictionaryClients[r].port_udp);
                         }
                     }
                 }
             }
         }
     }
     catch (ObjectDisposedException)
     {
         if (!alive)
         {
             return;
         }
         throw;
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Exemplo n.º 10
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;
            }
        }
Exemplo n.º 11
0
        //create report of the group
        public string ViewGroup()
        {
            dbb _db = new dbb();
            List <C_User_In_Room> data1 = _db.C_User_In_Room.Where(t => t.Admin).ToList();

            if (data1.Any())
            {
                string       app_path_directory = AppDomain.CurrentDomain.BaseDirectory;
                string       path_to_xlsx       = app_path_directory + "Report.xlsx";
                string       name_file          = "";
                string       str       = "";
                ExcelPackage xlPackage = new ExcelPackage(new FileInfo(path_to_xlsx));

                var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select sheet here

                myWorksheet.Cells[1, 1].Value = "Группы";
                myWorksheet.Cells[1, 3].Value = "Администраторы групп";

                myWorksheet.Cells["A1:B1"].Merge = true;
                myWorksheet.Cells["C1:D1"].Merge = true;

                myWorksheet.Cells[2, 1].Value = "Номер";
                myWorksheet.Cells[2, 2].Value = "Имя";
                myWorksheet.Cells[2, 3].Value = "Имя";
                myWorksheet.Cells[2, 4].Value = "Пароль";

                int t = 3;
                foreach (var VARIABLE in data1)
                {
                    myWorksheet.Cells[t, 1].Value = VARIABLE.TableId.ToString();
                    myWorksheet.Cells[t, 2].Value = VARIABLE.C_Room.NameRoom;
                    myWorksheet.Cells[t, 3].Value = VARIABLE.UserNotType.NameUser;
                    myWorksheet.Cells[t, 4].Value = VARIABLE.UserNotType.Password;
                    t += 1;
                }

                str = app_path_directory + @"RepotsGroup\";
                Directory.CreateDirectory(str);


                name_file = @"NewReport" + DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss") + @".xlsx";
                var file = File.Create(str + name_file);
                file.Close();
                var fi = new FileInfo(str + name_file);
                xlPackage.SaveAs(fi);
                return(str + name_file);
            }

            return("Нет групп");
        }
Exemplo n.º 12
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;
            }
        }
Exemplo n.º 13
0
        //create report of the Users
        public string ViewUsers()
        {
            dbb _db = new dbb();

            string       app_path_directory = AppDomain.CurrentDomain.BaseDirectory;
            string       path_to_xlsx       = app_path_directory + "Report.xlsx";
            string       name_file          = "";
            string       str       = "";
            ExcelPackage xlPackage = new ExcelPackage(new FileInfo(path_to_xlsx));

            var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select sheet here

            myWorksheet.Cells[1, 1].Value = "Пользователи";

            myWorksheet.Cells["A1:C1"].Merge = true;

            myWorksheet.Cells[2, 1].Value = "Номер";
            myWorksheet.Cells[2, 2].Value = "Имя";
            myWorksheet.Cells[2, 3].Value = "Пароль";

            int t = 3;
            List <UserNotType> data1 = _db.UserNotType.ToList();

            foreach (var VARIABLE in data1)
            {
                myWorksheet.Cells[t, 1].Value = VARIABLE.Id.ToString();
                myWorksheet.Cells[t, 2].Value = VARIABLE.NameUser;
                myWorksheet.Cells[t, 3].Value = VARIABLE.Password;
                t += 1;
            }

            str = app_path_directory + @"RepotsUsers\";
            Directory.CreateDirectory(str);

            name_file = @"NewReport" + DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss") + @".xlsx";
            var file = File.Create(str + name_file);

            file.Close();
            var fi = new FileInfo(str + name_file);

            xlPackage.SaveAs(fi);
            return(str + name_file);
        }
Exemplo n.º 14
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;
     }
 }
Exemplo n.º 15
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;
            }
        }
Exemplo n.º 16
0
 //(For test) print all user in console
 static private void case3()
 {
     try
     {
         dbb ddDbb = new dbb();
         var t     = ddDbb.UserNotType.ToList();
         if (t.Any())
         {
             foreach (var VARIABLE in t)
             {
                 Console.WriteLine("{0}:{1}:{2}:{3}", VARIABLE.Id, VARIABLE.NameUser, VARIABLE.Password, VARIABLE.index_in_list);
             }
         }
         else
         {
             Console.WriteLine("Пользователи отсутствуют");
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Exemplo n.º 17
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;
            }
        }
Exemplo n.º 18
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;
            }
        }
Exemplo n.º 19
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;
            }
        }
Exemplo n.º 20
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;
            }
        }
Exemplo n.º 21
0
        //method to get user list for group
        // mess      =   main type data network (struct)
        // return    =   string xml
        public static string struct_one_room_list_user_to_string(StructDocMess mess)
        {
            dbb dbb = new dbb();

            try
            {
                var      XD                = new XDocument();
                XElement element           = new XElement("Message");
                XElement iphoneCompanyElem = new XElement("index_command", mess.index_command);
                element.Add(iphoneCompanyElem);


                var userAllRooms = dbb.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room && t.Participant).ToList();
                if (userAllRooms.FindIndex(t => t.UserNotType.Id.ToString() == mess.index_user) != -1)
                {
                    var Im = userAllRooms.Find(t => t.UserNotType.Id.ToString() == mess.index_user);
                    userAllRooms.Remove(Im);
                    userAllRooms.Insert(0, Im);
                }

                XElement elementRoom = new XElement("Room");
                iphoneCompanyElem = new XElement("index_room", userAllRooms[0].C_Room.TableId);
                elementRoom.Add(iphoneCompanyElem);
                iphoneCompanyElem = new XElement("name_room", userAllRooms[0].C_Room.NameRoom);
                elementRoom.Add(iphoneCompanyElem);

                XElement elementAllUsers = new XElement("Users");
                foreach (var us in userAllRooms)
                {
                    XElement elementUsers = new XElement("User");
                    iphoneCompanyElem = new XElement("index_user", us.UserNotType.Id);
                    elementUsers.Add(iphoneCompanyElem);
                    iphoneCompanyElem = new XElement("name_user", us.UserNotType.NameUser);
                    elementUsers.Add(iphoneCompanyElem);
                    iphoneCompanyElem = new XElement("img_user", "");
                    elementUsers.Add(iphoneCompanyElem);

                    int v2 = -1;
                    if (us.UserNotType.index_in_list.HasValue)
                    {
                        v2 = us.UserNotType.index_in_list.Value;
                    }
                    if (v2 != -1)
                    {
                        iphoneCompanyElem = new XElement("in_net", "True");
                    }
                    else
                    {
                        iphoneCompanyElem = new XElement("in_net", "Flase");
                    }
                    elementUsers.Add(iphoneCompanyElem);
                    elementAllUsers.Add(elementUsers);
                }
                elementRoom.Add(elementAllUsers);
                element.Add(elementRoom);

                XD.Add(element);
                return(XD.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 22
0
        //method to get one group for user
        // mess      =   main type data network (struct)
        // return    =   string xml
        public static string struct_one_room_to_string(StructDocMess mess)
        {
            dbb dbb = new dbb();

            try
            {
                var      XD                = new XDocument();
                XElement element           = new XElement("Message");
                XElement iphoneCompanyElem = new XElement("index_command", mess.index_command);
                element.Add(iphoneCompanyElem);


                var userAllRooms = dbb.C_User_In_Room.Where(t => t.C_Room.TableId == mess.index_room && t.Participant).ToList();

                XElement elementRoom = new XElement("Room");
                iphoneCompanyElem = new XElement("index_room", userAllRooms[0].C_Room.TableId);
                elementRoom.Add(iphoneCompanyElem);
                iphoneCompanyElem = new XElement("name_room", userAllRooms[0].C_Room.NameRoom);
                elementRoom.Add(iphoneCompanyElem);

                int i = userAllRooms[0].C_Room.TableId;
                var messallInRoom1 = dbb.message_on_room.Where(t => t.C_User_In_Room.C_Room.TableId == i).ToList();

                if (messallInRoom1.Any())
                {
                    var      messallInRoom   = messallInRoom1.Last();
                    XElement elementRoomMess = new XElement("Mess_in_room");

                    XElement elementOneMess = new XElement("Mess");

                    iphoneCompanyElem = new XElement("mess_str", messallInRoom.text_mess);
                    elementOneMess.Add(iphoneCompanyElem);
                    iphoneCompanyElem = new XElement("mess_time",
                                                     messallInRoom.time_mess.Value.ToString("yyyy.MM.dd-HH.mm.ss"));
                    elementOneMess.Add(iphoneCompanyElem);

                    XElement elementMessUser = new XElement("User_in_mess");
                    iphoneCompanyElem = new XElement("index_user", messallInRoom.C_User_In_Room.UserNotType.Id);
                    elementMessUser.Add(iphoneCompanyElem);
                    iphoneCompanyElem =
                        new XElement("name_user", messallInRoom.C_User_In_Room.UserNotType.NameUser);
                    elementMessUser.Add(iphoneCompanyElem);
                    iphoneCompanyElem = new XElement("img_user", "");
                    elementMessUser.Add(iphoneCompanyElem);
                    elementOneMess.Add(elementMessUser);
                    elementRoomMess.Add(elementOneMess);
                    elementRoom.Add(elementRoomMess);
                }
                elementRoom.Add(new XElement("count_user", userAllRooms.Count));

                element.Add(elementRoom);

                XD.Add(element);
                return(XD.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }