private void InitializeBudgetViewCache() { IBudgetViewCacheFactory cacheFactory = this.BudgetStore.TryGetExtension <IBudgetViewCacheFactory>(); IBudgetViewCache cache = null; if (cacheFactory != null) { cache = cacheFactory.CreateCache(this); } else { cache = new MemoryBudgetViewCache(this); } this.BudgetViewCache = cache; _budgetViewListenter = new BudgetViewListener(this); }
public BudgetMonthView(BudgetModel model, DateTime date) { _model = model; Date = date.FirstDayOfMonth(); _internalBudget = _model.GetBudget(); _internalBudget.MasterCategories.LoadCollection(); _lastDayOfMonth = Date.LastDayOfMonth(); _incomeCategory = _internalBudget.IncomeCategories.GetIncomeCategory(Date); _masterCategories = new TransformingObservableCollection <MasterCategory, MasterCategoryMonthView>( _internalBudget.MasterCategories, mc => { return(new MasterCategoryMonthView(mc, Date)); }, mcv => { mcv.Dispose(); }); _cache = _model.BudgetViewCache; _cache.CacheUpdated += Cache_CacheUpdated; RefreshValues(); }
public CategoryMonthView(Category subCategory, DateTime date) { if (subCategory == null) { throw new ArgumentNullException(nameof(subCategory)); } Category = subCategory; _model = Category.Model; _firstDayOfMonth = date.FirstDayOfMonth().Date; _lastDayOfMonth = _firstDayOfMonth.LastDayOfMonth().Date; _cache = _model.BudgetViewCache; CategoryMonth = Category.CategoryMonths.GetCategoryMonth(_firstDayOfMonth); CategoryMonth.PropertyChanged += CategoryMonth_PropertyChanged; RefreshValues(); _cache.CacheUpdated += Cache_CacheUpdated; }