Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
                    }
                }
            }
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
 public SimpleDataItem(GenericDataDetails gdd)
 {
     Name = gdd.Name;
     Details = gdd.AssociatedData.Select(ddi => new SimpleDataDetails(ddi)).ToArray();
 }