public void BuyInsuranceManually(RequestBuyInsuranceManually request) { if (request == null) { throw new CustomException(10004, "请求不可为空。"); } //构建保险订单数据结构 var insuranceOrderBuilder = AggregationFactory.CreateBuiler <InsuranceOrderBuilder>(); var insuranceOrder = insuranceOrderBuilder.CreateInsuranceOrder(); insuranceOrder.InsuranceRecords = new List <InsuranceRecord>(); //转换请求数据结构 InsuranceRecordBuilder insuranceRecordBuilder = new InsuranceRecordBuilder(); InsuranceRecord record = insuranceRecordBuilder.CreateInsuranceRecord(); record.Count = request.Count; record.FlightNumber = request.FlightNumber; record.IdType = request.IdType; if (record.IdType == EnumIDType.BirthDate && request.Birth != null) { record.CardNo = request.Birth.Value.ToString("yyyy-MM-dd"); } else { record.CardNo = request.CardNo; } record.InsuranceLimitEndTime = request.InsuranceLimitEndTime; record.InsuranceLimitStartTime = request.InsuranceLimitStartTime; record.InsuredName = request.InsuredName; record.Mobile = request.Mobile; record.PNR = request.PNR; record.SexType = request.SexType; record.ToCityName = request.ToCityName; record.InsureType = EnumInsureMethod.Manually; record.PassengerType = request.PassengerType; record.Birth = request.Birth; record.StartDateTime = request.StartDateTime; insuranceOrder.InsuranceRecords.Add(record); //如果没有需要申请的保险,则终止请求 if (insuranceOrder.InsuranceRecords.Count == 0) { return; } var insuranceDomainService = ObjectFactory.GetInstance <InsuranceDomainService>(); insuranceDomainService.SaveInsurance(insuranceOrder, AuthManager.GetCurrentUser(), true, false); this.unitOfWork.Commit(); //根据request创建保险记录 }
public void ExecuteBuySingleInsuranceCommand() { if (BuySingleInsuranceModel == null) { return; } if (!BuySingleInsuranceModel.Check()) { return; } if (BuySingleInsuranceModel.BirthDay == null) { return; } var rbim = new RequestBuyInsuranceManually { CardNo = string.IsNullOrWhiteSpace(BuySingleInsuranceModel.IdNo) && (BuySingleInsuranceModel.IsBabyType || BuySingleInsuranceModel.IsChildType) ? BuySingleInsuranceModel.BirthDay.Value.ToString("yyyy-MM-dd") : BuySingleInsuranceModel.IdNo, Count = BuySingleInsuranceModel.InsuranceCount, FlightNumber = BuySingleInsuranceModel.FlightNumber }; if (BuySingleInsuranceModel.IsIdType) { rbim.IdType = EnumIDType.NormalId; } else if (BuySingleInsuranceModel.IsMilitaryIdType) { rbim.IdType = EnumIDType.MilitaryId; } else if (BuySingleInsuranceModel.IsPassportIdType) { rbim.IdType = EnumIDType.Passport; } else if (BuySingleInsuranceModel.IsOtherType) { rbim.IdType = EnumIDType.Other; } if (BuySingleInsuranceModel.IsAdultType) { rbim.PassengerType = EnumPassengerType.Adult; } else if (BuySingleInsuranceModel.IsChildType) { rbim.PassengerType = EnumPassengerType.Child; } else if (BuySingleInsuranceModel.IsBabyType) { rbim.PassengerType = EnumPassengerType.Baby; } rbim.InsuranceLimitEndTime = BuySingleInsuranceModel.FlightStartDate.Date.AddDays(1).AddSeconds(-1); rbim.InsuranceLimitStartTime = BuySingleInsuranceModel.FlightStartDate.Date; rbim.StartDateTime = BuySingleInsuranceModel.FlightStartDate; rbim.InsuredName = BuySingleInsuranceModel.Name; rbim.Mobile = BuySingleInsuranceModel.Mobile; rbim.PNR = BuySingleInsuranceModel.PNR; rbim.SexType = BuySingleInsuranceModel.Gender ? EnumSexType.Male : EnumSexType.Female; rbim.Birth = BuySingleInsuranceModel.BirthDay; rbim.ToCityName = BuySingleInsuranceModel.ToCityName; IsBusy = true; Action action = () => CommunicateManager.Invoke <IInsuranceService>(service => { service.BuyInsuranceManually(rbim); UIManager.ShowMessage("投保成功!"); IsDone = true; }, UIManager.ShowErr); Task.Factory.StartNew(action).ContinueWith(task => { Action setBusyAction = () => { IsBusy = false; }; DispatcherHelper.UIDispatcher.Invoke(setBusyAction); }); }