public void ProcessDocument()
        {
            FileStream fileStream = new FileStream("../../../Report.pdf", FileMode.Create, FileAccess.Write, FileShare.None);
            Document pdfDocumnet = new Document();
            PdfWriter pdrWriter = PdfWriter.GetInstance(pdfDocumnet, fileStream);
            pdfDocumnet.Open();

            using (NitrogenMsSqlDb dbCon = new NitrogenMsSqlDb())
            {
                var salesByData = (from s in dbCon.Sales
                             join p in dbCon.Products on s.ProductId equals p.ProductId
                             join pl in dbCon.Places on s.PlaceId equals pl.PlaceId
                             select new
                             {
                                 Date = s.Date,
                                 ProductName = p.Name,
                                 ThePlace = pl.Name,
                                 Quantity = s.Quantity,
                                 PricePerUnit = s.PricePerUnit,
                                 Sum = s.Sum
                             })
                             .GroupBy(s => s.Date)
                             .ToList();

                var mainTable = new PdfPTable(1);
                mainTable.AddCell("All sales");
                pdfDocumnet.Add(Chunk.NEWLINE);

                foreach (var key in salesByData)
                {
                    mainTable.AddCell(key.Key.ToShortDateString());
                    pdfDocumnet.Add(Chunk.NEWLINE);

                    var innerTable = new PdfPTable(5);

                    innerTable.AddCell("The place");
                    innerTable.AddCell("Product Name");
                    innerTable.AddCell("Quantity");
                    innerTable.AddCell("Price Per Unit");
                    innerTable.AddCell("Sum");

                    foreach (var item in key)
                    {
                        innerTable.AddCell(item.ThePlace);
                        innerTable.AddCell(item.ProductName);
                        innerTable.AddCell(item.Quantity.ToString());
                        innerTable.AddCell(string.Format("{0:F2}", item.ProductName));
                        innerTable.AddCell(string.Format("{0:F2}", item.Sum));
                    }

                    mainTable.AddCell(innerTable);
                }

                pdfDocumnet.Add(mainTable);
                pdfDocumnet.Close();
            }
        }
        static void Main()
        {
            //logs.Insert(new Place
            //{
            //    Id = ObjectId.GenerateNewId().ToString(),
            //    Name = "The Hole",
            //    Address = "1 Vitosha Blvd."
            //});

            //logs.Insert(new Place
            //{
            //    Id = ObjectId.GenerateNewId().ToString(),
            //    Name = "Shiny Place",
            //    Address = "2 Vitosha Blvd."
            //});

            //logs.Insert(new Place
            //{
            //    Id = ObjectId.GenerateNewId().ToString(),
            //    Name = "Space Bar",
            //    Address = "3 Vitosha Blvd."
            //});

            //var update = Update.Set("Text", "Changed Text at " + DateTime.Now);

            //var query = Query.And(
            //    Query.LT("LogDate", DateTime.Now.AddSeconds(-1))
            //    );

            //logs.Update(query, update);

            //MongoRepository mongoCtx = new MongoRepository();

            //List<Nitrogen.Mongo.Models.Place> allPlaces = mongoCtx.GetAllPlaces().ToList();

            //using (NitrogenMsSqlDb ctx = new NitrogenMsSqlDb())
            //{
            //    foreach (var place in allPlaces)
            //    {
            //        ctx.Places.Add(place);
            //    }

            //    ctx.SaveChanges();
            //}

            //var allProducts = mongoCtx.GetAllProducts().ToList();

            //using (NitrogenMsSqlDb ctx = new NitrogenMsSqlDb())
            //{
            //    foreach (var product in allProducts)
            //    {
            //        ctx.Products.Add(product);
            //    }

            //    ctx.SaveChanges();
            //}

            //var xmlSerializer = new Nitrogen.Serializers.XmlSerialzer();

            //var xmlString = xmlSerializer.Serialize<List<Nitrogen.Mongo.Models.Place>>(allPlaces);

            //var xmlFilePath = "../../places.xml";

            //using (var str = new StreamWriter(xmlFilePath))
            //{
            //    str.Write(xmlString);
            //}

            //var objectsFromXml = xmlSerializer.ParseXml<List<Nitrogen.Mongo.Models.Place>>(xmlFilePath);

            //Console.WriteLine();

            /*ReportImporter importer = new ReportImporter();
            importer.GetZipFile();*/
            /*
            PdfProcess pdfReport = new PdfProcess();
            pdfReport.ProcessDocument();*/

            using (NitrogenMsSqlDb ctx = new NitrogenMsSqlDb())
            {
                var reports = (from s in ctx.Sales
                               join p in ctx.Products on s.ProductId equals p.ProductId
                               join pl in ctx.Places on s.PlaceId equals pl.PlaceId
                               select new
                               {
                                   Date = s.Date,
                                   ProductName = p.Name,
                                   ThePlace = pl.Name,
                                   Quantity = s.Quantity,
                                   PricePerUnit = s.PricePerUnit,
                                   Sum = s.Sum
                               })
                             .GroupBy(s => s.Date)
                             .ToList();

                int counter = 1;

                foreach (var rep in reports)
                {
                    using (var writer = new StreamWriter("../../report" + counter + ".json"))
                    {
                        writer.Write(JsonConvert.SerializeObject(rep, Formatting.Indented));
                    }
                    counter++;
                }
            }
        }