public static Dictionary <string, HourData> GetCsvData2(string filePath, int row) { using (var reader = new StreamReader(filePath)) { var names = new List <string>(); var asset = new Dictionary <string, HourData>(); for (var i = 0; i < row && !reader.EndOfStream; i++) { var line = reader.ReadLine(); var values = line.Split('\t'); if (i == 0) { names.AddRange(values); foreach (var name in names.Where(c => !c.Contains("Time"))) { DbHelper.CreateAssetIfNotExist(name.Replace("\"", "")); } } else { for (var col = 0; col < values.Length; col++) { var assetName = names[col].Replace("\"", ""); if (assetName.Contains("Time")) { continue; } var date = DateTime.Parse(values[0]); var stringValue = values[col]; var item = double.TryParse(stringValue, out var number) ? new Item(number, date) : new Item(stringValue, date); var key = $"SensorData_{assetName}_{date:yyyy_MM_dd_HH}"; if (!asset.ContainsKey(key)) { asset[key] = new HourData(assetName, item.DateTime); DbHelper.AddHourlyDataKeyToAsset(assetName, key); } asset[key].Items.Add(item); } } } return(asset); } }
public static void AddDataV1(Dictionary <string, List <Item> > items) { foreach (var itemsKey in items.Keys) { CreateAssetIfNotExist(itemsKey); } foreach (var data in items) { var hourlyData = new Dictionary <string, HourData>(); foreach (var item in data.Value) { var key = item.DateTime.ToString("yyyy_MM_dd_HH"); if (!hourlyData.ContainsKey(key)) { hourlyData[key] = new HourData(data.Key, item.DateTime); } hourlyData[key].Items.Add(item); } foreach (var hourData in hourlyData) { using (var session = DocumentStoreHolder.Store.OpenSession("TestDb1")) { session.Store(hourData.Value); var id = hourData.Value.Id; session.SaveChanges(); var asset = session.Load <SensorAsset>(hourData.Value.Asset); asset.HourDatas.Add(id); session.SaveChanges(); Console.WriteLine($"Added {data.Key}"); } } } }