public static void Main()
        {
            // Creating MongoDb database.
            var dbMongoDb = new MediaDistributorsMongoData();

            // Generating distributors.
            var genedartor = new DataGenerator();
            var generatedDistributors = genedartor.GenerateDistributors(3);

            // Inserting to MongoDb.
            dbMongoDb.InsertToMongo(generatedDistributors);
            var distributorsToSql = dbMongoDb.GetFromMongo();

            // Creating and insert to SQL Server database.
            var dbSql = new MediaMonitoringSystemDbContext();
            foreach (var distributor in distributorsToSql)
            {
                dbSql.MediaDistributors.Add(distributor);
            }
            dbSql.SaveChanges();
            >>>>>>> e1c871f4a51ce55ee53ae24534264957938a56bb

            var sqlite = new MediaMonitoringPricingData();

            // Extracting zip file.
            IArchiever zipArchiver = new ZipArchiever();
            string zipPath = "../../MOCK_DATA.zip";
            string extractedPath = "../../Export/";
            zipArchiver.UnArchieve(zipPath, extractedPath);

            IImporter excelImporter = new ExcelImporter(new MediaMonitoringSystemDbContext());

            string[] paths = new string[]
            {
                "../../MOCK_DATA.zip",
                "../../Export/",
                "../../Export/MOCK_DATA/MOCK_DATA.xls"
            };

            // Importing data from excel.
            IBulkImporter bulkImporter = new ExcelBulkImporter(zipArchiver, excelImporter, paths);
            bulkImporter.ImportAll();

            // Creating PDF file.
            var pdfWriter = new PdfReportWriter();
            pdfWriter.Generate();

            // Generating JSONs files.
            var jsonExporter = new JsonReportWriter();
            jsonExporter.Generate();

            //var xmlReporter = new XMLReportWriter();
            //xmlReporter.Generate();
        }
        public void Generate()
        {
            var db = new MediaMonitoringSystemDbContext();

            var clients = db.Clients.Select(c => new
                {
                    Name = c.Name,
                    Themes = c.Themes.Select(t => new
                    {
                        Start = t.StartDate,
                        End = t.EndDate,
                        Theme = t.Name,
                        Packages = t.Package.Medias.Select(m => new
                        {
                            Media = m.Name,
                            Articles = m.Articles.Select(a => new
                            {
                                Title = a.Title,
                                PublishedOn = a.PublishedOn,
                                Content = a.Content
                            })
                            .OrderBy(a => a.PublishedOn)
                        })
                        .OrderBy(m => m.Media)
                    })
                    .OrderBy(t => t.Start)
                })
                .ToList();

            foreach (var client in clients)
            {
                string fileName = "../../client-" + client.Name + ".xml";
                Encoding encoding = Encoding.GetEncoding("windows-1251");

                var xmlNode =
                    new XElement("client",
                         new XAttribute("name", client.Name),
                         new XElement("themes",
                             new XElement("theme", client.Name)
                         )
                     );

                xmlNode.Save(fileName);
            }
        }
        public void GetJson()
        {
            var db = new MediaMonitoringSystemDbContext();

            var medias = db.Medias
                .OrderBy(m => m.Id)
                .Select(m => new
                {
                    Id = m.Id,
                    Name = m.Name,
                    Distributor = m.MediaDistributor.Name,
                    TotalSells = db.Packages.Where(p => p.Medias.Contains(m)).Count(),
                    Incomes = db.Packages.Where(p => p.Medias.Contains(m)).Sum(p => p.PricePerMonth)
                })
                .ToList();

            foreach (var media in medias)
            {
                var serializedMedia = JsonConvert.SerializeObject(media);
                Console.WriteLine(serializedMedia);
            }
        }
        public void Generate()
        {
            Console.WriteLine("JSONs starting generate...");

            var db = new MediaMonitoringSystemDbContext();

            var medias = db.Medias
                .OrderBy(m => m.Id)
                .Select(m => new
                {
                    Id = m.Id,
                    Name = m.Name,
                    Distributor = m.MediaDistributor.Name,
                    TotalSells = db.Packages.Where(p => p.Medias.Contains(m)).Count(),
                    //Incomes = db.Packages.Where(p => p.Medias.Contains(m)).Sum(p => p.PricePerMonth)
                })
                .ToList();

            if (!Directory.Exists(PathForJsonFiles))
            {
                Directory.CreateDirectory(PathForJsonFiles);
            }

            foreach (var media in medias)
            {
                var serializedMedia = JsonConvert.SerializeObject(media);

                using (var writer = new StreamWriter(PathForJsonFiles + "/" + media.Id + ".json", false))
                {
                    writer.Write(JsonConvert.SerializeObject(serializedMedia, Formatting.Indented));
                }
                Console.Write(".");
            }
            Console.WriteLine();

            Console.WriteLine("JOSNs generated!");
        }