BudgetAnalyser.Engine.UnitTest.TestHarness.BucketBucketRepoAlwaysFind.GetByCode C# (CSharp) Метод

GetByCode() публичный Метод

public GetByCode ( string code ) : BudgetBucket
code string
Результат BudgetAnalyser.Engine.Budget.BudgetBucket
        public override BudgetBucket GetByCode(string code)
        {
            if (code.IsNothing())
            {
                return null;
            }

            if (code.StartsWith("INCOME"))
            {
                return GetOrCreateNew(code, () => new IncomeBudgetBucket(code, code));
            }

            if (string.CompareOrdinal(code, SurplusBucket.Code) == 0)
            {
                return SurplusBucket;
            }

            if (code.StartsWith(this.projectPrefix))
            {
                return GetOrCreateNew(code, () => new FixedBudgetProjectBucket(code, code, 100000M));
            }

            return GetOrCreateNew(code, () => new SavedUpForExpenseBucket(code, code));
        }

Usage Example

        public void TestInitialise()
        {
            var bucketRepo = new BucketBucketRepoAlwaysFind();
            TestData = BudgetModelTestData.CreateCollectionWith1And2();

            // ExtractXaml All Buckets from The Test Data.
            TestDataBuckets = TestData.SelectMany(b => b.Expenses.Cast<BudgetItem>())
                .Union(TestData.SelectMany(b => b.Incomes))
                .Select(x => x.Bucket)
                .Distinct();

            // Preload the buckets into the bucket repo used by the Mapper.
            foreach (BudgetBucket bucket in TestDataBuckets)
            {
                bucketRepo.GetByCode(bucket.Code);
            }

            var subject = new Mapper_BudgetCollectionDto_BudgetCollection(
                bucketRepo, 
                new Mapper_BudgetBucketDto_BudgetBucket(new BudgetBucketFactory()), 
                new Mapper_BudgetModelDto_BudgetModel(bucketRepo));
            Result = subject.ToDto(TestData);
        }