Beispiel #1
0
        public static List <CarePackageDetail> CreateCarePackageDetails(int count, PackageDetailType type,
                                                                        PaymentPeriod costPeriod = PaymentPeriod.Weekly)
        {
            return(new Faker <CarePackageDetail>()
                   .RuleFor(r => r.Cost,
                            f => Math.Round(f.Random.Decimal(100m, 1000m), 2)) // Workaround to avoid precision loss in SQLite)

                   /*.RuleFor(d => d.CostPeriod, f => type == PackageDetailType.CoreCost
                    *  ? PaymentPeriod.Weekly
                    *  : f.PickRandom(PaymentPeriod.Weekly, PaymentPeriod.OneOff))*/
                   .RuleFor(d => d.CostPeriod, costPeriod)
                   .RuleFor(d => d.StartDate, f => f.Date.Past().Date)
                   .RuleFor(d => d.EndDate, f => f.Date.Future().Date)
                   .RuleFor(d => d.Type, type)
                   .Generate(count));
        }
Beispiel #2
0
 public static CarePackageDetail CreateCarePackageDetail(
     Guid packageId, PackageDetailType type, decimal?cost = null,
     DateTimeOffset?startDate = null, DateTimeOffset?endDate = null, PaymentPeriod?costPeriod = null)
 {
     return(new Faker <CarePackageDetail>()
            .RuleFor(r => r.Id, Guid.NewGuid)
            .RuleFor(r => r.CarePackageId, packageId)
            .RuleFor(r => r.Cost, f => cost ?? f.Random.Decimal(100m, 1000m).Round(2))
            .RuleFor(d => d.CostPeriod,
                     f => costPeriod ?? (type == PackageDetailType.CoreCost
                 ? PaymentPeriod.Weekly
                 : f.PickRandom(PaymentPeriod.Weekly, PaymentPeriod.OneOff)))
            .RuleFor(d => d.StartDate, f => startDate ?? f.Date.Past(1, DateTime.Now.AddDays(-1)).Date)
            .RuleFor(d => d.EndDate,
                     f => endDate != DateTimeOffset.MaxValue // use DateTimeOffset.MaxValue to create an ongoing detail
                 ? endDate ?? f.Date.Future(1, DateTime.Now.AddDays(1)).Date
                 : null as DateTimeOffset?)
            .RuleFor(d => d.Type, type));
 }
Beispiel #3
0
        public ExcelPackageModel(string elementType)
        {
            _costPeriod = PaymentPeriod.Weekly;

            if (_corePackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType  = ExcelPackageType.Detail;
                _packageDetailType = PackageDetailType.CoreCost;
            }
            else if (_anpPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType  = ExcelPackageType.Detail;
                _packageDetailType = PackageDetailType.AdditionalNeed;
            }
            else if (_careChargeProvisionalNetPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.CareChargeProvisional;
                _reclaimType      = ReclaimType.CareCharge;
                _claimCollector   = ClaimCollector.Supplier;
            }
            else if (_careChargeProvisionalGrossPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.CareChargeProvisional;
                _reclaimType      = ReclaimType.CareCharge;
                _claimCollector   = ClaimCollector.Hackney;
            }
            else if (_careCharge13PlusNetPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.CareCharge13PlusWeeks;
                _reclaimType      = ReclaimType.CareCharge;
                _claimCollector   = ClaimCollector.Supplier;
            }
            else if (_careCharge13PlusGrossPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.CareCharge13PlusWeeks;
                _reclaimType      = ReclaimType.CareCharge;
                _claimCollector   = ClaimCollector.Hackney;
            }
            else if (_anpOneOffPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType  = ExcelPackageType.Detail;
                _packageDetailType = PackageDetailType.AdditionalNeed;
                _costPeriod        = PaymentPeriod.OneOff;
            }
            else if (_fncGrossPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.FncReclaim;
                _reclaimType      = ReclaimType.Fnc;
                _claimCollector   = ClaimCollector.Hackney;
            }
            else if (_fncNetPackageType.Contains(elementType, StringComparer.OrdinalIgnoreCase))
            {
                _excelPackageType = ExcelPackageType.Reclaim;
                _reclaimSubType   = LBH.AdultSocialCare.Data.Constants.Enums.ReclaimSubType.FncPayment;
                _reclaimType      = ReclaimType.Fnc;
                _claimCollector   = ClaimCollector.Supplier;
            }
            else
            {
                throw new Exception($"Undefined element type: {elementType}");
            }
        }
        public List <CarePackageDetail> CreateCarePackageDetails(CarePackage package, int count, PackageDetailType type)
        {
            var faker      = new Bogus.Faker();
            var costPeriod = type switch
            {
                PackageDetailType.CoreCost => PaymentPeriod.Weekly,
                PackageDetailType.AdditionalNeed => faker.PickRandom(PaymentPeriod.Weekly, PaymentPeriod.OneOff),
                _ => PaymentPeriod.Weekly
            };
            var details = TestDataHelper.CreateCarePackageDetails(count, type, costPeriod);

            package.Details.AddRange(details);
            _context.SaveChanges();

            return(details);
        }
Beispiel #5
0
        public static List <CarePackageDetailDomain> CreateCarePackageDetailDomainList(int count, PackageDetailType type)
        {
            var result = CreateCarePackageDetails(count, type).ToDomain().ToList();

            result.ForEach(detail => detail.Id = null);

            return(result);
        }