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)); }
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)); }
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); }
public static List <CarePackageDetailDomain> CreateCarePackageDetailDomainList(int count, PackageDetailType type) { var result = CreateCarePackageDetails(count, type).ToDomain().ToList(); result.ForEach(detail => detail.Id = null); return(result); }