using System;
using System.Collections.Generic;
using Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Enum;
namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses
{
public interface IProcessStateDef
{
///
/// Collection of state information
///
List StateContainer { get; }
///
/// Get the process start struct linked to state of state machine
///
/// state to search for information text
/// process state struct of the attached state
///
/// - Initial
///
ProcessStateStruct GetProcessStateStructOfState(ProcessState stateMachineState);
///
/// Get the first production process state name to start the state machine with this.
/// It has to be a process labeled with ProductionProcessNo == 0.
///
/// process attached to the state
///
/// - Initial
///
ProcessState GetStateOfFirstProcess();
///
/// Get the production process number of this process
///
/// process to look for state info text
/// the production process number
///
/// - Initial
///
UInt32? GetProductionProcessNoOfProcess(IProductionProcess process);
///
/// Get the process linked to state of state machine
///
/// state to search for information text
/// process attached to the state
///
/// - Initial
///
IProductionProcess GetProcessOfState(ProcessState stateMachineState);
///
/// Get the current information of the state machine state
///
/// state to search for information text
/// information attached to state depending on region
///
/// - Initial
///
///
/// - If state == null return error message.
///
String GetStateInfoOfState(ProcessState? stateMachineState);
///
/// Get the info text from production process
///
/// process to look for state info text
/// information attached to process depending on region
///
/// - Initial
///
String GetStateInfoOfProcess(IProductionProcess process);
///
/// Get the state machine state of the text
///
/// information text to search if state is assigned
/// state attached to information text
///
/// - Initial
///
ProcessState GetStateOfInfoText(String text);
///
/// Get the state machine state from for the process
///
/// process to look for state info text
/// state attached to process
///
/// - Initial
///
ProcessState GetStateOfProcess(IProductionProcess process);
///
/// Get number of EOL relevant processes for statistic e.g. progress bar
///
/// number of initialized processes
///
/// - Initial
///
///
/// - Used marker for production relevant processes
///
Int32 GetNumberOfInitializedProcesses();
///
/// Get a sorted list of all production processes in order of the execution sequence
///
/// list of initialized processes
///
/// - Initial
///
///
/// - Used marker for production relevant processes
///
///
/// - Changed to sorted list by production process number
///
List GetAllProductionProcesses();
}
}