private void LoadFromFile(DataGroupItem dataGroup, DataSourceItem sourceItem) { FileCentralDataSource ds = sourceItem.SourceInformation as FileCentralDataSource; TimeSeries[] allTS = (TimeSeries[])NonInteractiveIO.Load(ds.Filename); if (allTS == null) { return; } for (var i = 0; i < allTS.Length; i++) { var ts = allTS[i]; DataDetailsItem dataItem = new DataDetailsItem { Data = new TimeSeriesPersistent { TimeSeries = ts }, DataInformation = new FileDataDetails { Name = ts.name, ReloadOnRun = ReloadOnRun, Column = i #if V3 || V4_0 || V4_1 || V4_2 #else , StartDate = ts.Start #endif } }; sourceItem.Data.Add(dataItem); var gdd = new GenericDataDetails { Name = ts.name }; gdd.AssociatedData.Add(dataItem); dataGroup.DataDetails.Add(gdd); } }
public SimpleDataItem(GenericDataDetails gdd) { Name = gdd.Name; bool slim = gdd.AssociatedData.Count >= SLIM_TS_THRESHOLD; Details = gdd.AssociatedData.Select(ddi => new SimpleDataDetails(ddi, false, slim)).ToArray(); }
private TimeSeries FindTimeSeries() { ReflectedItem ri = ReflectedItem.NewItem("Value", Variable); string gddName = Scenario.Network.DataManager.GetUsageFullName(ri); if (String.IsNullOrEmpty(gddName)) { return(null); } string[] split = gddName.Split('.'); if (split.Length <= 1) { return(null); } string groupName = string.Join(".", split.Take(split.Length - 1)); GenericDataDetails GDD = Scenario.Network.DataManager.DataGroups.Where(g => g.Name == groupName) .Select(@group => @group.GetUsage(split.Last())) .FirstOrDefault(gdd => gdd != null); // DataUsage DU = GDD.Usages.First(x => x.ReflectedItem.Equals(ri)); return(GDD.AssociatedData.FirstOrDefault(d => d.DataInformation.Name.Replace(".", "_") == split.Last()) .Data.TimeSeries); }
public void removeUsagesForSpecificModel(Model theModel) { if (theModel == null) { return; } foreach (MemberInfo MI in GetFieldsAndProperties(theModel.GetType())) { ReflectedItem RI = ReflectedItem.NewItem(MI, theModel); //Need this to 'ignore' redundant AggregatedConstituentModels //if (typeof(Model).IsAssignableFrom(RI.itemType) && RI.itemValue != null) if (RI.itemValue != null) { if (RI.itemValue is Model) { //This member is a model itself removeUsagesForSpecificModel((Model)RI.itemValue); continue; } } string GDDName = Scenario.Network.DataManager.GetUsageFullName(RI); if (!String.IsNullOrEmpty(GDDName))//Will be "" if no usages for this RI { string[] split = GDDName.Split(new[] { '.' }); if (split.Count() <= 1) { return; } string groupName = string.Join(".", split.Take(split.Count() - 1)); bool removeTS = true; GenericDataDetails GDD = Scenario.Network.DataManager.DataGroups.Where(g => g.Name == groupName).Select(@group => @group.GetUsage(split.Last())).FirstOrDefault(gdd => gdd != null); //GenericDataDetails GDD = Scenario.Network.DataManager.GetDetails(GDDName); if (GDD.Usages.Count > 1) { //Other items need this timeseries, don't remove removeTS = false; } DataUsage DU = GDD.Usages.First(x => x.ReflectedItem.Equals(RI)); GDD.Usages.Remove(DU); if (removeTS) { string DGName = GDDName.Split('.')[0]; DataGroupItem DGI = Scenario.Network.DataManager.DataGroups.FirstOrDefault(x => x.Name == DGName); DGI.RemoveItem(GDD); Scenario.Network.DataManager.Refresh(); } } } }
private void LoadFromDetails(DataGroupItem dataGroup, DataSourceItem sourceItem) { TimeSeries[] allTS = ParseCSV(); foreach (var ts in allTS) { DataDetailsItem dataItem = new DataDetailsItem { Data = new TimeSeriesPersistent { TimeSeries = ts }, DataInformation = new GeneratedDataDetails { Name = ts.name, ReloadOnRun = ReloadOnRun } }; sourceItem.Data.Add(dataItem); var gdd = new GenericDataDetails { Name = ts.name }; gdd.AssociatedData.Add(dataItem); dataGroup.DataDetails.Add(gdd); } }
public SimpleDataItem(GenericDataDetails gdd) { Name = gdd.Name; Details = gdd.AssociatedData.Select(ddi => new SimpleDataDetails(ddi)).ToArray(); }