public async Task <CarePackagePlainResponse> CreateAsync( CarePackageForCreationDomain carePackageForCreation) { var validPackageTypes = new[] { PackageType.ResidentialCare, PackageType.NursingCare }; if (!validPackageTypes.Contains(carePackageForCreation.PackageType)) { throw new ApiException($"Please select a valid package type.", StatusCodes.Status422UnprocessableEntity); } var carePackageEntity = carePackageForCreation.ToEntity(); var carePackageSettingsEntity = carePackageForCreation.ToSettings(); var histories = new List <CarePackageHistory>() { new CarePackageHistory { Description = HistoryStatus.NewPackage.GetDisplayName(), RequestMoreInformation = "", Status = HistoryStatus.NewPackage } }; // Get and set random client on package var randomClient = await _serviceUserGateway.GetRandomAsync().ConfigureAwait(false); carePackageEntity.ServiceUserId = randomClient.Id; carePackageEntity.Status = PackageStatus.New; carePackageEntity.Settings = carePackageSettingsEntity; carePackageEntity.Histories = histories; _carePackageGateway.Create(carePackageEntity); // TODO: Create record in package history? await _dbManager.SaveAsync("Failed to create care package").ConfigureAwait(false); return(carePackageEntity.ToPlainDomain().ToResponse()); }
public static CarePackageSettings ToSettings(this CarePackageForCreationDomain input) { return(_mapper.Map <CarePackageSettings>(input)); }
public static CarePackage ToEntity(this CarePackageForCreationDomain input) { return(_mapper.Map <CarePackage>(input)); }