You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

442 lines
12 KiB

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Input;
using GummingCommon;
using GummingEntity;
using GummingSupport;
using GummingControl;
using System.Text;
using GummingBusiness;
using Newtonsoft.Json;
using GummingLine;
namespace Gumming
{
public class FormulaCPViewModule : ViewModelBase
{
#region base parameters
private int rows = 20;
private int pagenumber = 1;
public FormulaCPView View { get; set; }
private bool IsConfirm;
private bool isLoading;
#endregion
#region constructor
public FormulaCPViewModule()
{
View = new FormulaCPView();
View.DataContext = this;
InitializeCommands();
InitializeParameters();
}
private void InitializeCommands()
{
AddStepCommand = new DelegateCommand(OnAddStepCommand);
InsertStepCommand = new DelegateCommand(OnInsertStepCommand);
DeleteStepCommand = new DelegateCommand(OnDeleteStepCommand);
SaveStepCommand = new DelegateCommand(OnSaveStepCommand);
AllowCommand = new DelegateCommand(OnAllowCommand);
SelectStepCommand = new DelegateCommand(OnSelectStepCommand);
CopyStepCommand = new DelegateCommand(OnCopyStepCommand);
DisabledCommand = new DelegateCommand(OnDisabledCommand);
}
public override void InitializeParameters(object content = null)
{
IsConfirm = false;
WindowTitle = "";
AllowEdit = false;
CreateBy = Global.CurrentUserCode;
HardFormulaCPs = new ObservableCollection<HardFormulaCPEntity>();
//ĬÈÏ×·¼ÓÁù²½¿Õ°×²½Öè
InitializeEmptyFormula(false);
}
~FormulaCPViewModule()
{
}
#endregion
#region Binding Properties
public string WindowTitle { get; private set; }
private ObservableCollection<HardFormulaCPEntity> _HardFormulaCPs;
public ObservableCollection<HardFormulaCPEntity> HardFormulaCPs
{
get
{
return _HardFormulaCPs;
}
set
{
_HardFormulaCPs = value;
OnPropertyChanged("HardFormulaCPs");
}
}
private HardFormulaCPEntity _SelectedStep;
public HardFormulaCPEntity SelectedStep
{
get
{
return _SelectedStep;
}
set
{
_SelectedStep = value;
OnPropertyChanged("SelectedStep");
}
}
private string _FormulaName;
public string FormulaName
{
get
{
return _FormulaName;
}
set
{
_FormulaName = value;
OnPropertyChanged("FormulaName");
}
}
private string _CreateBy;
public string CreateBy
{
get
{
return _CreateBy;
}
set
{
_CreateBy = value;
OnPropertyChanged("CreateBy");
}
}
private HardStationType _SelectedFormulaType;
public HardStationType SelectedFormulaType
{
get
{
return _SelectedFormulaType;
}
set
{
_SelectedFormulaType = value;
OnPropertyChanged("SelectedFormulaType");
}
}
private HardFormulaEntity _SelectedFormula;
public HardFormulaEntity SelectedFormula
{
get
{
return _SelectedFormula;
}
set
{
_SelectedFormula = value;
OnPropertyChanged("SelectedFormula");
}
}
private bool _AllowEdit;
public bool AllowEdit
{
get
{
return _AllowEdit;
}
set
{
_AllowEdit = value;
OnPropertyChanged("AllowEdit");
}
}
#endregion
#region Binding Commands
private ICommand _AddStepCommand;
public ICommand AddStepCommand
{
get
{
return _AddStepCommand;
}
set
{
_AddStepCommand = value;
OnPropertyChanged("AddStepCommand");
}
}
private ICommand _DeleteStepCommand;
public ICommand DeleteStepCommand
{
get
{
return _DeleteStepCommand;
}
set
{
_DeleteStepCommand = value;
OnPropertyChanged("DeleteStepCommand");
}
}
private ICommand _SaveStepCommand;
public ICommand SaveStepCommand
{
get
{
return _SaveStepCommand;
}
set
{
_SaveStepCommand = value;
OnPropertyChanged("SaveStepCommand");
}
}
private ICommand _AllowCommand;
public ICommand AllowCommand
{
get
{
return _AllowCommand;
}
set
{
_AllowCommand = value;
OnPropertyChanged("AllowCommand");
}
}
private ICommand _InsertStepCommand;
public ICommand InsertStepCommand
{
get
{
return _InsertStepCommand;
}
set
{
_InsertStepCommand = value;
OnPropertyChanged("InsertStepCommand");
}
}
private ICommand _SelectStepCommand;
public ICommand SelectStepCommand
{
get
{
return _SelectStepCommand;
}
set
{
_SelectStepCommand = value;
OnPropertyChanged("SelectStepCommand");
}
}
private ICommand _CopyStepCommand;
public ICommand CopyStepCommand
{
get
{
return _CopyStepCommand;
}
set
{
_CopyStepCommand = value;
OnPropertyChanged("CopyStepCommand");
}
}
private ICommand _DisabledCommand;
public ICommand DisabledCommand
{
get
{
return _DisabledCommand;
}
set
{
_DisabledCommand = value;
OnPropertyChanged("DisabledCommand");
}
}
#endregion
#region Private Methods
public void InitializeEmptyFormula(bool canEdit)
{
FormulaName = string.Empty;
AllowEdit = canEdit;
HardFormulaCPs.Clear();
//ĬÈÏ×·¼ÓÁù²½¿Õ°×²½Öè
for (int i = 0; i < 6; i++)
{
HardFormulaCPEntity cp = new HardFormulaCPEntity();
cp.StepIndex = i + 1;
cp.Empty = false;
cp.Copy = (HardFormulaCPEntity)cp.Clone();
HardFormulaCPs.Add(cp);
}
}
public void StartLoadTestItem(string formulaId)
{
try
{
isLoading = true;
HardFormulaCPs = new ObservableCollection<HardFormulaCPEntity>();
var record = HardFormulaCPDA.Load(new PagerEntity() { PageIndex = pagenumber, Rows = rows, Conditions = " and FormulaId='"+ formulaId + "' " });
List<HardFormulaCPEntity> logs = (List<HardFormulaCPEntity>)record.rows;
View.Dispatcher.Invoke((Action)(() =>
{
foreach (var s in logs)
{
s.Copy = (HardFormulaCPEntity)s.Clone();
HardFormulaCPs.Add(s);
}
OnPropertyChanged("HartFormulaCP");
isLoading = false;
}));
}
catch (Exception ex)
{
LogService.WriteErrorLog(ex);
ShowErrorBox("Error:" + ex.Message);
return;
}
finally
{
CloseProgressView();
}
}
private void OnAddStepCommand(Object sender)
{
if (HardFormulaCPs.Count == 20)
{
ShowMessageBox("²½Öè²»Äܳ¬¹ý20Ìõ");
return;
}
var cp = new HardFormulaCPEntity();
cp.StepIndex = HardFormulaCPs.Count + 1;
cp.Empty = false;
cp.Copy = (HardFormulaCPEntity)cp.Clone();
HardFormulaCPs.Add(cp);
}
private void OnInsertStepCommand(Object sender)
{
if (HardFormulaCPs.Count == 20)
{
ShowMessageBox("²½Öè²»Äܳ¬¹ý20Ìõ");
return;
}
if (SelectedStep == null)
{
ShowMessageBox("ÇëÑ¡ÔñÒ»¸ö²½ÖèÔÙ½øÐвåÈ룡");
return;
}
int curIndex = HardFormulaCPs.IndexOf(SelectedStep);
var cp = new HardFormulaCPEntity();
cp.Empty = false;
cp.Copy = (HardFormulaCPEntity)cp.Clone();
HardFormulaCPs.Insert(curIndex, cp);
for (int i = 0; i < HardFormulaCPs.Count; i++)
{
HardFormulaCPs[i].StepIndex = i + 1;
}
}
private void OnDeleteStepCommand(Object sender)
{
if (SelectedStep == null)
{
ShowMessageBox("ÇëÑ¡ÔñÒ»¸ö²½ÖèÔÙ½øÐÐɾ³ý£¡");
return;
}
HardFormulaCPs.Remove(SelectedStep);
for (int i = 0; i < HardFormulaCPs.Count; i++)
{
HardFormulaCPs[i].StepIndex = i + 1;
}
}
public void OnSaveStepCommand(Object sender)
{
if (string.IsNullOrWhiteSpace(FormulaName))
{
ShowMessageBox("Åä·½Ãû³Æ²»ÄÜΪ¿Õ");
return;
}
HardFormulaEntity hfe = new HardFormulaEntity();
hfe.FormulaCode = FormulaName;
hfe.FormulaName = FormulaName;
hfe.CreateBy = Global.CurrentUserCode;
hfe.StationCode = SelectedFormulaType.StationCode;
hfe.StationName = SelectedFormulaType.StationName;
hfe.StationType = (int)SelectedFormulaType.StationType;
hfe.RecId = SelectedFormula?.RecId;
hfe.RecId = HardFormulaDA.Save(hfe, HardFormulaCPs.ToList());
hfe.CreateTime = DateTime.Now;
SelectedFormula = hfe;
AllowEdit = false;
for (int i = 0; i < HardFormulaCPs.Count; i++)
{
HardFormulaCPs[i].Copy = (HardFormulaCPEntity)HardFormulaCPs[i].Clone();
}
AppEventAggregator.GetEventAggregator().GetEvent<FormulaChangedEvent>().Publish(new NotifyEventParameter() { NotifyType = CallbackType.Formula, NotifyContent = SelectedFormula });
}
private void OnAllowCommand(Object sender)
{
AllowEdit = true;
}
private void OnDisabledCommand(Object sender)
{
AllowEdit = false;
StartLoadTestItem(SelectedFormula?.RecId);
}
private void OnSelectStepCommand(Object sender)
{
}
private void OnCopyStepCommand(Object sender)
{
if (HardFormulaCPs.Count == 20)
{
ShowMessageBox("²½Öè²»Äܳ¬¹ý20Ìõ");
return;
}
if (SelectedStep == null)
{
ShowMessageBox("ÇëÑ¡ÔñÒ»¸ö²½ÖèÔÙ½øÐп½±´£¡");
return;
}
var cp = (HardFormulaCPEntity)SelectedStep.Clone();
cp.Copy = (HardFormulaCPEntity)cp.Clone();
HardFormulaCPs.Add(cp);
for (int i = 0; i < HardFormulaCPs.Count; i++)
{
HardFormulaCPs[i].StepIndex = i + 1;
}
}
#endregion
}
}