/// <summary>
        /// Reads a typed array.
        /// </summary>
        /// <param name="T">Element type.</param>
        /// <param name="Provider">Database provider object.</param>
        /// <param name="Reader">Binary reader.</param>
        /// <param name="FieldDataType">Field data type.</param>
        /// <returns>String value.</returns>
        /// <exception cref="ArgumentException">If the <paramref name="FieldDataType"/> was invalid.</exception>
        public static Array ReadArray(Type T, MongoDBProvider Provider, IBsonReader Reader, BsonType FieldDataType)
        {
            switch (FieldDataType)
            {
            case BsonType.Array:
                List <object>     Elements = new List <object>();
                IObjectSerializer S        = Provider.GetObjectSerializer(T ?? typeof(GenericObject));

                Reader.ReadStartArray();
                while (Reader.State != BsonReaderState.EndOfArray)
                {
                    BsonType?ElementType = null;

                    if (Reader.State == BsonReaderState.Type)
                    {
                        ElementType = Reader.ReadBsonType();
                        if (ElementType == BsonType.EndOfDocument)
                        {
                            break;
                        }
                    }

                    Elements.Add(S.Deserialize(Reader, ElementType, true));
                }

                Reader.ReadEndArray();

                if (T is null)
                {
                    return(Elements.ToArray());
                }

                int   c      = Elements.Count;
                Array Result = Array.CreateInstance(T, c);
                Array.Copy(Elements.ToArray(), 0, Result, 0, c);

                return(Result);

            case BsonType.Binary:
                byte[] Bin = Reader.ReadBytes();

                if (T is null || T == typeof(byte))
                {
                    return(Bin);
                }

                c      = Bin.Length;
                Result = Array.CreateInstance(T, c);
                Array.Copy(Bin, 0, Result, 0, c);

                return(Result);

            case BsonType.Null:
                Reader.ReadNull();
                return(null);

            default:
                throw new Exception("Array expected.");
            }
        }
Esempio n. 2
0
 private static IWorkflowBuilder GetDefaultBuilder(MongoDBProvider provider)
 {
     var builder = new WorkflowBuilder<XElement>(provider,
         new XmlWorkflowParser(),
         provider
         ).WithDefaultCache();
     return builder;
 }
Esempio n. 3
0
        private static IWorkflowBuilder GetDefaultBuilder(MongoDBProvider provider)
        {
            var builder = new WorkflowBuilder <XElement>(provider,
                                                         new XmlWorkflowParser(),
                                                         provider
                                                         ).WithDefaultCache();

            return(builder);
        }
Esempio n. 4
0
        public PersistenceProviderContainer()
        {
            var mongoClient = new MongoClient(new MongoUrl(ConfigurationManager.AppSettings["Url"]));

            _provider = new MongoDBProvider(mongoClient.GetDatabase(ConfigurationManager.AppSettings["Database"]));
            Provider  = _provider;

            if (_provider.Store.GetCollection <Business.Model.Role>("Role").CountDocuments(new BsonDocument()) == 0)
            {
                GenerateData();
            }
        }
