/// <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."); } }
private static IWorkflowBuilder GetDefaultBuilder(MongoDBProvider provider) { var builder = new WorkflowBuilder<XElement>(provider, new XmlWorkflowParser(), provider ).WithDefaultCache(); return builder; }
private static IWorkflowBuilder GetDefaultBuilder(MongoDBProvider provider) { var builder = new WorkflowBuilder <XElement>(provider, new XmlWorkflowParser(), provider ).WithDefaultCache(); return(builder); }
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(); } }
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."); } }
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(); } }
/// <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; }
/// <summary> /// Provides a generic object serializer. /// </summary> /// <param name="Provider">Database provider.</param> public GenericObjectSerializer(MongoDBProvider Provider) : this(Provider, false) { }
/// <summary> /// Provides a generic object serializer. /// </summary> public GenericObjectSerializer(MongoDBProvider Provider) : base(typeof(GenericObject), Provider, true) { }
public MongoDbRepository(DataSettings dataSettings) { this.dataSettings = dataSettings; this.collection = MongoDBProvider.GetCollection <T>(dataSettings); }
/// <summary> /// Generic serializer of array types. /// </summary> /// <param name="Provider">Files provider.</param> public ArraySerializer(MongoDBProvider Provider) { this.provider = Provider; }
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(); }