Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DateTimePivotCollection&lt;TCollection, T, TCategoryCollection, TCategory, TSubSummary&gt;"/> class.
        /// </summary>
        /// <param name="categoryCollection">The category collection.</param>
        /// <param name="entityCollection">The entity collection.</param>
        /// <param name="func_GetEntityCollectionOfOneCategory">The func_ get entity collection of one category.</param>
        /// <param name="dateTimePivotSetting">The date time pivot setting.</param>
        /// <param name="func_GetEntityCollectionOfOneCriteria">The func_ get entity collection of one criteria.</param>
        /// <param name="func_CalculateSubSummary">The func_ calculate sub summary.</param>
        public DateTimePivotCollection(
            TCategoryCollection categoryCollection
            , TCollection entityCollection
            , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
            , Func <TCategory, TCollection, TCollection> func_GetEntityCollectionOfOneCategory
            , Framework.EntityContracts.DateTimePivotEntities.DateTimePivotSetting dateTimePivotSetting
            , Func <Framework.EntityContracts.QuerySystemDateTimeRangeCriteria, TCollection, TCollection> func_GetEntityCollectionOfOneCriteria
            , Func <TCollection, TSubSummary> func_CalculateSubSummary
            )
        {
            Framework.EntityContracts.QuerySystemDateTimeRangeCriteria[] _ConsecutiveDistributionCriteria = dateTimePivotSetting.CalculateConsecutiveDistributionCriteria(criteria);
            // some problems here.
            foreach (TCategory _Category in categoryCollection)
            {
                this.Add(_Category, func_GetEntityCollectionOfOneCategory(_Category, entityCollection), criteria, dateTimePivotSetting.DateTimeUnitOfInterval, dateTimePivotSetting.Interval);
            }

            foreach (var _OneItem in this)
            {
                List <TCollection> _Distributed = new List <TCollection>();
                foreach (var _OneCriteria in _ConsecutiveDistributionCriteria)
                {
                    _Distributed.Add(_OneItem.GetEntityCollectionOfOneCriteria(_OneCriteria, func_GetEntityCollectionOfOneCriteria));
                }
                _OneItem.DistributedEntityCollection = _Distributed.ToArray();
                _OneItem.SubSummary = _OneItem.CalculateSubSummary(func_CalculateSubSummary);
            }
        }
 /// <summary>
 /// Gets the entity collection of one criteria.
 /// </summary>
 /// <param name="oneCriteria">The one criteria.</param>
 /// <param name="func_GetEntityCollectionOfOneCriteria">The func_ get entity collection of one criteria.</param>
 /// <returns>entity Collection meets criteria</returns>
 public virtual TCollection GetEntityCollectionOfOneCriteria(
     Framework.EntityContracts.QuerySystemDateTimeRangeCriteria oneCriteria
     , Func <Framework.EntityContracts.QuerySystemDateTimeRangeCriteria, TCollection, TCollection> func_GetEntityCollectionOfOneCriteria)
 {
     this.Func_GetEntityCollectionOfOneCriteria = func_GetEntityCollectionOfOneCriteria;
     return(this.GetEntityCollectionOfOneCriteria(oneCriteria));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DateTimePivot&lt;TCollection, T, TCategory, TSubSummary&gt;"/> class.
 /// </summary>
 /// <param name="category">The category.</param>
 /// <param name="entityCollection">The entity collection.</param>
 /// <param name="dateTimePivotSetting">The date time pivot setting.</param>
 public DateTimePivot(
     TCategory category
     , TCollection entityCollection
     , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
     , Framework.EntityContracts.DateTimePivotEntities.DateTimePivotSetting dateTimePivotSetting)
     : this(category, entityCollection, dateTimePivotSetting.CalculateConsecutiveDistributionCriteria(criteria))
 {
 }
Пример #4
0
        /// <summary>
        /// Adds the specified category.
        /// </summary>
        /// <param name="category">The category.</param>
        /// <param name="entityCollection">The entity collection.</param>
        /// <param name="criteria">The criteria.</param>
        protected void Add(
            TCategory category
            , TCollection entityCollection
            , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
            , Framework.EntityContracts.Queries.DateTimeUnit dateTimeUnitOfInterval
            , int interval
            )
        {
            if (category != null && criteria != null)
            {
                Framework.EntityContracts.DateTimePivotEntities.DateTimePivot <TCollection, T, TCategory, TSubSummary> _One = new Framework.EntityContracts.DateTimePivotEntities.DateTimePivot <TCollection, T, TCategory, TSubSummary>(category, entityCollection, (new DateTimePivotSetting(dateTimeUnitOfInterval, interval)).CalculateConsecutiveDistributionCriteria(criteria));

                this.Add(_One);
            }
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DateTimePivotContextByAlphabeticalOrderCategoryBase&lt;TCollection, T, TSubSummary, TSummary&gt;"/> class.
 /// </summary>
 /// <param name="categoryCollection">The category collection.</param>
 /// <param name="entityCollection">The entity collection.</param>
 /// <param name="criteria">The criteria.</param>
 /// <param name="func_GetEntityCollectionOfOneCategory">The func_ get entity collection of one category.</param>
 /// <param name="func_CalculateSummary">The func_ calculate summary.</param>
 /// <param name="func_GetEntityCollectionOfOneCriteria">The func_ get entity collection of one criteria.</param>
 /// <param name="func_CalculateSubSummary">The func_ calculate sub summary.</param>
 public DateTimePivotContextByAlphabeticalOrderCategoryBase(
     Framework.EntityContracts.AlphabeticalOrderCategoryCollection categoryCollection
     , TCollection entityCollection
     , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
     , Func <Framework.EntityContracts.AlphabeticalOrderCategory, TCollection, TCollection> func_GetEntityCollectionOfOneCategory
     , Func <TCollection, TSummary> func_CalculateSummary
     , Func <Framework.EntityContracts.QuerySystemDateTimeRangeCriteria, TCollection, TCollection> func_GetEntityCollectionOfOneCriteria
     , Func <TCollection, TSubSummary> func_CalculateSubSummary
     )
     : base(
         categoryCollection
         , entityCollection
         , criteria
         , func_GetEntityCollectionOfOneCategory
         , func_CalculateSummary
         , func_GetEntityCollectionOfOneCriteria
         , func_CalculateSubSummary)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DateTimePivotContextByDateTimePivotSettingBase&lt;TCollection, T, TSubSummary, TSummary&gt;"/> class.
 /// </summary>
 /// <param name="dateTimePivotSetting">The date time pivot setting.</param>
 /// <param name="func_GetNameValueCollection">The func_ get name value collection.</param>
 /// <param name="entityCollection">The entity collection.</param>
 /// <param name="criteria">The criteria.</param>
 /// <param name="func_GetEntityCollectionOfOneCategory">The func_ get entity collection of one category.</param>
 /// <param name="func_CalculateSummary">The func_ calculate summary.</param>
 /// <param name="func_GetEntityCollectionOfOneCriteria">The func_ get entity collection of one criteria.</param>
 /// <param name="func_CalculateSubSummary">The func_ calculate sub summary.</param>
 protected DateTimePivotContextByDateTimePivotSettingBase(
     Framework.EntityContracts.DateTimePivotEntities.DateTimePivotSetting dateTimePivotSetting
     , Func <Framework.EntityContracts.DateTimePivotEntities.DateTimePivotSetting, Framework.NameValueCollection> func_GetNameValueCollection
     , TCollection entityCollection
     , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
     , Func <Framework.NameValuePair, TCollection, TCollection> func_GetEntityCollectionOfOneCategory
     , Func <TCollection, TSummary> func_CalculateSummary
     , Func <Framework.EntityContracts.QuerySystemDateTimeRangeCriteria, TCollection, TCollection> func_GetEntityCollectionOfOneCriteria
     , Func <TCollection, TSubSummary> func_CalculateSubSummary
     )
     : base(
         func_GetNameValueCollection(dateTimePivotSetting)
         , entityCollection
         , criteria
         , func_GetEntityCollectionOfOneCategory
         , func_CalculateSummary
         , func_GetEntityCollectionOfOneCriteria
         , func_CalculateSubSummary)
 {
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="DateTimePivotContextBase&lt;TCollection, T, TCategoryCollection, TCategory, TSubSummary, TSummary&gt;"/> class.
        /// </summary>
        /// <param name="categoryCollection">The category collection.</param>
        /// <param name="entityCollection">The entity collection.</param>
        /// <param name="dateTimePivotSetting">The date time pivot setting.</param>
        /// <param name="func_GetEntityCollectionOfOneCategory">The func_ get entity collection of one category.</param>
        /// <param name="func_CalculateSummary">The func_ calculate summary.</param>
        /// <param name="func_GetEntityCollectionOfOneCriteria">The func_ get entity collection of one criteria.</param>
        /// <param name="func_CalculateSubSummary">The func_ calculate sub summary.</param>
        protected DateTimePivotContextBase(
            TCategoryCollection categoryCollection
            , TCollection entityCollection
            , Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria
            , Func <TCategory, TCollection, TCollection> func_GetEntityCollectionOfOneCategory
            , Func <TCollection, TSummary> func_CalculateSummary
            , Func <Framework.EntityContracts.QuerySystemDateTimeRangeCriteria, TCollection, TCollection> func_GetEntityCollectionOfOneCriteria
            , Func <TCollection, TSubSummary> func_CalculateSubSummary
            )
        {
            this.CategoryCollection = categoryCollection;
            this.EntityCollection   = entityCollection;
            this.Criteria           = criteria;

            this.Func_CalculateSubSummary = func_CalculateSubSummary;
            this.Func_CalculateSummary    = func_CalculateSummary;
            this.Func_GetEntityCollectionOfOneCategory = func_GetEntityCollectionOfOneCategory;
            this.Func_GetEntityCollectionOfOneCriteria = func_GetEntityCollectionOfOneCriteria;

            this.Summary = this.Func_CalculateSummary(this.EntityCollection);
        }
Пример #8
0
 /// <summary>
 /// Calculates the consecutive distribution criteria.
 /// </summary>
 /// <returns></returns>
 public Framework.EntityContracts.QuerySystemDateTimeRangeCriteria[] CalculateConsecutiveDistributionCriteria(Framework.EntityContracts.QuerySystemDateTimeRangeCriteria criteria)
 {
     return(criteria.CalculateConsecutiveDistributionCriteria(this.DateTimeUnitOfInterval, this.Interval));
 }
 /// <summary>
 /// Gets the entity collection of one criteria.
 /// </summary>
 /// <param name="oneCriteria">The one criteria.</param>
 /// <returns>entity Collection meets criteria</returns>
 public virtual TCollection GetEntityCollectionOfOneCriteria(Framework.EntityContracts.QuerySystemDateTimeRangeCriteria oneCriteria)
 {
     return(this.Func_GetEntityCollectionOfOneCriteria(oneCriteria, this.EntityCollection));
 }