Esempio n. 5
0
        public PersistenceProviderContainer(IConfiguration config)
        {
            var mongoClient = new MongoClient(new MongoUrl(config["Url"]));

            _provider =
                new MongoDBProvider(mongoClient.GetDatabase(config["Database"]));

            if (_provider.Store.GetCollection <Business.Model.Role>("Role").CountDocuments(new BsonDocument()) == 0)
            {
                GenereateDate();
            }
        }
        /// <summary>
        /// Writes an array.
        /// </summary>
        /// <param name="T">Element type.</param>
        /// <param name="Provider">Database provider object.</param>
        /// <param name="Writer">Binary writer.</param>
        /// <param name="Value">Value to serialize.</param>
        public static void WriteArray(Type T, MongoDBProvider Provider, BsonWriter Writer, Array Value)
        {
            if (Value is null)
            {
                Writer.WriteNull();
            }
            else
            {
                Type LastType       = T;
                IObjectSerializer S = Provider.GetObjectSerializer(LastType);
                Type ItemType;
                bool Nullable = S.IsNullable;

                Writer.WriteStartArray();

                foreach (object Item in Value)
                {
                    if (Item == null)
                    {
                        if (Nullable)
                        {
                            Writer.WriteNull();
                        }
                        else
                        {
                            throw new Exception("Elements cannot be null.");
                        }
                    }
                    else
                    {
                        ItemType = Item.GetType();
                        if (ItemType != LastType)
                        {
                            S        = Provider.GetObjectSerializer(ItemType);
                            LastType = ItemType;
                        }

                        S.Serialize(Writer, Nullable, true, Item);
                    }
                }

                Writer.WriteEndArray();
            }
        }
        /// <summary>
        /// Reads a typed array.
        /// </summary>
        /// <typeparam name="T">Element type.</typeparam>
        /// <param name="Provider">Database provider object.</param>
        /// <param name="Reader">Binary reader.</param>
        /// <param name="FieldDataType">Field data type.</param>
        /// <returns>String value.</returns>
        /// <exception cref="ArgumentException">If the <paramref name="FieldDataType"/> was invalid.</exception>
        public static T[] ReadArray <T>(MongoDBProvider Provider, IBsonReader Reader, BsonType FieldDataType)
        {
            switch (FieldDataType)
            {
            case BsonType.Array:
                List <T>          Elements = new List <T>();
                IObjectSerializer S        = Provider.GetObjectSerializer(typeof(T));

                Reader.ReadStartArray();
                while (Reader.State != BsonReaderState.EndOfArray)
                {
                    BsonType?ElementType = null;

                    if (Reader.State == BsonReaderState.Type)
                    {
                        ElementType = Reader.ReadBsonType();
                        if (ElementType == BsonType.EndOfDocument)
                        {
                            break;
                        }
                    }

                    Elements.Add((T)S.Deserialize(Reader, ElementType, true));
                }

                Reader.ReadEndArray();

                return(Elements.ToArray());

            case BsonType.Binary:
                object Temp = Reader.ReadBytes();
                return((T[])Temp);

            case BsonType.Null:
                Reader.ReadNull();
                return(null);

            default:
                throw new Exception("Array expected.");
            }
        }
Esempio n. 8
0
        public static void SaveData(XMLData data)
        {
            using (SupermarketEntitiesSQLServer marketContext
                       = new SupermarketEntitiesSQLServer())
            {
                MongoDBProvider mnogoContext    = new MongoDBProvider();
                Expense         expenseToInsert = new Expense();

                expenseToInsert.CurrentExpense = data.Expense;
                expenseToInsert.CurrentMonth   = data.CurrentExpenseDate;
                expenseToInsert.VendorName     = data.Vendor;

                // Save to Mnogo DB
                mnogoContext.InsertExpence(expenseToInsert);

                // Save to MSSQL server
                marketContext.Expenses.Add(expenseToInsert);

                marketContext.SaveChanges();
            }
        }
        public static void FillSQLite()
        {
            using (TaxesEntities taxes = new TaxesEntities())
            {
                var mongo = new MongoDBProvider();

                var allExpences = mongo.ListAllExpenses();
                var allReporst  = mongo.ListAllReports();

                foreach (var report in allReporst)
                {
                    Report reportToInsert = new Report();
                    reportToInsert.TotalIncome       = report.TotalIncomes;
                    reportToInsert.TotalQuantitySold = report.TotalQuantitySold;
                    reportToInsert.VendorName        = report.VendorName;
                    reportToInsert.ProductName       = report.ProductName;

                    taxes.Reports.Add(reportToInsert);
                }

                taxes.SaveChanges();

                foreach (var expence in allExpences)
                {
                    Expence expenceToInsert = new Expence();
                    expenceToInsert.CurrentExpence = expence.CurrentExpense;
                    expenceToInsert.CurrentMoth    = expence.CurrentMonth;
                    expenceToInsert.VendorName     = expence.VendorName;

                    taxes.Expences.Add(expenceToInsert);
                }


                taxes.SaveChanges();
            }
        }
