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());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }