public void CreateShouldAddCarePackage() { var mockSet = new Mock <DbSet <CarePackage> >(); Context.CarePackages = mockSet.Object; var carePackage = TestDataHelper.CreateCarePackage(); _carePackageGateway.Create(carePackage); // Check add was called only once mockSet.Verify(x => x.Add(It.IsAny <CarePackage>()), Times.Once()); }
public async Task <Guid> ExecuteAsync(CarePlanAssignmentDomain carePlanAssignment) { var serviceUser = await _getServiceUserUseCase.GetServiceUserInformation(carePlanAssignment.HackneyUserId); await _ensureSingleActivePackageTypePerUserUseCase.ExecuteAsync(serviceUser.Id, carePlanAssignment.PackageType); var documentResponse = new DocumentResponse(); if (carePlanAssignment.CarePlanFileId == Guid.Empty && carePlanAssignment.CarePlanFile != null) { documentResponse = await _fileStorage.SaveFileAsync(ConvertCarePlan(carePlanAssignment.CarePlanFile), carePlanAssignment.CarePlanFile?.FileName); } var package = new CarePackage { ServiceUserId = serviceUser.Id, BrokerId = carePlanAssignment.BrokerId, PackageType = carePlanAssignment.PackageType, Status = PackageStatus.New, DateAssigned = DateTimeOffset.UtcNow, PackageScheduling = PackageScheduling.Temporary, // TODO: Review if package scheduling can be made nullable }; if (documentResponse.FileId != Guid.Empty) { package.Resources.Add(new CarePackageResource() { FileId = documentResponse.FileId, FileExtension = Path.GetExtension(documentResponse.FileName), Name = documentResponse.FileName, Type = PackageResourceType.CarePlanFile, }); } package.Histories.Add(new CarePackageHistory { Status = HistoryStatus.NewPackage, Description = HistoryStatus.NewPackage.GetDisplayName(), RequestMoreInformation = carePlanAssignment.Notes }); _carePackageGateway.Create(package); await _dbManager.SaveAsync(); return(package.Id); }
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()); }