public BuySingleInsuranceViewModel() { if (IsInDesignMode) { return; } IsBusy = true; Action action = () => CommunicateManager.Invoke <IInsuranceService>(service => { #region 保险相关设置 var re = service.GetCurentInsuranceCfgInfo(); var leaveCount = service.GetCurentInsuranceCfgInfo(true).LeaveCount; if (re.IsOpenCurrenCarrierInsurance && re.IsOpenUnexpectedInsurance && leaveCount > 0) { BuySingleInsuranceModel = new BuySingleInsuranceModel { FlightStartDate = DateTime.Now.Date, BirthDay = DateTime.Now.AddYears(-16), InsuranceCount = 1, SumInsured = 400000, IsAdultType = true, Gender = true, IsIdType = true, }; } else { UIManager.ShowMessage("剩余保险数量不足"); IsDone = true; } #endregion }, UIManager.ShowErr); Task.Factory.StartNew(action).ContinueWith(task => { Action setBusyAction = () => { IsBusy = false; }; DispatcherHelper.UIDispatcher.Invoke(setBusyAction); }); }
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); }); }