コード例 #1
0
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(AddDtoRequest <OrganizationPhoneDto> request, AddDtoResponse <OrganizationPhoneDto> response)
        {
            var organization          = _organizationRepository.GetByKey(UserContext.IsSystemAdmin ? request.AggregateKey : UserContext.OrganizationKey);
            var originalPhone         = organization.OrganizationPhones.FirstOrDefault(p => p.Key == request.DataTransferObject.OriginalHash);
            var organizationPhoneType = Lookup.Find <OrganizationPhoneType>(request.DataTransferObject.OrganizationPhoneType.Code);
            var phone = new Phone(request.DataTransferObject.Phone.Number, request.DataTransferObject.Phone.Extension);

            var organizationPhone = new OrganizationPhone(organizationPhoneType, phone, request.DataTransferObject.IsPrimary);

            if (originalPhone != organizationPhone)
            {
                if (originalPhone != null)
                {
                    organization.RemovePhone(originalPhone);
                }
                organization.AddPhone(organizationPhone);
            }
            else if (organizationPhone.IsPrimary)
            {
                organization.MakePrimary(organizationPhone);
            }

            response.AggregateKey           = organization.Key;
            response.DataTransferObject     = Mapper.Map <OrganizationPhone, OrganizationPhoneDto>(organizationPhone);
            response.DataTransferObject.Key = organization.Key;
        }
コード例 #2
0
        protected override void Handle(AddDtoRequest <OrganizationAddressDto> request, AddDtoResponse <OrganizationAddressDto> response)
        {
            var organization = _organizationRepository.GetByKey(request.AggregateKey);
            var addressDto   = request.DataTransferObject.Address;
            var address      = new Address(addressDto.FirstStreetAddress,
                                           addressDto.SecondStreetAddress,
                                           addressDto.CityName,
                                           _lookupProvider.Find <StateProvince>(addressDto.StateProvince.Code),
                                           new PostalCode(addressDto.PostalCode));

            var organizationAddressType = _lookupProvider.Find <OrganizationAddressType>(request.DataTransferObject.OrganizationAddressType.Code);
            var organizationAddress     = new OrganizationAddress(organizationAddressType, address, request.DataTransferObject.IsPrimary);
            var originalAddress         = organization.OrganizationAddresses.FirstOrDefault(a => a.GetHashCode() == request.DataTransferObject.OriginalHash);

            if (originalAddress != organizationAddress)
            {
                if (originalAddress != null)
                {
                    organization.RemoveAddress(originalAddress);
                }
                organization.AddAddress(organizationAddress);
            }
            else if (organizationAddress.IsPrimary)
            {
                organization.MakePrimary(organizationAddress);
            }
            response.AggregateKey           = organization.Key;
            response.DataTransferObject     = Mapper.Map <OrganizationAddress, OrganizationAddressDto>(organizationAddress);
            response.DataTransferObject.Key = organization.Key;
        }
コード例 #3
0
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(AddDtoRequest <TeamStaffDto> request, DtoResponse <TeamStaffDto> response)
        {
            var team = _teamRepository.GetByKey(request.AggregateKey);

            team.AddStaff(request.DataTransferObject.Key);

            response.DataTransferObject = request.DataTransferObject;
        }
コード例 #4
0
        protected override void Handle(AddDtoRequest <AssessmentReminderDto> request, DtoResponse <AssessmentReminderDto> response)
        {
            var dto = request.DataTransferObject;
            var assessmentReminder = _assessmentReminderFactory.Create(dto.OrganizationKey.Value, dto.PatientKey.Value, dto.CreatedByStaffKey.Value, dto.AssessmentDefinitionKey.Value,
                                                                       dto.Title, dto.Start, dto.Description);

            assessmentReminder.ReviseReminder(dto.ReminderTime, dto.ReminderUnit, string.IsNullOrWhiteSpace(dto.SendToEmail) ? null : new Email(dto.SendToEmail));
            if (request.DataTransferObject.ForSelfAdministration)
            {
                assessmentReminder.AllowSelfAdministration();
            }

            response.DataTransferObject = Mapper.Map <AssessmentReminder, AssessmentReminderDto>(assessmentReminder);
        }
コード例 #5
0
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(AddDtoRequest <TeamPatientDto> request, DtoResponse <TeamPatientDto> response)
        {
            var team    = _teamRepository.GetByKey(request.AggregateKey);
            var patient = _patientRepository.GetByKey(request.DataTransferObject.Key);

            response.DataTransferObject = request.DataTransferObject;
            if (patient != null)
            {
                team.AddPatient(patient);
            }
            else
            {
                Logger.Error(string.Format("Tried adding invalid patient {0} to team {1}", request.DataTransferObject.Key, team.Key));
                response.DataTransferObject.AddDataErrorInfo(new DataErrorInfo("Invalid patient key.", ErrorLevel.Error));
            }
        }
コード例 #6
0
        /// <summary>
        ///     Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="response">The response.</param>
        protected override void Handle(AddDtoRequest <TeamStaffDto> request, DtoResponse <TeamStaffDto> response)
        {
            var team  = _teamRepository.GetByKey(request.AggregateKey);
            var staff = _staffRepository.GetByKey(request.DataTransferObject.Key);

            if (staff != null)
            {
                team.AddStaff(staff);
            }
            else
            {
                Logger.Error(string.Format("Tried adding invalid staff {0} to team {1}", request.DataTransferObject.Key, team.Key));
                response.DataTransferObject.AddDataErrorInfo(new DataErrorInfo("Invalid staff key.", ErrorLevel.Error));
            }

            response.DataTransferObject = request.DataTransferObject;
        }