public static AfterSaleOrder ToRequestAfterSaleOrder(this RequestAfterSaleOrder p) { return(Mapper.Map <RequestAfterSaleOrder, AfterSaleOrder>(p)); }
private void ExecuteSubmitCommand() { RequestAfterSaleOrder uploadModel = null; switch (_currentMode) { //退票申请 case RequestMode.BounceOrder: if (Passenger.Where(p => p.IsChecked).Count(p => p.IsInsuranceRefund) > 0 && Passenger.Where(p => p.IsChecked).Count(p => p.IsInsuranceRefund == false) > 0) { UIManager.ShowMessage("不能同时选择未购和已购买极速退服务的乘客"); return; } if (Passenger.Any(p => p.IsChecked && p.PassengerTripStatus == EnumPassengerTripStatus.HasCreate)) { UIManager.ShowMessage("选择的乘机人里有未作废的行程单不能进行退票申请"); return; } uploadModel = _requestBounceOrder; if (_requestBounceOrder.AttachmentUrl != null && !_requestBounceOrder.AttachmentUrl.StartsWith("http")) { var result = UIManager.ShowMessageDialog("附件还没有上传,确认不上传附件?"); if (result == null || !result.Value) { return; } _requestBounceOrder.AttachmentUrl = null; } break; //废票申请 case RequestMode.AnnulOrder: if (Passenger.Any(p => p.IsChecked && p.PassengerTripStatus == EnumPassengerTripStatus.HasCreate)) { UIManager.ShowMessage("选择的乘机人里有未作废的行程单不能进行废票申请"); return; } uploadModel = _requestAnnulOrder; if (_requestAnnulOrder.AttachmentUrl != null && !_requestAnnulOrder.AttachmentUrl.StartsWith("http")) { var result = UIManager.ShowMessageDialog("附件还没有上传,确认不上传附件?"); if (result == null || !result.Value) { return; } _requestAnnulOrder.AttachmentUrl = null; } break; //改签申请 case RequestMode.ChangeOrder: uploadModel = _requestChangeOrder; var isChanged = ReissueSkyWays.Any(m => m.IsChanged()); if (!isChanged) { UIManager.ShowMessage("航程信息并未修改"); return; } _requestChangeOrder.SkyWay = new List <RequestAfterSaleSkyWay>(); var isValidate = true; foreach (var skywayModel in from item in _reissueSkyWays where item.IsChanged() select new RequestAfterSaleSkyWay { NewFlightNumber = item.FlightNumber, NewSeat = item.Seat, NewStartDateTime = item.StartDateTime, SkyWayId = item.SkyWayId, NewToDateTime = item.ToDateTime }) { if (skywayModel.NewStartDateTime.Year == 1) { isValidate = false; break; } if (skywayModel.NewToDateTime.Year == 1) { isValidate = false; break; } _requestChangeOrder.SkyWay.Add(skywayModel); } if (!isValidate) { UIManager.ShowMessage("输入改签日期格式有误,请重新输入"); return; } break; //婴儿申请 case RequestMode.ApplyBabyOrder: ApplyBabyOrder.RelationOrderId = Order.OrderId; ApplyBabyOrder.BabyList = new List <BabyDataObject>(); foreach (var model in BabyInformationItemsItems) { if (!model.CheckInput() || model.BornDate == null) { return; } ApplyBabyOrder.BabyList.Add(new BabyDataObject { BabyName = model.BabyName, BornDate = model.BornDate.Value.Date, SexType = model.SexType }); } if (ApplyBabyOrder.BabyList.Count == 0) { return; } IsBusy = true; Action act = () => CommunicateManager.Invoke <IOrderService>(service => { service.ApplyBaby(ApplyBabyOrder); UIManager.ShowMessage("申请成功"); IsSubmitted = true; }, UIManager.ShowErr); Task.Factory.StartNew(act).ContinueWith(task => { Action setBusyAction = () => { IsBusy = false; }; DispatcherHelper.UIDispatcher.Invoke(setBusyAction); }); break; //其它申请 case RequestMode.Modify: uploadModel = _requestModifyOrder; if (uploadModel != null && (String.IsNullOrEmpty(uploadModel.Description) || String.IsNullOrWhiteSpace(uploadModel.Description))) { UIManager.ShowMessage("请输入申请备注"); return; } break; default: return; } if (uploadModel != null && (String.IsNullOrEmpty(uploadModel.Reason) || String.IsNullOrWhiteSpace(uploadModel.Reason))) { UIManager.ShowMessage("请选择申请理由"); return; } if (uploadModel == null) { return; } uploadModel.Passengers = GetPassengerIds(); if (uploadModel.Passengers == null || uploadModel.Passengers.Length == 0) { UIManager.ShowMessage("请选择退改签乘机人"); return; } IsBusy = true; Action action = () => CommunicateManager.Invoke <IOrderService>(service => { service.ApplySaleOrder(Order.OrderId, uploadModel); UIManager.ShowMessage("申请成功"); IsSubmitted = true; }, UIManager.ShowErr); Task.Factory.StartNew(action).ContinueWith(task => { Action setBusyAction = () => { IsBusy = false; }; DispatcherHelper.UIDispatcher.Invoke(setBusyAction); }); }