Esempio n. 1
0
 private void TransferAreasIfNecessary(PageAreaTransferSettings transferDataModel, MonthPage nextPage)
 {
     nextPage.GoalsArea.TransferAreaDataIfNeeded(transferDataModel, GoalsArea);
     nextPage.DesiresArea.TransferAreaDataIfNeeded(transferDataModel, DesiresArea);
     nextPage.PurchasesArea.TransferAreaDataIfNeeded(transferDataModel, PurchasesArea);
     nextPage.IdeasArea.TransferAreaDataIfNeeded(transferDataModel, IdeasArea);
 }
Esempio n. 2
0
        /// <summary>
        /// Transfer page areas data from passed month page
        /// </summary>
        /// <param name="transferDataModel">Transfer data model</param>
        /// <param name="monthPage">Month page</param>
        public void MergePageAreas(PageAreaTransferSettings transferDataModel, MonthPage monthPage)
        {
            Guard.Against.Null(transferDataModel, nameof(transferDataModel));
            Guard.Against.Null(monthPage, nameof(monthPage));

            monthPage.TransferAreasIfNecessary(transferDataModel, this);
        }
Esempio n. 3
0
        /// <summary>
        /// Transfer data from passed area to this area if it's needed according to the transfer model
        /// </summary>
        /// <typeparam name="T">Type of month page area</typeparam>
        /// <param name="pageAreaReceiver">Page area that will receive data</param>
        /// <param name="transferDataModel">Transfer model</param>
        /// <param name="pageAreaSource">Page area source of data</param>
        public static void TransferAreaDataIfNeeded <T>(this T pageAreaReceiver, PageAreaTransferSettings transferDataModel, T pageAreaSource) where T : MonthPageArea, IMonthPageArea <T>
        {
            bool transfer = transferDataModel.GetValueForArea <T>();

            if (transfer)
            {
                pageAreaReceiver.AddDataFromOtherArea(pageAreaSource);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Creates new month page for next month
        /// </summary>
        /// <param name="transferDataModel">Model that represents which page areas need to be transferred</param>
        public MonthPage TransferDataToNextMonth(PageAreaTransferSettings transferDataModel)
        {
            Guard.Against.Null(transferDataModel, nameof(transferDataModel));

            var(year, month) = GetNextPageDate();
            var nextPage = new MonthPage(year, month, User);

            //initialize only non transferring areas
            nextPage.DesiresArea   = new DesiresArea(nextPage, !transferDataModel.TransferDesiresArea);
            nextPage.GoalsArea     = new GoalsArea(nextPage, !transferDataModel.TransferGoalsArea);
            nextPage.PurchasesArea = new PurchasesArea(nextPage, !transferDataModel.TransferPurchasesArea);
            nextPage.IdeasArea     = new IdeasArea(nextPage, !transferDataModel.TransferIdeasArea);

            TransferAreasIfNecessary(transferDataModel, nextPage);

            return(nextPage);
        }