/// <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; }
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; }
/// <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; }
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); }
/// <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)); } }
/// <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; }