using BBWY.Client.APIServices; using BBWY.Client.Models; using BBWY.Client.Views.Purchase; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; namespace BBWY.Client.ViewModels { public class ChoosePurchaseSchemeViewModel : BaseVM, IDenpendency { private PurchaseService purchaseService; private GlobalContext globalContext; private Order order; private bool noPurchaser; public IList PurchaserList { get; set; } public bool NoPurchaser { get => noPurchaser; set { Set(ref noPurchaser, value); } } //public ICommand DeleteCommand { get; set; } //public ICommand EditCommand { get; set; } public ICommand PreviewPurchaseCommand { get; set; } public ChoosePurchaseSchemeViewModel(PurchaseService purchaseService, GlobalContext globalContext) { this.purchaseService = purchaseService; this.globalContext = globalContext; this.PurchaserList = new ObservableCollection(); //DeleteCommand = new RelayCommand(Delete); //EditCommand = new RelayCommand(Edit); PreviewPurchaseCommand = new RelayCommand(PreviewPurchase); } protected override void Load() { PurchaserList.Clear(); Task.Factory.StartNew(() => LoadPurchaser()); } protected override void Unload() { this.order = null; this.NoPurchaser = false; PurchaserList.Clear(); } public void SetData(Order order) { this.order = order; } public void LoadPurchaser() { var skuIdList = order.ItemList.Select(osku => osku.Id).ToList(); var purchaserResponse = purchaseService.GetSharePurchaser(skuIdList, globalContext.User.Shop.ShopId); if (!purchaserResponse.Success) { App.Current.Dispatcher.Invoke(() => MessageBox.Show(purchaserResponse.Msg, "获取采购商")); return; } NoPurchaser = (purchaserResponse.Data?.Count() ?? 0) == 0; if (purchaserResponse.Data != null && purchaserResponse.Data.Count() > 0) { App.Current.Dispatcher.Invoke(() => { foreach (var p in purchaserResponse.Data) PurchaserList.Add(p); }); } } //public void Delete(PurchaseScheme purchaseScheme) //{ // Task.Factory.StartNew(() => purchaseService.DeletePurchaseScheme(purchaseScheme.Id)).ContinueWith(r => // { // var response = r.Result; // if (response.Success) // App.Current.Dispatcher.Invoke(() => PurchaseSchemeList.Remove(purchaseScheme)); // else // App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "删除采购方案")); // }); //} //public void Edit(PurchaseScheme purchaseScheme) //{ // var skuList = new List() // { // new ProductSku(){ Id=purchaseScheme.SkuId,ProductId=purchaseScheme.ProductId, Title=SkuName} // }; // bindingPurchaseProduct.SetData(skuList, purchaseScheme.PurchaserId, purchaseScheme.PurchaserName); // var bindingView = new Views.Ware.BindingPurchaseProduct(); // var r = bindingView.ShowDialog(); // if (r == true) // Task.Factory.StartNew(() => LoadPurchaseScheme(SkuId)); //} public void PreviewPurchase(Purchaser purchaser) { var purchaseAccount = globalContext.User.Shop.PurchaseAccountList.FirstOrDefault(pa => pa.PurchasePlatformId == purchaser.Platform); if (purchaseAccount == null) { MessageBox.Show($"缺少{purchaser.Platform}的采购账号", "提示"); return; } var p = new _1688Purchase(order, purchaser, purchaseAccount); p.ShowDialog(); GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(null, "ChoosePurchaseScheme_Close"); } } }