Ejemplo n.º 1
0
 public static AfterSaleOrder ToRequestAfterSaleOrder(this RequestAfterSaleOrder p)
 {
     return(Mapper.Map <RequestAfterSaleOrder, AfterSaleOrder>(p));
 }
Ejemplo n.º 2
0
        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);
            });
        }