Esempio n. 10
0
 /// <summary>
 /// Provides a generic object serializer.
 /// </summary>
 /// <param name="Provider">Database provider.</param>
 /// <param name="ReturnTypedObjects">If typed objects are to be returned.</param>
 public GenericObjectSerializer(MongoDBProvider Provider, bool ReturnTypedObjects)
     : base(typeof(GenericObject), Provider, true)
 {
     this.returnTypedObjects = ReturnTypedObjects;
 }
Esempio n. 11
0
 /// <summary>
 /// Provides a generic object serializer.
 /// </summary>
 /// <param name="Provider">Database provider.</param>
 public GenericObjectSerializer(MongoDBProvider Provider)
     : this(Provider, false)
 {
 }
Esempio n. 12
0
 /// <summary>
 /// Provides a generic object serializer.
 /// </summary>
 public GenericObjectSerializer(MongoDBProvider Provider)
     : base(typeof(GenericObject), Provider, true)
 {
 }
Esempio n. 13
0
 public MongoDbRepository(DataSettings dataSettings)
 {
     this.dataSettings = dataSettings;
     this.collection   = MongoDBProvider.GetCollection <T>(dataSettings);
 }
Esempio n. 14
0
 /// <summary>
 /// Generic serializer of array types.
 /// </summary>
 /// <param name="Provider">Files provider.</param>
 public ArraySerializer(MongoDBProvider Provider)
 {
     this.provider = Provider;
 }
Esempio n. 15
0
        public static void Main(string[] args)
        {
            // Gloabl
            System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion <SupermarketEntitiesSQLServer, Configuration>());
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            // <------------ PDF Generation --------------->

            //using (SupermarketEntitiesSQLServer test = new SupermarketEntitiesSQLServer())
            //{
            //    DatabaseUtilites.AggregatePDF(test, DateTime.Parse("01/01/1990"), DateTime.Parse("01/01/2020"));
            //}

            // <------------ DB Fill --------------->

            //string excelFileDir = @"../../temp";
            //if (Directory.Exists(excelFileDir))
            //{
            //    Directory.Delete(excelFileDir, true);
            //}

            //using (ZipFile zip = ZipFile.Read(@"../../Sample-Sales-Reports.zip"))
            //{
            //    zip.ExtractAll(excelFileDir);

            //    ExcelReader.GetSubDirs(excelFileDir);
            //}

            //using (SupermarketEntitiesSQLServer spEntSQLServer
            //    = new SupermarketEntitiesSQLServer())
            //{
            //    using (MySQL.Models.OpenAccess.SupermarketEntitiesMySQL spEntMySQL
            //    = new MySQL.Models.OpenAccess.SupermarketEntitiesMySQL())
            //    {
            //        DatabaseUtilites.MigrateData(spEntMySQL, spEntSQLServer);
            //        DatabaseUtilites.FillExcelData(spEntSQLServer);

            //    }
            //}

            // <------------ XML Read --------------->

            //XMLCustomReader.ReadExpesnses(@"../../Vendors-Expenses.xml");

            //// <------------ Mongo DB --------------->

            var provider = new MongoDBProvider();
            //provider.DropAllCollections();

            var collection = provider.ListAllExpenses();

            //var sorted = collection.Where(a => a.CurrentMonth.Month == DateTime.Now.Month);

            foreach (var item in collection)
            {
                if (item.CurrentMonth.Month == DateTime.Now.Month)
                {
                }
            }

            provider.InsertProductReports();
            var reportCollection = provider.ListAllReports();

            foreach (var item in reportCollection)
            {
                Console.WriteLine(item);
            }

            provider.SaveProductReportToHDD();

            //// <------------- XML Write --------------->
            //XMLGenerator.GenerateSalesReport();

            //DatabaseUtilites.FillSQLite();

            ExcelWriter.GenerateExcel();
        }