Пример #1
0
        /// <summary>
        /// Mencari index group pada list
        /// </summary>
        /// <param name="variableCollection">list group</param>
        /// <param name="name">nama group</param>
        /// <returns>index</returns>
        public static int FindGroupIndex(SeriesGroups groupCollection, string name)
        {
            SeriesVariables a = new SeriesVariables();
            groupToFind = new SeriesGroup(name, a);
            System.Predicate<SeriesGroup> search = findGroupPredicate;

            return groupCollection.FindIndex(search);
        }
Пример #2
0
 public void SetData(SeriesVariables sourceVariables, SeriesGroups sourceGroups)
 {
     this.sourceVariables          = sourceVariables;
     this.sourceGroups             = sourceGroups;
     this.sourceVariables.Changed += new ChangedEventHandler(sourceVariables_Changed);
     this.sourceGroups.Changed    += new ChangedEventHandler(sourceGroups_Changed);
     this.update();
 }
Пример #3
0
 private PivotedProperties(ItemProperties itemProperties, IEnumerable <SeriesGroup> seriesGroups)
 {
     ItemProperties = itemProperties;
     SeriesGroups   = ImmutableList.ValueOf(seriesGroups);
     if (!SeriesGroups.SelectMany(group => group.SeriesList)
         .All(series => ReferenceEquals(series.ItemProperties, itemProperties)))
     {
         throw new ArgumentException(@"Wrong set of properties", nameof(seriesGroups));
     }
 }
Пример #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">nama project</param>
 /// <param name="frequency">frekuensi</param>
 /// <param name="start">tangal awal</param>
 /// <param name="end">tangal akhir</param>
 public SeriesData(string name,SeriesFrequency frequency, DateTime start, DateTime end)
 {
     this.seriesName = name;
     this.frequency = frequency;
     this.startDate = start;
     this.endDate = end;
     this.computeNumberObservations();
     this.createNewTimeData();
     this.seriesVariables = new SeriesVariables();
     this.seriesGroups = new SeriesGroups();
 }
Пример #5
0
        /// <summary>
        /// Constructor. untuk undated
        /// </summary>
        /// <param name="name">nama project</param>
        /// <param name="numberObservations">jumlah observasi</param>
        public SeriesData(string name, int numberObservations)
        {
            this.seriesName = name;
            this.frequency = SeriesData.SeriesFrequency.Undated;
            this.numberObservations = numberObservations;
            this.createNewTimeData();
            this.seriesVariables = new SeriesVariables();
            this.seriesGroups = new SeriesGroups();

            this.seriesVariables.Changed += new ChangedEventHandler(OnChanged);
            this.seriesGroups.Changed += new ChangedEventHandler(OnChanged);
            this.time.Changed += new ChangedEventHandler(OnChanged);
        }
Пример #6
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">nama project</param>
        /// <param name="frequency">frekuensi</param>
        /// <param name="start">tangal awal</param>
        /// <param name="end">tangal akhir</param>
        public SeriesData(string name,SeriesFrequency frequency, DateTime start, DateTime end)
        {
            this.seriesName = name;
            this.frequency = frequency;
            this.startDate = start;
            this.endDate = end;
            this.computeNumberObservations();
            this.createNewTimeData();
            this.seriesVariables = new SeriesVariables();
            this.seriesGroups = new SeriesGroups();
            this.seriesStocks = new SeriesStocks();

            this.seriesVariables.Changed += new ChangedEventHandler(OnChanged);
            this.seriesGroups.Changed += new ChangedEventHandler(OnChanged);
            this.seriesStocks.Changed += new ChangedEventHandler(OnChanged);
            this.time.Changed += new ChangedEventHandler(OnChanged);
        }
Пример #7
0
        /// <summary>
        /// Reorder the ItemProperties collection so that the ungrouped properties come first,
        /// followed by the grouped properties.
        /// If a group contains multiple series, the properties from those series are interleaved
        /// with each other.
        /// </summary>
        /// <returns></returns>
        public PivotedProperties ReorderItemProperties()
        {
            var groupedPropertyIndexes = SeriesGroups
                                         .SelectMany(group => group.SeriesList.SelectMany(series => series.PropertyIndexes)).ToHashSet();
            var newOrder = new List <int>();

            newOrder.AddRange(Enumerable.Range(0, ItemProperties.Count).Where(i => !groupedPropertyIndexes.Contains(i)));
            newOrder.AddRange(SeriesGroups.SelectMany(group =>
                                                      Enumerable.Range(0, group.PivotKeys.Count)
                                                      .SelectMany(i => group.SeriesList.Select(series => series.PropertyIndexes[i]))));

            var newNumbering = new int[newOrder.Count];

            for (int i = 0; i < newOrder.Count; i++)
            {
                newNumbering[newOrder[i]] = i;
            }

            var newItemProperties = new ItemProperties(newOrder.Select(i => ItemProperties[i]));
            var result            = new PivotedProperties(newItemProperties, SeriesGroups.Select(group => group.RenumberProperties(newItemProperties, newNumbering)));

#if DEBUG
            Debug.Assert(ItemProperties.ToHashSet().SetEquals(result.ItemProperties.ToHashSet()));
            Debug.Assert(SeriesGroups.Count == result.SeriesGroups.Count);
            for (int iGroup = 0; iGroup < SeriesGroups.Count; iGroup++)
            {
                Debug.Assert(SeriesGroups[iGroup].SeriesList.Count == result.SeriesGroups[iGroup].SeriesList.Count);
                Debug.Assert(SeriesGroups[iGroup].PivotKeys.SequenceEqual(result.SeriesGroups[iGroup].PivotKeys));
                for (int iSeries = 0; iSeries < SeriesGroups[iGroup].SeriesList.Count; iSeries++)
                {
                    var resultSeries = result.SeriesGroups[iGroup].SeriesList[iSeries];
                    Debug.Assert(resultSeries.PropertyIndexes.OrderBy(i => i).SequenceEqual(resultSeries.PropertyIndexes));

                    var series = SeriesGroups[iGroup].SeriesList[iSeries];
                    Debug.Assert(series.PropertyIndexes.Select(i => ItemProperties[i])
                                 .SequenceEqual(resultSeries.PropertyIndexes.Select(i => result.ItemProperties[i])));
                }
            }
#endif
            return(result);
        }
 public void SetData(SeriesVariables sourceVariables, SeriesGroups sourceGroups)
 {
     this.sourceVariables = sourceVariables;
     this.sourceGroups = sourceGroups;
     this.sourceVariables.Changed += new ChangedEventHandler(sourceVariables_Changed);
     this.sourceGroups.Changed += new ChangedEventHandler(sourceGroups_Changed);
     this.update();
 }