Skip to content

Commit 078419a

Browse files
committed
version 2.0.1
1 parent 74b6842 commit 078419a

10 files changed

+513
-18
lines changed

CodeMap1.dgml

+463
Large diffs are not rendered by default.

Examples/Examples.csproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.2" />
10-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.2" />
11-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.2" />
12-
<PackageReference Include="SimpleStateMachineLibrary" Version="1.2.0" />
9+
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.4" />
10+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.4" />
11+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.4" />
12+
<PackageReference Include="SimpleStateMachineLibrary" Version="2.0.1" />
1313
</ItemGroup>
1414

1515
<ItemGroup>
5.66 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.1</TargetFramework>
4+
<TargetFramework>netstandard2.0</TargetFramework>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
66
<Authors>SimpleStateMachine</Authors>
77
<RepositoryUrl>https://github.com/SimpleStateMachine/SimpleStateMachineLibrary</RepositoryUrl>
88
<PackageLicenseFile></PackageLicenseFile>
99
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1010
<PackageTags>statemachine state-machine finite-state-machine</PackageTags>
1111
<PackageProjectUrl>https://github.com/SimpleStateMachine/SimpleStateMachineLibrary</PackageProjectUrl>
12-
<Version>1.0.1</Version>
12+
<Version>2.0.1.0</Version>
1313
<Description>Library for SimpleStateMachine</Description>
14+
<PackageIcon>SimpleStateMachine.png</PackageIcon>
15+
<AssemblyVersion>2.0.1.0</AssemblyVersion>
16+
<FileVersion>2.0.1.0</FileVersion>
17+
<PackageReleaseNotes>Add methods for check on exists
18+
Update package: Microsoft.Extensions.Logging.Abstractions
19+
Some fix</PackageReleaseNotes>
1420
</PropertyGroup>
1521

1622
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.2" />
23+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.4" />
24+
</ItemGroup>
25+
26+
<ItemGroup>
27+
<None Include="SimpleStateMachine.png">
28+
<Pack>True</Pack>
29+
<PackagePath></PackagePath>
30+
</None>
1831
</ItemGroup>
1932

2033
</Project>

SimpleStateMachineLibrary/StateMachines/StateMachine.cs

+9-4
Original file line numberDiff line numberDiff line change
@@ -158,16 +158,21 @@ private StateMachine ChangeState()
158158
return this;
159159
}
160160

161-
public void Start(Dictionary<string, object> startParameters = null)
162-
{
163-
if(StartState==null)
161+
private void CheckStartState()
162+
{
163+
if (StartState == null)
164164
{
165165
string message = "Start state not set";
166166
var exception = new NullReferenceException(message: message);
167167
_logger?.LogError(exception, message);
168168
throw exception;
169-
169+
170170
}
171+
}
172+
173+
public void Start(Dictionary<string, object> startParameters = null)
174+
{
175+
CheckStartState();
171176

172177
_logger?.LogDebugAndInformation("Start work state machine");
173178

SimpleStateMachineLibrary/StateMachines/StateMachineWorkWithData.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ internal Data _GetData(string nameData, out bool result, bool exception)
3131

3232
// return data_;
3333
//}
34-
34+
public bool DataExists(string nameData)
35+
{
36+
return Check.Contains(_data, nameData, this._logger, false);
37+
}
3538

3639
public Data GetData(string nameData)
3740
{

SimpleStateMachineLibrary/StateMachines/StateMachineWorkWithStates.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ internal State _GetState(string nameState, out bool result, bool exception)
3333

3434
// return _state;
3535
//}
36-
36+
public bool StateExists(string nameState)
37+
{
38+
return Check.Contains(_states, nameState, this._logger, false);
39+
}
3740

3841
public State GetState(string nameState)
3942
{

SimpleStateMachineLibrary/StateMachines/StateMachineWorkWithTransitions.cs

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ internal Transition _GetTransition(string nameTransition, out bool result, bool
3333
return _transition;
3434
}
3535

36+
public bool TransitionExists(string nameTransition)
37+
{
38+
return Check.Contains(_transitions, nameTransition, this._logger, false);
39+
}
3640

3741
public Transition GetTransition(string nameTransition)
3842
{

SimpleStateMachineLibrary/StateMachines/StateMachineWorkWithXML.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ private static XDocument ToXDocument(StateMachine stateMachine, string nameFile)
3838
transitions.Add(transition.Value.ToXElement());
3939
}
4040

41-
XElement datas = new XElement("Data");
41+
XElement datas = new XElement("DATA");
4242
stateMachineXElement.Add(datas);
4343

4444
foreach (var data in stateMachine._data)
@@ -70,7 +70,7 @@ private static StateMachine FromXDocument(StateMachine stateMachine, XDocument x
7070
var Transitions = stateMachineXElement.Element("Transitions")?.Elements()?.ToList();
7171
Transitions?.ForEach(x => stateMachine.AddTransition(x));
7272

73-
var Datas = stateMachineXElement.Element("Data")?.Elements()?.ToList();
73+
var Datas = stateMachineXElement.Element("DATA")?.Elements()?.ToList();
7474
Datas?.ForEach(x => stateMachine.AddData(x));
7575
stateMachine?._logger?.LogDebug("StateMachine from XDocument");
7676
return stateMachine;

Tests/StateMachineUnitTests.cs

+7-3
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,15 @@ public void StateMachineFromCode()
4949
State state3 = stateMachine.AddState("State3");
5050
State state4 = stateMachine.AddState("State4");
5151

52-
state1.Delete();
53-
state1.TryDelete(out bool result);
52+
Assert.IsTrue(stateMachine.StateExists("State1"));
5453

5554
stateMachine.OnChangeState(ActionOnChangeState);
5655

5756
Transition transition1 = state1.AddTransitionFromThis("Transition1", state2);
5857
Transition transition2 = stateMachine.AddTransition("Transition2", state2, state3);
5958
Transition transition3 = state4.AddTransitionToThis("Transition3", state3);
6059

61-
60+
Assert.IsTrue(stateMachine.TransitionExists("Transition1"));
6261

6362
state1.SetAsStartState();
6463
state1.OnExit(Method1);
@@ -69,6 +68,8 @@ public void StateMachineFromCode()
6968
stateMachine.AddData("string1", "Roman");
7069
stateMachine.AddData("double1", 1001.0005);
7170

71+
Assert.IsTrue(stateMachine.DataExists("int1"));
72+
7273
stateMachine.Start(parametersForStart);
7374

7475
Assert.AreEqual(stateMachine.CurrentState.Name, "State4");
@@ -81,6 +82,9 @@ public void StateMachineFromXML()
8182
{
8283
var loggerFactory = LoggerFactory.Create(builder => { builder.AddConsole().AddDebug().SetMinimumLevel(LogLevel.Debug); });
8384
var logger = loggerFactory.CreateLogger<StateMachine>();
85+
86+
87+
8488
StateMachine stateMachine = StateMachine.FromXDocument("text.xml", logger);
8589

8690
stateMachine.GetState("State1").OnExit(Method1);

0 commit comments

Comments
 (0)