| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | 
							- using Caliburn.Micro;
 
- using Caliburn.Micro.Core;
 
- using FurnaceUI.Controls.Common;
 
- using FurnaceUI.Views.Editors;
 
- using MECF.Framework.Common.CommonData;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
 
- using MECF.Framework.UI.Client.ClientBase;
 
- using OpenSEMI.ClientBase;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Linq;
 
- using System.Windows;
 
- using System.Windows.Input;
 
- namespace FurnaceUI.Views.Recipes
 
- {
 
-     public class RecipeHistoryViewModel : ModuleUiViewModelBase
 
-     {
 
-         public List<RecipeHistory> RecipeHistories;
 
-         private RecipeProvider _recipeProvider = new RecipeProvider();
 
-         public ObservableCollection<ShowRecipeHistory> ObservableRecipeHistory { get; set; } = new ObservableCollection<ShowRecipeHistory>();
 
-         public ShowRecipeHistory SelectedItemShowRecipeHistory { get; set; }
 
-         public string FilePath { get; set; } = "";
 
-         public RecipeDataBase CurrentRecipe { get; set; }
 
-         public RecipeHistoryViewModel()
 
-         {
 
-         }
 
-         protected override void OnViewLoaded(object view)
 
-         {
 
-             base.OnViewLoaded(view);
 
-             GetRecipeHistoryByDB(FilePath, 20);
 
-             ShowRecipeHistory();
 
-         }
 
-         private void GetRecipeHistoryByDB(string RecipePath, int row = 20)
 
-         {
 
-             RecipeHistories = QueryDataClient.Instance.Service.QueryByRecipePathHistory(RecipePath, row);
 
-         }
 
-         private void ShowRecipeHistory()
 
-         {
 
-             ObservableRecipeHistory.Clear();
 
-             if (RecipeHistories != null && RecipeHistories.Count > 0)
 
-             {
 
-                 RecipeHistories.OrderByDescending(x => x.LastRevisionTime).ToList().ForEach(x =>
 
-                   {
 
-                       ObservableRecipeHistory.Add(new ShowRecipeHistory(x));
 
-                   });
 
-             }
 
-         }
 
-         public void RecipeViewClick()
 
-         {
 
-             if (SelectedItemShowRecipeHistory != null)
 
-             {
 
-                 CGlobal.RecipeProcessEditViewEnable = false;
 
-                 MECF.Framework.UI.Client.CenterViews.Editors.Recipe.CGlobal.RecipeProcessEditViewEnable = false;
 
-                 var wm = IoC.Get<IWindowManager>();
 
-                 //var viewProcessRecipe = new RecipeProcessEditViewModel(SelectedItemShowRecipeHistory);
 
-                 //viewProcessRecipe.RecipeType = "process";
 
-                 //(wm as WindowManager)?.ShowDialogWithTitle(viewProcessRecipe, null, "View Process Recpie");
 
-                 //CGlobal.RecipeProcessEditViewEnable = true;
 
-                 //MECF.Framework.UI.Client.CenterViews.Editors.Recipe.CGlobal.RecipeProcessEditViewEnable = true;
 
-             }
 
-         }
 
-         RelayCommand _recipeCompareCommand;
 
-         public ICommand RecipeCompareCommand
 
-         {
 
-             get
 
-             {
 
-                 if (_recipeCompareCommand == null)
 
-                 {
 
-                     _recipeCompareCommand = new RelayCommand(param => this.RecipeCompareClick(), param => this.CanRecipeCompareClick());
 
-                 }
 
-                 return _recipeCompareCommand;
 
-             }
 
-         }
 
-         private bool CanRecipeCompareClick()
 
-         {
 
-             bool isEnable = false;
 
-             if (ObservableRecipeHistory != null)
 
-             {
 
-                 int count = ObservableRecipeHistory.Count(p => p.IsSelected == true);
 
-                 if (0 < count && count <= 2)
 
-                 {
 
-                     isEnable = true;
 
-                 }
 
-             }
 
-             return isEnable;
 
-         }
 
-         private void RecipeCompareClick()
 
-         {
 
-             if (ObservableRecipeHistory != null)
 
-             {
 
-                 var selectedItems = ObservableRecipeHistory.Where(p => p.IsSelected == true).ToList();
 
-                 var wm = IoC.Get<IWindowManager>();
 
-                 ShowRecipeHistory showRecipeHistoryA = null;
 
-                 ShowRecipeHistory showRecipeHistoryB = null;
 
-                 if (selectedItems.Count == 1)
 
-                 {
 
-                     showRecipeHistoryA = selectedItems.FirstOrDefault();
 
-                     showRecipeHistoryB = ObservableRecipeHistory.OrderBy(p => p.LastRevisionTime).LastOrDefault();
 
-                 }
 
-                 if (selectedItems.Count == 2)
 
-                 {
 
-                     showRecipeHistoryA = selectedItems.LastOrDefault();
 
-                     showRecipeHistoryB = selectedItems.FirstOrDefault();
 
-                 }
 
-                 if (showRecipeHistoryA != null && showRecipeHistoryB != null)
 
-                 {
 
-                     var recipesHistoryCompareViewModel = new RecipesCompareTwoViewModel(showRecipeHistoryA, showRecipeHistoryB);
 
-                     recipesHistoryCompareViewModel.DisplayName = "Compare Recipes History";
 
-                     IDictionary<string, object> settings = new Dictionary<string, object>() { { "Height", 900 }, { "Width", 1200 }, { "WindowStartupLocation", WindowStartupLocation.CenterScreen }, { "SizeToContent", System.Windows.SizeToContent.Manual } };
 
-                     (wm as WindowManager)?.ShowDialog(recipesHistoryCompareViewModel, null, settings);
 
-                 }
 
-             }
 
-         }
 
-         RelayCommand _recipeRollbackClickCommand;
 
-         public ICommand RecipeRollbackClickCommand
 
-         {
 
-             get
 
-             {
 
-                 if (_recipeRollbackClickCommand == null)
 
-                 {
 
-                     _recipeRollbackClickCommand = new RelayCommand(param => this.RecipeRollbackClick(), param => this.CanRecipeRollbackClick());
 
-                 }
 
-                 return _recipeRollbackClickCommand;
 
-             }
 
-         }
 
-         private bool CanRecipeRollbackClick()
 
-         {
 
-             bool isEnable = false;
 
-             if (ObservableRecipeHistory != null)
 
-             {
 
-                 int count = ObservableRecipeHistory.Count(p => p.IsSelected == true);
 
-                 if (count == 1)
 
-                 {
 
-                     isEnable = true;
 
-                 }
 
-             }
 
-             return isEnable;
 
-         }
 
-         private void RecipeRollbackClick()
 
-         {
 
-             if (SelectedItemShowRecipeHistory != null)
 
-             {
 
-                 if (DialogBox.ShowDialog(DialogButton.Yes | DialogButton.No, DialogType.CONFIRM, $"Recipe {CurrentRecipe.Name} content is changed, do you want to save it?") == DialogButton.Yes)
 
-                 {
 
-                     InvokeClient.Instance.Service.DoOperation("SetRecipeEditHistory", this.CurrentRecipe.GetRecipeHistory());
 
-                     var result = this._recipeProvider.SaveRecipe(CurrentRecipe.PrefixPath, CurrentRecipe.Name, SelectedItemShowRecipeHistory.Recipe_Content);
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |