using BBWY.Client.APIServices; using BBWY.Client.Models; using GalaSoft.MvvmLight.Command; using HandyControl.Controls; using System.Collections.Generic; using System.Threading.Tasks; using System.Windows.Input; namespace BBWY.Client.ViewModels { public class EditServiceOrderViewModel : BaseVM { private ServiceOrderService serviceOrderService; /// /// 主键Id /// private long servicePId; private string orderId; private ServiceResult? serviceResult; private decimal? sdRefundFreight; private ReturnDirection? returnDirection; private string renewalOrderId; private decimal? reissueAfterSaleAmount; private string returnCheckRemark; private StorageType? renewalType; private string renewalPurchaseOrderId; private Platform? renewalPurchasePlatform; private decimal? reissueFreight; private decimal? reissueProductAmount; private bool isLoading; public IList RenewalTypeList { get; set; } public ServiceResult? ServiceResult { get => serviceResult; set { Set(ref serviceResult, value); } } public decimal? SDRefundFreight { get => sdRefundFreight; set { Set(ref sdRefundFreight, value); } } public ReturnDirection? ReturnDirection { get => returnDirection; set { Set(ref returnDirection, value); } } public string RenewalOrderId { get => renewalOrderId; set { Set(ref renewalOrderId, value); } } /// /// 售后补发成本 /// public decimal? ReissueAfterSaleAmount { get => reissueAfterSaleAmount; set { Set(ref reissueAfterSaleAmount, value); } } /// /// 退货检查备注 /// public string ReturnCheckRemark { get => returnCheckRemark; set { Set(ref returnCheckRemark, value); } } public StorageType? RenewalType { get => renewalType; set { Set(ref renewalType, value); } } public string RenewalPurchaseOrderId { get => renewalPurchaseOrderId; set { Set(ref renewalPurchaseOrderId, value); } } public Platform? RenewalPurchasePlatform { get => renewalPurchasePlatform; set { Set(ref renewalPurchasePlatform, value); } } public ICommand SaveCommand { get; set; } public decimal? ReissueFreight { get => reissueFreight; set { Set(ref reissueFreight, value); } } public decimal? ReissueProductAmount { get => reissueProductAmount; set { Set(ref reissueProductAmount, value); } } public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } public EditServiceOrderViewModel(ServiceOrderService serviceOrderService) { this.serviceOrderService = serviceOrderService; SaveCommand = new RelayCommand(Save); RenewalTypeList = new List() { StorageType.本地自发, StorageType.代发 }; } public void SetData(ServiceOrder serviceOrder) { this.servicePId = serviceOrder.Id; this.orderId = serviceOrder.OrderId; this.ServiceResult = serviceOrder.ServiceResult; this.SDRefundFreight = serviceOrder.SDRefundFreight; this.ReturnDirection = serviceOrder.ReturnDirection; this.RenewalOrderId = serviceOrder.RenewalOrderId; this.ReissueAfterSaleAmount = serviceOrder.ReissueAfterSaleAmount; this.ReturnCheckRemark = serviceOrder.ReturnCheckRemark; this.RenewalType = serviceOrder.RenewalType; this.RenewalPurchaseOrderId = serviceOrder.RenewalPurchaseOrderId; this.RenewalPurchasePlatform = serviceOrder.RenewalPurchasePlatform; this.ReissueFreight = serviceOrder.ReissueFreight; this.ReissueProductAmount = serviceOrder.ReissueProductAmount; } private void Save() { if (IsLoading) return; IsLoading = true; Task.Factory.StartNew(() => serviceOrderService.EditServiceOrder(servicePId, orderId, ServiceResult, SDRefundFreight, ReturnDirection, RenewalOrderId, ReissueAfterSaleAmount, ReturnCheckRemark, RenewalType, RenewalPurchaseOrderId, RenewalPurchasePlatform, ReissueFreight, ReissueProductAmount)).ContinueWith(t => { IsLoading = false; var r = t.Result; if (!r.Success) { App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "提示")); return; } //closeEditServiceOrder GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(true, "closeEditServiceOrder"); }); } } }