Exemplo n.º 1
0
        internal LogicApp()
        {
            ArmyDBContext db = new ArmyDB();

            // Провайдер базы данных
            var provider = new LogicProviderDB(LogicProviderDB.databases.mssql);


            socialNetworksLogic    = new SocialNetworksLogic(provider);
            userLogic              = new UserLogic(provider);
            CountriesLogic         = new CountriesLogic(provider);
            SoldierUnitLogic       = new SoldierUnitsLogic(provider);
            SocStatusesLogic       = new SocStatusesLogic(provider);
            citiesLogic            = new CitiesLogic(provider);
            CrimesLogic            = new CrimesLogic(provider);
            ForeignFriendsLogic    = new ForeignFriendsLogic(provider);
            ExtremistMaterialLogic = new ExtremistMaterialLogic();
            GroupLogic             = new GroupsLogic(provider);
            AudiosLogic            = new AudiosLogic(provider);
        }
Exemplo n.º 2
0
        public static void CreateUserReport(Model.Users user)
        {
            // Создаём объект документа
            Word.Document doc = null;
            // Создаём объект приложения
            Word.Application app = new Word.Application();


            try
            {
                string FileSource = @"C:\\Users\Andrew\Desktop\Шаблоны WORD\";

                // Путь до шаблона документа
                string source = FileSource + "UserReport.docx";

                // Создать папку по ВЧ, затем по юзерам
                if (user.GetFirstUS != null)
                {
                    FileSource += $@"{user.UserSoldierService.First().SoldierUnit.Name}\".Replace("В/Ч", "ВЧ");
                }

                // Далее создаем папку по юзерам
                FileSource += $"{user.Family} {user.Name}";

                DirectoryInfo dirInfo = new DirectoryInfo(FileSource);
                if (!dirInfo.Exists)
                {
                    dirInfo.Create();
                }



                // Открываем
                doc = app.Documents.Open(source);
                doc.Activate();

                // Добавляем информацию

                // добавляем картинку
                {
                    // Сохраняем картинку
                    // Первым делом необходимо сохранить картинку из byte[] в .png
                    if (user.Photo != null)
                    {
                        using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(user.Photo)))
                        {
                            image.Save(@"D:\user.png", ImageFormat.Png);  // Or Png

                            object f     = false;
                            object t     = true;
                            object range = Type.Missing;

                            doc.Bookmarks["UserPhoto"].Range.InlineShapes.AddPicture(@"D:\user.png", ref f, ref t, ref range);
                        }
                    }
                }

                // Добавляем характеристику
                string characteristic = $"{user.Family} {user.Name}, {user.DateBirth.Value.Day}.{user.DateBirth.Value.Month}.{user.DateBirth.Value.Year}";

                // Проверяем указан ли город
                if (user.City1 != null)
                {
                    //characteristic += $", г. {user.City1.Name}.";
                }
                else
                {
                    characteristic += ".";
                }

                if (user.GetFirstUS != null)
                {
                    characteristic += $" Проходит службу в {user.GetFirstUS}.";
                }



                // Общий список друзей
                List <ForeignFriends> foreignFriends = new List <ForeignFriends>();
                // Список преступлений
                List <UserCrimes> userCrimes = new List <UserCrimes>();

                // Собираем друзей иностранцев и фотографии добавленные к соцсетям в бд
                using (ArmyDBContext db = new ArmyDB())
                {
                    // Добавляем в каких соц. сетях зарегистрирован



                    if (user.SocialNetworkUser.Count() != 0)
                    {
                        foreach (var item in user.SocialNetworkUser)
                        {
                            characteristic += $" Зарегистрирован(а) в социальной сети {item.SocialNetworkType.Name}, адрес {item.WebAddress};";


                            var crimes = db.UserCrimes.Where(i => (int)i.IdSocialNetworkUser == item.Id);

                            //  Если есть нарушения у социальной сети, то необходимо записать
                            if (crimes != null && crimes.Count() != 0)
                            {
                                userCrimes.AddRange(crimes);
                            }
                        }
                    }

                    // Теперь, если есть преступления, то необходимо их добавить и описать
                    if (userCrimes.Count != 0)
                    {
                        characteristic += $" Есть {userCrimes.Count} нарушений (см. Приложение скриншотов нарушений. Подробная информация с описанием в выборке).";
                    }
                    else
                    {
                        characteristic += $" Материалов, попадающих в какие-либо категории (Околофутбольщики, татуированные, экстремисты, скинхеды и т.п. не имеет).";
                    }


                    foreach (var socialnetwork in user.SocialNetworkUser)
                    {
                        // Получаем друзей
                        var foreignfriends = db.ForeignFriends.Include("Country").Where(i => i.SocialNetworkUserID == socialnetwork.Id).ToList();

                        if (foreignfriends != null)
                        {
                            foreignFriends.AddRange(foreignfriends);
                        }
                    }

                    if (foreignFriends.Count != 0)
                    {
                        characteristic += $" Имеет {foreignFriends.Count} друзей иностранцев (см. Приложение иностранных друзей).";
                    }
                    else
                    {
                        characteristic += $" Не имеет друзей иностранцев.";
                    }
                }

                characteristic += $" {user.Characteristic}";

                doc.Bookmarks["Characteristic"].Range.Text = characteristic;

                // Создает приложение ПРЕСТУПНЫХ фотографий
                if (userCrimes.Count != 0)
                {
                    // Создаём объект word
                    Microsoft.Office.Interop.Word._Application OneWord = new Microsoft.Office.Interop.Word.Application();

                    // Создаем документ
                    var OneDoc = OneWord.Documents.Add();

                    // Теперь формируем приложение
                    foreach (var item in userCrimes)
                    {
                        // Сохраняем картинку
                        // Первым делом необходимо сохранить картинку из byte[] в .png
                        if (item.Photo != null)
                        {
                            using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(item.Photo)))
                            {
                                image.Save(@"D:\user.png", ImageFormat.Png);  // Or Png
                            }
                        }


                        object f     = false;
                        object t     = true;
                        object range = Type.Missing;

                        // Далее пишем инфу о преступлении

                        string info = $"Размещается по адресу: {item.WebAddressPost};";

                        OneWord.ActiveDocument.Characters.Last.Select();
                        OneWord.Selection.Collapse();
                        OneDoc.Content.InsertAfter($"{info}\n");

                        if (item.Photo != null)
                        {
                            OneWord.ActiveDocument.Characters.Last.Select();
                            OneWord.Selection.Collapse();
                            OneDoc.InlineShapes.AddPicture(@"D:\user.png", ref f, ref t, ref range);
                        }

                        OneWord.ActiveDocument.Characters.Last.Select();
                        OneWord.Selection.Collapse();
                        OneWord.Selection.InsertBreak(Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak);
                    }

                    // Выходим и закрываем
                    OneDoc.SaveAs2($@"{FileSource}\{user.Family} {user.Name} - список нарушений.docx");
                    OneDoc.Close();
                    OneDoc = null;
                    OneWord.Quit();
                    OneWord = null;
                }


                // Создает приложение иностранных друзей
                if (foreignFriends.Count != 0)
                {
                    // Создаём объект word
                    Microsoft.Office.Interop.Word._Application OneWord = new Microsoft.Office.Interop.Word.Application();

                    // Создаем документ
                    var OneDoc = OneWord.Documents.Add();

                    // Теперь формируем приложение
                    foreach (var item in foreignFriends)
                    {
                        // Сохраняем картинку
                        // Первым делом необходимо сохранить картинку из byte[] в .png
                        if (item.Photo != null)
                        {
                            using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(item.Photo)))
                            {
                                image.Save(@"D:\user.png", ImageFormat.Png);  // Or Png
                            }
                        }


                        object f     = false;
                        object t     = true;
                        object range = Type.Missing;

                        // Далее пишем инфу об иностранном друге

                        string info = $"{item.Name} {item.Family}";

                        // если есть день рожденья, то добавить к тексту
                        if (item.BirthDay != null)
                        {
                            info += $", {item.BirthDay.Value.Day}.{item.BirthDay.Value.Month}.{item.BirthDay.Value.Year}";
                        }


                        // Добавить страну
                        info += $", {item.Country.Name}. Зарегистрирован(а) в социальной сети";
                        if (item.WebAddress.Contains("vk"))
                        {
                            info += " Вконтакте";
                        }
                        else if (item.WebAddress.Contains("facebook"))
                        {
                            info += " Фейсбук";
                        }
                        else
                        {
                            info += " Одноклассники";
                        }

                        info += $", адрес: {item.WebAddress}.";

                        OneWord.ActiveDocument.Characters.Last.Select();
                        OneWord.Selection.Collapse();
                        OneDoc.Content.InsertAfter($"{info}\n");

                        if (item.Photo != null)
                        {
                            OneWord.ActiveDocument.Characters.Last.Select();
                            OneWord.Selection.Collapse();
                            OneDoc.InlineShapes.AddPicture(@"D:\user.png", ref f, ref t, ref range);
                        }

                        OneWord.ActiveDocument.Characters.Last.Select();
                        OneWord.Selection.Collapse();
                        OneWord.Selection.InsertBreak(Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak);
                    }

                    // Выходим и закрываем
                    OneDoc.SaveAs2($@"{FileSource}\{user.Family} {user.Name} - список иностранных друзей.docx");
                    OneDoc.Close();
                    OneDoc = null;
                    OneWord.Quit();
                    OneWord = null;
                }



                // Сохраняем
                doc.SaveAs2($@"{FileSource}\{user.Family} {user.Name}.docx");
            }
            catch (Exception)
            {
            }
            finally
            {
                // Закрываем документ
                //doc.Close();
                //app.Quit();
                //doc = null;
                //app = null;
            }

            doc.Close();
            app.Quit();
            doc = null;
            app = null;
        }