protected override void Handle(SaveDtoRequest <StaffDto> request, DtoResponse <StaffDto> response) { var staff = _staffRepository.GetByKey(request.DataTransferObject.Key); staff.ReviseName(request.DataTransferObject.Name); staff.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : new Email(request.DataTransferObject.Email)); staff.ReviseLocation(request.DataTransferObject.Location); staff.ReviseNpi(request.DataTransferObject.NPI); response.DataTransferObject = Mapper.Map <Staff, StaffDto>(staff); }
protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response) { var patient = _patientRepository.GetByKey(request.DataTransferObject.Key); if (patient != null) { //patient.ReviseName(request.DataTransferObject.Name); //patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth); //patient.ReviseGender(Lookup.Find<Gender>(request.DataTransferObject.Gender.Code)); patient.ReviseEthnicity(Lookup.Find <Ethnicity>(request.DataTransferObject.Ethnicity.Code)); patient.ReviseReligion(Lookup.Find <Religion>(request.DataTransferObject.Religion.Code)); response.DataTransferObject = Mapper.Map <Patient, PatientDto>(patient); } }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <param name="response">The response.</param> protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response) { var patient = _patientRepository.GetByKey(request.DataTransferObject.Key); DataErrorInfo dataErrorInfo = null; if (patient != null) { patient.ReviseName(request.DataTransferObject.Name); patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth); patient.ReviseGender(_lookupProvider.Find <Gender> (request.DataTransferObject.Gender.Code)); if (request.DataTransferObject.Ethnicity != null && !string.IsNullOrEmpty(request.DataTransferObject.Ethnicity.Code)) { patient.ReviseEthnicity(_lookupProvider.Find <Ethnicity> (request.DataTransferObject.Ethnicity.Code)); } if (request.DataTransferObject.Religion != null && !string.IsNullOrEmpty(request.DataTransferObject.Religion.Code)) { patient.ReviseReligion(_lookupProvider.Find <Religion> (request.DataTransferObject.Religion.Code)); } Email newEmail = null; try { if (!string.IsNullOrWhiteSpace(request.DataTransferObject.Email)) { newEmail = new Email(request.DataTransferObject.Email); } } catch (ArgumentException ae) { if (!ae.Message.Contains("email address", StringComparison.OrdinalIgnoreCase)) { throw; } dataErrorInfo = new DataErrorInfo(ae.Message, ErrorLevel.Error, PropertyUtil.ExtractPropertyName <PatientDto, string> (s => s.Email)); } patient.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : newEmail); response.DataTransferObject = Mapper.Map <Patient, PatientDto> (patient); if (dataErrorInfo != null) { response.DataTransferObject.AddDataErrorInfo(dataErrorInfo); } } }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <param name="response">The response.</param> protected override void Handle(SaveDtoRequest <PatientDto> request, SaveDtoResponse <PatientDto> response) { var patient = _patientRepository.GetByKey(request.DataTransferObject.Key); if (patient != null) { patient.ReviseName(request.DataTransferObject.Name); patient.ReviseDateOfBirth(request.DataTransferObject.DateOfBirth); patient.ReviseGender(_lookupProvider.Find <Gender> (request.DataTransferObject.Gender.Code)); if (request.DataTransferObject.Ethnicity != null && !string.IsNullOrEmpty(request.DataTransferObject.Ethnicity.Code)) { patient.ReviseEthnicity(_lookupProvider.Find <Ethnicity> (request.DataTransferObject.Ethnicity.Code)); } if (request.DataTransferObject.Religion != null && !string.IsNullOrEmpty(request.DataTransferObject.Religion.Code)) { patient.ReviseReligion(_lookupProvider.Find <Religion> (request.DataTransferObject.Religion.Code)); } patient.ReviseEmail(string.IsNullOrWhiteSpace(request.DataTransferObject.Email) ? null : new Email(request.DataTransferObject.Email)); response.DataTransferObject = Mapper.Map <Patient, PatientDto> (patient); } }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(SaveDtoRequest <SelfPaymentDto> request) { var requestDto = request.DataTransferObject; DomainEvent.Register <RuleViolationEvent>(failure => _validationFailureOccurred = true); LogicalTreeWalker.Walk <IDataTransferObject>(requestDto, dto => dto.ClearAllDataErrorInfo()); var response = CreateTypedResponse(); response.DataTransferObject = requestDto; if (requestDto.EditStatus == EditStatus.Create) { var selfPayment = CreateNew(requestDto); response.DataTransferObject = AutoMapper.Mapper.Map <SelfPayment, SelfPaymentDto> (selfPayment); } else if (requestDto.EditStatus == EditStatus.Delete) { var selfPayment = _selfPaymentRepository.GetByKey(requestDto.Key); if (selfPayment != null) { Delete(selfPayment); } response.DataTransferObject = requestDto; } var processSucceeded = !_validationFailureOccurred; if (processSucceeded) { Session.Flush(); Session.Clear(); } return(response); }
/// <summary> /// Handles the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>A <see cref="Agatha.Common.Response"/></returns> public override Response Handle(SaveDtoRequest <PayorCoverageCacheDto> request) { var requestDto = request.DataTransferObject; DomainEvent.Register <RuleViolationEvent> (failure => _validationFailureOccurred = true); LogicalTreeWalker.Walk <IDataTransferObject> (requestDto, dto => dto.ClearAllDataErrorInfo()); var response = CreateTypedResponse(); if (requestDto.EditStatus == EditStatus.Create || requestDto.EditStatus == EditStatus.Update) { var patient = _patientRepository.GetByKeyOrThrow(requestDto.PatientKey, "Patient"); var payorCache = _payorCacheRepository.GetByKeyOrThrow(requestDto.PayorCache.Key, "Payor"); var effectiveDateRange = new DateRange(requestDto.StartDate, requestDto.EndDate); var payorCoverageCacheType = _mappingHelper.MapLookupField <PayorCoverageCacheType> (requestDto.PayorCoverageCacheType); var countyArea = _mappingHelper.MapLookupField <CountyArea> (requestDto.PayorSubscriberCache.Address.CountyArea); var stateProvince = _mappingHelper.MapLookupField <StateProvince> (requestDto.PayorSubscriberCache.Address.StateProvince); var country = _mappingHelper.MapLookupField <Country> (requestDto.PayorSubscriberCache.Address.Country); var address = new Address( requestDto.PayorSubscriberCache.Address.FirstStreetAddress, requestDto.PayorSubscriberCache.Address.SecondStreetAddress, requestDto.PayorSubscriberCache.Address.CityName, countyArea, stateProvince, country, new PostalCode(requestDto.PayorSubscriberCache.Address.PostalCode)); var gender = _mappingHelper.MapLookupField <AdministrativeGender>(requestDto.PayorSubscriberCache.AdministrativeGender); var patientName = new PersonNameBuilder() .WithFirst(requestDto.PayorSubscriberCache.FirstName) .WithMiddle(requestDto.PayorSubscriberCache.MiddleName) .WithLast(requestDto.PayorSubscriberCache.LastName); var payorSubscriberRelationshipCacheType = _mappingHelper.MapLookupField <PayorSubscriberRelationshipCacheType> (requestDto.PayorSubscriberCache.PayorSubscriberRelationshipCacheType); var payorSubscriberCache = new PayorSubscriberCache( address, requestDto.PayorSubscriberCache.BirthDate, gender, patientName, payorSubscriberRelationshipCacheType); PayorCoverageCache payorCoverageCache; if (requestDto.EditStatus == EditStatus.Create) { payorCoverageCache = _payorCoverageCacheFactory.CreatePayorCoverage( patient, payorCache, effectiveDateRange, requestDto.MemberNumber, payorSubscriberCache, payorCoverageCacheType); } else { payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor"); payorCoverageCache.RevisePayorCoverageCacheInfo(payorCoverageCacheType, effectiveDateRange, requestDto.MemberNumber); payorCoverageCache.RevisePayorCache(payorCache); payorCoverageCache.RevisePayorSubscriberCache(payorSubscriberCache); } response.DataTransferObject = payorCoverageCache == null ? requestDto : Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache); } else if (requestDto.EditStatus == EditStatus.Delete) { var payorCoverageCache = _payorCoverageCacheRepository.GetByKey(requestDto.Key); if (payorCoverageCache != null) { _payorCoverageCacheFactory.DestroyPayorCoverage(payorCoverageCache); } response.DataTransferObject = requestDto; } else { var payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor"); response.DataTransferObject = Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache); } var processSucceeded = !_validationFailureOccurred; if (processSucceeded) { Session.Flush(); Session.Clear(); } else { if (requestDto.EditStatus == EditStatus.Create) { response.DataTransferObject.Key = 0; } } return(response); }