Ejemplo n.º 1
0
        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创建保险记录
        }
Ejemplo n.º 2
0
        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);
            });
        }