aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarcinzelent <marcin@zelent.net>2017-02-18 22:21:37 +0100
committermarcinzelent <marcin@zelent.net>2017-02-18 22:21:37 +0100
commit44995cdd14bee7b236fe96916697ca3ee24f6e74 (patch)
treedb92c41539bf3f4b703a75167739ab54fe7798ce
parent2165212bc735886ec76be51eccd0b2aafd685d2d (diff)
Added sequence diagram for removing event, cleaned up code.
-rw-r--r--EventMaker/Design/AddingEvent.sequencediagram1
-rw-r--r--EventMaker/Design/AddingEvent.sequencediagram.layout1
-rw-r--r--EventMaker/Design/AddingEventFDUC.txt (renamed from EventMaker/Design/AddEventFDUC.txt)2
-rw-r--r--EventMaker/Design/Design.modelproj27
-rw-r--r--EventMaker/Design/DesignClassDiagram.classdiagram.layout194
-rw-r--r--EventMaker/Design/DomainModel.classdiagram.layout75
-rw-r--r--EventMaker/Design/EditingEventFDUC.txt (renamed from EventMaker/Design/EditEventFDUC.txt)2
-rw-r--r--EventMaker/Design/ModelDefinition/Design.uml847
-rw-r--r--EventMaker/Design/RemovingEvent.sequencediagram582
-rw-r--r--EventMaker/Design/RemovingEvent.sequencediagram.layout224
-rw-r--r--EventMaker/Design/RemovingEventFDUC.txt (renamed from EventMaker/Design/RemoveEventFDUC.txt)2
-rw-r--r--EventMaker/Design/System.sequencediagram900
-rw-r--r--EventMaker/Design/System.sequencediagram.layout162
-rw-r--r--EventMaker/Design/UseCaseDiagram.usecasediagram.layout25
-rw-r--r--EventMaker/EventMaker/App.xaml63
-rw-r--r--EventMaker/EventMaker/App.xaml.cs41
-rw-r--r--EventMaker/EventMaker/Common/RelayCommand.cs47
-rw-r--r--EventMaker/EventMaker/Model/Event.cs2
-rw-r--r--EventMaker/EventMaker/Model/EventCatalogSingleton.cs60
-rw-r--r--EventMaker/EventMaker/Persistency/PersistencyService.cs15
-rw-r--r--EventMaker/EventMaker/Properties/Annotations.cs2082
-rw-r--r--EventMaker/EventMaker/Properties/AssemblyInfo.cs3
-rw-r--r--EventMaker/EventMaker/Properties/Default.rd.xml4
-rw-r--r--EventMaker/EventMaker/View/CreateEventPage.xaml2
-rw-r--r--EventMaker/EventMaker/View/CreateEventPage.xaml.cs15
-rw-r--r--EventMaker/EventMaker/View/EditEventPage.xaml2
-rw-r--r--EventMaker/EventMaker/View/EditEventPage.xaml.cs19
-rw-r--r--EventMaker/EventMaker/View/EventPage.xaml.cs6
-rw-r--r--EventMaker/EventMaker/ViewModel/EventViewModel.cs45
29 files changed, 3190 insertions, 2260 deletions
diff --git a/EventMaker/Design/AddingEvent.sequencediagram b/EventMaker/Design/AddingEvent.sequencediagram
new file mode 100644
index 0000000..19a76f1
--- /dev/null
+++ b/EventMaker/Design/AddingEvent.sequencediagram
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/EventMaker/Design/AddingEvent.sequencediagram.layout b/EventMaker/Design/AddingEvent.sequencediagram.layout
new file mode 100644
index 0000000..5f28270
--- /dev/null
+++ b/EventMaker/Design/AddingEvent.sequencediagram.layout
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/EventMaker/Design/AddEventFDUC.txt b/EventMaker/Design/AddingEventFDUC.txt
index f91da65..402ade8 100644
--- a/EventMaker/Design/AddEventFDUC.txt
+++ b/EventMaker/Design/AddingEventFDUC.txt
@@ -1,4 +1,4 @@
-Use case name: Add event
+Use case name: Adding event
Scope: EventMaker
Level: Adding new event to the list
Primary Actor: User
diff --git a/EventMaker/Design/Design.modelproj b/EventMaker/Design/Design.modelproj
index 11baef0..91b7a5f 100644
--- a/EventMaker/Design/Design.modelproj
+++ b/EventMaker/Design/Design.modelproj
@@ -22,10 +22,24 @@
</PropertyGroup>
<Import Project="$(VSToolsPath)\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" Condition="'$(VSToolsPath)' != ''" />
<ItemGroup>
- <Content Include="AddEventFDUC.txt">
+ <Content Include="AddingEvent.sequencediagram">
<SubType>Content</SubType>
</Content>
- <Content Include="RemoveEventFDUC.txt">
+ <Content Include="AddingEvent.sequencediagram.layout">
+ <SubType>Content</SubType>
+ <DependentUpon>AddingEvent.sequencediagram</DependentUpon>
+ </Content>
+ <Content Include="AddingEventFDUC.txt">
+ <SubType>Content</SubType>
+ </Content>
+ <Content Include="RemovingEvent.sequencediagram">
+ <SubType>Content</SubType>
+ </Content>
+ <Content Include="RemovingEvent.sequencediagram.layout">
+ <SubType>Content</SubType>
+ <DependentUpon>RemovingEvent.sequencediagram</DependentUpon>
+ </Content>
+ <Content Include="RemovingEventFDUC.txt">
<SubType>Content</SubType>
</Content>
<Content Include="DesignClassDiagram.classdiagram">
@@ -42,7 +56,7 @@
<SubType>Content</SubType>
<DependentUpon>DomainModel.classdiagram</DependentUpon>
</Content>
- <Content Include="EditEventFDUC.txt">
+ <Content Include="EditingEventFDUC.txt">
<SubType>Content</SubType>
</Content>
<Content Include="ModelDefinition\Package1_1602.uml">
@@ -60,13 +74,6 @@
<Content Include="ModelDefinition\Package_1603.uml">
<SubType>Content</SubType>
</Content>
- <Content Include="System.sequencediagram">
- <SubType>Content</SubType>
- </Content>
- <Content Include="System.sequencediagram.layout">
- <SubType>Content</SubType>
- <DependentUpon>System.sequencediagram</DependentUpon>
- </Content>
<Content Include="TestCases.txt">
<SubType>Content</SubType>
</Content>
diff --git a/EventMaker/Design/DesignClassDiagram.classdiagram.layout b/EventMaker/Design/DesignClassDiagram.classdiagram.layout
index 8960d0f..f78fbc9 100644
--- a/EventMaker/Design/DesignClassDiagram.classdiagram.layout
+++ b/EventMaker/Design/DesignClassDiagram.classdiagram.layout
@@ -1,55 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
+
<logicalClassDesignerDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 16.25, 10.75" name="DesignClassDiagram">
<logicalClassDesignerModelMoniker Id="d21d4508-f335-46da-bf4c-c0ae792820a6" />
<nestedChildShapes>
- <interfaceShape Id="df72f42d-6f63-4b40-8f3d-c789670788c2" absoluteBounds="1.75, 0.5, 2.125, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="207, 223, 191">
+ <interfaceShape Id="df72f42d-6f63-4b40-8f3d-c789670788c2" absoluteBounds="1.75, 0.5, 2.125, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="207, 223, 191">
<interfaceMoniker Id="217dd86f-2d0b-4c37-822c-ff22d7b30fd0" LastKnownName="INotifyPropertyChanged" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="bf73e012-5ae4-4982-8fc8-6693ae1a765e" absoluteBounds="1.7649999999999997, 0.89, 2.0949999999999998, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="9b27b67a-ced3-4738-b44c-93835e5ff535" absoluteBounds="1.7649999999999997, 1.1011718675494193, 2.0949999999999998, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="bf73e012-5ae4-4982-8fc8-6693ae1a765e"
+ absoluteBounds="1.7649999999999997, 0.89, 2.0949999999999998, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="9b27b67a-ced3-4738-b44c-93835e5ff535"
+ absoluteBounds="1.7649999999999997, 1.1011718675494193, 2.0949999999999998, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</interfaceShape>
- <interfaceShape Id="8b9c7056-7ed6-4c86-87ab-e445d7fd9f34" absoluteBounds="13.375, 0.75, 1.5, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="207, 223, 191">
+ <interfaceShape Id="8b9c7056-7ed6-4c86-87ab-e445d7fd9f34" absoluteBounds="13.375, 0.75, 1.5, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="207, 223, 191">
<interfaceMoniker Id="2bcf209f-ec94-4997-a2c8-a47692f36ad5" LastKnownName="ICommand" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="9b43837c-1cf8-45e6-80aa-fddd3b10ed1d" absoluteBounds="13.39, 1.1400000000000001, 1.4700000000000002, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="8bfdf11f-498f-498c-9962-f195a7c0d1d3" absoluteBounds="13.39, 1.3511718675494193, 1.4700000000000002, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="9b43837c-1cf8-45e6-80aa-fddd3b10ed1d"
+ absoluteBounds="13.39, 1.1400000000000001, 1.4700000000000002, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="8bfdf11f-498f-498c-9962-f195a7c0d1d3"
+ absoluteBounds="13.39, 1.3511718675494193, 1.4700000000000002, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</interfaceShape>
- <classShape Id="1d7e5d65-6a7f-4c1d-9a9f-48393ff9a159" absoluteBounds="7.25, 0.5, 4, 1.7031249602635703" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="1d7e5d65-6a7f-4c1d-9a9f-48393ff9a159" absoluteBounds="7.25, 0.5, 4, 1.7031249602635703"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="a35df6c1-e5b1-4481-aee3-966a4fde77d9" LastKnownName="App" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="6785aae7-0622-46d7-80e9-b5bcef2365b7" absoluteBounds="7.2650000000000006, 0.89000000000000012, 3.9699999999999998, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="8f4ec199-9aa9-43fd-9867-0f8d9b0ae682" absoluteBounds="7.2650000000000006, 1.1011718675494193, 3.9699999999999998, 1.0019530927141507" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="6785aae7-0622-46d7-80e9-b5bcef2365b7"
+ absoluteBounds="7.2650000000000006, 0.89000000000000012, 3.9699999999999998, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="8f4ec199-9aa9-43fd-9867-0f8d9b0ae682"
+ absoluteBounds="7.2650000000000006, 1.1011718675494193, 3.9699999999999998, 1.0019530927141507"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <packageShape Id="a6c1a1e5-5076-4ea3-bb3a-a5ae6210005d" absoluteBounds="7.25, 3.125, 4.125, 5" customColor="255, 249, 230" hideQualifiedName="false">
+ <packageShape Id="a6c1a1e5-5076-4ea3-bb3a-a5ae6210005d" absoluteBounds="7.25, 3.125, 4.125, 5"
+ customColor="255, 249, 230" hideQualifiedName="false">
<packageMoniker Id="f5f26326-7ab1-4ad4-b7f8-aad3ed635f9d" LastKnownName="View" />
<nestedChildShapes>
- <classShape Id="153ca489-71cf-441c-a1ea-f2f59582e3bf" absoluteBounds="7.375, 3.5, 3.875, 1.2226562251647315" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="153ca489-71cf-441c-a1ea-f2f59582e3bf" absoluteBounds="7.375, 3.5, 3.875, 1.2226562251647315"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="b9eb3894-ef8e-4b17-b7c5-ab2c3d02909e" LastKnownName="EventPage" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="0a726a27-f94c-4fcc-92b6-2271f813f1af" absoluteBounds="7.3900000000000006, 3.89, 3.8449999999999998, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="73b179bb-38d6-48bb-b9ed-76d76340df74" absoluteBounds="7.3900000000000006, 4.10117186754942, 3.8449999999999998, 0.521484357615312" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="0a726a27-f94c-4fcc-92b6-2271f813f1af"
+ absoluteBounds="7.3900000000000006, 3.89, 3.8449999999999998, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="73b179bb-38d6-48bb-b9ed-76d76340df74"
+ absoluteBounds="7.3900000000000006, 4.10117186754942, 3.8449999999999998, 0.521484357615312"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <classShape Id="967260aa-a28e-4fdd-96a7-bd037de80b33" absoluteBounds="7.375, 4.875, 3.875, 1.5429687152306237" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="967260aa-a28e-4fdd-96a7-bd037de80b33" absoluteBounds="7.375, 4.875, 3.875, 1.5429687152306237"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="44c40227-359c-4071-b0b7-79ebfe190ae9" LastKnownName="CreateEventPage" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="88d18b43-2d49-408a-a1ad-9518e2310631" absoluteBounds="7.3900000000000006, 5.2650000000000006, 3.8449999999999998, 0.36132811258236563" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="1c8adfbf-ba2b-4ec8-8ba3-4f79b7127c81" absoluteBounds="7.3900000000000006, 5.6363281125823654, 3.8449999999999998, 0.68164060264825821" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="88d18b43-2d49-408a-a1ad-9518e2310631"
+ absoluteBounds="7.3900000000000006, 5.2650000000000006, 3.8449999999999998, 0.36132811258236563"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="1c8adfbf-ba2b-4ec8-8ba3-4f79b7127c81"
+ absoluteBounds="7.3900000000000006, 5.6363281125823654, 3.8449999999999998, 0.68164060264825821"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <classShape Id="05dc1121-d0e7-41bf-a912-c8e26a1069a9" absoluteBounds="7.375, 6.5, 3.875, 1.5429687152306237" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="05dc1121-d0e7-41bf-a912-c8e26a1069a9" absoluteBounds="7.375, 6.5, 3.875, 1.5429687152306237"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="da550586-d773-4020-8246-dc5ef4440f7e" LastKnownName="EditEventPage" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="38ac0b4a-0d59-4448-b876-a997c7a37c99" absoluteBounds="7.3900000000000006, 6.8900000000000006, 3.8449999999999998, 0.36132811258236563" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="f29d518a-a267-40e4-8d2f-329efa05784e" absoluteBounds="7.3900000000000006, 7.2613281125823654, 3.8449999999999998, 0.68164060264825821" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="38ac0b4a-0d59-4448-b876-a997c7a37c99"
+ absoluteBounds="7.3900000000000006, 6.8900000000000006, 3.8449999999999998, 0.36132811258236563"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="f29d518a-a267-40e4-8d2f-329efa05784e"
+ absoluteBounds="7.3900000000000006, 7.2613281125823654, 3.8449999999999998, 0.68164060264825821"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
</nestedChildShapes>
</packageShape>
- <dependencyConnector edgePoints="[(9.3125 : 3.5); (9.3125 : 2.20312496026357)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector edgePoints="[(9.3125 : 3.5); (9.3125 : 2.20312496026357)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="f0ea3eb1-7c68-44a4-9731-2c71335744a7" />
<relativeChildShapes />
<nodes>
@@ -57,19 +90,27 @@
<classShapeMoniker Id="1d7e5d65-6a7f-4c1d-9a9f-48393ff9a159" />
</nodes>
</dependencyConnector>
- <packageShape Id="bf6e3e8b-2df1-4eb3-a7f0-87aab9fbf6f0" absoluteBounds="0.5, 1.75, 4.625, 4.75" customColor="255, 249, 230" hideQualifiedName="false">
+ <packageShape Id="bf6e3e8b-2df1-4eb3-a7f0-87aab9fbf6f0" absoluteBounds="0.5, 1.75, 4.625, 4.75"
+ customColor="255, 249, 230" hideQualifiedName="false">
<packageMoniker Id="cb86e18d-611d-4ba2-85e6-74299a975c7b" LastKnownName="ViewModel" />
<nestedChildShapes>
- <classShape Id="d0dbae9c-252b-4084-86e1-808f43862ec9" absoluteBounds="0.625, 2.125, 4.375, 4.2656248807907104" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="d0dbae9c-252b-4084-86e1-808f43862ec9" absoluteBounds="0.625, 2.125, 4.375, 4.2656248807907104"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="2c1d19ca-b629-4668-9edb-dbedbe554432" LastKnownName="EventViewModel" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="51473eb6-13da-4059-b622-aa856186ec19" absoluteBounds="0.64, 2.515, 4.3450000000000006, 2.6035155430436134" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="b564f301-a83a-4fb2-9471-2979fbe81516" absoluteBounds="0.64, 5.1285155430436138, 4.3450000000000006, 1.162109337747097" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="51473eb6-13da-4059-b622-aa856186ec19"
+ absoluteBounds="0.64, 2.515, 4.3450000000000006, 2.6035155430436134"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="b564f301-a83a-4fb2-9471-2979fbe81516"
+ absoluteBounds="0.64, 5.1285155430436138, 4.3450000000000006, 1.162109337747097"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
</nestedChildShapes>
</packageShape>
- <dependencyConnector edgePoints="[(7.375 : 5.63281244039536); (6.33333333333333 : 5.63281244039535 : JumpStart); (6.16666666666667 : 5.63281244039536 : JumpEnd); (5 : 5.63281244039536)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector
+ edgePoints="[(7.375 : 5.63281244039536); (6.33333333333333 : 5.63281244039535 : JumpStart); (6.16666666666667 : 5.63281244039536 : JumpEnd); (5 : 5.63281244039536)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="927578da-8ceb-44b5-8eb5-4935204b38ea" />
<relativeChildShapes />
<nodes>
@@ -77,7 +118,8 @@
<classShapeMoniker Id="d0dbae9c-252b-4084-86e1-808f43862ec9" />
</nodes>
</dependencyConnector>
- <dependencyConnector edgePoints="[(7.375 : 4.11132811258237); (5 : 4.11132811258237)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector edgePoints="[(7.375 : 4.11132811258237); (5 : 4.11132811258237)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="4cac2fdd-386f-463f-b4ee-0400ac79472d" />
<relativeChildShapes />
<nodes>
@@ -85,7 +127,8 @@
<classShapeMoniker Id="d0dbae9c-252b-4084-86e1-808f43862ec9" />
</nodes>
</dependencyConnector>
- <realizationConnector edgePoints="[(2.8125 : 2.125); (2.8125 : 1.40234373509884)]" fixedFrom="NotFixed" fixedTo="NotFixed" customColor="113, 111, 110" showAsLollipop="false">
+ <realizationConnector edgePoints="[(2.8125 : 2.125); (2.8125 : 1.40234373509884)]" fixedFrom="NotFixed"
+ fixedTo="NotFixed" customColor="113, 111, 110" showAsLollipop="false">
<interfaceRealizationMoniker Id="bdd9822a-8847-4324-884c-eebb89443bfe" />
<relativeChildShapes />
<nodes>
@@ -93,7 +136,9 @@
<interfaceShapeMoniker Id="df72f42d-6f63-4b40-8f3d-c789670788c2" />
</nodes>
</realizationConnector>
- <dependencyConnector edgePoints="[(7.375 : 7.27148435761531); (6.33333333333333 : 7.27148435761531 : JumpStart); (6.16666666666667 : 7.27148435761531 : JumpEnd); (2.8125 : 7.27148435761531); (2.8125 : 6.39062488079071)]" fixedFrom="NotFixed" fixedTo="NotFixed" customColor="Black">
+ <dependencyConnector
+ edgePoints="[(7.375 : 7.27148435761531); (6.33333333333333 : 7.27148435761531 : JumpStart); (6.16666666666667 : 7.27148435761531 : JumpEnd); (2.8125 : 7.27148435761531); (2.8125 : 6.39062488079071)]"
+ fixedFrom="NotFixed" fixedTo="NotFixed" customColor="Black">
<dependencyMoniker Id="e7916763-b505-45b3-b9b7-4116d7351fb3" />
<relativeChildShapes />
<nodes>
@@ -101,19 +146,27 @@
<classShapeMoniker Id="d0dbae9c-252b-4084-86e1-808f43862ec9" />
</nodes>
</dependencyConnector>
- <packageShape Id="38f7d1eb-a858-44f8-9c20-83c516f44139" absoluteBounds="12.25, 1.75, 3.625, 2.625" customColor="255, 249, 230" hideQualifiedName="false">
+ <packageShape Id="38f7d1eb-a858-44f8-9c20-83c516f44139" absoluteBounds="12.25, 1.75, 3.625, 2.625"
+ customColor="255, 249, 230" hideQualifiedName="false">
<packageMoniker Id="e6dbe588-92b1-4176-a587-a942eb942cd5" LastKnownName="Common" />
<nestedChildShapes>
- <classShape Id="4e828a58-f82a-4b29-8cb1-63ec440ea019" absoluteBounds="12.375, 2.125, 3.375, 2.1835936953624087" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="4e828a58-f82a-4b29-8cb1-63ec440ea019" absoluteBounds="12.375, 2.125, 3.375, 2.1835936953624087"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="3eda6421-f20d-4c05-9705-45ba766aa1a1" LastKnownName="RelayCommand" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="5354e8d3-d7c4-4b44-bcce-264ee5d30bf1" absoluteBounds="12.39, 2.515, 3.3449999999999998, 0.68164060264825832" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="0803db07-d4cd-40b5-853b-b98e57e54df8" absoluteBounds="12.39, 3.2066406026482586, 3.3449999999999998, 1.0019530927141507" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="5354e8d3-d7c4-4b44-bcce-264ee5d30bf1"
+ absoluteBounds="12.39, 2.515, 3.3449999999999998, 0.68164060264825832"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="0803db07-d4cd-40b5-853b-b98e57e54df8"
+ absoluteBounds="12.39, 3.2066406026482586, 3.3449999999999998, 1.0019530927141507"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
</nestedChildShapes>
</packageShape>
- <realizationConnector edgePoints="[(14.0625 : 2.125); (14.0625 : 1.89234373509884); (14.125 : 1.89234373509884); (14.125 : 1.65234373509884)]" fixedFrom="NotFixed" fixedTo="NotFixed" customColor="113, 111, 110" showAsLollipop="false">
+ <realizationConnector
+ edgePoints="[(14.0625 : 2.125); (14.0625 : 1.89234373509884); (14.125 : 1.89234373509884); (14.125 : 1.65234373509884)]"
+ fixedFrom="NotFixed" fixedTo="NotFixed" customColor="113, 111, 110" showAsLollipop="false">
<interfaceRealizationMoniker Id="112b1642-ca4a-4972-bd63-073533ee25bf" />
<relativeChildShapes />
<nodes>
@@ -121,7 +174,8 @@
<interfaceShapeMoniker Id="8b9c7056-7ed6-4c86-87ab-e445d7fd9f34" />
</nodes>
</realizationConnector>
- <dependencyConnector edgePoints="[(11.25 : 3.9042968476812); (12.375 : 3.9042968476812)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector edgePoints="[(11.25 : 3.9042968476812); (12.375 : 3.9042968476812)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="0838d712-8211-47ca-b4dd-5c9fae8bc01d" />
<relativeChildShapes />
<nodes>
@@ -129,7 +183,9 @@
<classShapeMoniker Id="4e828a58-f82a-4b29-8cb1-63ec440ea019" />
</nodes>
</dependencyConnector>
- <dependencyConnector edgePoints="[(11.25 : 5.59375); (13.9635416666667 : 5.59375 : JumpStart); (14.1302083333333 : 5.59375 : JumpEnd); (15.71875 : 5.59375); (15.71875 : 4.30859369536241)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector
+ edgePoints="[(11.25 : 5.59375); (13.9635416666667 : 5.59375 : JumpStart); (14.1302083333333 : 5.59375 : JumpEnd); (15.71875 : 5.59375); (15.71875 : 4.30859369536241)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="d7294080-de45-458d-8ce8-e92377c9db79" />
<relativeChildShapes />
<nodes>
@@ -137,7 +193,9 @@
<classShapeMoniker Id="4e828a58-f82a-4b29-8cb1-63ec440ea019" />
</nodes>
</dependencyConnector>
- <dependencyConnector edgePoints="[(12.375 : 2.66406248013179); (9.39583333333333 : 2.66406248013178 : JumpStart); (9.22916666666667 : 2.66406248013179 : JumpEnd); (5 : 2.66406248013179)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector
+ edgePoints="[(12.375 : 2.66406248013179); (9.39583333333333 : 2.66406248013178 : JumpStart); (9.22916666666667 : 2.66406248013179 : JumpEnd); (5 : 2.66406248013179)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="df9236b6-ff99-48b3-8986-7685c5443eb5" />
<relativeChildShapes />
<nodes>
@@ -145,7 +203,9 @@
<classShapeMoniker Id="d0dbae9c-252b-4084-86e1-808f43862ec9" />
</nodes>
</dependencyConnector>
- <dependencyConnector edgePoints="[(11.25 : 7.27148435761531); (14.046875 : 7.27148435761531); (14.046875 : 4.30859369536241)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector
+ edgePoints="[(11.25 : 7.27148435761531); (14.046875 : 7.27148435761531); (14.046875 : 4.30859369536241)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="352857b7-3251-4e33-8bee-631261bde346" />
<relativeChildShapes />
<nodes>
@@ -153,26 +213,38 @@
<classShapeMoniker Id="4e828a58-f82a-4b29-8cb1-63ec440ea019" />
</nodes>
</dependencyConnector>
- <packageShape Id="1b6923bb-ba4a-478c-98e4-e24b25311319" absoluteBounds="0.5, 7.625, 6.625, 2.875" customColor="255, 249, 230" hideQualifiedName="false">
+ <packageShape Id="1b6923bb-ba4a-478c-98e4-e24b25311319" absoluteBounds="0.5, 7.625, 6.625, 2.875"
+ customColor="255, 249, 230" hideQualifiedName="false">
<packageMoniker Id="eb816a96-5854-4115-a6b2-c8adf90840f2" LastKnownName="Model" />
<nestedChildShapes>
- <classShape Id="63ca9a09-3f3d-441b-8ad1-c5cc5b46debd" absoluteBounds="5.5, 8.375, 1.5, 1.703124960263569" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="63ca9a09-3f3d-441b-8ad1-c5cc5b46debd" absoluteBounds="5.5, 8.375, 1.5, 1.703124960263569"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="5f9cda63-144f-492f-a6c0-e505c036c229" LastKnownName="Event" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="4c075017-344b-4f28-830c-a44f42db899b" absoluteBounds="5.5150000000000006, 8.765, 1.4700000000000002, 1.0019530927141507" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="4d1db1eb-4325-4bff-9249-69ef77dc103b" absoluteBounds="5.5150000000000006, 9.77695309271415, 1.4700000000000002, 0.20117186754941963" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="4c075017-344b-4f28-830c-a44f42db899b"
+ absoluteBounds="5.5150000000000006, 8.765, 1.4700000000000002, 1.0019530927141507"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="4d1db1eb-4325-4bff-9249-69ef77dc103b"
+ absoluteBounds="5.5150000000000006, 9.77695309271415, 1.4700000000000002, 0.20117186754941963"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <classShape Id="c9c048cd-dc68-483a-be18-baa040c0e246" absoluteBounds="0.625, 8, 3.125, 2.3437499403953552" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="c9c048cd-dc68-483a-be18-baa040c0e246" absoluteBounds="0.625, 8, 3.125, 2.3437499403953552"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="806a8dff-893d-489d-a626-c06657d0321e" LastKnownName="EventCatalogSingleton" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="55f1ef75-a0c7-4249-9bb4-85d8eeaf8061" absoluteBounds="0.63999999999999968, 8.39, 3.0949999999999998, 0.68164060264825832" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="77134cbc-f67c-45e6-8460-a9f6b343295f" absoluteBounds="0.63999999999999968, 9.0816406026482586, 3.0949999999999998, 1.162109337747097" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="55f1ef75-a0c7-4249-9bb4-85d8eeaf8061"
+ absoluteBounds="0.63999999999999968, 8.39, 3.0949999999999998, 0.68164060264825832"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="77134cbc-f67c-45e6-8460-a9f6b343295f"
+ absoluteBounds="0.63999999999999968, 9.0816406026482586, 3.0949999999999998, 1.162109337747097"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
</nestedChildShapes>
</packageShape>
- <associationConnector edgePoints="[(3.75 : 9.22656248013178); (5.5 : 9.22656248013178)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="*">
+ <associationConnector edgePoints="[(3.75 : 9.22656248013178); (5.5 : 9.22656248013178)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="*">
<associationMoniker Id="5a7ce228-eeb6-4b96-9bcc-e0f984e022a6" />
<relativeChildShapes />
<nodes>
@@ -180,7 +252,9 @@
<classShapeMoniker Id="63ca9a09-3f3d-441b-8ad1-c5cc5b46debd" />
</nodes>
</associationConnector>
- <associationConnector edgePoints="[(5 : 4.87207027648886); (6.25 : 4.87207027648886); (6.25 : 8.375)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
+ <associationConnector edgePoints="[(5 : 4.87207027648886); (6.25 : 4.87207027648886); (6.25 : 8.375)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1"
+ targetMultiplicity="1">
<associationMoniker Id="aef5ae13-16b3-4e8b-9dca-8682bc68735d" />
<relativeChildShapes />
<nodes>
@@ -188,31 +262,43 @@
<classShapeMoniker Id="63ca9a09-3f3d-441b-8ad1-c5cc5b46debd" />
</nodes>
</associationConnector>
- <associationConnector edgePoints="[(1.65625 : 6.39062488079071); (1.65625 : 8)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
+ <associationConnector edgePoints="[(1.65625 : 6.39062488079071); (1.65625 : 8)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
<associationMoniker Id="c58994e6-7575-455f-a8dd-b544c95f55ae" />
<relativeChildShapes />
<moveableDecoratorHostShapes>
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="0.75, 6.5, 0.86011642217636108, 0.14800345897674561" shapeFieldName="SourceRoleName" />
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="1.1875, 7.6875, 1.1668112277984619, 0.14800345897674561" shapeFieldName="TargetRoleName" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="0.75, 6.5, 0.86011642217636108, 0.14800345897674561"
+ shapeFieldName="SourceRoleName" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="1.1875, 7.6875, 1.1668112277984619, 0.14800345897674561"
+ shapeFieldName="TargetRoleName" />
</moveableDecoratorHostShapes>
<nodes>
<classShapeMoniker Id="d0dbae9c-252b-4084-86e1-808f43862ec9" />
<classShapeMoniker Id="c9c048cd-dc68-483a-be18-baa040c0e246" />
</nodes>
</associationConnector>
- <packageShape Id="b1561dec-f5ab-4d6d-88b6-4df17bbcfca8" absoluteBounds="7.625, 8.375, 4.125, 2" customColor="255, 249, 230" hideQualifiedName="false">
+ <packageShape Id="b1561dec-f5ab-4d6d-88b6-4df17bbcfca8" absoluteBounds="7.625, 8.375, 4.125, 2"
+ customColor="255, 249, 230" hideQualifiedName="false">
<packageMoniker Id="6451fce6-b675-4bc0-8a82-b19106c1ce4a" LastKnownName="Persistency" />
<nestedChildShapes>
- <classShape Id="cdf8606e-fe5e-48ce-a9bd-56757b555db2" absoluteBounds="7.75, 8.75, 3.875, 1.5429687152306233" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="cdf8606e-fe5e-48ce-a9bd-56757b555db2" absoluteBounds="7.75, 8.75, 3.875, 1.5429687152306233"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="797d9e77-7bc0-4c63-83d9-450ea49fe368" LastKnownName="PersistencyService" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="cc4e9d40-9770-48ab-842a-706dd5de70a3" absoluteBounds="7.7650000000000006, 9.14, 3.8449999999999998, 0.52148435761531187" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="22c07508-e457-48ec-a6e3-d0ef50a97f38" absoluteBounds="7.7650000000000006, 9.6714843576153129, 3.8449999999999998, 0.52148435761531187" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="cc4e9d40-9770-48ab-842a-706dd5de70a3"
+ absoluteBounds="7.7650000000000006, 9.14, 3.8449999999999998, 0.52148435761531187"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="22c07508-e457-48ec-a6e3-d0ef50a97f38"
+ absoluteBounds="7.7650000000000006, 9.6714843576153129, 3.8449999999999998, 0.52148435761531187"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
</nestedChildShapes>
</packageShape>
- <dependencyConnector edgePoints="[(3.75 : 10.2167968377471); (7.75 : 10.2167968377471)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="Black">
+ <dependencyConnector edgePoints="[(3.75 : 10.2167968377471); (7.75 : 10.2167968377471)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="Black">
<dependencyMoniker Id="7ae4a331-bb28-4fc5-90e9-f87490284f96" />
<relativeChildShapes />
<nodes>
diff --git a/EventMaker/Design/DomainModel.classdiagram.layout b/EventMaker/Design/DomainModel.classdiagram.layout
index b730ef4..9894d7c 100644
--- a/EventMaker/Design/DomainModel.classdiagram.layout
+++ b/EventMaker/Design/DomainModel.classdiagram.layout
@@ -1,73 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
+
<logicalClassDesignerDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="Domain Model">
<logicalClassDesignerModelMoniker Id="da92ebc4-11b3-4607-86a9-9d8768995cdc" />
<nestedChildShapes>
- <classShape Id="7d38143d-7ea2-4cdb-be6c-d71530424090" absoluteBounds="1, 1, 1.5, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="7d38143d-7ea2-4cdb-be6c-d71530424090" absoluteBounds="1, 1, 1.5, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="5bf836aa-493b-4f5c-9bf7-fd5b5a7ecafa" LastKnownName="User" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="112215b2-c78b-445b-90fe-4f2944679f18" absoluteBounds="1.0150000000000001, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="e2c44494-650e-4465-985a-b2a9d2260502" absoluteBounds="1.0150000000000001, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="112215b2-c78b-445b-90fe-4f2944679f18"
+ absoluteBounds="1.0150000000000001, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="e2c44494-650e-4465-985a-b2a9d2260502"
+ absoluteBounds="1.0150000000000001, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <classShape Id="32ea47e9-fcdd-45d4-84f5-0e0f2a7947a1" absoluteBounds="3.5, 1, 1.5, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="32ea47e9-fcdd-45d4-84f5-0e0f2a7947a1" absoluteBounds="3.5, 1, 1.5, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="294d0b1d-a164-4407-bab8-5f19b1c51beb" LastKnownName="EventMaker" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="37293614-436c-41db-a823-9073c2683ef4" absoluteBounds="3.5149999999999997, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="222afb3d-1e9f-479b-93fc-407c927f5e50" absoluteBounds="3.5149999999999997, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="37293614-436c-41db-a823-9073c2683ef4"
+ absoluteBounds="3.5149999999999997, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="222afb3d-1e9f-479b-93fc-407c927f5e50"
+ absoluteBounds="3.5149999999999997, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <associationConnector edgePoints="[(2.5 : 1.45117186754942); (3.5 : 1.45117186754942)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
+ <associationConnector edgePoints="[(2.5 : 1.45117186754942); (3.5 : 1.45117186754942)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
<associationMoniker Id="6f8b7171-49ac-4da5-8147-537c66a2bba5" />
<relativeChildShapes />
<moveableDecoratorHostShapes>
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="2.75, 1.3125, 0.31703916192054749, 0.14800345897674561" shapeFieldName="SourceRoleName" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="2.75, 1.3125, 0.31703916192054749, 0.14800345897674561"
+ shapeFieldName="SourceRoleName" />
</moveableDecoratorHostShapes>
<nodes>
<classShapeMoniker Id="7d38143d-7ea2-4cdb-be6c-d71530424090" />
<classShapeMoniker Id="32ea47e9-fcdd-45d4-84f5-0e0f2a7947a1" />
</nodes>
</associationConnector>
- <classShape Id="61052442-8f75-41f5-bb18-1ea43b5be4e0" absoluteBounds="5.75, 1, 1.5, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="61052442-8f75-41f5-bb18-1ea43b5be4e0" absoluteBounds="5.75, 1, 1.5, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="21800e76-32fc-4206-96c8-578ad6a256c6" LastKnownName="Events" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="acb3fd26-8392-4e74-bf57-3298ec01300c" absoluteBounds="5.765, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="f8f5b88c-ee1b-4ea3-8965-d654775c0fae" absoluteBounds="5.765, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="acb3fd26-8392-4e74-bf57-3298ec01300c"
+ absoluteBounds="5.765, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="f8f5b88c-ee1b-4ea3-8965-d654775c0fae"
+ absoluteBounds="5.765, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <associationConnector edgePoints="[(5 : 1.45117186754942); (5.75 : 1.45117186754942)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
+ <associationConnector edgePoints="[(5 : 1.45117186754942); (5.75 : 1.45117186754942)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
<associationMoniker Id="c9f20078-8964-4d12-bb61-e59094a0333b" />
<relativeChildShapes />
<moveableDecoratorHostShapes>
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="5.25, 1.3125, 0.21195021271705627, 0.14800345897674561" shapeFieldName="SourceRoleName" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="5.25, 1.3125, 0.21195021271705627, 0.14800345897674561"
+ shapeFieldName="SourceRoleName" />
</moveableDecoratorHostShapes>
<nodes>
<classShapeMoniker Id="32ea47e9-fcdd-45d4-84f5-0e0f2a7947a1" />
<classShapeMoniker Id="61052442-8f75-41f5-bb18-1ea43b5be4e0" />
</nodes>
</associationConnector>
- <classShape Id="05fdffb4-371a-422e-94fc-5714f85de9bd" absoluteBounds="8.125, 1, 1.5, 0.90234373509883881" hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
+ <classShape Id="05fdffb4-371a-422e-94fc-5714f85de9bd" absoluteBounds="8.125, 1, 1.5, 0.90234373509883881"
+ hideQualifiedName="false" increaseHeight="0" customColor="181, 193, 223">
<classMoniker Id="72fee327-c0f5-4c5a-b81e-571e365a12cb" LastKnownName="Event" />
<nestedChildShapes>
- <AttributeElementListCompartment Id="fd8818a6-7412-4af4-83bb-ea9ff2018f80" absoluteBounds="8.14, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194" name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
- <OperationElementListCompartment Id="9ba0d8a6-06d4-4185-98e3-2c61a997b448" absoluteBounds="8.14, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194" name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <AttributeElementListCompartment Id="fd8818a6-7412-4af4-83bb-ea9ff2018f80"
+ absoluteBounds="8.14, 1.3900000000000001, 1.4700000000000002, 0.2011718675494194"
+ name="AttributesCompartment" titleTextColor="Black" itemTextColor="Black" />
+ <OperationElementListCompartment Id="9ba0d8a6-06d4-4185-98e3-2c61a997b448"
+ absoluteBounds="8.14, 1.6011718675494193, 1.4700000000000002, 0.2011718675494194"
+ name="OperationsCompartment" titleTextColor="Black" itemTextColor="Black" />
</nestedChildShapes>
</classShape>
- <associationConnector edgePoints="[(7.25 : 1.45117186754942); (8.125 : 1.45117186754942)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="*">
+ <associationConnector edgePoints="[(7.25 : 1.45117186754942); (8.125 : 1.45117186754942)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="*">
<associationMoniker Id="77fa7ae7-fbd4-4783-abef-b72511a011cf" />
<relativeChildShapes />
<moveableDecoratorHostShapes>
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="7.5625, 1.3125, 0.21195021271705627, 0.14800345897674561" shapeFieldName="Name" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="7.5625, 1.3125, 0.21195021271705627, 0.14800345897674561"
+ shapeFieldName="Name" />
</moveableDecoratorHostShapes>
<nodes>
<classShapeMoniker Id="61052442-8f75-41f5-bb18-1ea43b5be4e0" />
<classShapeMoniker Id="05fdffb4-371a-422e-94fc-5714f85de9bd" />
</nodes>
</associationConnector>
- <associationConnector edgePoints="[(1.75 : 1.90234373509884); (1.75 : 2.27734373509884); (8.875 : 2.27734373509884); (8.875 : 1.90234373509884)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1" targetMultiplicity="1">
+ <associationConnector
+ edgePoints="[(1.75 : 1.90234373509884); (1.75 : 2.27734373509884); (8.875 : 2.27734373509884); (8.875 : 1.90234373509884)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="1"
+ targetMultiplicity="1">
<associationMoniker Id="5e159ae3-2a52-43a8-8da5-7844debc56ff" />
<relativeChildShapes />
<moveableDecoratorHostShapes>
- <moveableDecoratorHostShape manuallyPlaced="true" absoluteBounds="4.5461426079273224, 2.3125, 1.0291159152984619, 0.14800345897674561" shapeFieldName="TargetRoleName" />
+ <moveableDecoratorHostShape manuallyPlaced="true"
+ absoluteBounds="4.5461426079273224, 2.3125, 1.0291159152984619, 0.14800345897674561"
+ shapeFieldName="TargetRoleName" />
</moveableDecoratorHostShapes>
<nodes>
<classShapeMoniker Id="7d38143d-7ea2-4cdb-be6c-d71530424090" />
diff --git a/EventMaker/Design/EditEventFDUC.txt b/EventMaker/Design/EditingEventFDUC.txt
index daa5441..81f8439 100644
--- a/EventMaker/Design/EditEventFDUC.txt
+++ b/EventMaker/Design/EditingEventFDUC.txt
@@ -1,4 +1,4 @@
-Use case name: Edit event
+Use case name: Editing event
Scope: EventMaker
Level: Editing existing events
Primary Actor: User
diff --git a/EventMaker/Design/ModelDefinition/Design.uml b/EventMaker/Design/ModelDefinition/Design.uml
index 1632783..32c7fe5 100644
--- a/EventMaker/Design/ModelDefinition/Design.uml
+++ b/EventMaker/Design/ModelDefinition/Design.uml
@@ -1,22 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
-<modelStoreModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm4="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner" xmlns:dm9="http://schemas.microsoft.com/dsltools/SimpleShapesModel" xmlns:dm10="http://schemas.microsoft.com/dsltools/UseCaseModel"
+<modelStoreModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm4="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner" xmlns:dm9="http://schemas.microsoft.com/dsltools/SimpleShapesModel" xmlns:dm10="http://schemas.microsoft.com/dsltools/UseCaseModel" xmlns:dm11="http://schemas.microsoft.com/VisualStudio/TeamArchitect/SequenceDesigner"
dslVersion="1.0.0.0"
Id="1bc1064b-b630-4768-9d3b-c772ca559686"
name="Design" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
- <profileInstances>
- <packageHasProfileInstances
- Id="0caec977-1f8c-4ba3-a7db-8cc9ad9cc73b">
- <profileInstance
- Id="e34d544e-0fea-4ed6-ac5e-1b74119ac791"
- name="StandardProfileL2" />
- </packageHasProfileInstances>
- <packageHasProfileInstances
- Id="29349502-908c-4fda-9054-c48619c59ed0">
- <profileInstance
- Id="532ea607-fb19-44b8-8502-3351b05452be"
- name="StandardProfileL3" />
- </packageHasProfileInstances>
- </profileInstances>
<packagedElements>
<packageHasNamedElement>
<actor
@@ -609,7 +595,766 @@
</ownedOperationsInternal>
</class>
</packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="de251d3c-da60-4195-a9dc-e708204200c3"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="ba87de8d-5e82-4b15-8b65-e39a71418592"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="f1284cba-56c5-4364-a341-a0854b673256"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="434847e9-da6b-43e3-a95e-57b9d8d44442"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="73d69b58-5c38-4b33-b8b1-00b103e32e4d"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="190ebc52-206f-45cd-afd9-6e1dc9f19440"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="cd3f4ac4-eb03-4f91-82c0-40c25e09ae48"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="e838c3e2-1199-473d-a0a3-710ca7d7c9db"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="e479bb51-e40a-45a9-bdb1-e927cd2ec349"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="24f5131f-c9f6-4bfe-a839-3a6f977656f3"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="3de40b1b-d7c9-42a6-858c-108dced44d23"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent
+ Id="3b814457-889b-410e-aad3-6a62b7007f73"
+ name="ExecutionEvent" />
+ </packageHasNamedElement>
</packagedElements>
+ <interaction
+ Id="0b07700a-0cbb-442e-8283-77246f9c0075"
+ name="Remove Action Sequence Diagram"
+ collapseFragmentsFlag="false"
+ isActiveClass="false"
+ isAbstract="false"
+ isLeaf="false"
+ isReentrant="false">
+ <elementDefinition
+ Id="ea547a35-6bd1-482f-b338-a576ac1665d2" />
+ <fragments>
+ <behaviorExecutionSpecification
+ Id="afaf1da6-de43-4f8e-bfa9-945edbad767f"
+ name="BehaviorExecutionSpecification4">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ LastKnownName=": RelayCommand"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="a67b08f2-a654-4a47-81b5-8f5c2d53fbf4"
+ LastKnownName="ExecutionOccurrenceSpecification8"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="8aad1992-add4-455b-83e1-d7988429889d"
+ LastKnownName="ExecutionOccurrenceSpecification7"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="3e80aa8c-1a94-4ddd-91b0-a7791c916b9c"
+ LastKnownName="MessageOccurrenceSpecification10"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="8aad1992-add4-455b-83e1-d7988429889d"
+ name="ExecutionOccurrenceSpecification7">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="73d69b58-5c38-4b33-b8b1-00b103e32e4d"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ LastKnownName=": RelayCommand"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="3e80aa8c-1a94-4ddd-91b0-a7791c916b9c"
+ name="MessageOccurrenceSpecification10">
+ <covered>
+ <lifelineMoniker
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ LastKnownName=": RelayCommand"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="a5585828-d03b-4347-9da1-f01991aa30aa"
+ name="MessageOccurrenceSpecification9">
+ <covered>
+ <lifelineMoniker
+ Id="307ce677-9bbe-4d66-922d-5dbb1eae047e"
+ LastKnownName=": EventPage"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="a67b08f2-a654-4a47-81b5-8f5c2d53fbf4"
+ name="ExecutionOccurrenceSpecification8">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="190ebc52-206f-45cd-afd9-6e1dc9f19440"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ LastKnownName=": RelayCommand"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <behaviorExecutionSpecification
+ Id="1e6dcbdc-9325-4bda-bf65-1b73bd9c97bd"
+ name="BehaviorExecutionSpecification1">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ LastKnownName=": EventViewModel"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="e705dc3d-0dc3-40fe-857f-c6ef48230259"
+ LastKnownName="ExecutionOccurrenceSpecification2"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="c38df182-9cad-4441-be69-cf435c7ad5cb"
+ LastKnownName="ExecutionOccurrenceSpecification1"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="91d1d3bb-e8d6-488d-a2b5-18d1e8b402f5"
+ LastKnownName="MessageOccurrenceSpecification2"
+ LastKnownLocation="Design.uml" />
+ <messageOccurrenceSpecificationMoniker
+ Id="6c38f859-82a0-4400-9c84-6ae71ec60283"
+ LastKnownName="MessageOccurrenceSpecification7"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="c38df182-9cad-4441-be69-cf435c7ad5cb"
+ name="ExecutionOccurrenceSpecification1">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="de251d3c-da60-4195-a9dc-e708204200c3"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ LastKnownName=": EventViewModel"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="caa50b42-4a56-41ea-9c20-532ac59e2bef"
+ name="MessageOccurrenceSpecification1">
+ <covered>
+ <lifelineMoniker
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ LastKnownName=": RelayCommand"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="91d1d3bb-e8d6-488d-a2b5-18d1e8b402f5"
+ name="MessageOccurrenceSpecification2">
+ <covered>
+ <lifelineMoniker
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ LastKnownName=": EventViewModel"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification
+ Id="ed849225-67f4-484a-8d38-96a8491b24d6"
+ name="BehaviorExecutionSpecification3">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="257192ca-0602-4772-ac48-be474a3832c4"
+ LastKnownName="ExecutionOccurrenceSpecification6"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="070e8f3c-d03d-45dd-a9d4-3ff7fbdae444"
+ LastKnownName="ExecutionOccurrenceSpecification5"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="f94361c3-3bf3-483c-8b30-65d432a85be9"
+ LastKnownName="MessageOccurrenceSpecification8"
+ LastKnownLocation="Design.uml" />
+ <messageOccurrenceSpecificationMoniker
+ Id="90257c3b-21a4-4b89-8c5f-5c59aec26f2a"
+ LastKnownName="MessageOccurrenceSpecification17"
+ LastKnownLocation="Design.uml" />
+ <messageOccurrenceSpecificationMoniker
+ Id="9c75dcbe-2da4-4d2b-b447-f439db4c3572"
+ LastKnownName="MessageOccurrenceSpecification11"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="070e8f3c-d03d-45dd-a9d4-3ff7fbdae444"
+ name="ExecutionOccurrenceSpecification5">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="f1284cba-56c5-4364-a341-a0854b673256"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="6c38f859-82a0-4400-9c84-6ae71ec60283"
+ name="MessageOccurrenceSpecification7">
+ <covered>
+ <lifelineMoniker
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ LastKnownName=": EventViewModel"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="f94361c3-3bf3-483c-8b30-65d432a85be9"
+ name="MessageOccurrenceSpecification8">
+ <covered>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification
+ Id="7b253fd5-ff2b-446b-97e9-3bf6cee33755"
+ name="BehaviorExecutionSpecification8">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="6496cba6-29e9-4199-aac9-ccef698acd9c"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="fcdd1c34-754c-41a8-9d7c-84646d769ba9"
+ LastKnownName="ExecutionOccurrenceSpecification16"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="fa52e233-9440-42f2-869e-116c43b4eae5"
+ LastKnownName="ExecutionOccurrenceSpecification15"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="322c555a-8e0d-4782-a899-804b0c58d794"
+ LastKnownName="MessageOccurrenceSpecification18"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="fa52e233-9440-42f2-869e-116c43b4eae5"
+ name="ExecutionOccurrenceSpecification15">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="3de40b1b-d7c9-42a6-858c-108dced44d23"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="6496cba6-29e9-4199-aac9-ccef698acd9c"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="e705dc3d-0dc3-40fe-857f-c6ef48230259"
+ name="ExecutionOccurrenceSpecification2">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="ba87de8d-5e82-4b15-8b65-e39a71418592"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ LastKnownName=": EventViewModel"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="90257c3b-21a4-4b89-8c5f-5c59aec26f2a"
+ name="MessageOccurrenceSpecification17">
+ <covered>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="322c555a-8e0d-4782-a899-804b0c58d794"
+ name="MessageOccurrenceSpecification18">
+ <covered>
+ <lifelineMoniker
+ Id="6496cba6-29e9-4199-aac9-ccef698acd9c"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="fcdd1c34-754c-41a8-9d7c-84646d769ba9"
+ name="ExecutionOccurrenceSpecification16">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="3b814457-889b-410e-aad3-6a62b7007f73"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="6496cba6-29e9-4199-aac9-ccef698acd9c"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <behaviorExecutionSpecification
+ Id="e28d72d8-484c-4de7-8ba7-b00c9212d312"
+ name="BehaviorExecutionSpecification5">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ LastKnownName="PersistencyService"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="4e5c1234-8e65-4cf4-a70e-4a52ba84cc90"
+ LastKnownName="ExecutionOccurrenceSpecification10"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="7daf5a1a-9392-4aab-bf17-1d7a6a42f0aa"
+ LastKnownName="ExecutionOccurrenceSpecification9"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="9496d764-8b53-4b6c-a807-8eee318ed937"
+ LastKnownName="MessageOccurrenceSpecification12"
+ LastKnownLocation="Design.uml" />
+ <messageOccurrenceSpecificationMoniker
+ Id="5d9a2e42-cc0c-49a4-adbf-d7768574bece"
+ LastKnownName="MessageOccurrenceSpecification13"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="7daf5a1a-9392-4aab-bf17-1d7a6a42f0aa"
+ name="ExecutionOccurrenceSpecification9">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="cd3f4ac4-eb03-4f91-82c0-40c25e09ae48"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ LastKnownName="PersistencyService"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="9c75dcbe-2da4-4d2b-b447-f439db4c3572"
+ name="MessageOccurrenceSpecification11">
+ <covered>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="9496d764-8b53-4b6c-a807-8eee318ed937"
+ name="MessageOccurrenceSpecification12">
+ <covered>
+ <lifelineMoniker
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ LastKnownName="PersistencyService"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification
+ Id="5db8cc63-d63a-40e7-bf76-53beb85a5654"
+ name="BehaviorExecutionSpecification6">
+ <coveredLifelines>
+ <lifelineMoniker
+ Id="8658ac55-d01b-48b8-8421-92ffc76dea8d"
+ LastKnownName="_eventsFile : StorageFile"
+ LastKnownLocation="Design.uml" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker
+ Id="859ca47c-9d87-4f48-8362-b47c3009f460"
+ LastKnownName="ExecutionOccurrenceSpecification12"
+ LastKnownLocation="Design.uml" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker
+ Id="56280812-a26f-46fc-8648-4298b5035733"
+ LastKnownName="ExecutionOccurrenceSpecification11"
+ LastKnownLocation="Design.uml" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="dc0efd82-3a4e-4e06-a8b5-3d4567c8f62f"
+ LastKnownName="MessageOccurrenceSpecification14"
+ LastKnownLocation="Design.uml" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification
+ Id="257192ca-0602-4772-ac48-be474a3832c4"
+ name="ExecutionOccurrenceSpecification6">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="434847e9-da6b-43e3-a95e-57b9d8d44442"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ LastKnownName=": EventCatalogSingleton"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="56280812-a26f-46fc-8648-4298b5035733"
+ name="ExecutionOccurrenceSpecification11">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="e479bb51-e40a-45a9-bdb1-e927cd2ec349"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="8658ac55-d01b-48b8-8421-92ffc76dea8d"
+ LastKnownName="_eventsFile : StorageFile"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="5d9a2e42-cc0c-49a4-adbf-d7768574bece"
+ name="MessageOccurrenceSpecification13">
+ <covered>
+ <lifelineMoniker
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ LastKnownName="PersistencyService"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification
+ Id="dc0efd82-3a4e-4e06-a8b5-3d4567c8f62f"
+ name="MessageOccurrenceSpecification14">
+ <covered>
+ <lifelineMoniker
+ Id="8658ac55-d01b-48b8-8421-92ffc76dea8d"
+ LastKnownName="_eventsFile : StorageFile"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="4e5c1234-8e65-4cf4-a70e-4a52ba84cc90"
+ name="ExecutionOccurrenceSpecification10">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="e838c3e2-1199-473d-a0a3-710ca7d7c9db"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ LastKnownName="PersistencyService"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification
+ Id="859ca47c-9d87-4f48-8362-b47c3009f460"
+ name="ExecutionOccurrenceSpecification12">
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker
+ Id="24f5131f-c9f6-4bfe-a839-3a6f977656f3"
+ LastKnownName="ExecutionEvent"
+ LastKnownLocation="Design.uml" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker
+ Id="8658ac55-d01b-48b8-8421-92ffc76dea8d"
+ LastKnownName="_eventsFile : StorageFile"
+ LastKnownLocation="Design.uml" />
+ </covered>
+ </executionOccurrenceSpecification>
+ </fragments>
+ <lifelines>
+ <lifeline
+ Id="6496cba6-29e9-4199-aac9-ccef698acd9c"
+ name="Events : ObservableCollection&lt;Event&gt;"
+ isActor="false"
+ lifelineDisplayName="Events : ObservableCollection&lt;Event&gt;">
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="fa52e233-9440-42f2-869e-116c43b4eae5"
+ LastKnownName="ExecutionOccurrenceSpecification15"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="fcdd1c34-754c-41a8-9d7c-84646d769ba9"
+ LastKnownName="ExecutionOccurrenceSpecification16"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline
+ Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1"
+ name="PersistencyService"
+ isActor="false"
+ lifelineDisplayName="PersistencyService">
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="7daf5a1a-9392-4aab-bf17-1d7a6a42f0aa"
+ LastKnownName="ExecutionOccurrenceSpecification9"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="4e5c1234-8e65-4cf4-a70e-4a52ba84cc90"
+ LastKnownName="ExecutionOccurrenceSpecification10"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline
+ Id="8658ac55-d01b-48b8-8421-92ffc76dea8d"
+ name="_eventsFile : StorageFile"
+ isActor="false"
+ lifelineDisplayName="_eventsFile : StorageFile">
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="56280812-a26f-46fc-8648-4298b5035733"
+ LastKnownName="ExecutionOccurrenceSpecification11"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="859ca47c-9d87-4f48-8362-b47c3009f460"
+ LastKnownName="ExecutionOccurrenceSpecification12"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ </lifelines>
+ <messages>
+ <message
+ Id="4e41082f-78a7-4e00-b251-f35e888aca0d"
+ name="RemoveEventCommand"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="a5585828-d03b-4347-9da1-f01991aa30aa"
+ LastKnownName="MessageOccurrenceSpecification9"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="3e80aa8c-1a94-4ddd-91b0-a7791c916b9c"
+ LastKnownName="MessageOccurrenceSpecification10"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ <message
+ Id="a3022d72-d18d-411e-bec6-2c9c53e7fc52"
+ name="Action"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="caa50b42-4a56-41ea-9c20-532ac59e2bef"
+ LastKnownName="MessageOccurrenceSpecification1"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="91d1d3bb-e8d6-488d-a2b5-18d1e8b402f5"
+ LastKnownName="MessageOccurrenceSpecification2"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ <message
+ Id="1240616f-b697-4765-b9aa-0e9af36f1812"
+ name="Remove(SelectedEventIndex)"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="6c38f859-82a0-4400-9c84-6ae71ec60283"
+ LastKnownName="MessageOccurrenceSpecification7"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="f94361c3-3bf3-483c-8b30-65d432a85be9"
+ LastKnownName="MessageOccurrenceSpecification8"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ <message
+ Id="91771eef-945e-42c1-99cc-67381e858b45"
+ name="RemoveAt(index)"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="90257c3b-21a4-4b89-8c5f-5c59aec26f2a"
+ LastKnownName="MessageOccurrenceSpecification17"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="322c555a-8e0d-4782-a899-804b0c58d794"
+ LastKnownName="MessageOccurrenceSpecification18"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ <message
+ Id="949811bd-98b9-4e66-b0cb-ab0e1d96c980"
+ name="SaveEventsAsJsonAsync(Events)"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="9c75dcbe-2da4-4d2b-b447-f439db4c3572"
+ LastKnownName="MessageOccurrenceSpecification11"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="9496d764-8b53-4b6c-a807-8eee318ed937"
+ LastKnownName="MessageOccurrenceSpecification12"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ <message
+ Id="a779ea9a-de9c-40a0-9dcc-3808a1dfbb70"
+ name="File.WriteAllText"
+ messageKind="Complete"
+ messageSort="AsynchCall"
+ createSelfMessage="false">
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="5d9a2e42-cc0c-49a4-adbf-d7768574bece"
+ LastKnownName="MessageOccurrenceSpecification13"
+ LastKnownLocation="Design.uml" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker
+ Id="dc0efd82-3a4e-4e06-a8b5-3d4567c8f62f"
+ LastKnownName="MessageOccurrenceSpecification14"
+ LastKnownLocation="Design.uml" />
+ </receiveEvent>
+ </message>
+ </messages>
+ </interaction>
<primitiveType
Id="220a3521-e091-4221-bae9-3ef9018e845c"
name="Integer"
@@ -630,4 +1375,76 @@
name="UnlimitedNatural"
isAbstract="false"
isLeaf="false" />
+ <lifeline
+ Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48"
+ name=": EventViewModel"
+ isActor="false"
+ lifelineDisplayName=": EventViewModel">
+ <elementDefinition
+ Id="27d2185f-6c81-46ce-88fa-191284a655b1" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="c38df182-9cad-4441-be69-cf435c7ad5cb"
+ LastKnownName="ExecutionOccurrenceSpecification1"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="e705dc3d-0dc3-40fe-857f-c6ef48230259"
+ LastKnownName="ExecutionOccurrenceSpecification2"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline
+ Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9"
+ name=": RelayCommand"
+ isActor="false"
+ lifelineDisplayName=": RelayCommand">
+ <elementDefinition
+ Id="239f3072-fbfb-42ba-b450-05641b004264" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="8aad1992-add4-455b-83e1-d7988429889d"
+ LastKnownName="ExecutionOccurrenceSpecification7"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="a67b08f2-a654-4a47-81b5-8f5c2d53fbf4"
+ LastKnownName="ExecutionOccurrenceSpecification8"
+ LastKnownLocation="Design.uml" />
+ <messageOccurrenceSpecificationMoniker
+ Id="caa50b42-4a56-41ea-9c20-532ac59e2bef"
+ LastKnownName="MessageOccurrenceSpecification1"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline
+ Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3"
+ name=": EventCatalogSingleton"
+ isActor="false"
+ lifelineDisplayName=": EventCatalogSingleton">
+ <elementDefinition
+ Id="b382409e-1b97-4c0d-86ca-e7f8e5ca313c" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker
+ Id="070e8f3c-d03d-45dd-a9d4-3ff7fbdae444"
+ LastKnownName="ExecutionOccurrenceSpecification5"
+ LastKnownLocation="Design.uml" />
+ <executionOccurrenceSpecificationMoniker
+ Id="257192ca-0602-4772-ac48-be474a3832c4"
+ LastKnownName="ExecutionOccurrenceSpecification6"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline
+ Id="307ce677-9bbe-4d66-922d-5dbb1eae047e"
+ name=": EventPage"
+ isActor="false"
+ lifelineDisplayName=": EventPage">
+ <elementDefinition
+ Id="37fd5950-3c4f-41d8-b561-e4f2cdf20a47" />
+ <topLevelOccurrences>
+ <messageOccurrenceSpecificationMoniker
+ Id="a5585828-d03b-4347-9da1-f01991aa30aa"
+ LastKnownName="MessageOccurrenceSpecification9"
+ LastKnownLocation="Design.uml" />
+ </topLevelOccurrences>
+ </lifeline>
</modelStoreModel> \ No newline at end of file
diff --git a/EventMaker/Design/RemovingEvent.sequencediagram b/EventMaker/Design/RemovingEvent.sequencediagram
new file mode 100644
index 0000000..5cb49e3
--- /dev/null
+++ b/EventMaker/Design/RemovingEvent.sequencediagram
@@ -0,0 +1,582 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SequenceDesignerModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm4="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/ModelStore" xmlns:dm9="http://schemas.microsoft.com/dsltools/LogicalClassDesigner" xmlns:dm10="http://schemas.microsoft.com/dsltools/SimpleShapesModel" xmlns:dm11="http://schemas.microsoft.com/dsltools/UseCaseModel" dslVersion="1.0.0.0" Id="6c3241eb-f5b5-4520-a07d-691169e42d8b" name="Remove Action Sequence Diagram" linkedPackageId="d8e7829c-b483-43ed-98e2-6008a865eb7a" xmlns="http://schemas.microsoft.com/VisualStudio/TeamArchitect/SequenceDesigner">
+ <profileInstances>
+ <packageHasProfileInstances Id="b4e45175-9717-47e3-bd56-2d981f325c0f">
+ <profileInstance Id="41452ae5-0f30-4399-84c1-4ee085d71c83" name="StandardProfileL2">
+ <elementDefinition Id="e34d544e-0fea-4ed6-ac5e-1b74119ac791" />
+ </profileInstance>
+ <elementDefinition Id="0caec977-1f8c-4ba3-a7db-8cc9ad9cc73b" />
+ </packageHasProfileInstances>
+ <packageHasProfileInstances Id="970012ec-b0fb-4dae-924d-fac4429dd3ff">
+ <profileInstance Id="171edd0a-12f7-4e5f-8737-bc2d47539c11" name="StandardProfileL3">
+ <elementDefinition Id="532ea607-fb19-44b8-8502-3351b05452be" />
+ </profileInstance>
+ <elementDefinition Id="29349502-908c-4fda-9054-c48619c59ed0" />
+ </packageHasProfileInstances>
+ </profileInstances>
+ <packagedElements>
+ <packageHasNamedElement>
+ <interaction Id="943210b2-8b62-46c0-a440-b8c5aec58c5c" name="Remove Action Sequence Diagram" collapseFragmentsFlag="false" isActiveClass="false" isAbstract="false" isLeaf="false" isReentrant="false">
+ <ownedCommentsInternal>
+ <comment Id="cba7e648-2fc2-4c28-a514-858e673eff11">
+ <elementDefinition Id="79e95a44-36e6-45b5-a8c1-c26dd924a092" />
+ <body>Databinding to SelectedEventIndex</body>
+ <annotatedElements>
+ <lifelineMoniker Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" LastKnownName=": EventPage" />
+ </annotatedElements>
+ </comment>
+ </ownedCommentsInternal>
+ <elementDefinition Id="0b07700a-0cbb-442e-8283-77246f9c0075" />
+ <fragments>
+ <messageOccurrenceSpecification Id="0f403def-2aa9-4447-9a94-6ffb4de6eceb" name="MessageOccurrenceSpecification13">
+ <elementDefinition Id="e94d5ef8-c0ea-44cb-b1e6-a876af63757a" />
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="7ea885e0-daed-49f4-aaa0-68b15a72311b" name="ExecutionOccurrenceSpecification10">
+ <elementDefinition Id="5f968eac-be1e-4fe5-8119-4f8c8a349bf9" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="2a8e0b90-2caa-4074-96c1-65ae174d5ca9" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="b8708d58-8f43-4613-9b31-7bb9cf3a5efd" name="MessageOccurrenceSpecification18">
+ <elementDefinition Id="5280ddcb-ccb4-4c55-bf8a-ff298f0886d6" />
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="5315f45d-6731-4ca8-a018-e7cc4645c723" name="MessageOccurrenceSpecification19">
+ <elementDefinition Id="d722fed1-e0db-4bf1-a8ee-8ade355a0a35" />
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="e03db2f1-4417-410b-b17b-905c89f52059" name="MessageOccurrenceSpecification12">
+ <elementDefinition Id="c46c3d49-a4fc-407b-a92f-679b6f649f69" />
+ <covered>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="05a47356-2bd2-4de0-969b-42fd479d5ff7" name="ExecutionOccurrenceSpecification9">
+ <elementDefinition Id="a4671dc9-e8d7-48c7-9cb2-4510e76109f5" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="e1b5c94e-efe9-4f74-a785-918ca51039e1" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ </executionOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="36561d33-a929-4060-bfa7-0c589f07cd20" name="BehaviorExecutionSpecification5">
+ <elementDefinition Id="b04911bf-3679-4563-be38-69c78b8e4d09" />
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="7ea885e0-daed-49f4-aaa0-68b15a72311b" LastKnownName="ExecutionOccurrenceSpecification10" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="05a47356-2bd2-4de0-969b-42fd479d5ff7" LastKnownName="ExecutionOccurrenceSpecification9" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="0f403def-2aa9-4447-9a94-6ffb4de6eceb" LastKnownName="MessageOccurrenceSpecification13" />
+ <messageOccurrenceSpecificationMoniker Id="b8708d58-8f43-4613-9b31-7bb9cf3a5efd" LastKnownName="MessageOccurrenceSpecification18" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <behaviorExecutionSpecification Id="cbeb3215-ffbd-4905-860d-413e8975a2db" name="BehaviorExecutionSpecification4">
+ <elementDefinition Id="afaf1da6-de43-4f8e-bfa9-945edbad767f" />
+ <coveredLifelines>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="c518290d-17b9-4535-a5a1-c13bcb97f362" LastKnownName="ExecutionOccurrenceSpecification8" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="ccbcdc60-0fe4-42b4-9618-2e320f2c73de" LastKnownName="ExecutionOccurrenceSpecification7" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="4dae8cfb-be9f-4023-9152-a25dfb2f1ac5" LastKnownName="MessageOccurrenceSpecification10" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="ccbcdc60-0fe4-42b4-9618-2e320f2c73de" name="ExecutionOccurrenceSpecification7">
+ <elementDefinition Id="8aad1992-add4-455b-83e1-d7988429889d" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="8a9df2a2-5440-4c87-910b-fb2bb3d5ead9" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="4dae8cfb-be9f-4023-9152-a25dfb2f1ac5" name="MessageOccurrenceSpecification10">
+ <elementDefinition Id="3e80aa8c-1a94-4ddd-91b0-a7791c916b9c" />
+ <covered>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="3fb2a34f-fa39-4791-8a20-24a678648802" name="MessageOccurrenceSpecification9">
+ <elementDefinition Id="a5585828-d03b-4347-9da1-f01991aa30aa" />
+ <covered>
+ <lifelineMoniker Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" LastKnownName=": EventPage" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="c518290d-17b9-4535-a5a1-c13bcb97f362" name="ExecutionOccurrenceSpecification8">
+ <elementDefinition Id="a67b08f2-a654-4a47-81b5-8f5c2d53fbf4" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="f4ce8286-91d6-4f17-a124-2cbe9a93cedb" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="c6094fe9-0c9d-4677-8f9a-b484adcda690" name="BehaviorExecutionSpecification1">
+ <elementDefinition Id="1e6dcbdc-9325-4bda-bf65-1b73bd9c97bd" />
+ <coveredLifelines>
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="26959fbf-1da7-40a9-8077-88b3c2d4f4f7" LastKnownName="ExecutionOccurrenceSpecification2" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="90c25fdf-883d-487c-999a-b87ae9692403" LastKnownName="ExecutionOccurrenceSpecification1" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="478434c9-e810-4ed6-a426-7b16e8686f1e" LastKnownName="MessageOccurrenceSpecification2" />
+ <messageOccurrenceSpecificationMoniker Id="4f90e10e-df14-40a2-be20-88ce3cf789ee" LastKnownName="MessageOccurrenceSpecification7" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="90c25fdf-883d-487c-999a-b87ae9692403" name="ExecutionOccurrenceSpecification1">
+ <elementDefinition Id="c38df182-9cad-4441-be69-cf435c7ad5cb" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="ce054908-3026-437a-95e0-abf310efcc8f" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="0fb45ee8-a505-4220-9465-77ca4ad8f1c3" name="MessageOccurrenceSpecification1">
+ <elementDefinition Id="caa50b42-4a56-41ea-9c20-532ac59e2bef" />
+ <covered>
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="478434c9-e810-4ed6-a426-7b16e8686f1e" name="MessageOccurrenceSpecification2">
+ <elementDefinition Id="91d1d3bb-e8d6-488d-a2b5-18d1e8b402f5" />
+ <covered>
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="33a7917f-6028-447c-889c-a8915ea23ddd" name="BehaviorExecutionSpecification3">
+ <elementDefinition Id="ed849225-67f4-484a-8d38-96a8491b24d6" />
+ <coveredLifelines>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="ff492eb1-bdfa-4eda-a606-c73ea2ce1bcc" LastKnownName="ExecutionOccurrenceSpecification6" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="8f403f3b-04b4-4cba-a988-a4986f5e8022" LastKnownName="ExecutionOccurrenceSpecification5" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="1cd005ff-e492-4b88-86f9-30b4b781c7e1" LastKnownName="MessageOccurrenceSpecification8" />
+ <messageOccurrenceSpecificationMoniker Id="b4ec3913-2f9f-4155-a89d-7657a8b9c44a" LastKnownName="MessageOccurrenceSpecification17" />
+ <messageOccurrenceSpecificationMoniker Id="f8ef59d1-d04d-4320-bce1-9493b9339cf8" LastKnownName="MessageOccurrenceSpecification11" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="8f403f3b-04b4-4cba-a988-a4986f5e8022" name="ExecutionOccurrenceSpecification5">
+ <elementDefinition Id="070e8f3c-d03d-45dd-a9d4-3ff7fbdae444" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="f29d84c9-7db8-4652-b05c-cc04134a3253" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="4f90e10e-df14-40a2-be20-88ce3cf789ee" name="MessageOccurrenceSpecification7">
+ <elementDefinition Id="6c38f859-82a0-4400-9c84-6ae71ec60283" />
+ <covered>
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="1cd005ff-e492-4b88-86f9-30b4b781c7e1" name="MessageOccurrenceSpecification8">
+ <elementDefinition Id="f94361c3-3bf3-483c-8b30-65d432a85be9" />
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="051ffa1c-d67b-40d9-8f08-ab33babd3b6a" name="BehaviorExecutionSpecification8">
+ <elementDefinition Id="7b253fd5-ff2b-446b-97e9-3bf6cee33755" />
+ <coveredLifelines>
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f" LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="4105f6cd-3b50-4414-b1d0-21a428e9fbb7" LastKnownName="ExecutionOccurrenceSpecification16" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="25fb6bf7-d39b-4313-aaa7-c452690de02c" LastKnownName="ExecutionOccurrenceSpecification15" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="78314432-6bf6-4469-b9fd-d1c12524b846" LastKnownName="MessageOccurrenceSpecification18" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="25fb6bf7-d39b-4313-aaa7-c452690de02c" name="ExecutionOccurrenceSpecification15">
+ <elementDefinition Id="fa52e233-9440-42f2-869e-116c43b4eae5" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="18fdd374-571f-4bd6-9f5d-7ea3ec936f85" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f" LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="26959fbf-1da7-40a9-8077-88b3c2d4f4f7" name="ExecutionOccurrenceSpecification2">
+ <elementDefinition Id="e705dc3d-0dc3-40fe-857f-c6ef48230259" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="c6256763-36c6-4aa6-85a0-fa5f001d59e8" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="b4ec3913-2f9f-4155-a89d-7657a8b9c44a" name="MessageOccurrenceSpecification17">
+ <elementDefinition Id="90257c3b-21a4-4b89-8c5f-5c59aec26f2a" />
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="78314432-6bf6-4469-b9fd-d1c12524b846" name="MessageOccurrenceSpecification18">
+ <elementDefinition Id="322c555a-8e0d-4782-a899-804b0c58d794" />
+ <covered>
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f" LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="4105f6cd-3b50-4414-b1d0-21a428e9fbb7" name="ExecutionOccurrenceSpecification16">
+ <elementDefinition Id="fcdd1c34-754c-41a8-9d7c-84646d769ba9" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="94f26729-9723-4ac0-b1e6-f38a452cb5f1" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f" LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="9b6339fd-9ee4-4f7a-bccb-6f8ddbf7cf51" name="BehaviorExecutionSpecification5">
+ <elementDefinition Id="e28d72d8-484c-4de7-8ba7-b00c9212d312" />
+ <coveredLifelines>
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="aec1a8d9-ce65-48af-9cbb-fd5910bbb8c7" LastKnownName="ExecutionOccurrenceSpecification10" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="157e65d8-5bbb-4f0b-93b3-899a8b49b89d" LastKnownName="ExecutionOccurrenceSpecification9" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="46a980c0-68e8-4c4b-b498-c1419fde1f2c" LastKnownName="MessageOccurrenceSpecification12" />
+ <messageOccurrenceSpecificationMoniker Id="a769b384-48d0-4dcf-91cc-e19247500162" LastKnownName="MessageOccurrenceSpecification13" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="157e65d8-5bbb-4f0b-93b3-899a8b49b89d" name="ExecutionOccurrenceSpecification9">
+ <elementDefinition Id="7daf5a1a-9392-4aab-bf17-1d7a6a42f0aa" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="5b2953b5-6c25-491e-ac76-6c1a7b20c147" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="f8ef59d1-d04d-4320-bce1-9493b9339cf8" name="MessageOccurrenceSpecification11">
+ <elementDefinition Id="9c75dcbe-2da4-4d2b-b447-f439db4c3572" />
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="46a980c0-68e8-4c4b-b498-c1419fde1f2c" name="MessageOccurrenceSpecification12">
+ <elementDefinition Id="9496d764-8b53-4b6c-a807-8eee318ed937" />
+ <covered>
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <behaviorExecutionSpecification Id="60daf272-b00c-4635-abf0-ca8f2c9d4c51" name="BehaviorExecutionSpecification6">
+ <elementDefinition Id="5db8cc63-d63a-40e7-bf76-53beb85a5654" />
+ <coveredLifelines>
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ </coveredLifelines>
+ <finish>
+ <executionOccurrenceSpecificationMoniker Id="3d74df65-0f30-4990-8bff-07c19772d8ac" LastKnownName="ExecutionOccurrenceSpecification12" />
+ </finish>
+ <start>
+ <executionOccurrenceSpecificationMoniker Id="804dfcc0-56ca-4e0c-9e08-1111e77c7f9a" LastKnownName="ExecutionOccurrenceSpecification11" />
+ </start>
+ <nestedOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="df454e8b-0fdc-4e37-9054-58e9c41def24" LastKnownName="MessageOccurrenceSpecification14" />
+ </nestedOccurrences>
+ </behaviorExecutionSpecification>
+ <executionOccurrenceSpecification Id="ff492eb1-bdfa-4eda-a606-c73ea2ce1bcc" name="ExecutionOccurrenceSpecification6">
+ <elementDefinition Id="257192ca-0602-4772-ac48-be474a3832c4" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="2aa95e41-d53e-4066-9c91-dc8b41fbaf90" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="804dfcc0-56ca-4e0c-9e08-1111e77c7f9a" name="ExecutionOccurrenceSpecification11">
+ <elementDefinition Id="56280812-a26f-46fc-8648-4298b5035733" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="159dc303-052d-47ab-b9b9-a3f97c4e5423" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="a769b384-48d0-4dcf-91cc-e19247500162" name="MessageOccurrenceSpecification13">
+ <elementDefinition Id="5d9a2e42-cc0c-49a4-adbf-d7768574bece" />
+ <covered>
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <messageOccurrenceSpecification Id="df454e8b-0fdc-4e37-9054-58e9c41def24" name="MessageOccurrenceSpecification14">
+ <elementDefinition Id="dc0efd82-3a4e-4e06-a8b5-3d4567c8f62f" />
+ <covered>
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ </covered>
+ </messageOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="aec1a8d9-ce65-48af-9cbb-fd5910bbb8c7" name="ExecutionOccurrenceSpecification10">
+ <elementDefinition Id="4e5c1234-8e65-4cf4-a70e-4a52ba84cc90" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="ac5c975a-bb6e-4ac6-927c-e47c2d8ecd85" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </covered>
+ </executionOccurrenceSpecification>
+ <executionOccurrenceSpecification Id="3d74df65-0f30-4990-8bff-07c19772d8ac" name="ExecutionOccurrenceSpecification12">
+ <elementDefinition Id="859ca47c-9d87-4f48-8362-b47c3009f460" />
+ <event>
+ <executionOccurrenceSpecificationReferencesEvent>
+ <executionEventMoniker Id="3f3df419-d39b-41c1-88bb-d5bae2996c1a" LastKnownName="ExecutionEvent" />
+ </executionOccurrenceSpecificationReferencesEvent>
+ </event>
+ <covered>
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ </covered>
+ </executionOccurrenceSpecification>
+ </fragments>
+ <lifelines>
+ <lifeline Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" name=": EventPage" isActor="false" lifelineDisplayName=": EventPage">
+ <elementDefinition Id="307ce677-9bbe-4d66-922d-5dbb1eae047e" />
+ <topLevelOccurrences>
+ <messageOccurrenceSpecificationMoniker Id="3fb2a34f-fa39-4791-8a20-24a678648802" LastKnownName="MessageOccurrenceSpecification9" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" name=": RelayCommand" isActor="false" lifelineDisplayName=": RelayCommand">
+ <elementDefinition Id="d5fd567f-3be3-4b5a-a335-ab2e644428e9" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="ccbcdc60-0fe4-42b4-9618-2e320f2c73de" LastKnownName="ExecutionOccurrenceSpecification7" />
+ <executionOccurrenceSpecificationMoniker Id="c518290d-17b9-4535-a5a1-c13bcb97f362" LastKnownName="ExecutionOccurrenceSpecification8" />
+ <messageOccurrenceSpecificationMoniker Id="0fb45ee8-a505-4220-9465-77ca4ad8f1c3" LastKnownName="MessageOccurrenceSpecification1" />
+ <messageOccurrenceSpecificationMoniker Id="e03db2f1-4417-410b-b17b-905c89f52059" LastKnownName="MessageOccurrenceSpecification12" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" name=": EventViewModel" isActor="false" lifelineDisplayName=": EventViewModel">
+ <elementDefinition Id="5a62f469-6f51-4a1d-a582-7b0c4c3f6d48" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="90c25fdf-883d-487c-999a-b87ae9692403" LastKnownName="ExecutionOccurrenceSpecification1" />
+ <executionOccurrenceSpecificationMoniker Id="26959fbf-1da7-40a9-8077-88b3c2d4f4f7" LastKnownName="ExecutionOccurrenceSpecification2" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" name=": EventCatalogSingleton" isActor="false" lifelineDisplayName=": EventCatalogSingleton">
+ <elementDefinition Id="e27f0c0f-a56e-475a-ac90-cfd5e60137e3" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="8f403f3b-04b4-4cba-a988-a4986f5e8022" LastKnownName="ExecutionOccurrenceSpecification5" />
+ <executionOccurrenceSpecificationMoniker Id="ff492eb1-bdfa-4eda-a606-c73ea2ce1bcc" LastKnownName="ExecutionOccurrenceSpecification6" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="f6eb5541-817b-4c7c-ad50-d677357b367f" name="Events : ObservableCollection&lt;Event&gt;" isActor="false" lifelineDisplayName="Events : ObservableCollection&lt;Event&gt;">
+ <elementDefinition Id="6496cba6-29e9-4199-aac9-ccef698acd9c" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="25fb6bf7-d39b-4313-aaa7-c452690de02c" LastKnownName="ExecutionOccurrenceSpecification15" />
+ <executionOccurrenceSpecificationMoniker Id="4105f6cd-3b50-4414-b1d0-21a428e9fbb7" LastKnownName="ExecutionOccurrenceSpecification16" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" name="PersistencyService" isActor="false" lifelineDisplayName="PersistencyService">
+ <elementDefinition Id="6eb407c0-50e0-4b0c-bfe9-00b285db2cc1" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="157e65d8-5bbb-4f0b-93b3-899a8b49b89d" LastKnownName="ExecutionOccurrenceSpecification9" />
+ <executionOccurrenceSpecificationMoniker Id="aec1a8d9-ce65-48af-9cbb-fd5910bbb8c7" LastKnownName="ExecutionOccurrenceSpecification10" />
+ </topLevelOccurrences>
+ </lifeline>
+ <lifeline Id="099e4441-8cae-4050-bb36-49c492dc0f22" name="_eventsFile : StorageFile" isActor="false" lifelineDisplayName="_eventsFile : StorageFile">
+ <elementDefinition Id="8658ac55-d01b-48b8-8421-92ffc76dea8d" />
+ <topLevelOccurrences>
+ <executionOccurrenceSpecificationMoniker Id="804dfcc0-56ca-4e0c-9e08-1111e77c7f9a" LastKnownName="ExecutionOccurrenceSpecification11" />
+ <executionOccurrenceSpecificationMoniker Id="3d74df65-0f30-4990-8bff-07c19772d8ac" LastKnownName="ExecutionOccurrenceSpecification12" />
+ </topLevelOccurrences>
+ </lifeline>
+ </lifelines>
+ <messages>
+ <message Id="7967d225-2c05-432b-8ad6-fd9953083b87" name="Action" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="a2d1a43b-7e8c-4c10-ad0a-27f0b351f781" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="e03db2f1-4417-410b-b17b-905c89f52059" LastKnownName="MessageOccurrenceSpecification12" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="0f403def-2aa9-4447-9a94-6ffb4de6eceb" LastKnownName="MessageOccurrenceSpecification13" />
+ </receiveEvent>
+ </message>
+ <message Id="6406c55f-1bc1-4e91-9bab-fdf8c835f56e" name="Remove" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="5e96cb54-8a0f-4763-adea-3e4084d6134d" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="b8708d58-8f43-4613-9b31-7bb9cf3a5efd" LastKnownName="MessageOccurrenceSpecification18" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="5315f45d-6731-4ca8-a018-e7cc4645c723" LastKnownName="MessageOccurrenceSpecification19" />
+ </receiveEvent>
+ </message>
+ <message Id="3daaca5d-0feb-490e-a405-424043686bff" name="RemoveEventCommand" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="4e41082f-78a7-4e00-b251-f35e888aca0d" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="3fb2a34f-fa39-4791-8a20-24a678648802" LastKnownName="MessageOccurrenceSpecification9" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="4dae8cfb-be9f-4023-9152-a25dfb2f1ac5" LastKnownName="MessageOccurrenceSpecification10" />
+ </receiveEvent>
+ </message>
+ <message Id="fbbc0be6-3c7a-4ae4-9767-23e6ea0b2dc7" name="Action" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="a3022d72-d18d-411e-bec6-2c9c53e7fc52" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="0fb45ee8-a505-4220-9465-77ca4ad8f1c3" LastKnownName="MessageOccurrenceSpecification1" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="478434c9-e810-4ed6-a426-7b16e8686f1e" LastKnownName="MessageOccurrenceSpecification2" />
+ </receiveEvent>
+ </message>
+ <message Id="a786d37f-ad63-44d5-92fb-5991731e0378" name="Remove(SelectedEventIndex)" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="1240616f-b697-4765-b9aa-0e9af36f1812" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="4f90e10e-df14-40a2-be20-88ce3cf789ee" LastKnownName="MessageOccurrenceSpecification7" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="1cd005ff-e492-4b88-86f9-30b4b781c7e1" LastKnownName="MessageOccurrenceSpecification8" />
+ </receiveEvent>
+ </message>
+ <message Id="4684cc34-d68e-4458-9282-19b6ddc2b76a" name="RemoveAt(index)" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="91771eef-945e-42c1-99cc-67381e858b45" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="b4ec3913-2f9f-4155-a89d-7657a8b9c44a" LastKnownName="MessageOccurrenceSpecification17" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="78314432-6bf6-4469-b9fd-d1c12524b846" LastKnownName="MessageOccurrenceSpecification18" />
+ </receiveEvent>
+ </message>
+ <message Id="952e9d46-6145-48f0-8fd5-31976c6bce69" name="SaveEventsAsJsonAsync(Events)" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="949811bd-98b9-4e66-b0cb-ab0e1d96c980" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="f8ef59d1-d04d-4320-bce1-9493b9339cf8" LastKnownName="MessageOccurrenceSpecification11" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="46a980c0-68e8-4c4b-b498-c1419fde1f2c" LastKnownName="MessageOccurrenceSpecification12" />
+ </receiveEvent>
+ </message>
+ <message Id="94de6fe2-67c9-4fa2-8adf-dfbd4b426b3f" name="File.WriteAllText" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
+ <elementDefinition Id="a779ea9a-de9c-40a0-9dcc-3808a1dfbb70" />
+ <sendEvent>
+ <messageOccurrenceSpecificationMoniker Id="a769b384-48d0-4dcf-91cc-e19247500162" LastKnownName="MessageOccurrenceSpecification13" />
+ </sendEvent>
+ <receiveEvent>
+ <messageOccurrenceSpecificationMoniker Id="df454e8b-0fdc-4e37-9054-58e9c41def24" LastKnownName="MessageOccurrenceSpecification14" />
+ </receiveEvent>
+ </message>
+ </messages>
+ </interaction>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="e1b5c94e-efe9-4f74-a785-918ca51039e1" name="ExecutionEvent">
+ <elementDefinition Id="97691301-5c92-44eb-9320-6dda7d987a01" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="2a8e0b90-2caa-4074-96c1-65ae174d5ca9" name="ExecutionEvent">
+ <elementDefinition Id="91049451-92c6-4444-b8db-6ae244dde226" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="ce054908-3026-437a-95e0-abf310efcc8f" name="ExecutionEvent">
+ <elementDefinition Id="de251d3c-da60-4195-a9dc-e708204200c3" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="c6256763-36c6-4aa6-85a0-fa5f001d59e8" name="ExecutionEvent">
+ <elementDefinition Id="ba87de8d-5e82-4b15-8b65-e39a71418592" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="f29d84c9-7db8-4652-b05c-cc04134a3253" name="ExecutionEvent">
+ <elementDefinition Id="f1284cba-56c5-4364-a341-a0854b673256" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="2aa95e41-d53e-4066-9c91-dc8b41fbaf90" name="ExecutionEvent">
+ <elementDefinition Id="434847e9-da6b-43e3-a95e-57b9d8d44442" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="8a9df2a2-5440-4c87-910b-fb2bb3d5ead9" name="ExecutionEvent">
+ <elementDefinition Id="73d69b58-5c38-4b33-b8b1-00b103e32e4d" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="f4ce8286-91d6-4f17-a124-2cbe9a93cedb" name="ExecutionEvent">
+ <elementDefinition Id="190ebc52-206f-45cd-afd9-6e1dc9f19440" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="5b2953b5-6c25-491e-ac76-6c1a7b20c147" name="ExecutionEvent">
+ <elementDefinition Id="cd3f4ac4-eb03-4f91-82c0-40c25e09ae48" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="ac5c975a-bb6e-4ac6-927c-e47c2d8ecd85" name="ExecutionEvent">
+ <elementDefinition Id="e838c3e2-1199-473d-a0a3-710ca7d7c9db" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="159dc303-052d-47ab-b9b9-a3f97c4e5423" name="ExecutionEvent">
+ <elementDefinition Id="e479bb51-e40a-45a9-bdb1-e927cd2ec349" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="3f3df419-d39b-41c1-88bb-d5bae2996c1a" name="ExecutionEvent">
+ <elementDefinition Id="24f5131f-c9f6-4bfe-a839-3a6f977656f3" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="18fdd374-571f-4bd6-9f5d-7ea3ec936f85" name="ExecutionEvent">
+ <elementDefinition Id="3de40b1b-d7c9-42a6-858c-108dced44d23" />
+ </executionEvent>
+ </packageHasNamedElement>
+ <packageHasNamedElement>
+ <executionEvent Id="94f26729-9723-4ac0-b1e6-f38a452cb5f1" name="ExecutionEvent">
+ <elementDefinition Id="3b814457-889b-410e-aad3-6a62b7007f73" />
+ </executionEvent>
+ </packageHasNamedElement>
+ </packagedElements>
+ <package Id="b1b003d2-232e-470b-a3ec-c88dde8fa94e" name="Design">
+ <elementDefinition Id="4b0cb164-35b8-470e-8c31-e1c8cd481f6f" />
+ </package>
+ <package Id="d8e7829c-b483-43ed-98e2-6008a865eb7a" name="Design">
+ <elementDefinition Id="1bc1064b-b630-4768-9d3b-c772ca559686" />
+ </package>
+</SequenceDesignerModel> \ No newline at end of file
diff --git a/EventMaker/Design/RemovingEvent.sequencediagram.layout b/EventMaker/Design/RemovingEvent.sequencediagram.layout
new file mode 100644
index 0000000..eacd91a
--- /dev/null
+++ b/EventMaker/Design/RemovingEvent.sequencediagram.layout
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<sequenceDesignerDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 12.25, 8.5" name="Sequnce Diagram Delete Action">
+ <SequenceDesignerModelMoniker Id="6c3241eb-f5b5-4520-a07d-691169e42d8b" />
+ <nestedChildShapes>
+ <lifelineShape Id="0bddce2d-a643-4e64-a1e2-ee1f3e8bd2b2" absoluteBounds="1.2395833730697632, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" LastKnownName=": EventPage" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="22591353-f792-445a-af6d-5254c47c4b95"
+ absoluteBounds="0.81458337306976314, 0.6, 1, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" LastKnownName=": EventPage" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="6312d7c3-4163-486f-a766-1e7ce1cc784e" absoluteBounds="1.2395833730697632, 1, 0, 7">
+ <lifelineMoniker Id="4b5e8a5c-254d-4725-8be1-7a79fbee9022" LastKnownName=": EventPage" />
+ </lifelineHoverShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <lifelineShape Id="20121bd8-725f-4816-9ee9-f86739ade91a" absoluteBounds="4.1356509140066118, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="8ca7491c-6a09-4591-8954-9bccfa472bb0"
+ absoluteBounds="3.5724297287992446, 0.6, 1.2764423704147339, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="37378ab9-44d5-4dcd-851b-8875131af30f" absoluteBounds="4.1356509140066118, 1, 0, 7">
+ <lifelineMoniker Id="5c6f76f9-09be-4e18-b6a1-9142537a23ae" LastKnownName=": EventViewModel" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="e5ea84f3-ac5a-457d-9293-68dd3b2d1516"
+ absoluteBounds="4.1356509140066118, 2.3112238950129687, 0.15, 0.59999999999999964"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="c6094fe9-0c9d-4677-8f9a-b484adcda690"
+ LastKnownName="BehaviorExecutionSpecification1" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <lifelineShape Id="837f019a-97e3-4912-a333-478f59e5ef8b" absoluteBounds="5.9687498410542821, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="873f1263-783e-4755-9940-a890f51e6012"
+ absoluteBounds="5.2277129205067965, 0.6, 1.6320738410949707, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="ee2d05d9-15ed-439f-ba1b-110e4fdb39bb" absoluteBounds="5.9687498410542821, 1, 0, 7">
+ <lifelineMoniker Id="c46cf1b9-958b-49d1-9a7b-82b3cc8028f4" LastKnownName=": EventCatalogSingleton" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="97ad5565-7f95-44ef-8d00-6c58db73130a"
+ absoluteBounds="5.9687498410542821, 2.6112238950129685, 0.15, 1.5145833333333325"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="33a7917f-6028-447c-889c-a8915ea23ddd"
+ LastKnownName="BehaviorExecutionSpecification3" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <lifelineShape Id="9011f262-b96d-4c71-81e9-6b6878faf386" absoluteBounds="2.8043233404902863, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="9552ea2f-3d9f-44fc-9006-7f7d6715c495"
+ absoluteBounds="2.2686900459079196, 0.6, 1.2212665891647339, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="89c13dae-a5a4-4504-bd0a-7ddfc5d5a2d4" absoluteBounds="2.8043233404902863, 1, 0, 7">
+ <lifelineMoniker Id="6fd7072c-5e21-4c32-b4d3-1b79c1a5f719" LastKnownName=": RelayCommand" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="dd6452f8-9a5d-4490-9ce0-297dd3d8afcd"
+ absoluteBounds="2.8043233404902863, 1.4299738950129692, 0.15, 0.55"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="cbeb3215-ffbd-4905-860d-413e8975a2db"
+ LastKnownName="BehaviorExecutionSpecification4" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <commentShape Id="466ff411-926b-4a75-bdca-d7e384ac0e17" absoluteBounds="0, 1.25, 1.25, 0.375"
+ customColor="251, 247, 200">
+ <commentMoniker Id="cba7e648-2fc2-4c28-a514-858e673eff11" />
+ <relativeChildShapes />
+ </commentShape>
+ <commentConnector edgePoints="[(1.25 : 1.4375); (1.357421875 : 1)]" fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="217d6bd0-42ed-4e7f-ad2b-af3ef5142428" customColor="Black">
+ <relativeChildShapes />
+ <nodes>
+ <commentShapeMoniker Id="466ff411-926b-4a75-bdca-d7e384ac0e17" />
+ <lifelineShapeMoniker Id="0bddce2d-a643-4e64-a1e2-ee1f3e8bd2b2" />
+ </nodes>
+ </commentConnector>
+ <asyncMessageConnector edgePoints="[(2.87932334049029 : 2.31122389501297); (4.13565091400661 : 2.31122389501297)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <lifelineShapeMoniker Id="9011f262-b96d-4c71-81e9-6b6878faf386" />
+ <umlExecutionSpecificationShapeMoniker Id="e5ea84f3-ac5a-457d-9293-68dd3b2d1516" />
+ </nodes>
+ </asyncMessageConnector>
+ <asyncMessageConnector edgePoints="[(4.28565091400661 : 2.61122389501297); (5.96874984105428 : 2.61122389501297)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <umlExecutionSpecificationShapeMoniker Id="e5ea84f3-ac5a-457d-9293-68dd3b2d1516" />
+ <umlExecutionSpecificationShapeMoniker Id="97ad5565-7f95-44ef-8d00-6c58db73130a" />
+ </nodes>
+ </asyncMessageConnector>
+ <asyncMessageConnector edgePoints="[(1.31458337306976 : 1.42997389501297); (2.80432334049029 : 1.42997389501297)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <lifelineShapeMoniker Id="0bddce2d-a643-4e64-a1e2-ee1f3e8bd2b2" />
+ <umlExecutionSpecificationShapeMoniker Id="dd6452f8-9a5d-4490-9ce0-297dd3d8afcd" />
+ </nodes>
+ </asyncMessageConnector>
+ <lifelineShape Id="73f72f10-a25f-4c56-b289-5d728f869b24" absoluteBounds="9.5937503178914376, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="4f51b5e8-5a06-4e99-b442-0553178773d9"
+ absoluteBounds="9.0056267889340713, 0.6, 1.3262470579147339, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="fe57e124-dc25-49de-a2d6-72963cbab9f1" absoluteBounds="9.5937503178914376, 1, 0, 7">
+ <lifelineMoniker Id="4a8f9de3-9a5c-417b-82ca-b02d6e5588b2" LastKnownName="PersistencyService" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="233627b5-d7df-4354-af00-f04d847f7eb0"
+ absoluteBounds="9.5937503178914376, 3.8258072283463012, 0.15, 0.59999999999999964"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="9b6339fd-9ee4-4f7a-bccb-6f8ddbf7cf51"
+ LastKnownName="BehaviorExecutionSpecification5" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <asyncMessageConnector edgePoints="[(6.11874984105428 : 3.8258072283463); (9.59375031789144 : 3.8258072283463)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <umlExecutionSpecificationShapeMoniker Id="97ad5565-7f95-44ef-8d00-6c58db73130a" />
+ <umlExecutionSpecificationShapeMoniker Id="233627b5-d7df-4354-af00-f04d847f7eb0" />
+ </nodes>
+ </asyncMessageConnector>
+ <lifelineShape Id="739b1ed5-cb12-4c9f-810e-97082a3c0181" absoluteBounds="11.148437182108562, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="90ea7921-795c-4d0a-8ef5-b6f8ab5c5981"
+ absoluteBounds="10.390283297697705, 0.6, 1.6663077688217163, 0.4" customColor="White"
+ visualStyleMode="Modified">
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="ca20b4ce-e803-4e7f-b769-51ea242a488e" absoluteBounds="11.148437182108562, 1, 0, 7">
+ <lifelineMoniker Id="099e4441-8cae-4050-bb36-49c492dc0f22" LastKnownName="_eventsFile : StorageFile" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="7084c624-ee68-4851-9c04-d66b4cba3764"
+ absoluteBounds="11.148437182108562, 4.125807228346301, 0.15, 0.55"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="60daf272-b00c-4635-abf0-ca8f2c9d4c51"
+ LastKnownName="BehaviorExecutionSpecification6" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <asyncMessageConnector edgePoints="[(9.74375031789144 : 4.1258072283463); (11.1484371821086 : 4.1258072283463)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <umlExecutionSpecificationShapeMoniker Id="233627b5-d7df-4354-af00-f04d847f7eb0" />
+ <umlExecutionSpecificationShapeMoniker Id="7084c624-ee68-4851-9c04-d66b4cba3764" />
+ </nodes>
+ </asyncMessageConnector>
+ <lifelineShape Id="779d8ac7-1e34-4be6-b363-706519b8e523" absoluteBounds="7.8802083333333357, 1, 0.15, 7"
+ visible="true" visualStyleMode="Modified">
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ <relativeChildShapes>
+ <umlLifelineHeadShape Id="1ed8e648-0069-45f8-88de-858882168048"
+ absoluteBounds="6.9669075520833355, 0.61041666666666661, 1.9766015625, 0.38958333333333339"
+ customColor="White" visualStyleMode="Modified">
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ <relativeChildShapes />
+ </umlLifelineHeadShape>
+ <lifelineHoverShape Id="a626cb7f-58cf-460e-81eb-ada431cfe369" absoluteBounds="7.8802083333333357, 1, 0, 7">
+ <lifelineMoniker Id="f6eb5541-817b-4c7c-ad50-d677357b367f"
+ LastKnownName="Events : ObservableCollection&lt;Event&gt;" />
+ </lifelineHoverShape>
+ <umlExecutionSpecificationShape Id="c9d8a1bf-e26e-4e4d-9718-3a0e71e242e5"
+ absoluteBounds="7.8802083333333357, 2.9112238950129683, 0.15, 0.55"
+ customColor="184, 204, 215" visualStyleMode="Modified">
+ <behaviorExecutionSpecificationMoniker Id="051ffa1c-d67b-40d9-8f08-ab33babd3b6a"
+ LastKnownName="BehaviorExecutionSpecification8" />
+ </umlExecutionSpecificationShape>
+ </relativeChildShapes>
+ </lifelineShape>
+ <asyncMessageConnector edgePoints="[(6.11874984105428 : 2.91122389501297); (7.88020833333334 : 2.91122389501297)]"
+ fixedFrom="Caller" fixedTo="Caller"
+ TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black"
+ visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
+ <relativeChildShapes />
+ <nodes>
+ <umlExecutionSpecificationShapeMoniker Id="97ad5565-7f95-44ef-8d00-6c58db73130a" />
+ <umlExecutionSpecificationShapeMoniker Id="c9d8a1bf-e26e-4e4d-9718-3a0e71e242e5" />
+ </nodes>
+ </asyncMessageConnector>
+ </nestedChildShapes>
+</sequenceDesignerDiagram> \ No newline at end of file
diff --git a/EventMaker/Design/RemoveEventFDUC.txt b/EventMaker/Design/RemovingEventFDUC.txt
index 6a00ab0..1201c3c 100644
--- a/EventMaker/Design/RemoveEventFDUC.txt
+++ b/EventMaker/Design/RemovingEventFDUC.txt
@@ -1,4 +1,4 @@
-Use case name: Remove event
+Use case name: Removing event
Scope: EventMaker
Level: Remove event from the list
Primary Actor: User
diff --git a/EventMaker/Design/System.sequencediagram b/EventMaker/Design/System.sequencediagram
deleted file mode 100644
index 4dd8037..0000000
--- a/EventMaker/Design/System.sequencediagram
+++ /dev/null
@@ -1,900 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<SequenceDesignerModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm4="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm5="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/ModelStore" xmlns:dm9="http://schemas.microsoft.com/dsltools/LogicalClassDesigner" dslVersion="1.0.0.0" Id="294047fc-0931-4e2c-9969-fffee7f03145" name="SSD" linkedPackageId="324a0513-c0ae-46e8-9e1f-d6a712af6f1d" xmlns="http://schemas.microsoft.com/VisualStudio/TeamArchitect/SequenceDesigner">
- <profileInstances>
- <packageHasProfileInstances Id="2f8bb068-b166-46c2-9ced-2cb571be8651">
- <profileInstance Id="78a5f644-9692-4352-a2b0-54a20b4c0739" name="StandardProfileL2">
- <elementDefinition Id="e34d544e-0fea-4ed6-ac5e-1b74119ac791" />
- </profileInstance>
- <elementDefinition Id="0caec977-1f8c-4ba3-a7db-8cc9ad9cc73b" />
- </packageHasProfileInstances>
- <packageHasProfileInstances Id="1cb5043e-4e5a-4981-b68b-7e7bf785a872">
- <profileInstance Id="829e5a6b-1d29-4005-b2e9-de804cc8bbf7" name="StandardProfileL3">
- <elementDefinition Id="532ea607-fb19-44b8-8502-3351b05452be" />
- </profileInstance>
- <elementDefinition Id="29349502-908c-4fda-9054-c48619c59ed0" />
- </packageHasProfileInstances>
- </profileInstances>
- <packagedElements>
- <packageHasNamedElement>
- <interaction Id="5327f1f1-b3c0-4295-9b12-6367b24ce04f" name="SSD" collapseFragmentsFlag="false" isActiveClass="false" isAbstract="false" isLeaf="false" isReentrant="false">
- <elementDefinition Id="6ba01585-d9d5-4e2e-9d4e-97a54b967ea7" />
- <fragments>
- <behaviorExecutionSpecification Id="528a2ca6-0d76-4fc4-aeb7-6c00546dc5ff" name="BehaviorExecutionSpecification1">
- <elementDefinition Id="f8f07269-9e1c-45a5-8911-e1e814330cce" />
- <coveredLifelines>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="3dd62e49-b0b6-446b-9e72-83f6bc918c4b" LastKnownName="ExecutionOccurrenceSpecification2" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="557095d6-78e2-4e2d-bf25-b31ae040bba1" LastKnownName="ExecutionOccurrenceSpecification1" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="963eb6ea-244d-493c-929e-d597259558cd" LastKnownName="MessageOccurrenceSpecification2" />
- <messageOccurrenceSpecificationMoniker Id="dd8757a1-0971-4d76-82e5-62d45d3d272e" LastKnownName="MessageOccurrenceSpecification3" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="557095d6-78e2-4e2d-bf25-b31ae040bba1" name="ExecutionOccurrenceSpecification1">
- <elementDefinition Id="7f54881d-bcdb-4f84-8b73-0e8f90599123" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="b72d2a5b-b56c-4490-8d2c-093212b1b0dd" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="91488565-1cb0-41f3-ba55-c59a340a1503" name="MessageOccurrenceSpecification1">
- <elementDefinition Id="7dad90cc-2ad2-4285-a7b1-d8f39a685981" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="963eb6ea-244d-493c-929e-d597259558cd" name="MessageOccurrenceSpecification2">
- <elementDefinition Id="208d0321-7739-4a18-ada7-457aba3d142a" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <behaviorExecutionSpecification Id="cc2ba95c-bb83-4b8f-ba43-c7a1589c492f" name="BehaviorExecutionSpecification2">
- <elementDefinition Id="ddd39589-a1a1-406b-aa69-df876d3e26d0" />
- <coveredLifelines>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="ca2b33e1-1b83-4042-aac5-12be56fd272e" LastKnownName="ExecutionOccurrenceSpecification4" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="24a5f64e-95d1-48f9-ba8e-36031f422072" LastKnownName="ExecutionOccurrenceSpecification3" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="667fb9fe-3d82-474d-a668-090d2b61581e" LastKnownName="MessageOccurrenceSpecification4" />
- <messageOccurrenceSpecificationMoniker Id="1ea31fe5-7c73-4547-83a6-ad635a1dabe6" LastKnownName="MessageOccurrenceSpecification5" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="24a5f64e-95d1-48f9-ba8e-36031f422072" name="ExecutionOccurrenceSpecification3">
- <elementDefinition Id="318ea316-d8c8-4dd8-9190-76932d7a1f73" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="82fa8368-6c3f-486e-9cc9-4c5cfb196004" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="dd8757a1-0971-4d76-82e5-62d45d3d272e" name="MessageOccurrenceSpecification3">
- <elementDefinition Id="45dc2409-15e9-455d-ab29-c2687d113143" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="667fb9fe-3d82-474d-a668-090d2b61581e" name="MessageOccurrenceSpecification4">
- <elementDefinition Id="85544380-15f1-4e7e-b4ca-a25252cbdfd1" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="3dd62e49-b0b6-446b-9e72-83f6bc918c4b" name="ExecutionOccurrenceSpecification2">
- <elementDefinition Id="64d1b7ff-35ca-48cc-b336-d8a2ae6ff33e" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="a8b3bdb5-b7ae-4c42-a5e4-2e2b7bd1b260" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="b7d0a25a-d293-492b-a3c5-f01379677fc6" name="BehaviorExecutionSpecification3">
- <elementDefinition Id="ecf328d8-6c67-41bf-9e8f-89ba7d2d402d" />
- <coveredLifelines>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="6a9d2045-9ccc-4407-9cba-0681d49f0b14" LastKnownName="ExecutionOccurrenceSpecification6" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="1d50789a-f11e-4a91-b16f-32df2e6ff98e" LastKnownName="ExecutionOccurrenceSpecification5" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="922ecbcd-c76c-4ed2-a6a9-11e30878883e" LastKnownName="MessageOccurrenceSpecification6" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="1d50789a-f11e-4a91-b16f-32df2e6ff98e" name="ExecutionOccurrenceSpecification5">
- <elementDefinition Id="33d64ec8-e459-4b8e-9d85-2712a89f7d51" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="83987cbb-df7f-47e0-ba07-6f1268680cd5" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="922ecbcd-c76c-4ed2-a6a9-11e30878883e" name="MessageOccurrenceSpecification6">
- <elementDefinition Id="94521e24-7950-4b26-8938-1180be1fef72" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="1ea31fe5-7c73-4547-83a6-ad635a1dabe6" name="MessageOccurrenceSpecification5">
- <elementDefinition Id="8529735e-9a54-42bd-aa9d-ed0e58128786" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="ca2b33e1-1b83-4042-aac5-12be56fd272e" name="ExecutionOccurrenceSpecification4">
- <elementDefinition Id="2b76dc47-b719-4bcd-9e5d-bc7c8e3be4ae" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="f6513415-63a6-435e-bde0-2214614ad2af" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <executionOccurrenceSpecification Id="6a9d2045-9ccc-4407-9cba-0681d49f0b14" name="ExecutionOccurrenceSpecification6">
- <elementDefinition Id="35f166dc-e6a7-4107-9ad5-b422d5528271" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="b29d466d-c04f-4b5d-9d47-40a5555475f2" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="80143d49-8101-482d-a3ed-4ede167d9d57" name="BehaviorExecutionSpecification4">
- <elementDefinition Id="d03f6d1e-1908-4bb4-895e-4126e0bcbff9" />
- <coveredLifelines>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="1ff1b21b-d3ec-474c-92c6-2ba19d646648" LastKnownName="ExecutionOccurrenceSpecification8" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="f363c0d7-86f8-4c75-9f2a-00687a8a534c" LastKnownName="ExecutionOccurrenceSpecification7" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="d7327ed1-852a-4d89-a2f2-3e481f24b4bb" LastKnownName="MessageOccurrenceSpecification8" />
- <messageOccurrenceSpecificationMoniker Id="568da9ed-0e9b-4994-921a-d4f4f4709b3f" LastKnownName="MessageOccurrenceSpecification9" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="f363c0d7-86f8-4c75-9f2a-00687a8a534c" name="ExecutionOccurrenceSpecification7">
- <elementDefinition Id="d3ebabcf-bbdf-421a-9cb5-1cc332a5259f" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="591b06bc-b1a6-4dc5-88e9-29fdcd62db59" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="d7327ed1-852a-4d89-a2f2-3e481f24b4bb" name="MessageOccurrenceSpecification8">
- <elementDefinition Id="a11edbbc-6519-491d-a1c8-1b3a60187afc" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="b87c3ceb-7a35-4662-badb-0848882cb7f8" name="MessageOccurrenceSpecification7">
- <elementDefinition Id="dbe3f582-4abd-4036-8f5b-6715ee4785aa" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <behaviorExecutionSpecification Id="2ae49087-2a6c-44a9-8e14-f618baf1f14c" name="BehaviorExecutionSpecification5">
- <elementDefinition Id="3f5be4ca-f75c-402a-822f-83f633459bcd" />
- <coveredLifelines>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="052573c8-7d74-40da-bf74-84899d34db8d" LastKnownName="ExecutionOccurrenceSpecification10" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="32efe819-f3e6-40cf-a4ee-f5b8abf68e53" LastKnownName="ExecutionOccurrenceSpecification9" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="c92368eb-fde7-44d1-b2d7-0d08f00ffcd5" LastKnownName="MessageOccurrenceSpecification10" />
- <messageOccurrenceSpecificationMoniker Id="2bc93daf-5fe0-4e6b-adba-36a82cf01195" LastKnownName="MessageOccurrenceSpecification11" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="32efe819-f3e6-40cf-a4ee-f5b8abf68e53" name="ExecutionOccurrenceSpecification9">
- <elementDefinition Id="642a2505-81ba-40e1-9cb5-c30f60f3f64c" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="a99e84db-db66-4f6d-8021-a992e78766d6" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="568da9ed-0e9b-4994-921a-d4f4f4709b3f" name="MessageOccurrenceSpecification9">
- <elementDefinition Id="0147e226-0019-4cfb-8eec-8742f56fcd1c" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="c92368eb-fde7-44d1-b2d7-0d08f00ffcd5" name="MessageOccurrenceSpecification10">
- <elementDefinition Id="40cb2f23-bd62-4c09-8781-f182204b99c2" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="1ff1b21b-d3ec-474c-92c6-2ba19d646648" name="ExecutionOccurrenceSpecification8">
- <elementDefinition Id="fcfa9280-aa9d-4c4e-b568-b0ad3a2179f8" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="2663864e-0d45-4d09-8ba2-c8a21dfcea48" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="9ddb3db0-3cbe-4a0f-9ffc-d740232d3937" name="BehaviorExecutionSpecification6">
- <elementDefinition Id="c70d8c7c-d5e4-4f7b-8e67-f8f7c67fbdd7" />
- <coveredLifelines>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="f42c47c1-5670-42b6-9cca-d68b7cf77448" LastKnownName="ExecutionOccurrenceSpecification12" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="68d2018a-1e4f-499a-a574-9c984b1e81bc" LastKnownName="ExecutionOccurrenceSpecification11" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="2977cf2a-6a0a-48fc-a84b-aed74ca77dfb" LastKnownName="MessageOccurrenceSpecification12" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="68d2018a-1e4f-499a-a574-9c984b1e81bc" name="ExecutionOccurrenceSpecification11">
- <elementDefinition Id="9dee1c44-2d49-42cb-926b-cee5bc93bdf3" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="dc8685d1-e330-4a71-b10d-3ca75f7e0e77" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="2977cf2a-6a0a-48fc-a84b-aed74ca77dfb" name="MessageOccurrenceSpecification12">
- <elementDefinition Id="055d07f3-1421-41fd-a63c-4f0ce722eb2b" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="2bc93daf-5fe0-4e6b-adba-36a82cf01195" name="MessageOccurrenceSpecification11">
- <elementDefinition Id="9c32cd7f-cac4-4aca-b353-ac742d117c4c" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="052573c8-7d74-40da-bf74-84899d34db8d" name="ExecutionOccurrenceSpecification10">
- <elementDefinition Id="1f92af89-c540-4253-a891-dc2141c681cb" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="a8dc8e61-a3ab-45fe-aee7-040d87318b49" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <executionOccurrenceSpecification Id="f42c47c1-5670-42b6-9cca-d68b7cf77448" name="ExecutionOccurrenceSpecification12">
- <elementDefinition Id="6f3683d4-9fb7-4ce1-aa8f-75811c5a7ff1" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="94b1f654-f7ab-4bea-af7a-e76075799718" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="8c9c36e3-18c1-452f-96b4-7538529db77b" name="BehaviorExecutionSpecification7">
- <elementDefinition Id="a642fdeb-0fcb-434f-b598-fd45a070b5d9" />
- <coveredLifelines>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="19860e84-f6b3-4fd0-986a-a8dedf482212" LastKnownName="ExecutionOccurrenceSpecification14" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="b71822ab-d6c6-4f84-ab00-93386abbfbfb" LastKnownName="ExecutionOccurrenceSpecification13" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="4f08c7ba-9f2b-4df9-a721-3f63e5d1ab87" LastKnownName="MessageOccurrenceSpecification14" />
- <messageOccurrenceSpecificationMoniker Id="3932e56b-410e-49a1-bf96-530275538da0" LastKnownName="MessageOccurrenceSpecification15" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="b71822ab-d6c6-4f84-ab00-93386abbfbfb" name="ExecutionOccurrenceSpecification13">
- <elementDefinition Id="1db9c93c-7723-4d02-90c0-8a68bf52b4dc" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="678eaf3c-139d-43ca-ba44-8e9f8b26f5e8" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="b55a33b0-c294-4458-b24a-790db3a89748" name="MessageOccurrenceSpecification13">
- <elementDefinition Id="e5a57956-8531-4478-8471-255b80eef842" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="4f08c7ba-9f2b-4df9-a721-3f63e5d1ab87" name="MessageOccurrenceSpecification14">
- <elementDefinition Id="ff5560c4-a3f2-4faa-8915-07e907fa5340" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <behaviorExecutionSpecification Id="3192f350-f5ee-4f13-9858-12eb36b09109" name="BehaviorExecutionSpecification8">
- <elementDefinition Id="d290f634-edf7-469d-a197-0e03fbb629fa" />
- <coveredLifelines>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="bd94d288-ac2c-494e-9603-13d255e63886" LastKnownName="ExecutionOccurrenceSpecification16" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="6a806425-256c-49a4-9437-7b4559e2c831" LastKnownName="ExecutionOccurrenceSpecification15" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="cdff497d-9c12-469b-9680-77abe8f3f9c6" LastKnownName="MessageOccurrenceSpecification16" />
- <messageOccurrenceSpecificationMoniker Id="11618320-2976-4a15-9fa3-7c00a0a17aa3" LastKnownName="MessageOccurrenceSpecification17" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="6a806425-256c-49a4-9437-7b4559e2c831" name="ExecutionOccurrenceSpecification15">
- <elementDefinition Id="43e48316-dafe-400b-846d-90c60feead55" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="c2bf9075-5be3-48ee-89f1-3aba342c13b6" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="3932e56b-410e-49a1-bf96-530275538da0" name="MessageOccurrenceSpecification15">
- <elementDefinition Id="82799776-aa62-4552-bcc9-1e88455ef907" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="cdff497d-9c12-469b-9680-77abe8f3f9c6" name="MessageOccurrenceSpecification16">
- <elementDefinition Id="3e090ca7-a851-49c7-971b-bc74f05c85be" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="19860e84-f6b3-4fd0-986a-a8dedf482212" name="ExecutionOccurrenceSpecification14">
- <elementDefinition Id="bae5c6ff-d794-44c7-8fc5-5072d845cd4b" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="bec2c1ee-9376-406f-ae81-2909ea964d8e" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="d1adc286-acb4-4331-b0da-11796b0fd270" name="BehaviorExecutionSpecification9">
- <elementDefinition Id="11a3dba0-9c45-445e-bab6-6a7145e86bf0" />
- <coveredLifelines>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="60266d82-c165-42b4-9acf-f8d562f90a3c" LastKnownName="ExecutionOccurrenceSpecification18" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="56a0573d-b5d4-4f1d-a59e-c80c839b3279" LastKnownName="ExecutionOccurrenceSpecification17" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="ec51f1f8-aab1-4109-bedb-d2dd030fe9b6" LastKnownName="MessageOccurrenceSpecification18" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="56a0573d-b5d4-4f1d-a59e-c80c839b3279" name="ExecutionOccurrenceSpecification17">
- <elementDefinition Id="66ca0f9c-9dfc-4e28-8167-5a3c8c5f28b5" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="4c5d7dea-6679-4cd7-b267-5fd65c13af0b" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="11618320-2976-4a15-9fa3-7c00a0a17aa3" name="MessageOccurrenceSpecification17">
- <elementDefinition Id="224330e9-ebf6-4d06-ae5a-d036456b78cd" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="ec51f1f8-aab1-4109-bedb-d2dd030fe9b6" name="MessageOccurrenceSpecification18">
- <elementDefinition Id="4fba69cf-e20b-40d4-ac6e-02ecbb7d1d6c" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="bd94d288-ac2c-494e-9603-13d255e63886" name="ExecutionOccurrenceSpecification16">
- <elementDefinition Id="333fed9c-a865-42c6-81c0-fca787cafa6a" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="75df884f-4031-4c05-a9a2-f0cea9e7f6be" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <executionOccurrenceSpecification Id="60266d82-c165-42b4-9acf-f8d562f90a3c" name="ExecutionOccurrenceSpecification18">
- <elementDefinition Id="ee65b6b9-22d4-4b8d-a184-d0e78c08de56" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="302ddbdf-4183-4423-a3d9-1661060c2cce" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="8d49cde7-b065-4a0c-805e-b852983035cf" name="BehaviorExecutionSpecification10">
- <elementDefinition Id="4057a71e-082e-4628-9b04-e1c11fc9ebe0" />
- <coveredLifelines>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="5e235a72-17df-4db4-8ad6-33dbfd18469c" LastKnownName="ExecutionOccurrenceSpecification20" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="bb4e490d-2c7a-4b49-8314-a240e21cf024" LastKnownName="ExecutionOccurrenceSpecification19" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="09f8fa6d-0107-4683-8064-f1262e6dd9e9" LastKnownName="MessageOccurrenceSpecification20" />
- <messageOccurrenceSpecificationMoniker Id="483613b8-9fb7-476c-9f73-05c3aea9ae0b" LastKnownName="MessageOccurrenceSpecification21" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="bb4e490d-2c7a-4b49-8314-a240e21cf024" name="ExecutionOccurrenceSpecification19">
- <elementDefinition Id="9055375e-172c-482f-89cb-ab59a5de43f4" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="6d313984-6df7-4aa7-bcae-d3bd0f53c8b8" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="469b0d1f-bd0d-483b-960d-c460f180749a" name="MessageOccurrenceSpecification19">
- <elementDefinition Id="81932bdd-a166-4da1-804d-f51ec071651b" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="09f8fa6d-0107-4683-8064-f1262e6dd9e9" name="MessageOccurrenceSpecification20">
- <elementDefinition Id="2de1d078-ef75-41b2-b33d-9201d24e9708" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <behaviorExecutionSpecification Id="91bb726f-bcbe-452c-9d9a-3206dbdaeb2c" name="BehaviorExecutionSpecification11">
- <elementDefinition Id="e392b9eb-3d47-4067-9cf6-6f3c473a6f73" />
- <coveredLifelines>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="d3575a2d-117d-46ac-9e9b-53ca5698e738" LastKnownName="ExecutionOccurrenceSpecification22" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="e4809b4f-ee9c-461b-a6e4-9a595c660f21" LastKnownName="ExecutionOccurrenceSpecification21" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="9e451b8d-b046-46d4-bad9-3822b43fa741" LastKnownName="MessageOccurrenceSpecification22" />
- <messageOccurrenceSpecificationMoniker Id="45ba8d00-87f2-450e-8f69-6ff57ceb023a" LastKnownName="MessageOccurrenceSpecification23" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="e4809b4f-ee9c-461b-a6e4-9a595c660f21" name="ExecutionOccurrenceSpecification21">
- <elementDefinition Id="062559b1-3052-4829-a598-990960409600" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="1c08f6cc-4549-4bf0-b001-8f13b257ea15" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="483613b8-9fb7-476c-9f73-05c3aea9ae0b" name="MessageOccurrenceSpecification21">
- <elementDefinition Id="60b27607-09e8-4240-8d20-4d08d085ce4e" />
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="9e451b8d-b046-46d4-bad9-3822b43fa741" name="MessageOccurrenceSpecification22">
- <elementDefinition Id="98e68a03-e27a-4248-9f73-370453b18f27" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="5e235a72-17df-4db4-8ad6-33dbfd18469c" name="ExecutionOccurrenceSpecification20">
- <elementDefinition Id="3beb4fae-14d3-434a-82c1-73883e92a51e" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="371e42d0-0cf0-49f6-99e9-f25d6e73d6f9" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </covered>
- </executionOccurrenceSpecification>
- <behaviorExecutionSpecification Id="fd72252f-1cb7-41e5-8751-5e6d76095b56" name="BehaviorExecutionSpecification12">
- <elementDefinition Id="36b82dfd-6847-44c3-bdad-116b564b3df9" />
- <coveredLifelines>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </coveredLifelines>
- <finish>
- <executionOccurrenceSpecificationMoniker Id="0c8d5e62-0082-4c59-b039-e518490bf169" LastKnownName="ExecutionOccurrenceSpecification24" />
- </finish>
- <start>
- <executionOccurrenceSpecificationMoniker Id="24cd2f03-e87f-416a-a677-84af9082b476" LastKnownName="ExecutionOccurrenceSpecification23" />
- </start>
- <nestedOccurrences>
- <messageOccurrenceSpecificationMoniker Id="ea7e6d41-be93-4bb7-ae51-08ab55118105" LastKnownName="MessageOccurrenceSpecification24" />
- </nestedOccurrences>
- </behaviorExecutionSpecification>
- <executionOccurrenceSpecification Id="24cd2f03-e87f-416a-a677-84af9082b476" name="ExecutionOccurrenceSpecification23">
- <elementDefinition Id="10f88634-ef56-4762-b548-f59b505aae03" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="b1893224-3429-427b-894c-68604afe3cb6" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- <messageOccurrenceSpecification Id="45ba8d00-87f2-450e-8f69-6ff57ceb023a" name="MessageOccurrenceSpecification23">
- <elementDefinition Id="e83d7b86-05ca-4db0-a4e4-d5b0fd741839" />
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </messageOccurrenceSpecification>
- <messageOccurrenceSpecification Id="ea7e6d41-be93-4bb7-ae51-08ab55118105" name="MessageOccurrenceSpecification24">
- <elementDefinition Id="34169b66-2e76-4e31-aac0-68eb418473e6" />
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </messageOccurrenceSpecification>
- <executionOccurrenceSpecification Id="d3575a2d-117d-46ac-9e9b-53ca5698e738" name="ExecutionOccurrenceSpecification22">
- <elementDefinition Id="5b50c5e4-fa8b-43fd-ab6e-6f0025b2d112" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="de261d13-ae6d-4160-83a1-5440b05b8aa7" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </covered>
- </executionOccurrenceSpecification>
- <executionOccurrenceSpecification Id="0c8d5e62-0082-4c59-b039-e518490bf169" name="ExecutionOccurrenceSpecification24">
- <elementDefinition Id="e360bdb0-d093-4aea-bf27-2b44d73411fa" />
- <event>
- <executionOccurrenceSpecificationReferencesEvent>
- <executionEventMoniker Id="a1ff1bf0-01be-4302-9faf-e2a364a3e245" LastKnownName="ExecutionEvent" />
- </executionOccurrenceSpecificationReferencesEvent>
- </event>
- <covered>
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </covered>
- </executionOccurrenceSpecification>
- </fragments>
- <lifelines>
- <lifeline Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" name="User" isActor="false" lifelineDisplayName="User">
- <elementDefinition Id="d4c5e651-649c-4b33-bc66-639fc9eb8f72" />
- <topLevelOccurrences>
- <messageOccurrenceSpecificationMoniker Id="91488565-1cb0-41f3-ba55-c59a340a1503" LastKnownName="MessageOccurrenceSpecification1" />
- <executionOccurrenceSpecificationMoniker Id="1d50789a-f11e-4a91-b16f-32df2e6ff98e" LastKnownName="ExecutionOccurrenceSpecification5" />
- <executionOccurrenceSpecificationMoniker Id="6a9d2045-9ccc-4407-9cba-0681d49f0b14" LastKnownName="ExecutionOccurrenceSpecification6" />
- <messageOccurrenceSpecificationMoniker Id="b87c3ceb-7a35-4662-badb-0848882cb7f8" LastKnownName="MessageOccurrenceSpecification7" />
- <executionOccurrenceSpecificationMoniker Id="68d2018a-1e4f-499a-a574-9c984b1e81bc" LastKnownName="ExecutionOccurrenceSpecification11" />
- <executionOccurrenceSpecificationMoniker Id="f42c47c1-5670-42b6-9cca-d68b7cf77448" LastKnownName="ExecutionOccurrenceSpecification12" />
- <messageOccurrenceSpecificationMoniker Id="b55a33b0-c294-4458-b24a-790db3a89748" LastKnownName="MessageOccurrenceSpecification13" />
- <executionOccurrenceSpecificationMoniker Id="56a0573d-b5d4-4f1d-a59e-c80c839b3279" LastKnownName="ExecutionOccurrenceSpecification17" />
- <executionOccurrenceSpecificationMoniker Id="60266d82-c165-42b4-9acf-f8d562f90a3c" LastKnownName="ExecutionOccurrenceSpecification18" />
- <messageOccurrenceSpecificationMoniker Id="469b0d1f-bd0d-483b-960d-c460f180749a" LastKnownName="MessageOccurrenceSpecification19" />
- <executionOccurrenceSpecificationMoniker Id="24cd2f03-e87f-416a-a677-84af9082b476" LastKnownName="ExecutionOccurrenceSpecification23" />
- <executionOccurrenceSpecificationMoniker Id="0c8d5e62-0082-4c59-b039-e518490bf169" LastKnownName="ExecutionOccurrenceSpecification24" />
- </topLevelOccurrences>
- </lifeline>
- <lifeline Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" name="App" isActor="false" lifelineDisplayName="App">
- <elementDefinition Id="d7504b3b-417a-4bd4-a56e-3c928e8e8168" />
- <topLevelOccurrences>
- <executionOccurrenceSpecificationMoniker Id="557095d6-78e2-4e2d-bf25-b31ae040bba1" LastKnownName="ExecutionOccurrenceSpecification1" />
- <executionOccurrenceSpecificationMoniker Id="3dd62e49-b0b6-446b-9e72-83f6bc918c4b" LastKnownName="ExecutionOccurrenceSpecification2" />
- <executionOccurrenceSpecificationMoniker Id="f363c0d7-86f8-4c75-9f2a-00687a8a534c" LastKnownName="ExecutionOccurrenceSpecification7" />
- <executionOccurrenceSpecificationMoniker Id="1ff1b21b-d3ec-474c-92c6-2ba19d646648" LastKnownName="ExecutionOccurrenceSpecification8" />
- <executionOccurrenceSpecificationMoniker Id="b71822ab-d6c6-4f84-ab00-93386abbfbfb" LastKnownName="ExecutionOccurrenceSpecification13" />
- <executionOccurrenceSpecificationMoniker Id="19860e84-f6b3-4fd0-986a-a8dedf482212" LastKnownName="ExecutionOccurrenceSpecification14" />
- <executionOccurrenceSpecificationMoniker Id="bb4e490d-2c7a-4b49-8314-a240e21cf024" LastKnownName="ExecutionOccurrenceSpecification19" />
- <executionOccurrenceSpecificationMoniker Id="5e235a72-17df-4db4-8ad6-33dbfd18469c" LastKnownName="ExecutionOccurrenceSpecification20" />
- </topLevelOccurrences>
- </lifeline>
- <lifeline Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" name="Storage" isActor="false" lifelineDisplayName="Storage">
- <elementDefinition Id="1aed7ea8-0321-4b25-849f-9597146a9b2c" />
- <topLevelOccurrences>
- <executionOccurrenceSpecificationMoniker Id="24a5f64e-95d1-48f9-ba8e-36031f422072" LastKnownName="ExecutionOccurrenceSpecification3" />
- <executionOccurrenceSpecificationMoniker Id="ca2b33e1-1b83-4042-aac5-12be56fd272e" LastKnownName="ExecutionOccurrenceSpecification4" />
- <executionOccurrenceSpecificationMoniker Id="32efe819-f3e6-40cf-a4ee-f5b8abf68e53" LastKnownName="ExecutionOccurrenceSpecification9" />
- <executionOccurrenceSpecificationMoniker Id="052573c8-7d74-40da-bf74-84899d34db8d" LastKnownName="ExecutionOccurrenceSpecification10" />
- <executionOccurrenceSpecificationMoniker Id="6a806425-256c-49a4-9437-7b4559e2c831" LastKnownName="ExecutionOccurrenceSpecification15" />
- <executionOccurrenceSpecificationMoniker Id="bd94d288-ac2c-494e-9603-13d255e63886" LastKnownName="ExecutionOccurrenceSpecification16" />
- <executionOccurrenceSpecificationMoniker Id="e4809b4f-ee9c-461b-a6e4-9a595c660f21" LastKnownName="ExecutionOccurrenceSpecification21" />
- <executionOccurrenceSpecificationMoniker Id="d3575a2d-117d-46ac-9e9b-53ca5698e738" LastKnownName="ExecutionOccurrenceSpecification22" />
- </topLevelOccurrences>
- </lifeline>
- </lifelines>
- <messages>
- <message Id="f8fce63b-064b-45c8-94ed-24ce7ec65d74" name="Opens program" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="9c6a81fa-c68c-4114-92ed-dcaf8e7ab217" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="91488565-1cb0-41f3-ba55-c59a340a1503" LastKnownName="MessageOccurrenceSpecification1" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="963eb6ea-244d-493c-929e-d597259558cd" LastKnownName="MessageOccurrenceSpecification2" />
- </receiveEvent>
- </message>
- <message Id="f6a3c294-1d72-4953-bd51-296bdb1b3425" name="Reads storage" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="7bf7fe4c-2103-4340-b7b7-9b2435477f23" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="dd8757a1-0971-4d76-82e5-62d45d3d272e" LastKnownName="MessageOccurrenceSpecification3" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="667fb9fe-3d82-474d-a668-090d2b61581e" LastKnownName="MessageOccurrenceSpecification4" />
- </receiveEvent>
- </message>
- <message Id="9a4457ae-7b72-4424-bf4a-4109220bfd60" name="return list of events on main page" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="0902bacf-d24c-480b-8c6f-4b6acc781115" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="1ea31fe5-7c73-4547-83a6-ad635a1dabe6" LastKnownName="MessageOccurrenceSpecification5" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="922ecbcd-c76c-4ed2-a6a9-11e30878883e" LastKnownName="MessageOccurrenceSpecification6" />
- </receiveEvent>
- </message>
- <message Id="3fc5e789-2546-4978-a903-ac9487fe7236" name="User picks event" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="ed3fab0f-6fce-4492-b6dc-43a7c2226f3a" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="b87c3ceb-7a35-4662-badb-0848882cb7f8" LastKnownName="MessageOccurrenceSpecification7" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="d7327ed1-852a-4d89-a2f2-3e481f24b4bb" LastKnownName="MessageOccurrenceSpecification8" />
- </receiveEvent>
- </message>
- <message Id="67274b05-0f63-40b1-b0ee-8f7917d7b7b2" name="Sends new event data" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="77184070-aade-40be-a92b-4439caf828c3" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="568da9ed-0e9b-4994-921a-d4f4f4709b3f" LastKnownName="MessageOccurrenceSpecification9" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="c92368eb-fde7-44d1-b2d7-0d08f00ffcd5" LastKnownName="MessageOccurrenceSpecification10" />
- </receiveEvent>
- </message>
- <message Id="b37edc5b-8dd4-418f-bfa3-34fdcf3a2746" name="Return specific event description" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="da10a650-a7b2-4ce0-8a4c-374141328c17" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="2bc93daf-5fe0-4e6b-adba-36a82cf01195" LastKnownName="MessageOccurrenceSpecification11" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="2977cf2a-6a0a-48fc-a84b-aed74ca77dfb" LastKnownName="MessageOccurrenceSpecification12" />
- </receiveEvent>
- </message>
- <message Id="94296a6e-3958-49ae-8823-2e2714d901a4" name="Users adds event" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="532721e6-6d1d-4be0-bb64-badf853922ef" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="b55a33b0-c294-4458-b24a-790db3a89748" LastKnownName="MessageOccurrenceSpecification13" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="4f08c7ba-9f2b-4df9-a721-3f63e5d1ab87" LastKnownName="MessageOccurrenceSpecification14" />
- </receiveEvent>
- </message>
- <message Id="ca9634d3-ff74-4bff-91e5-afb5703b92f9" name="Sends new event data" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="c1d298ac-06eb-4f86-a8ee-3bdaf5ef205f" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="3932e56b-410e-49a1-bf96-530275538da0" LastKnownName="MessageOccurrenceSpecification15" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="cdff497d-9c12-469b-9680-77abe8f3f9c6" LastKnownName="MessageOccurrenceSpecification16" />
- </receiveEvent>
- </message>
- <message Id="ec646f59-e81b-4bb1-afe5-2dea16ca94dc" name="Return updated list" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="04e6d880-d60f-4a3d-9d8a-c47c7bb99004" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="11618320-2976-4a15-9fa3-7c00a0a17aa3" LastKnownName="MessageOccurrenceSpecification17" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="ec51f1f8-aab1-4109-bedb-d2dd030fe9b6" LastKnownName="MessageOccurrenceSpecification18" />
- </receiveEvent>
- </message>
- <message Id="4f7dc54b-a232-4ec7-8e62-ecb7df8e2721" name="Users removes event" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="39bea52a-bda0-412e-8206-8356b224be9f" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="469b0d1f-bd0d-483b-960d-c460f180749a" LastKnownName="MessageOccurrenceSpecification19" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="09f8fa6d-0107-4683-8064-f1262e6dd9e9" LastKnownName="MessageOccurrenceSpecification20" />
- </receiveEvent>
- </message>
- <message Id="a301b13e-1e9a-4e5b-9245-a228bb5292c5" name="Removes data" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="5b8430a2-26be-4962-99f5-7707af9c9bda" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="483613b8-9fb7-476c-9f73-05c3aea9ae0b" LastKnownName="MessageOccurrenceSpecification21" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="9e451b8d-b046-46d4-bad9-3822b43fa741" LastKnownName="MessageOccurrenceSpecification22" />
- </receiveEvent>
- </message>
- <message Id="823125cc-b9c7-4682-acf1-1a040cc2800e" name="Return updated list" messageKind="Complete" messageSort="AsynchCall" createSelfMessage="false">
- <elementDefinition Id="2c15ebb4-3fd7-475b-8cac-dee441271f9f" />
- <sendEvent>
- <messageOccurrenceSpecificationMoniker Id="45ba8d00-87f2-450e-8f69-6ff57ceb023a" LastKnownName="MessageOccurrenceSpecification23" />
- </sendEvent>
- <receiveEvent>
- <messageOccurrenceSpecificationMoniker Id="ea7e6d41-be93-4bb7-ae51-08ab55118105" LastKnownName="MessageOccurrenceSpecification24" />
- </receiveEvent>
- </message>
- </messages>
- </interaction>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="b72d2a5b-b56c-4490-8d2c-093212b1b0dd" name="ExecutionEvent">
- <elementDefinition Id="a1ca97e4-a855-4623-b883-13358aee75b0" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="a8b3bdb5-b7ae-4c42-a5e4-2e2b7bd1b260" name="ExecutionEvent">
- <elementDefinition Id="75129a6f-5560-4a12-8aad-356b3b8ba0bf" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="82fa8368-6c3f-486e-9cc9-4c5cfb196004" name="ExecutionEvent">
- <elementDefinition Id="9590daeb-a22d-4920-8576-c51311b5a3eb" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="f6513415-63a6-435e-bde0-2214614ad2af" name="ExecutionEvent">
- <elementDefinition Id="741988dc-026e-430f-8e34-2bf78be28760" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="83987cbb-df7f-47e0-ba07-6f1268680cd5" name="ExecutionEvent">
- <elementDefinition Id="799c461e-d449-41dc-b812-18e48e4a5141" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="b29d466d-c04f-4b5d-9d47-40a5555475f2" name="ExecutionEvent">
- <elementDefinition Id="6e3d1ab7-7768-4e84-899a-9bca7606d633" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="591b06bc-b1a6-4dc5-88e9-29fdcd62db59" name="ExecutionEvent">
- <elementDefinition Id="cc431ce8-67dc-4e59-b831-62698e616fa9" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="2663864e-0d45-4d09-8ba2-c8a21dfcea48" name="ExecutionEvent">
- <elementDefinition Id="9792ff45-984a-4b39-911f-3fdd4274b219" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="a99e84db-db66-4f6d-8021-a992e78766d6" name="ExecutionEvent">
- <elementDefinition Id="ec73be9b-10fc-4136-883d-c8d20ee6556f" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="a8dc8e61-a3ab-45fe-aee7-040d87318b49" name="ExecutionEvent">
- <elementDefinition Id="f05634eb-68b3-47c6-ad61-99d0af5d9de1" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="dc8685d1-e330-4a71-b10d-3ca75f7e0e77" name="ExecutionEvent">
- <elementDefinition Id="e644346e-6d3c-48fa-9693-8c701aa3d944" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="94b1f654-f7ab-4bea-af7a-e76075799718" name="ExecutionEvent">
- <elementDefinition Id="a0f6eea8-4bb5-4165-be67-1c2c1deb2ca0" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="678eaf3c-139d-43ca-ba44-8e9f8b26f5e8" name="ExecutionEvent">
- <elementDefinition Id="f21888b6-768a-4040-b320-4d268d6c646e" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="bec2c1ee-9376-406f-ae81-2909ea964d8e" name="ExecutionEvent">
- <elementDefinition Id="c73fe059-0ba3-481b-9e00-dab5c63fda33" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="c2bf9075-5be3-48ee-89f1-3aba342c13b6" name="ExecutionEvent">
- <elementDefinition Id="ab3e94fe-57ab-48dc-ba98-fea1f4931818" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="75df884f-4031-4c05-a9a2-f0cea9e7f6be" name="ExecutionEvent">
- <elementDefinition Id="f7d1e590-b149-48d0-9fe7-27c91eb49431" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="4c5d7dea-6679-4cd7-b267-5fd65c13af0b" name="ExecutionEvent">
- <elementDefinition Id="1829dbaa-39c5-4441-b9be-6ed05bab2540" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="302ddbdf-4183-4423-a3d9-1661060c2cce" name="ExecutionEvent">
- <elementDefinition Id="3912a892-7448-43b7-9a63-edd00dd96d7b" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="6d313984-6df7-4aa7-bcae-d3bd0f53c8b8" name="ExecutionEvent">
- <elementDefinition Id="decaeefe-9a4d-40f1-86f0-edff68b96278" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="371e42d0-0cf0-49f6-99e9-f25d6e73d6f9" name="ExecutionEvent">
- <elementDefinition Id="de2f7c45-a17e-4281-94c3-7b76c3addf9a" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="1c08f6cc-4549-4bf0-b001-8f13b257ea15" name="ExecutionEvent">
- <elementDefinition Id="6f38e610-143b-45fa-96b2-c30be1e19f77" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="de261d13-ae6d-4160-83a1-5440b05b8aa7" name="ExecutionEvent">
- <elementDefinition Id="8153f106-56cc-4224-abf2-c93ba6939bfd" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="b1893224-3429-427b-894c-68604afe3cb6" name="ExecutionEvent">
- <elementDefinition Id="f619bbf0-6728-4ab0-a043-2fe548a2372e" />
- </executionEvent>
- </packageHasNamedElement>
- <packageHasNamedElement>
- <executionEvent Id="a1ff1bf0-01be-4302-9faf-e2a364a3e245" name="ExecutionEvent">
- <elementDefinition Id="861afd2d-33a1-4b24-b328-7fb514ce11c0" />
- </executionEvent>
- </packageHasNamedElement>
- </packagedElements>
- <package Id="324a0513-c0ae-46e8-9e1f-d6a712af6f1d" name="SSD for Feb 14">
- <elementDefinition Id="7e21a63e-11dc-4785-89d3-4c89b087f81c" />
- </package>
-</SequenceDesignerModel> \ No newline at end of file
diff --git a/EventMaker/Design/System.sequencediagram.layout b/EventMaker/Design/System.sequencediagram.layout
deleted file mode 100644
index c015142..0000000
--- a/EventMaker/Design/System.sequencediagram.layout
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<sequenceDesignerDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="SSD">
- <SequenceDesignerModelMoniker Id="294047fc-0931-4e2c-9969-fffee7f03145" />
- <nestedChildShapes>
- <lifelineShape Id="12ca43f4-2b6d-4b80-8c0f-b30d2095831e" absoluteBounds="2.7395832538604736, 1, 0.15, 7.018229142247387" visible="true" visualStyleMode="Modified">
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- <relativeChildShapes>
- <umlLifelineHeadShape Id="a5f3b64c-0502-4480-bf35-85fb61c97e28" absoluteBounds="2.3145832538604738, 0.6, 1, 0.4" customColor="White" visualStyleMode="Modified">
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- <relativeChildShapes />
- </umlLifelineHeadShape>
- <lifelineHoverShape Id="af44d365-9336-4b1a-bfb4-af71b3c953c5" absoluteBounds="2.7395832538604736, 1, 0, 7">
- <lifelineMoniker Id="3c6f19fb-da85-4a1d-af90-1d7cb9abad12" LastKnownName="User" />
- </lifelineHoverShape>
- <umlExecutionSpecificationShape Id="10463765-9fb8-44b1-bb6b-ba7037492e16" absoluteBounds="2.7395832538604736, 2.3031249940022822, 0.15, 0.55000000000000027" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="b7d0a25a-d293-492b-a3c5-f01379677fc6" LastKnownName="BehaviorExecutionSpecification3" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="c93624a6-737c-4632-aef9-bae832229ab0" absoluteBounds="2.7395832538604736, 4.0526041499587384, 0.15, 0.55000000000000071" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="9ddb3db0-3cbe-4a0f-9ffc-d740232d3937" LastKnownName="BehaviorExecutionSpecification6" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="9c7aae3f-4fba-410e-8103-bbc7bfa5fdf0" absoluteBounds="2.7395832538604736, 5.5864583136265464, 0.15, 0.55" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="d1adc286-acb4-4331-b0da-11796b0fd270" LastKnownName="BehaviorExecutionSpecification9" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="1c87c25a-9126-4461-b285-bc5b81fd573e" absoluteBounds="2.7395832538604736, 7.1682291422473865, 0.15, 0.55" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="fd72252f-1cb7-41e5-8751-5e6d76095b56" LastKnownName="BehaviorExecutionSpecification12" />
- </umlExecutionSpecificationShape>
- </relativeChildShapes>
- </lifelineShape>
- <lifelineShape Id="081eadf1-58bd-48c4-826f-1142bd4fe480" absoluteBounds="4.3531249888613823, 1, 0.15, 7" visible="true" visualStyleMode="Modified">
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- <relativeChildShapes>
- <umlLifelineHeadShape Id="5fc24086-0cc8-488d-b183-3eddd3761b70" absoluteBounds="3.9281249888613825, 0.6, 1, 0.4" customColor="White" visualStyleMode="Modified">
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- <relativeChildShapes />
- </umlLifelineHeadShape>
- <lifelineHoverShape Id="17e2c0e2-3061-4089-83e0-ca7b274a840a" absoluteBounds="4.3531249888613823, 1, 0, 7">
- <lifelineMoniker Id="1f79ec80-0a69-4a8e-bb98-4db1993629d0" LastKnownName="App" />
- </lifelineHoverShape>
- <umlExecutionSpecificationShape Id="2ec1c98e-1e08-40dc-8e59-b5f7f3bf74e3" absoluteBounds="4.3531249888613823, 1.4583333333333333, 0.15, 0.59999999999999987" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="528a2ca6-0d76-4fc4-aeb7-6c00546dc5ff" LastKnownName="BehaviorExecutionSpecification1" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="fe42595b-e686-40c8-9272-1c07dac4139e" absoluteBounds="4.3531249888613823, 3.1531249940022823, 0.15, 0.59999999999999964" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="80143d49-8101-482d-a3ed-4ede167d9d57" LastKnownName="BehaviorExecutionSpecification4" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="b5ab103f-2a1f-408f-805c-09a76f2b39c4" absoluteBounds="4.3531249888613823, 4.9026041499587389, 0.15, 0.59999999999999964" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="8c9c36e3-18c1-452f-96b4-7538529db77b" LastKnownName="BehaviorExecutionSpecification7" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="287997c1-6eb7-4852-a991-5744cfe63e6c" absoluteBounds="4.3531249888613823, 6.4364583136265461, 0.15, 0.59999999999999964" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="8d49cde7-b065-4a0c-805e-b852983035cf" LastKnownName="BehaviorExecutionSpecification10" />
- </umlExecutionSpecificationShape>
- </relativeChildShapes>
- </lifelineShape>
- <lifelineShape Id="a1544ec5-8a5a-4f55-8a9a-1e3dec5b953b" absoluteBounds="5.8380211328032123, 1, 0.15, 7" visible="true" visualStyleMode="Modified">
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- <relativeChildShapes>
- <umlLifelineHeadShape Id="58f37c9b-bd81-464a-8875-e60f61a151b7" absoluteBounds="5.4130211328032125, 0.6, 1, 0.4" customColor="White" visualStyleMode="Modified">
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- <relativeChildShapes />
- </umlLifelineHeadShape>
- <lifelineHoverShape Id="a2514eaa-f454-44c7-8570-9a5e3d6fa5a1" absoluteBounds="5.8380211328032123, 1, 0, 7">
- <lifelineMoniker Id="7388b6e3-ecaf-47c3-841e-3be359b6fb69" LastKnownName="Storage" />
- </lifelineHoverShape>
- <umlExecutionSpecificationShape Id="1c969773-aee0-4598-ad0d-0878f3662e72" absoluteBounds="5.8380211328032123, 1.7583333333333333, 0.15, 0.84479166066894873" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="cc2ba95c-bb83-4b8f-ba43-c7a1589c492f" LastKnownName="BehaviorExecutionSpecification2" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="dd075f0f-5636-4105-a5b8-af09e8f634bd" absoluteBounds="5.8380211328032123, 3.4531249940022821, 0.15, 0.89947915595645611" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="2ae49087-2a6c-44a9-8e14-f618baf1f14c" LastKnownName="BehaviorExecutionSpecification5" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="c33bec25-3ec7-448c-905e-9b758588a6bb" absoluteBounds="5.8380211328032123, 5.2026041499587388, 0.15, 0.68385416366780749" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="3192f350-f5ee-4f13-9858-12eb36b09109" LastKnownName="BehaviorExecutionSpecification8" />
- </umlExecutionSpecificationShape>
- <umlExecutionSpecificationShape Id="76d0d4aa-cc38-47a0-beff-44dd61287f01" absoluteBounds="5.8380211328032123, 6.7364583136265459, 0.15, 0.73177082862084042" customColor="184, 204, 215" visualStyleMode="Modified">
- <behaviorExecutionSpecificationMoniker Id="91bb726f-bcbe-452c-9d9a-3206dbdaeb2c" LastKnownName="BehaviorExecutionSpecification11" />
- </umlExecutionSpecificationShape>
- </relativeChildShapes>
- </lifelineShape>
- <asyncMessageConnector edgePoints="[(2.81458325386047 : 1.45833333333333); (4.35312498886138 : 1.45833333333333)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <lifelineShapeMoniker Id="12ca43f4-2b6d-4b80-8c0f-b30d2095831e" />
- <umlExecutionSpecificationShapeMoniker Id="2ec1c98e-1e08-40dc-8e59-b5f7f3bf74e3" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(4.50312498886138 : 1.75833333333333); (5.83802113280321 : 1.75833333333333)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="2ec1c98e-1e08-40dc-8e59-b5f7f3bf74e3" />
- <umlExecutionSpecificationShapeMoniker Id="1c969773-aee0-4598-ad0d-0878f3662e72" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(5.83802113280321 : 2.30312499400228); (2.88958325386047 : 2.30312499400228)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="1c969773-aee0-4598-ad0d-0878f3662e72" />
- <umlExecutionSpecificationShapeMoniker Id="10463765-9fb8-44b1-bb6b-ba7037492e16" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(2.81458325386047 : 3.15312499400228); (4.35312498886138 : 3.15312499400228)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <lifelineShapeMoniker Id="12ca43f4-2b6d-4b80-8c0f-b30d2095831e" />
- <umlExecutionSpecificationShapeMoniker Id="fe42595b-e686-40c8-9272-1c07dac4139e" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(4.50312498886138 : 3.45312499400228); (5.83802113280321 : 3.45312499400228)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="fe42595b-e686-40c8-9272-1c07dac4139e" />
- <umlExecutionSpecificationShapeMoniker Id="dd075f0f-5636-4105-a5b8-af09e8f634bd" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(5.83802113280321 : 4.05260414995874); (2.88958325386047 : 4.05260414995874)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="dd075f0f-5636-4105-a5b8-af09e8f634bd" />
- <umlExecutionSpecificationShapeMoniker Id="c93624a6-737c-4632-aef9-bae832229ab0" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(2.81458325386047 : 4.90260414995874); (4.35312498886138 : 4.90260414995874)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <lifelineShapeMoniker Id="12ca43f4-2b6d-4b80-8c0f-b30d2095831e" />
- <umlExecutionSpecificationShapeMoniker Id="b5ab103f-2a1f-408f-805c-09a76f2b39c4" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(4.50312498886138 : 5.20260414995874); (5.83802113280321 : 5.20260414995874)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="b5ab103f-2a1f-408f-805c-09a76f2b39c4" />
- <umlExecutionSpecificationShapeMoniker Id="c33bec25-3ec7-448c-905e-9b758588a6bb" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(5.83802113280321 : 5.58645831362655); (2.88958325386047 : 5.58645831362655)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="c33bec25-3ec7-448c-905e-9b758588a6bb" />
- <umlExecutionSpecificationShapeMoniker Id="9c7aae3f-4fba-410e-8103-bbc7bfa5fdf0" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(2.81458325386047 : 6.43645831362655); (4.35312498886138 : 6.43645831362655)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <lifelineShapeMoniker Id="12ca43f4-2b6d-4b80-8c0f-b30d2095831e" />
- <umlExecutionSpecificationShapeMoniker Id="287997c1-6eb7-4852-a991-5744cfe63e6c" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(4.50312498886138 : 6.73645831362655); (5.83802113280321 : 6.73645831362655)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="287997c1-6eb7-4852-a991-5744cfe63e6c" />
- <umlExecutionSpecificationShapeMoniker Id="76d0d4aa-cc38-47a0-beff-44dd61287f01" />
- </nodes>
- </asyncMessageConnector>
- <asyncMessageConnector edgePoints="[(5.83802113280321 : 7.16822914224739); (2.88958325386047 : 7.16822914224739)]" fixedFrom="Caller" fixedTo="Caller" TargetRelationshipDomainClassId="e24617ce-6c7e-4c7d-802a-63014f02e313" customColor="Black" visible="true" visualStyleMode="Modified" messageId="00000000-0000-0000-0000-000000000000">
- <relativeChildShapes />
- <nodes>
- <umlExecutionSpecificationShapeMoniker Id="76d0d4aa-cc38-47a0-beff-44dd61287f01" />
- <umlExecutionSpecificationShapeMoniker Id="1c87c25a-9126-4461-b285-bc5b81fd573e" />
- </nodes>
- </asyncMessageConnector>
- </nestedChildShapes>
-</sequenceDesignerDiagram> \ No newline at end of file
diff --git a/EventMaker/Design/UseCaseDiagram.usecasediagram.layout b/EventMaker/Design/UseCaseDiagram.usecasediagram.layout
index 2ff49b7..3f10b42 100644
--- a/EventMaker/Design/UseCaseDiagram.usecasediagram.layout
+++ b/EventMaker/Design/UseCaseDiagram.usecasediagram.layout
@@ -1,29 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
+
<useCaseDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 11, 8.5" name="UseCaseDiagram">
<useCaseModelRootMoniker Id="3509cc25-427e-4a79-b273-7537d04104ed" />
<nestedChildShapes>
- <actorShape Id="933e3502-5127-44dd-8a50-860a5fc266c4" absoluteBounds="2.875, 2.375, 0.5, 0.5" isReference="false" heightOffset="0">
+ <actorShape Id="933e3502-5127-44dd-8a50-860a5fc266c4" absoluteBounds="2.875, 2.375, 0.5, 0.5" isReference="false"
+ heightOffset="0">
<actorMoniker Id="2f1e3987-0b63-4137-8d06-d7dfdd6c678c" LastKnownName="User" />
<relativeChildShapes />
</actorShape>
<SubsystemShape Id="590822a5-d45a-4d45-81ca-d666c0f5060d" absoluteBounds="3.75, 1.125, 3, 2.75" customColor="White">
<subsystemMoniker Id="d17c6939-93fc-4b10-be5b-77e11658ee77" LastKnownName="EventMaker" />
<nestedChildShapes>
- <useCaseShape Id="6be3d42d-cafc-418f-ac8f-7be1e4341e36" absoluteBounds="4.625, 1.625, 1, 0.5" customColor="238, 237, 131" heightOffset="0">
+ <useCaseShape Id="6be3d42d-cafc-418f-ac8f-7be1e4341e36" absoluteBounds="4.625, 1.625, 1, 0.5"
+ customColor="238, 237, 131" heightOffset="0">
<useCaseMoniker Id="9375dfdb-573d-42d0-a6d2-51d0ee372380" LastKnownName="Add Event" />
<relativeChildShapes />
</useCaseShape>
- <useCaseShape Id="c213b7c8-fddb-4e06-beea-f3379520ff92" absoluteBounds="4.625, 2.25, 1, 0.5" customColor="238, 237, 131" heightOffset="0">
+ <useCaseShape Id="c213b7c8-fddb-4e06-beea-f3379520ff92" absoluteBounds="4.625, 2.25, 1, 0.5"
+ customColor="238, 237, 131" heightOffset="0">
<useCaseMoniker Id="f66cfc27-4cd6-45bd-a56a-4defbf2c2c2d" LastKnownName="Remove Event" />
<relativeChildShapes />
</useCaseShape>
- <useCaseShape Id="1ac26ba6-9f6c-4017-a805-8824e4062468" absoluteBounds="4.625, 2.875, 1, 0.5" customColor="238, 237, 131" heightOffset="0">
+ <useCaseShape Id="1ac26ba6-9f6c-4017-a805-8824e4062468" absoluteBounds="4.625, 2.875, 1, 0.5"
+ customColor="238, 237, 131" heightOffset="0">
<useCaseMoniker Id="b93354b8-da10-4c60-9bf5-6cdb571d86d4" LastKnownName="Edit Event" />
<relativeChildShapes />
</useCaseShape>
</nestedChildShapes>
</SubsystemShape>
- <useCaseAssociationConnector edgePoints="[(3.375 : 2.53125); (4.725 : 2.025)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="" targetMultiplicity="">
+ <useCaseAssociationConnector edgePoints="[(3.375 : 2.53125); (4.725 : 2.025)]" fixedFrom="Algorithm"
+ fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity=""
+ targetMultiplicity="">
<associationMoniker Id="87fe49fc-c415-47f8-a6f1-04f25d40eff7" />
<relativeChildShapes />
<nodes>
@@ -31,7 +38,9 @@
<useCaseShapeMoniker Id="6be3d42d-cafc-418f-ac8f-7be1e4341e36" />
</nodes>
</useCaseAssociationConnector>
- <useCaseAssociationConnector edgePoints="[(3.375 : 2.609375); (4.62886106164317 : 2.5310086836473)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="" targetMultiplicity="">
+ <useCaseAssociationConnector edgePoints="[(3.375 : 2.609375); (4.62886106164317 : 2.5310086836473)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110"
+ sourceMultiplicity="" targetMultiplicity="">
<associationMoniker Id="18df7472-4029-4c99-8f74-319b82f6ce9f" />
<relativeChildShapes />
<nodes>
@@ -39,7 +48,9 @@
<useCaseShapeMoniker Id="c213b7c8-fddb-4e06-beea-f3379520ff92" />
</nodes>
</useCaseAssociationConnector>
- <useCaseAssociationConnector edgePoints="[(3.375 : 2.6875); (4.67778640450004 : 3.01319660112501)]" fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110" sourceMultiplicity="" targetMultiplicity="">
+ <useCaseAssociationConnector edgePoints="[(3.375 : 2.6875); (4.67778640450004 : 3.01319660112501)]"
+ fixedFrom="Algorithm" fixedTo="Algorithm" customColor="113, 111, 110"
+ sourceMultiplicity="" targetMultiplicity="">
<associationMoniker Id="67db3de4-64dd-40d3-a624-71c6921d1253" />
<relativeChildShapes />
<nodes>
diff --git a/EventMaker/EventMaker/App.xaml b/EventMaker/EventMaker/App.xaml
index 88c46a6..a4670a9 100644
--- a/EventMaker/EventMaker/App.xaml
+++ b/EventMaker/EventMaker/App.xaml
@@ -45,27 +45,45 @@
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver">
<Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="BorderBrush">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonBorderBrushPointerOver}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="BorderBrush">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonBorderBrushPointerOver}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonBackgroundPointerOver}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="Background">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonBackgroundPointerOver}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonForegroundPointerOver}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="Foreground">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonForegroundPointerOver}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Background">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonBackgroundPressed}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="Background">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonBackgroundPressed}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="BorderBrush">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonBorderBrushPressed}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="BorderBrush">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonBorderBrushPressed}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerButtonForegroundPressed}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="ContentPresenter"
+ Storyboard.TargetProperty="Foreground">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerButtonForegroundPressed}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
@@ -151,14 +169,21 @@
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<Storyboard>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="HeaderContentPresenter" Storyboard.TargetProperty="Foreground">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerHeaderForegroundDisabled}" />
+ <ObjectAnimationUsingKeyFrames
+ Storyboard.TargetName="HeaderContentPresenter"
+ Storyboard.TargetProperty="Foreground">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerHeaderForegroundDisabled}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstColumnDivider" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerSpacerFillDisabled}" />
+ <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstColumnDivider"
+ Storyboard.TargetProperty="Fill">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerSpacerFillDisabled}" />
</ObjectAnimationUsingKeyFrames>
- <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SecondColumnDivider" Storyboard.TargetProperty="Fill">
- <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TimePickerSpacerFillDisabled}" />
+ <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SecondColumnDivider"
+ Storyboard.TargetProperty="Fill">
+ <DiscreteObjectKeyFrame KeyTime="0"
+ Value="{ThemeResource TimePickerSpacerFillDisabled}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
@@ -171,4 +196,4 @@
</Style>
</Application.Resources>
-</Application>
+</Application> \ No newline at end of file
diff --git a/EventMaker/EventMaker/App.xaml.cs b/EventMaker/EventMaker/App.xaml.cs
index 154099a..35007cc 100644
--- a/EventMaker/EventMaker/App.xaml.cs
+++ b/EventMaker/EventMaker/App.xaml.cs
@@ -7,17 +7,18 @@ using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
+using EventMaker.View;
namespace EventMaker
{
/// <summary>
- /// Provides application-specific behavior to supplement the default Application class.
+ /// Provides application-specific behavior to supplement the default Application class.
/// </summary>
sealed partial class App
{
/// <summary>
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
public App()
{
@@ -26,8 +27,8 @@ namespace EventMaker
}
/// <summary>
- /// Invoked when the application is launched normally by the end user. Other entry points
- /// will be used such as when the application is launched to open a specific file.
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
protected override void OnLaunched(LaunchActivatedEventArgs e)
@@ -39,13 +40,13 @@ namespace EventMaker
// }
//#endif
- ApplicationViewTitleBar titleBar = ApplicationView.GetForCurrentView().TitleBar;
+ var titleBar = ApplicationView.GetForCurrentView().TitleBar;
if (titleBar != null)
{
titleBar.BackgroundColor = Color.FromArgb(255, 16, 110, 190);
titleBar.ButtonBackgroundColor = Color.FromArgb(255, 16, 110, 190);
}
- Frame rootFrame = Window.Current.Content as Frame;
+ var rootFrame = Window.Current.Content as Frame;
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
@@ -68,12 +69,7 @@ namespace EventMaker
if (e.PrelaunchActivated == false)
{
if (rootFrame.Content == null)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame.Navigate(typeof(View.EventPage), e.Arguments);
- }
+ rootFrame.Navigate(typeof(EventPage), e.Arguments);
// Ensure the current window is active
Window.Current.Activate();
}
@@ -81,11 +77,11 @@ namespace EventMaker
}
/// <summary>
- /// Invoked when Navigation to a certain page fails
+ /// Invoked when Navigation to a certain page fails
/// </summary>
/// <param name="sender">The Frame which failed navigation</param>
/// <param name="e">Details about the navigation failure</param>
- void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ private void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
{
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
}
@@ -94,16 +90,16 @@ namespace EventMaker
{
// Each time a navigation event occurs, update the Back button's visibility
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
- ((Frame)sender).CanGoBack ?
- AppViewBackButtonVisibility.Visible :
- AppViewBackButtonVisibility.Collapsed;
+ ((Frame) sender).CanGoBack
+ ? AppViewBackButtonVisibility.Visible
+ : AppViewBackButtonVisibility.Collapsed;
}
/// <summary>
- /// Invoked when application execution is being suspended. Application state is saved
- /// without knowing whether the application will be terminated or resumed with the contents
- /// of memory still intact.
+ /// Invoked when application execution is being suspended. Application state is saved
+ /// without knowing whether the application will be terminated or resumed with the contents
+ /// of memory still intact.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
@@ -113,6 +109,5 @@ namespace EventMaker
//TODO: Save application state and stop any background activity
deferral.Complete();
}
-
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Common/RelayCommand.cs b/EventMaker/EventMaker/Common/RelayCommand.cs
index eac6d67..c7cad06 100644
--- a/EventMaker/EventMaker/Common/RelayCommand.cs
+++ b/EventMaker/EventMaker/Common/RelayCommand.cs
@@ -5,65 +5,66 @@ namespace EventMaker.Common
{
public class RelayCommand : ICommand
{
- private readonly Action _execute;
private readonly Func<bool> _canExecute;
+ private readonly Action _execute;
+
/// <summary>
- /// Raised when RaiseCanExecuteChanged is called.
- /// </summary>
- public event EventHandler CanExecuteChanged;
- /// <summary>
- /// Creates a new command that can always execute.
+ /// Creates a new command that can always execute.
/// </summary>
/// <param name="execute">The execution logic.</param>
public RelayCommand(Action execute) : this(execute, null)
{
}
+
/// <summary>
- /// Creates a new command.
+ /// Creates a new command.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <param name="canExecute">The execution status logic.</param>
public RelayCommand(Action execute, Func<bool> canExecute)
{
- if (execute == null) throw new ArgumentNullException("execute");
+ if (execute == null) throw new ArgumentNullException(nameof(execute));
_execute = execute;
_canExecute = canExecute;
}
+
/// <summary>
- /// Determines whether this <see cref="RelayCommand"/> can execute in its current state.
+ /// Raised when RaiseCanExecuteChanged is called.
+ /// </summary>
+ public event EventHandler CanExecuteChanged;
+
+ /// <summary>
+ /// Determines whether this <see cref="RelayCommand" /> can execute in its current state.
/// </summary>
/// <param name="parameter">
- /// Data used by the command. If the command does not require data to be passed, this object can be set to null.
+ /// Data used by the command. If the command does not require data to be passed, this object can be set to null.
/// </param>
/// <returns>true if this command can be executed; otherwise, false.</returns>
public bool CanExecute(object parameter)
{
- return _canExecute == null ? true : _canExecute();
+ return _canExecute?.Invoke() ?? true;
}
+
/// <summary>
- /// Executes the <see cref="RelayCommand"/> on the current command target.
+ /// Executes the <see cref="RelayCommand" /> on the current command target.
/// </summary>
/// <param name="parameter">
- /// Data used by the command. If the command does not require data to be passed, this object can be set to null.
+ /// Data used by the command. If the command does not require data to be passed, this object can be set to null.
/// </param>
public void Execute(object parameter)
{
_execute();
}
+
/// <summary>
- /// Method used to raise the <see cref="CanExecuteChanged"/> event
- /// to indicate that the return value of the <see cref="CanExecute"/>
- /// method has changed.
+ /// Method used to raise the <see cref="CanExecuteChanged" /> event
+ /// to indicate that the return value of the <see cref="CanExecute" />
+ /// method has changed.
/// </summary>
public void RaiseCanExecuteChanged()
{
var handler = CanExecuteChanged;
- if (handler != null)
- {
- handler(this, EventArgs.Empty);
- }
+ handler?.Invoke(this, EventArgs.Empty);
}
}
-
-
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Model/Event.cs b/EventMaker/EventMaker/Model/Event.cs
index ddf86a8..7fce56d 100644
--- a/EventMaker/EventMaker/Model/Event.cs
+++ b/EventMaker/EventMaker/Model/Event.cs
@@ -10,4 +10,4 @@ namespace EventMaker.Model
public string Name { get; set; }
public string Place { get; set; }
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Model/EventCatalogSingleton.cs b/EventMaker/EventMaker/Model/EventCatalogSingleton.cs
index cf40fd0..d82c41c 100644
--- a/EventMaker/EventMaker/Model/EventCatalogSingleton.cs
+++ b/EventMaker/EventMaker/Model/EventCatalogSingleton.cs
@@ -1,45 +1,42 @@
using System.Collections.ObjectModel;
+using EventMaker.Persistency;
namespace EventMaker.Model
{
public class EventCatalogSingleton
{
private static EventCatalogSingleton _instance;
- public ObservableCollection<Event> Events { get; set; }
private EventCatalogSingleton()
{
LoadEventsAsync();
}
- public static EventCatalogSingleton Instance
- {
- get
- {
- if (_instance == null)
- {
- _instance = new EventCatalogSingleton();
- }
- return _instance;
- }
- }
+
+ public ObservableCollection<Event> Events { get; set; }
+
+ public static EventCatalogSingleton Instance => _instance ?? (_instance = new EventCatalogSingleton());
+
public void Add(Event newEvent)
{
Events.Add(newEvent);
- Persistency.PersistencyService.SaveEventsAsJsonAsync(Events);
+ PersistencyService.SaveEventsAsJsonAsync(Events);
}
+
private async void LoadEventsAsync()
{
- Events = await Persistency.PersistencyService.LoadEventsFromJsonAsync() ?? new ObservableCollection<Event>();
+ Events = await PersistencyService.LoadEventsFromJsonAsync() ?? new ObservableCollection<Event>();
}
+
public void Remove(int index)
{
Events.RemoveAt(index);
- Persistency.PersistencyService.SaveEventsAsJsonAsync(Events);
+ PersistencyService.SaveEventsAsJsonAsync(Events);
}
+
public void Update(int index, Event eventToUpdate)
{
Events[index] = eventToUpdate;
- Persistency.PersistencyService.SaveEventsAsJsonAsync(Events);
+ PersistencyService.SaveEventsAsJsonAsync(Events);
}
public void Sort(string sortValue)
@@ -48,31 +45,27 @@ namespace EventMaker.Model
switch (sortValue)
{
case "date (ascending)":
- do
+ do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
+ for (var i = 0; i < Events.Count - 1; i++)
if (Events[i].DateTime > Events[i + 1].DateTime)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
case "date (descending)":
do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
+ for (var i = 0; i < Events.Count - 1; i++)
if (Events[i].DateTime < Events[i + 1].DateTime)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
@@ -80,14 +73,12 @@ namespace EventMaker.Model
do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
- if (string.CompareOrdinal(Events[i].Name, Events[i + 1].Name) >= 0 )
+ for (var i = 0; i < Events.Count - 1; i++)
+ if (string.CompareOrdinal(Events[i].Name, Events[i + 1].Name) >= 0)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
@@ -95,14 +86,12 @@ namespace EventMaker.Model
do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
+ for (var i = 0; i < Events.Count - 1; i++)
if (string.CompareOrdinal(Events[i].Name, Events[i + 1].Name) <= 0)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
@@ -110,14 +99,12 @@ namespace EventMaker.Model
do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
+ for (var i = 0; i < Events.Count - 1; i++)
if (string.CompareOrdinal(Events[i].Place, Events[i + 1].Place) >= 0)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
@@ -125,18 +112,15 @@ namespace EventMaker.Model
do
{
sorted = false;
- for (int i = 0; i < Events.Count - 1; i++)
- {
+ for (var i = 0; i < Events.Count - 1; i++)
if (string.CompareOrdinal(Events[i].Place, Events[i + 1].Place) <= 0)
{
Events.Move(i, i + 1);
sorted = true;
}
- }
} while (sorted);
break;
}
-
}
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Persistency/PersistencyService.cs b/EventMaker/EventMaker/Persistency/PersistencyService.cs
index 4688b66..6887601 100644
--- a/EventMaker/EventMaker/Persistency/PersistencyService.cs
+++ b/EventMaker/EventMaker/Persistency/PersistencyService.cs
@@ -1,21 +1,21 @@
-using EventMaker.Model;
-using Newtonsoft.Json;
-using System;
+using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Threading.Tasks;
using Windows.Storage;
+using EventMaker.Model;
+using Newtonsoft.Json;
namespace EventMaker.Persistency
{
- class PersistencyService
+ internal class PersistencyService
{
private static readonly StorageFolder LocalFolder = ApplicationData.Current.LocalFolder;
private static StorageFile _eventsFile;
public static async void SaveEventsAsJsonAsync(ObservableCollection<Event> events)
{
- _eventsFile = await LocalFolder.CreateFileAsync("events.json",CreationCollisionOption.OpenIfExists);
+ _eventsFile = await LocalFolder.CreateFileAsync("events.json", CreationCollisionOption.OpenIfExists);
File.WriteAllText(_eventsFile.Path, JsonConvert.SerializeObject(events));
}
@@ -25,12 +25,11 @@ namespace EventMaker.Persistency
{
_eventsFile = await LocalFolder.GetFileAsync("events.json");
}
- catch(FileNotFoundException)
+ catch (FileNotFoundException)
{
_eventsFile = await LocalFolder.CreateFileAsync("events.json", CreationCollisionOption.OpenIfExists);
}
return JsonConvert.DeserializeObject<ObservableCollection<Event>>(File.ReadAllText(_eventsFile.Path));
}
-
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Properties/Annotations.cs b/EventMaker/EventMaker/Properties/Annotations.cs
index 363c453..af3afd3 100644
--- a/EventMaker/EventMaker/Properties/Annotations.cs
+++ b/EventMaker/EventMaker/Properties/Annotations.cs
@@ -32,1017 +32,1221 @@ using System;
namespace EventMaker.Annotations
{
- /// <summary>
- /// Indicates that the value of the marked element could be <c>null</c> sometimes,
- /// so the check for <c>null</c> is necessary before its usage.
- /// </summary>
- /// <example><code>
- /// [CanBeNull] object Test() => null;
- ///
- /// void UseTest() {
- /// var p = Test();
- /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException'
- /// }
- /// </code></example>
- [AttributeUsage(
- AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
- AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event |
- AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)]
- public sealed class CanBeNullAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that the value of the marked element could never be <c>null</c>.
- /// </summary>
- /// <example><code>
- /// [NotNull] object Foo() {
- /// return null; // Warning: Possible 'null' assignment
- /// }
- /// </code></example>
- [AttributeUsage(
- AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
- AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event |
- AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)]
- public sealed class NotNullAttribute : Attribute { }
-
- /// <summary>
- /// Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task
- /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property
- /// or of the Lazy.Value property can never be null.
- /// </summary>
- [AttributeUsage(
- AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
- AttributeTargets.Delegate | AttributeTargets.Field)]
- public sealed class ItemNotNullAttribute : Attribute { }
-
- /// <summary>
- /// Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task
- /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property
- /// or of the Lazy.Value property can be null.
- /// </summary>
- [AttributeUsage(
- AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
- AttributeTargets.Delegate | AttributeTargets.Field)]
- public sealed class ItemCanBeNullAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that the marked method builds string by format pattern and (optional) arguments.
- /// Parameter, which contains format string, should be given in constructor. The format string
- /// should be in <see cref="string.Format(IFormatProvider,string,object[])"/>-like form.
- /// </summary>
- /// <example><code>
- /// [StringFormatMethod("message")]
- /// void ShowError(string message, params object[] args) { /* do something */ }
- ///
- /// void Foo() {
- /// ShowError("Failed: {0}"); // Warning: Non-existing argument in format string
- /// }
- /// </code></example>
- [AttributeUsage(
- AttributeTargets.Constructor | AttributeTargets.Method |
- AttributeTargets.Property | AttributeTargets.Delegate)]
- public sealed class StringFormatMethodAttribute : Attribute
- {
- /// <param name="formatParameterName">
- /// Specifies which parameter of an annotated method should be treated as format-string
- /// </param>
- public StringFormatMethodAttribute([NotNull] string formatParameterName)
- {
- FormatParameterName = formatParameterName;
- }
-
- [NotNull] public string FormatParameterName { get; private set; }
- }
-
- /// <summary>
- /// For a parameter that is expected to be one of the limited set of values.
- /// Specify fields of which type should be used as values for this parameter.
- /// </summary>
- [AttributeUsage(
- AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field,
- AllowMultiple = true)]
- public sealed class ValueProviderAttribute : Attribute
- {
- public ValueProviderAttribute([NotNull] string name)
- {
- Name = name;
- }
-
- [NotNull] public string Name { get; private set; }
- }
-
- /// <summary>
- /// Indicates that the function argument should be string literal and match one
- /// of the parameters of the caller function. For example, ReSharper annotates
- /// the parameter of <see cref="System.ArgumentNullException"/>.
- /// </summary>
- /// <example><code>
- /// void Foo(string param) {
- /// if (param == null)
- /// throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol
- /// }
- /// </code></example>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class InvokerParameterNameAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that the method is contained in a type that implements
- /// <c>System.ComponentModel.INotifyPropertyChanged</c> interface and this method
- /// is used to notify that some property value changed.
- /// </summary>
- /// <remarks>
- /// The method should be non-static and conform to one of the supported signatures:
- /// <list>
- /// <item><c>NotifyChanged(string)</c></item>
- /// <item><c>NotifyChanged(params string[])</c></item>
- /// <item><c>NotifyChanged{T}(Expression{Func{T}})</c></item>
- /// <item><c>NotifyChanged{T,U}(Expression{Func{T,U}})</c></item>
- /// <item><c>SetProperty{T}(ref T, T, string)</c></item>
- /// </list>
- /// </remarks>
- /// <example><code>
- /// public class Foo : INotifyPropertyChanged {
- /// public event PropertyChangedEventHandler PropertyChanged;
- ///
- /// [NotifyPropertyChangedInvocator]
- /// protected virtual void NotifyChanged(string propertyName) { ... }
- ///
- /// string _name;
- ///
- /// public string Name {
- /// get { return _name; }
- /// set { _name = value; NotifyChanged("LastName"); /* Warning */ }
- /// }
- /// }
- /// </code>
- /// Examples of generated notifications:
- /// <list>
- /// <item><c>NotifyChanged("Property")</c></item>
- /// <item><c>NotifyChanged(() =&gt; Property)</c></item>
- /// <item><c>NotifyChanged((VM x) =&gt; x.Property)</c></item>
- /// <item><c>SetProperty(ref myField, value, "Property")</c></item>
- /// </list>
- /// </example>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute
- {
- public NotifyPropertyChangedInvocatorAttribute() { }
- public NotifyPropertyChangedInvocatorAttribute([NotNull] string parameterName)
- {
- ParameterName = parameterName;
- }
-
- [CanBeNull] public string ParameterName { get; private set; }
- }
-
- /// <summary>
- /// Describes dependency between method input and output.
- /// </summary>
- /// <syntax>
- /// <p>Function Definition Table syntax:</p>
- /// <list>
- /// <item>FDT ::= FDTRow [;FDTRow]*</item>
- /// <item>FDTRow ::= Input =&gt; Output | Output &lt;= Input</item>
- /// <item>Input ::= ParameterName: Value [, Input]*</item>
- /// <item>Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
- /// <item>Value ::= true | false | null | notnull | canbenull</item>
- /// </list>
- /// If method has single input parameter, it's name could be omitted.<br/>
- /// Using <c>halt</c> (or <c>void</c>/<c>nothing</c>, which is the same) for method output
- /// means that the methos doesn't return normally (throws or terminates the process).<br/>
- /// Value <c>canbenull</c> is only applicable for output parameters.<br/>
- /// You can use multiple <c>[ContractAnnotation]</c> for each FDT row, or use single attribute
- /// with rows separated by semicolon. There is no notion of order rows, all rows are checked
- /// for applicability and applied per each program state tracked by R# analysis.<br/>
- /// </syntax>
- /// <examples><list>
- /// <item><code>
- /// [ContractAnnotation("=&gt; halt")]
- /// public void TerminationMethod()
- /// </code></item>
- /// <item><code>
- /// [ContractAnnotation("halt &lt;= condition: false")]
- /// public void Assert(bool condition, string text) // regular assertion method
- /// </code></item>
- /// <item><code>
- /// [ContractAnnotation("s:null =&gt; true")]
- /// public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()
- /// </code></item>
- /// <item><code>
- /// // A method that returns null if the parameter is null,
- /// // and not null if the parameter is not null
- /// [ContractAnnotation("null =&gt; null; notnull =&gt; notnull")]
- /// public object Transform(object data)
- /// </code></item>
- /// <item><code>
- /// [ContractAnnotation("=&gt; true, result: notnull; =&gt; false, result: null")]
- /// public bool TryParse(string s, out Person result)
- /// </code></item>
- /// </list></examples>
- [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
- public sealed class ContractAnnotationAttribute : Attribute
- {
- public ContractAnnotationAttribute([NotNull] string contract)
- : this(contract, false) { }
-
- public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates)
- {
- Contract = contract;
- ForceFullStates = forceFullStates;
- }
-
- [NotNull] public string Contract { get; private set; }
-
- public bool ForceFullStates { get; private set; }
- }
-
- /// <summary>
- /// Indicates that marked element should be localized or not.
- /// </summary>
- /// <example><code>
- /// [LocalizationRequiredAttribute(true)]
- /// class Foo {
- /// string str = "my string"; // Warning: Localizable string
- /// }
- /// </code></example>
- [AttributeUsage(AttributeTargets.All)]
- public sealed class LocalizationRequiredAttribute : Attribute
- {
- public LocalizationRequiredAttribute() : this(true) { }
-
- public LocalizationRequiredAttribute(bool required)
- {
- Required = required;
- }
-
- public bool Required { get; private set; }
- }
-
- /// <summary>
- /// Indicates that the value of the marked type (or its derivatives)
- /// cannot be compared using '==' or '!=' operators and <c>Equals()</c>
- /// should be used instead. However, using '==' or '!=' for comparison
- /// with <c>null</c> is always permitted.
- /// </summary>
- /// <example><code>
- /// [CannotApplyEqualityOperator]
- /// class NoEquality { }
- ///
- /// class UsesNoEquality {
- /// void Test() {
- /// var ca1 = new NoEquality();
- /// var ca2 = new NoEquality();
- /// if (ca1 != null) { // OK
- /// bool condition = ca1 == ca2; // Warning
- /// }
- /// }
- /// }
- /// </code></example>
- [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class | AttributeTargets.Struct)]
- public sealed class CannotApplyEqualityOperatorAttribute : Attribute { }
-
- /// <summary>
- /// When applied to a target attribute, specifies a requirement for any type marked
- /// with the target attribute to implement or inherit specific type or types.
- /// </summary>
- /// <example><code>
- /// [BaseTypeRequired(typeof(IComponent)] // Specify requirement
- /// class ComponentAttribute : Attribute { }
- ///
- /// [Component] // ComponentAttribute requires implementing IComponent interface
- /// class MyComponent : IComponent { }
- /// </code></example>
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
- [BaseTypeRequired(typeof(Attribute))]
- public sealed class BaseTypeRequiredAttribute : Attribute
- {
- public BaseTypeRequiredAttribute([NotNull] Type baseType)
- {
- BaseType = baseType;
- }
-
- [NotNull] public Type BaseType { get; private set; }
- }
-
- /// <summary>
- /// Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
- /// so this symbol will not be marked as unused (as well as by other usage inspections).
- /// </summary>
- [AttributeUsage(AttributeTargets.All)]
- public sealed class UsedImplicitlyAttribute : Attribute
- {
- public UsedImplicitlyAttribute()
- : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { }
-
- public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags)
- : this(useKindFlags, ImplicitUseTargetFlags.Default) { }
-
- public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags)
- : this(ImplicitUseKindFlags.Default, targetFlags) { }
-
- public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
- {
- UseKindFlags = useKindFlags;
- TargetFlags = targetFlags;
- }
-
- public ImplicitUseKindFlags UseKindFlags { get; private set; }
-
- public ImplicitUseTargetFlags TargetFlags { get; private set; }
- }
-
- /// <summary>
- /// Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes
- /// as unused (as well as by other usage inspections)
- /// </summary>
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.GenericParameter)]
- public sealed class MeansImplicitUseAttribute : Attribute
- {
- public MeansImplicitUseAttribute()
- : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { }
-
- public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags)
- : this(useKindFlags, ImplicitUseTargetFlags.Default) { }
-
- public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags)
- : this(ImplicitUseKindFlags.Default, targetFlags) { }
-
- public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
- {
- UseKindFlags = useKindFlags;
- TargetFlags = targetFlags;
- }
-
- [UsedImplicitly] public ImplicitUseKindFlags UseKindFlags { get; private set; }
-
- [UsedImplicitly] public ImplicitUseTargetFlags TargetFlags { get; private set; }
- }
-
- [Flags]
- public enum ImplicitUseKindFlags
- {
- Default = Access | Assign | InstantiatedWithFixedConstructorSignature,
- /// <summary>Only entity marked with attribute considered used.</summary>
- Access = 1,
- /// <summary>Indicates implicit assignment to a member.</summary>
- Assign = 2,
/// <summary>
- /// Indicates implicit instantiation of a type with fixed constructor signature.
- /// That means any unused constructor parameters won't be reported as such.
+ /// Indicates that the value of the marked element could be <c>null</c> sometimes,
+ /// so the check for <c>null</c> is necessary before its usage.
/// </summary>
- InstantiatedWithFixedConstructorSignature = 4,
- /// <summary>Indicates implicit instantiation of a type.</summary>
- InstantiatedNoFixedConstructorSignature = 8,
- }
-
- /// <summary>
- /// Specify what is considered used implicitly when marked
- /// with <see cref="MeansImplicitUseAttribute"/> or <see cref="UsedImplicitlyAttribute"/>.
- /// </summary>
- [Flags]
- public enum ImplicitUseTargetFlags
- {
- Default = Itself,
- Itself = 1,
- /// <summary>Members of entity marked with attribute are considered used.</summary>
- Members = 2,
- /// <summary>Entity marked with attribute and all its members considered used.</summary>
- WithMembers = Itself | Members
- }
-
- /// <summary>
- /// This attribute is intended to mark publicly available API
- /// which should not be removed and so is treated as used.
- /// </summary>
- [MeansImplicitUse(ImplicitUseTargetFlags.WithMembers)]
- public sealed class PublicAPIAttribute : Attribute
- {
- public PublicAPIAttribute() { }
-
- public PublicAPIAttribute([NotNull] string comment)
- {
- Comment = comment;
- }
-
- [CanBeNull] public string Comment { get; private set; }
- }
-
- /// <summary>
- /// Tells code analysis engine if the parameter is completely handled when the invoked method is on stack.
- /// If the parameter is a delegate, indicates that delegate is executed while the method is executed.
- /// If the parameter is an enumerable, indicates that it is enumerated while the method is executed.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class InstantHandleAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that a method does not make any observable state changes.
- /// The same as <c>System.Diagnostics.Contracts.PureAttribute</c>.
- /// </summary>
- /// <example><code>
- /// [Pure] int Multiply(int x, int y) => x * y;
- ///
- /// void M() {
- /// Multiply(123, 42); // Waring: Return value of pure method is not used
- /// }
- /// </code></example>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class PureAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that the return value of method invocation must be used.
- /// </summary>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class MustUseReturnValueAttribute : Attribute
- {
- public MustUseReturnValueAttribute() { }
-
- public MustUseReturnValueAttribute([NotNull] string justification)
- {
- Justification = justification;
- }
-
- [CanBeNull] public string Justification { get; private set; }
- }
-
- /// <summary>
- /// Indicates the type member or parameter of some type, that should be used instead of all other ways
- /// to get the value that type. This annotation is useful when you have some "context" value evaluated
- /// and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one.
- /// </summary>
- /// <example><code>
- /// class Foo {
- /// [ProvidesContext] IBarService _barService = ...;
- ///
- /// void ProcessNode(INode node) {
- /// DoSomething(node, node.GetGlobalServices().Bar);
- /// // ^ Warning: use value of '_barService' field
- /// }
- /// }
- /// </code></example>
- [AttributeUsage(
- AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.Method |
- AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct | AttributeTargets.GenericParameter)]
- public sealed class ProvidesContextAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that a parameter is a path to a file or a folder within a web project.
- /// Path can be relative or absolute, starting from web root (~).
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class PathReferenceAttribute : Attribute
- {
- public PathReferenceAttribute() { }
-
- public PathReferenceAttribute([NotNull, PathReference] string basePath)
- {
- BasePath = basePath;
- }
-
- [CanBeNull] public string BasePath { get; private set; }
- }
-
- /// <summary>
- /// An extension method marked with this attribute is processed by ReSharper code completion
- /// as a 'Source Template'. When extension method is completed over some expression, it's source code
- /// is automatically expanded like a template at call site.
- /// </summary>
- /// <remarks>
- /// Template method body can contain valid source code and/or special comments starting with '$'.
- /// Text inside these comments is added as source code when the template is applied. Template parameters
- /// can be used either as additional method parameters or as identifiers wrapped in two '$' signs.
- /// Use the <see cref="MacroAttribute"/> attribute to specify macros for parameters.
- /// </remarks>
- /// <example>
- /// In this example, the 'forEach' method is a source template available over all values
- /// of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block:
- /// <code>
- /// [SourceTemplate]
- /// public static void forEach&lt;T&gt;(this IEnumerable&lt;T&gt; xs) {
- /// foreach (var x in xs) {
- /// //$ $END$
- /// }
- /// }
- /// </code>
- /// </example>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class SourceTemplateAttribute : Attribute { }
-
- /// <summary>
- /// Allows specifying a macro for a parameter of a <see cref="SourceTemplateAttribute">source template</see>.
- /// </summary>
- /// <remarks>
- /// You can apply the attribute on the whole method or on any of its additional parameters. The macro expression
- /// is defined in the <see cref="MacroAttribute.Expression"/> property. When applied on a method, the target
- /// template parameter is defined in the <see cref="MacroAttribute.Target"/> property. To apply the macro silently
- /// for the parameter, set the <see cref="MacroAttribute.Editable"/> property value = -1.
- /// </remarks>
- /// <example>
- /// Applying the attribute on a source template method:
- /// <code>
- /// [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")]
- /// public static void forEach&lt;T&gt;(this IEnumerable&lt;T&gt; collection) {
- /// foreach (var item in collection) {
- /// //$ $END$
- /// }
- /// }
- /// </code>
- /// Applying the attribute on a template method parameter:
- /// <code>
- /// [SourceTemplate]
- /// public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) {
- /// /*$ var $x$Id = "$newguid$" + x.ToString();
- /// x.DoSomething($x$Id); */
- /// }
- /// </code>
- /// </example>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method, AllowMultiple = true)]
- public sealed class MacroAttribute : Attribute
- {
+ /// <example>
+ /// <code>
+ /// [CanBeNull] object Test() => null;
+ ///
+ /// void UseTest() {
+ /// var p = Test();
+ /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException'
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(
+ AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
+ AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event |
+ AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)]
+ public sealed class CanBeNullAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that the value of the marked element could never be <c>null</c>.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [NotNull] object Foo() {
+ /// return null; // Warning: Possible 'null' assignment
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(
+ AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
+ AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event |
+ AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)]
+ public sealed class NotNullAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task
+ /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property
+ /// or of the Lazy.Value property can never be null.
+ /// </summary>
+ [AttributeUsage(
+ AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
+ AttributeTargets.Delegate | AttributeTargets.Field)]
+ public sealed class ItemNotNullAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task
+ /// and Lazy classes to indicate that the value of a collection item, of the Task.Result property
+ /// or of the Lazy.Value property can be null.
+ /// </summary>
+ [AttributeUsage(
+ AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property |
+ AttributeTargets.Delegate | AttributeTargets.Field)]
+ public sealed class ItemCanBeNullAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that the marked method builds string by format pattern and (optional) arguments.
+ /// Parameter, which contains format string, should be given in constructor. The format string
+ /// should be in <see cref="string.Format(IFormatProvider,string,object[])" />-like form.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [StringFormatMethod("message")]
+ /// void ShowError(string message, params object[] args) { /* do something */ }
+ ///
+ /// void Foo() {
+ /// ShowError("Failed: {0}"); // Warning: Non-existing argument in format string
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(
+ AttributeTargets.Constructor | AttributeTargets.Method |
+ AttributeTargets.Property | AttributeTargets.Delegate)]
+ public sealed class StringFormatMethodAttribute : Attribute
+ {
+ /// <param name="formatParameterName">
+ /// Specifies which parameter of an annotated method should be treated as format-string
+ /// </param>
+ public StringFormatMethodAttribute([NotNull] string formatParameterName)
+ {
+ FormatParameterName = formatParameterName;
+ }
+
+ [NotNull]
+ public string FormatParameterName { get; private set; }
+ }
+
/// <summary>
- /// Allows specifying a macro that will be executed for a <see cref="SourceTemplateAttribute">source template</see>
- /// parameter when the template is expanded.
+ /// For a parameter that is expected to be one of the limited set of values.
+ /// Specify fields of which type should be used as values for this parameter.
/// </summary>
- [CanBeNull] public string Expression { get; set; }
+ [AttributeUsage(
+ AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field,
+ AllowMultiple = true)]
+ public sealed class ValueProviderAttribute : Attribute
+ {
+ public ValueProviderAttribute([NotNull] string name)
+ {
+ Name = name;
+ }
+
+ [NotNull]
+ public string Name { get; private set; }
+ }
/// <summary>
- /// Allows specifying which occurrence of the target parameter becomes editable when the template is deployed.
+ /// Indicates that the function argument should be string literal and match one
+ /// of the parameters of the caller function. For example, ReSharper annotates
+ /// the parameter of <see cref="System.ArgumentNullException" />.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// void Foo(string param) {
+ /// if (param == null)
+ /// throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class InvokerParameterNameAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that the method is contained in a type that implements
+ /// <c>System.ComponentModel.INotifyPropertyChanged</c> interface and this method
+ /// is used to notify that some property value changed.
/// </summary>
/// <remarks>
- /// If the target parameter is used several times in the template, only one occurrence becomes editable;
- /// other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence,
- /// use values >= 0. To make the parameter non-editable when the template is expanded, use -1.
- /// </remarks>>
- public int Editable { get; set; }
+ /// The method should be non-static and conform to one of the supported signatures:
+ /// <list>
+ /// <item>
+ /// <c>NotifyChanged(string)</c>
+ /// </item>
+ /// <item>
+ /// <c>NotifyChanged(params string[])</c>
+ /// </item>
+ /// <item>
+ /// <c>NotifyChanged{T}(Expression{Func{T}})</c>
+ /// </item>
+ /// <item>
+ /// <c>NotifyChanged{T,U}(Expression{Func{T,U}})</c>
+ /// </item>
+ /// <item>
+ /// <c>SetProperty{T}(ref T, T, string)</c>
+ /// </item>
+ /// </list>
+ /// </remarks>
+ /// <example>
+ /// <code>
+ /// public class Foo : INotifyPropertyChanged {
+ /// public event PropertyChangedEventHandler PropertyChanged;
+ ///
+ /// [NotifyPropertyChangedInvocator]
+ /// protected virtual void NotifyChanged(string propertyName) { ... }
+ ///
+ /// string _name;
+ ///
+ /// public string Name {
+ /// get { return _name; }
+ /// set { _name = value; NotifyChanged("LastName"); /* Warning */ }
+ /// }
+ /// }
+ /// </code>
+ /// Examples of generated notifications:
+ /// <list>
+ /// <item>
+ /// <c>NotifyChanged("Property")</c>
+ /// </item>
+ /// <item>
+ /// <c>NotifyChanged(() =&gt; Property)</c>
+ /// </item>
+ /// <item>
+ /// <c>NotifyChanged((VM x) =&gt; x.Property)</c>
+ /// </item>
+ /// <item>
+ /// <c>SetProperty(ref myField, value, "Property")</c>
+ /// </item>
+ /// </list>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute
+ {
+ public NotifyPropertyChangedInvocatorAttribute()
+ {
+ }
+
+ public NotifyPropertyChangedInvocatorAttribute([NotNull] string parameterName)
+ {
+ ParameterName = parameterName;
+ }
+
+ [CanBeNull]
+ public string ParameterName { get; private set; }
+ }
/// <summary>
- /// Identifies the target parameter of a <see cref="SourceTemplateAttribute">source template</see> if the
- /// <see cref="MacroAttribute"/> is applied on a template method.
+ /// Describes dependency between method input and output.
/// </summary>
- [CanBeNull] public string Target { get; set; }
- }
+ /// <syntax>
+ /// <p>Function Definition Table syntax:</p>
+ /// <list>
+ /// <item>FDT ::= FDTRow [;FDTRow]*</item>
+ /// <item>FDTRow ::= Input =&gt; Output | Output &lt;= Input</item>
+ /// <item>Input ::= ParameterName: Value [, Input]*</item>
+ /// <item>Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
+ /// <item>Value ::= true | false | null | notnull | canbenull</item>
+ /// </list>
+ /// If method has single input parameter, it's name could be omitted.<br />
+ /// Using <c>halt</c> (or <c>void</c>/<c>nothing</c>, which is the same) for method output
+ /// means that the methos doesn't return normally (throws or terminates the process).<br />
+ /// Value <c>canbenull</c> is only applicable for output parameters.<br />
+ /// You can use multiple <c>[ContractAnnotation]</c> for each FDT row, or use single attribute
+ /// with rows separated by semicolon. There is no notion of order rows, all rows are checked
+ /// for applicability and applied per each program state tracked by R# analysis.<br />
+ /// </syntax>
+ /// <examples>
+ /// <list>
+ /// <item>
+ /// <code>
+ /// [ContractAnnotation("=&gt; halt")]
+ /// public void TerminationMethod()
+ /// </code>
+ /// </item>
+ /// <item>
+ /// <code>
+ /// [ContractAnnotation("halt &lt;= condition: false")]
+ /// public void Assert(bool condition, string text) // regular assertion method
+ /// </code>
+ /// </item>
+ /// <item>
+ /// <code>
+ /// [ContractAnnotation("s:null =&gt; true")]
+ /// public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()
+ /// </code>
+ /// </item>
+ /// <item>
+ /// <code>
+ /// // A method that returns null if the parameter is null,
+ /// // and not null if the parameter is not null
+ /// [ContractAnnotation("null =&gt; null; notnull =&gt; notnull")]
+ /// public object Transform(object data)
+ /// </code>
+ /// </item>
+ /// <item>
+ /// <code>
+ /// [ContractAnnotation("=&gt; true, result: notnull; =&gt; false, result: null")]
+ /// public bool TryParse(string s, out Person result)
+ /// </code>
+ /// </item>
+ /// </list>
+ /// </examples>
+ [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
+ public sealed class ContractAnnotationAttribute : Attribute
+ {
+ public ContractAnnotationAttribute([NotNull] string contract)
+ : this(contract, false)
+ {
+ }
+
+ public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates)
+ {
+ Contract = contract;
+ ForceFullStates = forceFullStates;
+ }
+
+ [NotNull]
+ public string Contract { get; private set; }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute
- {
- public AspMvcAreaMasterLocationFormatAttribute([NotNull] string format)
+ public bool ForceFullStates { get; private set; }
+ }
+
+ /// <summary>
+ /// Indicates that marked element should be localized or not.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [LocalizationRequiredAttribute(true)]
+ /// class Foo {
+ /// string str = "my string"; // Warning: Localizable string
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.All)]
+ public sealed class LocalizationRequiredAttribute : Attribute
{
- Format = format;
+ public LocalizationRequiredAttribute() : this(true)
+ {
+ }
+
+ public LocalizationRequiredAttribute(bool required)
+ {
+ Required = required;
+ }
+
+ public bool Required { get; private set; }
}
- [NotNull] public string Format { get; private set; }
- }
+ /// <summary>
+ /// Indicates that the value of the marked type (or its derivatives)
+ /// cannot be compared using '==' or '!=' operators and <c>Equals()</c>
+ /// should be used instead. However, using '==' or '!=' for comparison
+ /// with <c>null</c> is always permitted.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [CannotApplyEqualityOperator]
+ /// class NoEquality { }
+ ///
+ /// class UsesNoEquality {
+ /// void Test() {
+ /// var ca1 = new NoEquality();
+ /// var ca2 = new NoEquality();
+ /// if (ca1 != null) { // OK
+ /// bool condition = ca1 == ca2; // Warning
+ /// }
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class | AttributeTargets.Struct)]
+ public sealed class CannotApplyEqualityOperatorAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute
- {
- public AspMvcAreaPartialViewLocationFormatAttribute([NotNull] string format)
+ /// <summary>
+ /// When applied to a target attribute, specifies a requirement for any type marked
+ /// with the target attribute to implement or inherit specific type or types.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [BaseTypeRequired(typeof(IComponent)] // Specify requirement
+ /// class ComponentAttribute : Attribute { }
+ ///
+ /// [Component] // ComponentAttribute requires implementing IComponent interface
+ /// class MyComponent : IComponent { }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+ [BaseTypeRequired(typeof(Attribute))]
+ public sealed class BaseTypeRequiredAttribute : Attribute
{
- Format = format;
+ public BaseTypeRequiredAttribute([NotNull] Type baseType)
+ {
+ BaseType = baseType;
+ }
+
+ [NotNull]
+ public Type BaseType { get; private set; }
}
- [NotNull] public string Format { get; private set; }
- }
+ /// <summary>
+ /// Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
+ /// so this symbol will not be marked as unused (as well as by other usage inspections).
+ /// </summary>
+ [AttributeUsage(AttributeTargets.All)]
+ public sealed class UsedImplicitlyAttribute : Attribute
+ {
+ public UsedImplicitlyAttribute()
+ : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
+ {
+ }
+
+ public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags)
+ : this(useKindFlags, ImplicitUseTargetFlags.Default)
+ {
+ }
+
+ public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags)
+ : this(ImplicitUseKindFlags.Default, targetFlags)
+ {
+ }
+
+ public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
+ {
+ UseKindFlags = useKindFlags;
+ TargetFlags = targetFlags;
+ }
+
+ public ImplicitUseKindFlags UseKindFlags { get; private set; }
+
+ public ImplicitUseTargetFlags TargetFlags { get; private set; }
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcAreaViewLocationFormatAttribute : Attribute
- {
- public AspMvcAreaViewLocationFormatAttribute([NotNull] string format)
+ /// <summary>
+ /// Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes
+ /// as unused (as well as by other usage inspections)
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.GenericParameter)]
+ public sealed class MeansImplicitUseAttribute : Attribute
{
- Format = format;
+ public MeansImplicitUseAttribute()
+ : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default)
+ {
+ }
+
+ public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags)
+ : this(useKindFlags, ImplicitUseTargetFlags.Default)
+ {
+ }
+
+ public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags)
+ : this(ImplicitUseKindFlags.Default, targetFlags)
+ {
+ }
+
+ public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags)
+ {
+ UseKindFlags = useKindFlags;
+ TargetFlags = targetFlags;
+ }
+
+ [UsedImplicitly]
+ public ImplicitUseKindFlags UseKindFlags { get; private set; }
+
+ [UsedImplicitly]
+ public ImplicitUseTargetFlags TargetFlags { get; private set; }
}
- [NotNull] public string Format { get; private set; }
- }
+ [Flags]
+ public enum ImplicitUseKindFlags
+ {
+ Default = Access | Assign | InstantiatedWithFixedConstructorSignature,
+
+ /// <summary>Only entity marked with attribute considered used.</summary>
+ Access = 1,
+
+ /// <summary>Indicates implicit assignment to a member.</summary>
+ Assign = 2,
+
+ /// <summary>
+ /// Indicates implicit instantiation of a type with fixed constructor signature.
+ /// That means any unused constructor parameters won't be reported as such.
+ /// </summary>
+ InstantiatedWithFixedConstructorSignature = 4,
+
+ /// <summary>Indicates implicit instantiation of a type.</summary>
+ InstantiatedNoFixedConstructorSignature = 8
+ }
+
+ /// <summary>
+ /// Specify what is considered used implicitly when marked
+ /// with <see cref="MeansImplicitUseAttribute" /> or <see cref="UsedImplicitlyAttribute" />.
+ /// </summary>
+ [Flags]
+ public enum ImplicitUseTargetFlags
+ {
+ Default = Itself,
+ Itself = 1,
+
+ /// <summary>Members of entity marked with attribute are considered used.</summary>
+ Members = 2,
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcMasterLocationFormatAttribute : Attribute
- {
- public AspMvcMasterLocationFormatAttribute([NotNull] string format)
+ /// <summary>Entity marked with attribute and all its members considered used.</summary>
+ WithMembers = Itself | Members
+ }
+
+ /// <summary>
+ /// This attribute is intended to mark publicly available API
+ /// which should not be removed and so is treated as used.
+ /// </summary>
+ [MeansImplicitUse(ImplicitUseTargetFlags.WithMembers)]
+ public sealed class PublicAPIAttribute : Attribute
{
- Format = format;
+ public PublicAPIAttribute()
+ {
+ }
+
+ public PublicAPIAttribute([NotNull] string comment)
+ {
+ Comment = comment;
+ }
+
+ [CanBeNull]
+ public string Comment { get; private set; }
}
- [NotNull] public string Format { get; private set; }
- }
+ /// <summary>
+ /// Tells code analysis engine if the parameter is completely handled when the invoked method is on stack.
+ /// If the parameter is a delegate, indicates that delegate is executed while the method is executed.
+ /// If the parameter is an enumerable, indicates that it is enumerated while the method is executed.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class InstantHandleAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcPartialViewLocationFormatAttribute : Attribute
- {
- public AspMvcPartialViewLocationFormatAttribute([NotNull] string format)
+ /// <summary>
+ /// Indicates that a method does not make any observable state changes.
+ /// The same as <c>System.Diagnostics.Contracts.PureAttribute</c>.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [Pure] int Multiply(int x, int y) => x * y;
+ ///
+ /// void M() {
+ /// Multiply(123, 42); // Waring: Return value of pure method is not used
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class PureAttribute : Attribute
{
- Format = format;
}
- [NotNull] public string Format { get; private set; }
- }
+ /// <summary>
+ /// Indicates that the return value of method invocation must be used.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class MustUseReturnValueAttribute : Attribute
+ {
+ public MustUseReturnValueAttribute()
+ {
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class AspMvcViewLocationFormatAttribute : Attribute
- {
- public AspMvcViewLocationFormatAttribute([NotNull] string format)
+ public MustUseReturnValueAttribute([NotNull] string justification)
+ {
+ Justification = justification;
+ }
+
+ [CanBeNull]
+ public string Justification { get; private set; }
+ }
+
+ /// <summary>
+ /// Indicates the type member or parameter of some type, that should be used instead of all other ways
+ /// to get the value that type. This annotation is useful when you have some "context" value evaluated
+ /// and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// class Foo {
+ /// [ProvidesContext] IBarService _barService = ...;
+ ///
+ /// void ProcessNode(INode node) {
+ /// DoSomething(node, node.GetGlobalServices().Bar);
+ /// // ^ Warning: use value of '_barService' field
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(
+ AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.Method |
+ AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct |
+ AttributeTargets.GenericParameter)]
+ public sealed class ProvidesContextAttribute : Attribute
{
- Format = format;
}
- [NotNull] public string Format { get; private set; }
- }
+ /// <summary>
+ /// Indicates that a parameter is a path to a file or a folder within a web project.
+ /// Path can be relative or absolute, starting from web root (~).
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class PathReferenceAttribute : Attribute
+ {
+ public PathReferenceAttribute()
+ {
+ }
+
+ public PathReferenceAttribute([NotNull] [PathReference] string basePath)
+ {
+ BasePath = basePath;
+ }
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
- /// is an MVC action. If applied to a method, the MVC action name is calculated
- /// implicitly from the context. Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class AspMvcActionAttribute : Attribute
- {
- public AspMvcActionAttribute() { }
+ [CanBeNull]
+ public string BasePath { get; private set; }
+ }
- public AspMvcActionAttribute([NotNull] string anonymousProperty)
+ /// <summary>
+ /// An extension method marked with this attribute is processed by ReSharper code completion
+ /// as a 'Source Template'. When extension method is completed over some expression, it's source code
+ /// is automatically expanded like a template at call site.
+ /// </summary>
+ /// <remarks>
+ /// Template method body can contain valid source code and/or special comments starting with '$'.
+ /// Text inside these comments is added as source code when the template is applied. Template parameters
+ /// can be used either as additional method parameters or as identifiers wrapped in two '$' signs.
+ /// Use the <see cref="MacroAttribute" /> attribute to specify macros for parameters.
+ /// </remarks>
+ /// <example>
+ /// In this example, the 'forEach' method is a source template available over all values
+ /// of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block:
+ /// <code>
+ /// [SourceTemplate]
+ /// public static void forEach&lt;T&gt;(this IEnumerable&lt;T&gt; xs) {
+ /// foreach (var x in xs) {
+ /// //$ $END$
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class SourceTemplateAttribute : Attribute
{
- AnonymousProperty = anonymousProperty;
}
- [CanBeNull] public string AnonymousProperty { get; private set; }
- }
+ /// <summary>
+ /// Allows specifying a macro for a parameter of a <see cref="SourceTemplateAttribute">source template</see>.
+ /// </summary>
+ /// <remarks>
+ /// You can apply the attribute on the whole method or on any of its additional parameters. The macro expression
+ /// is defined in the <see cref="MacroAttribute.Expression" /> property. When applied on a method, the target
+ /// template parameter is defined in the <see cref="MacroAttribute.Target" /> property. To apply the macro silently
+ /// for the parameter, set the <see cref="MacroAttribute.Editable" /> property value = -1.
+ /// </remarks>
+ /// <example>
+ /// Applying the attribute on a source template method:
+ /// <code>
+ /// [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")]
+ /// public static void forEach&lt;T&gt;(this IEnumerable&lt;T&gt; collection) {
+ /// foreach (var item in collection) {
+ /// //$ $END$
+ /// }
+ /// }
+ /// </code>
+ /// Applying the attribute on a template method parameter:
+ /// <code>
+ /// [SourceTemplate]
+ /// public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) {
+ /// /*$ var $x$Id = "$newguid$" + x.ToString();
+ /// x.DoSomething($x$Id); */
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method, AllowMultiple = true)]
+ public sealed class MacroAttribute : Attribute
+ {
+ /// <summary>
+ /// Allows specifying a macro that will be executed for a <see cref="SourceTemplateAttribute">source template</see>
+ /// parameter when the template is expanded.
+ /// </summary>
+ [CanBeNull]
+ public string Expression { get; set; }
+
+ /// <summary>
+ /// Allows specifying which occurrence of the target parameter becomes editable when the template is deployed.
+ /// </summary>
+ /// <remarks>
+ /// If the target parameter is used several times in the template, only one occurrence becomes editable;
+ /// other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence,
+ /// use values >= 0. To make the parameter non-editable when the template is expanded, use -1.
+ /// </remarks>
+ /// >
+ public int Editable { get; set; }
+
+ /// <summary>
+ /// Identifies the target parameter of a <see cref="SourceTemplateAttribute">source template</see> if the
+ /// <see cref="MacroAttribute" /> is applied on a template method.
+ /// </summary>
+ [CanBeNull]
+ public string Target { get; set; }
+ }
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC area.
- /// Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcAreaAttribute : Attribute
- {
- public AspMvcAreaAttribute() { }
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute
+ {
+ public AspMvcAreaMasterLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
- public AspMvcAreaAttribute([NotNull] string anonymousProperty)
- {
- AnonymousProperty = anonymousProperty;
+ [NotNull]
+ public string Format { get; private set; }
}
- [CanBeNull] public string AnonymousProperty { get; private set; }
- }
-
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is
- /// an MVC controller. If applied to a method, the MVC controller name is calculated
- /// implicitly from the context. Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class AspMvcControllerAttribute : Attribute
- {
- public AspMvcControllerAttribute() { }
-
- public AspMvcControllerAttribute([NotNull] string anonymousProperty)
- {
- AnonymousProperty = anonymousProperty;
- }
-
- [CanBeNull] public string AnonymousProperty { get; private set; }
- }
-
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute
- /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcMasterAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute
- /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, Object)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcModelTypeAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC
- /// partial view. If applied to a method, the MVC partial view name is calculated implicitly
- /// from the context. Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class AspMvcPartialViewAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method.
- /// </summary>
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
- public sealed class AspMvcSuppressViewErrorAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC display template.
- /// Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcDisplayTemplateAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template.
- /// Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcEditorTemplateAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. Indicates that a parameter is an MVC template.
- /// Use this attribute for custom wrappers similar to
- /// <c>System.ComponentModel.DataAnnotations.UIHintAttribute(System.String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcTemplateAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
- /// is an MVC view component. If applied to a method, the MVC view name is calculated implicitly
- /// from the context. Use this attribute for custom wrappers similar to
- /// <c>System.Web.Mvc.Controller.View(Object)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class AspMvcViewAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
- /// is an MVC view component name.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AspMvcViewComponentAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
- /// is an MVC view component view. If applied to a method, the MVC view component view name is default.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class AspMvcViewComponentViewAttribute : Attribute { }
-
- /// <summary>
- /// ASP.NET MVC attribute. When applied to a parameter of an attribute,
- /// indicates that this parameter is an MVC action name.
- /// </summary>
- /// <example><code>
- /// [ActionName("Foo")]
- /// public ActionResult Login(string returnUrl) {
- /// ViewBag.ReturnUrl = Url.Action("Foo"); // OK
- /// return RedirectToAction("Bar"); // Error: Cannot resolve action
- /// }
- /// </code></example>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)]
- public sealed class AspMvcActionSelectorAttribute : Attribute { }
-
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field)]
- public sealed class HtmlElementAttributesAttribute : Attribute
- {
- public HtmlElementAttributesAttribute() { }
-
- public HtmlElementAttributesAttribute([NotNull] string name)
- {
- Name = name;
- }
-
- [CanBeNull] public string Name { get; private set; }
- }
-
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)]
- public sealed class HtmlAttributeValueAttribute : Attribute
- {
- public HtmlAttributeValueAttribute([NotNull] string name)
- {
- Name = name;
- }
-
- [NotNull] public string Name { get; private set; }
- }
-
- /// <summary>
- /// Razor attribute. Indicates that a parameter or a method is a Razor section.
- /// Use this attribute for custom wrappers similar to
- /// <c>System.Web.WebPages.WebPageBase.RenderSection(String)</c>.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
- public sealed class RazorSectionAttribute : Attribute { }
-
- /// <summary>
- /// Indicates how method, constructor invocation or property access
- /// over collection type affects content of the collection.
- /// </summary>
- [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Property)]
- public sealed class CollectionAccessAttribute : Attribute
- {
- public CollectionAccessAttribute(CollectionAccessType collectionAccessType)
- {
- CollectionAccessType = collectionAccessType;
- }
-
- public CollectionAccessType CollectionAccessType { get; private set; }
- }
-
- [Flags]
- public enum CollectionAccessType
- {
- /// <summary>Method does not use or modify content of the collection.</summary>
- None = 0,
- /// <summary>Method only reads content of the collection but does not modify it.</summary>
- Read = 1,
- /// <summary>Method can change content of the collection but does not add new elements.</summary>
- ModifyExistingContent = 2,
- /// <summary>Method can add new elements to the collection.</summary>
- UpdatedContent = ModifyExistingContent | 4
- }
-
- /// <summary>
- /// Indicates that the marked method is assertion method, i.e. it halts control flow if
- /// one of the conditions is satisfied. To set the condition, mark one of the parameters with
- /// <see cref="AssertionConditionAttribute"/> attribute.
- /// </summary>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class AssertionMethodAttribute : Attribute { }
-
- /// <summary>
- /// Indicates the condition parameter of the assertion method. The method itself should be
- /// marked by <see cref="AssertionMethodAttribute"/> attribute. The mandatory argument of
- /// the attribute is the assertion type.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class AssertionConditionAttribute : Attribute
- {
- public AssertionConditionAttribute(AssertionConditionType conditionType)
- {
- ConditionType = conditionType;
- }
-
- public AssertionConditionType ConditionType { get; private set; }
- }
-
- /// <summary>
- /// Specifies assertion type. If the assertion method argument satisfies the condition,
- /// then the execution continues. Otherwise, execution is assumed to be halted.
- /// </summary>
- public enum AssertionConditionType
- {
- /// <summary>Marked parameter should be evaluated to true.</summary>
- IS_TRUE = 0,
- /// <summary>Marked parameter should be evaluated to false.</summary>
- IS_FALSE = 1,
- /// <summary>Marked parameter should be evaluated to null value.</summary>
- IS_NULL = 2,
- /// <summary>Marked parameter should be evaluated to not null value.</summary>
- IS_NOT_NULL = 3,
- }
-
- /// <summary>
- /// Indicates that the marked method unconditionally terminates control flow execution.
- /// For example, it could unconditionally throw exception.
- /// </summary>
- [Obsolete("Use [ContractAnnotation('=> halt')] instead")]
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class TerminatesProgramAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select,
- /// .Where). This annotation allows inference of [InstantHandle] annotation for parameters
- /// of delegate type by analyzing LINQ method chains.
- /// </summary>
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class LinqTunnelAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that IEnumerable, passed as parameter, is not enumerated.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class NoEnumerationAttribute : Attribute { }
-
- /// <summary>
- /// Indicates that parameter is regular expression pattern.
- /// </summary>
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class RegexPatternAttribute : Attribute { }
-
- /// <summary>
- /// Prevents the Member Reordering feature from tossing members of the marked class.
- /// </summary>
- /// <remarks>
- /// The attribute must be mentioned in your member reordering patterns
- /// </remarks>
- [AttributeUsage(
- AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct | AttributeTargets.Enum)]
- public sealed class NoReorderAttribute : Attribute { }
-
- /// <summary>
- /// XAML attribute. Indicates the type that has <c>ItemsSource</c> property and should be treated
- /// as <c>ItemsControl</c>-derived type, to enable inner items <c>DataContext</c> type resolve.
- /// </summary>
- [AttributeUsage(AttributeTargets.Class)]
- public sealed class XamlItemsControlAttribute : Attribute { }
-
- /// <summary>
- /// XAML attribute. Indicates the property of some <c>BindingBase</c>-derived type, that
- /// is used to bind some item of <c>ItemsControl</c>-derived type. This annotation will
- /// enable the <c>DataContext</c> type resolve for XAML bindings for such properties.
- /// </summary>
- /// <remarks>
- /// Property should have the tree ancestor of the <c>ItemsControl</c> type or
- /// marked with the <see cref="XamlItemsControlAttribute"/> attribute.
- /// </remarks>
- [AttributeUsage(AttributeTargets.Property)]
- public sealed class XamlItemBindingOfItemsControlAttribute : Attribute { }
-
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
- public sealed class AspChildControlTypeAttribute : Attribute
- {
- public AspChildControlTypeAttribute([NotNull] string tagName, [NotNull] Type controlType)
- {
- TagName = tagName;
- ControlType = controlType;
- }
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute
+ {
+ public AspMvcAreaPartialViewLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
- [NotNull] public string TagName { get; private set; }
+ [NotNull]
+ public string Format { get; private set; }
+ }
- [NotNull] public Type ControlType { get; private set; }
- }
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcAreaViewLocationFormatAttribute : Attribute
+ {
+ public AspMvcAreaViewLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
- public sealed class AspDataFieldAttribute : Attribute { }
+ [NotNull]
+ public string Format { get; private set; }
+ }
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
- public sealed class AspDataFieldsAttribute : Attribute { }
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcMasterLocationFormatAttribute : Attribute
+ {
+ public AspMvcMasterLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
- [AttributeUsage(AttributeTargets.Property)]
- public sealed class AspMethodPropertyAttribute : Attribute { }
+ [NotNull]
+ public string Format { get; private set; }
+ }
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
- public sealed class AspRequiredAttributeAttribute : Attribute
- {
- public AspRequiredAttributeAttribute([NotNull] string attribute)
- {
- Attribute = attribute;
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcPartialViewLocationFormatAttribute : Attribute
+ {
+ public AspMvcPartialViewLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
+
+ [NotNull]
+ public string Format { get; private set; }
}
- [NotNull] public string Attribute { get; private set; }
- }
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class AspMvcViewLocationFormatAttribute : Attribute
+ {
+ public AspMvcViewLocationFormatAttribute([NotNull] string format)
+ {
+ Format = format;
+ }
- [AttributeUsage(AttributeTargets.Property)]
- public sealed class AspTypePropertyAttribute : Attribute
- {
- public bool CreateConstructorReferences { get; private set; }
+ [NotNull]
+ public string Format { get; private set; }
+ }
- public AspTypePropertyAttribute(bool createConstructorReferences)
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
+ /// is an MVC action. If applied to a method, the MVC action name is calculated
+ /// implicitly from the context. Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class AspMvcActionAttribute : Attribute
{
- CreateConstructorReferences = createConstructorReferences;
+ public AspMvcActionAttribute()
+ {
+ }
+
+ public AspMvcActionAttribute([NotNull] string anonymousProperty)
+ {
+ AnonymousProperty = anonymousProperty;
+ }
+
+ [CanBeNull]
+ public string AnonymousProperty { get; private set; }
}
- }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class RazorImportNamespaceAttribute : Attribute
- {
- public RazorImportNamespaceAttribute([NotNull] string name)
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC area.
+ /// Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcAreaAttribute : Attribute
{
- Name = name;
+ public AspMvcAreaAttribute()
+ {
+ }
+
+ public AspMvcAreaAttribute([NotNull] string anonymousProperty)
+ {
+ AnonymousProperty = anonymousProperty;
+ }
+
+ [CanBeNull]
+ public string AnonymousProperty { get; private set; }
}
- [NotNull] public string Name { get; private set; }
- }
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is
+ /// an MVC controller. If applied to a method, the MVC controller name is calculated
+ /// implicitly from the context. Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class AspMvcControllerAttribute : Attribute
+ {
+ public AspMvcControllerAttribute()
+ {
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class RazorInjectionAttribute : Attribute
- {
- public RazorInjectionAttribute([NotNull] string type, [NotNull] string fieldName)
+ public AspMvcControllerAttribute([NotNull] string anonymousProperty)
+ {
+ AnonymousProperty = anonymousProperty;
+ }
+
+ [CanBeNull]
+ public string AnonymousProperty { get; private set; }
+ }
+
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute
+ /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcMasterAttribute : Attribute
{
- Type = type;
- FieldName = fieldName;
}
- [NotNull] public string Type { get; private set; }
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute
+ /// for custom wrappers similar to <c>System.Web.Mvc.Controller.View(String, Object)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcModelTypeAttribute : Attribute
+ {
+ }
- [NotNull] public string FieldName { get; private set; }
- }
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC
+ /// partial view. If applied to a method, the MVC partial view name is calculated implicitly
+ /// from the context. Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class AspMvcPartialViewAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
- public sealed class RazorDirectiveAttribute : Attribute
- {
- public RazorDirectiveAttribute([NotNull] string directive)
+ /// <summary>
+ /// ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
+ public sealed class AspMvcSuppressViewErrorAttribute : Attribute
{
- Directive = directive;
}
- [NotNull] public string Directive { get; private set; }
- }
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC display template.
+ /// Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcDisplayTemplateAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class RazorHelperCommonAttribute : Attribute { }
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template.
+ /// Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcEditorTemplateAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Property)]
- public sealed class RazorLayoutAttribute : Attribute { }
+ /// <summary>
+ /// ASP.NET MVC attribute. Indicates that a parameter is an MVC template.
+ /// Use this attribute for custom wrappers similar to
+ /// <c>System.ComponentModel.DataAnnotations.UIHintAttribute(System.String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcTemplateAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class RazorWriteLiteralMethodAttribute : Attribute { }
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
+ /// is an MVC view component. If applied to a method, the MVC view name is calculated implicitly
+ /// from the context. Use this attribute for custom wrappers similar to
+ /// <c>System.Web.Mvc.Controller.View(Object)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class AspMvcViewAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
+ /// is an MVC view component name.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AspMvcViewComponentAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
+ /// is an MVC view component view. If applied to a method, the MVC view component view name is default.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class AspMvcViewComponentViewAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// ASP.NET MVC attribute. When applied to a parameter of an attribute,
+ /// indicates that this parameter is an MVC action name.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// [ActionName("Foo")]
+ /// public ActionResult Login(string returnUrl) {
+ /// ViewBag.ReturnUrl = Url.Action("Foo"); // OK
+ /// return RedirectToAction("Bar"); // Error: Cannot resolve action
+ /// }
+ /// </code>
+ /// </example>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)]
+ public sealed class AspMvcActionSelectorAttribute : Attribute
+ {
+ }
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class RazorWriteMethodAttribute : Attribute { }
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property | AttributeTargets.Field)]
+ public sealed class HtmlElementAttributesAttribute : Attribute
+ {
+ public HtmlElementAttributesAttribute()
+ {
+ }
+
+ public HtmlElementAttributesAttribute([NotNull] string name)
+ {
+ Name = name;
+ }
+
+ [CanBeNull]
+ public string Name { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property)]
+ public sealed class HtmlAttributeValueAttribute : Attribute
+ {
+ public HtmlAttributeValueAttribute([NotNull] string name)
+ {
+ Name = name;
+ }
+
+ [NotNull]
+ public string Name { get; private set; }
+ }
+
+ /// <summary>
+ /// Razor attribute. Indicates that a parameter or a method is a Razor section.
+ /// Use this attribute for custom wrappers similar to
+ /// <c>System.Web.WebPages.WebPageBase.RenderSection(String)</c>.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)]
+ public sealed class RazorSectionAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates how method, constructor invocation or property access
+ /// over collection type affects content of the collection.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Property)]
+ public sealed class CollectionAccessAttribute : Attribute
+ {
+ public CollectionAccessAttribute(CollectionAccessType collectionAccessType)
+ {
+ CollectionAccessType = collectionAccessType;
+ }
+
+ public CollectionAccessType CollectionAccessType { get; private set; }
+ }
- [AttributeUsage(AttributeTargets.Parameter)]
- public sealed class RazorWriteMethodParameterAttribute : Attribute { }
+ [Flags]
+ public enum CollectionAccessType
+ {
+ /// <summary>Method does not use or modify content of the collection.</summary>
+ None = 0,
+
+ /// <summary>Method only reads content of the collection but does not modify it.</summary>
+ Read = 1,
+
+ /// <summary>Method can change content of the collection but does not add new elements.</summary>
+ ModifyExistingContent = 2,
+
+ /// <summary>Method can add new elements to the collection.</summary>
+ UpdatedContent = ModifyExistingContent | 4
+ }
+
+ /// <summary>
+ /// Indicates that the marked method is assertion method, i.e. it halts control flow if
+ /// one of the conditions is satisfied. To set the condition, mark one of the parameters with
+ /// <see cref="AssertionConditionAttribute" /> attribute.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class AssertionMethodAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates the condition parameter of the assertion method. The method itself should be
+ /// marked by <see cref="AssertionMethodAttribute" /> attribute. The mandatory argument of
+ /// the attribute is the assertion type.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class AssertionConditionAttribute : Attribute
+ {
+ public AssertionConditionAttribute(AssertionConditionType conditionType)
+ {
+ ConditionType = conditionType;
+ }
+
+ public AssertionConditionType ConditionType { get; private set; }
+ }
+
+ /// <summary>
+ /// Specifies assertion type. If the assertion method argument satisfies the condition,
+ /// then the execution continues. Otherwise, execution is assumed to be halted.
+ /// </summary>
+ public enum AssertionConditionType
+ {
+ /// <summary>Marked parameter should be evaluated to true.</summary>
+ IS_TRUE = 0,
+
+ /// <summary>Marked parameter should be evaluated to false.</summary>
+ IS_FALSE = 1,
+
+ /// <summary>Marked parameter should be evaluated to null value.</summary>
+ IS_NULL = 2,
+
+ /// <summary>Marked parameter should be evaluated to not null value.</summary>
+ IS_NOT_NULL = 3
+ }
+
+ /// <summary>
+ /// Indicates that the marked method unconditionally terminates control flow execution.
+ /// For example, it could unconditionally throw exception.
+ /// </summary>
+ [Obsolete("Use [ContractAnnotation('=> halt')] instead")]
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class TerminatesProgramAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select,
+ /// .Where). This annotation allows inference of [InstantHandle] annotation for parameters
+ /// of delegate type by analyzing LINQ method chains.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class LinqTunnelAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that IEnumerable, passed as parameter, is not enumerated.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class NoEnumerationAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Indicates that parameter is regular expression pattern.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class RegexPatternAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// Prevents the Member Reordering feature from tossing members of the marked class.
+ /// </summary>
+ /// <remarks>
+ /// The attribute must be mentioned in your member reordering patterns
+ /// </remarks>
+ [AttributeUsage(
+ AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Struct | AttributeTargets.Enum)]
+ public sealed class NoReorderAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// XAML attribute. Indicates the type that has <c>ItemsSource</c> property and should be treated
+ /// as <c>ItemsControl</c>-derived type, to enable inner items <c>DataContext</c> type resolve.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class)]
+ public sealed class XamlItemsControlAttribute : Attribute
+ {
+ }
+
+ /// <summary>
+ /// XAML attribute. Indicates the property of some <c>BindingBase</c>-derived type, that
+ /// is used to bind some item of <c>ItemsControl</c>-derived type. This annotation will
+ /// enable the <c>DataContext</c> type resolve for XAML bindings for such properties.
+ /// </summary>
+ /// <remarks>
+ /// Property should have the tree ancestor of the <c>ItemsControl</c> type or
+ /// marked with the <see cref="XamlItemsControlAttribute" /> attribute.
+ /// </remarks>
+ [AttributeUsage(AttributeTargets.Property)]
+ public sealed class XamlItemBindingOfItemsControlAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+ public sealed class AspChildControlTypeAttribute : Attribute
+ {
+ public AspChildControlTypeAttribute([NotNull] string tagName, [NotNull] Type controlType)
+ {
+ TagName = tagName;
+ ControlType = controlType;
+ }
+
+ [NotNull]
+ public string TagName { get; private set; }
+
+ [NotNull]
+ public Type ControlType { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
+ public sealed class AspDataFieldAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method)]
+ public sealed class AspDataFieldsAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Property)]
+ public sealed class AspMethodPropertyAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+ public sealed class AspRequiredAttributeAttribute : Attribute
+ {
+ public AspRequiredAttributeAttribute([NotNull] string attribute)
+ {
+ Attribute = attribute;
+ }
+
+ [NotNull]
+ public string Attribute { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Property)]
+ public sealed class AspTypePropertyAttribute : Attribute
+ {
+ public AspTypePropertyAttribute(bool createConstructorReferences)
+ {
+ CreateConstructorReferences = createConstructorReferences;
+ }
+
+ public bool CreateConstructorReferences { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class RazorImportNamespaceAttribute : Attribute
+ {
+ public RazorImportNamespaceAttribute([NotNull] string name)
+ {
+ Name = name;
+ }
+
+ [NotNull]
+ public string Name { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class RazorInjectionAttribute : Attribute
+ {
+ public RazorInjectionAttribute([NotNull] string type, [NotNull] string fieldName)
+ {
+ Type = type;
+ FieldName = fieldName;
+ }
+
+ [NotNull]
+ public string Type { get; private set; }
+
+ [NotNull]
+ public string FieldName { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class RazorDirectiveAttribute : Attribute
+ {
+ public RazorDirectiveAttribute([NotNull] string directive)
+ {
+ Directive = directive;
+ }
+
+ [NotNull]
+ public string Directive { get; private set; }
+ }
+
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class RazorHelperCommonAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Property)]
+ public sealed class RazorLayoutAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class RazorWriteLiteralMethodAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class RazorWriteMethodAttribute : Attribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Parameter)]
+ public sealed class RazorWriteMethodParameterAttribute : Attribute
+ {
+ }
} \ No newline at end of file
diff --git a/EventMaker/EventMaker/Properties/AssemblyInfo.cs b/EventMaker/EventMaker/Properties/AssemblyInfo.cs
index 98fb272..b1f79d4 100644
--- a/EventMaker/EventMaker/Properties/AssemblyInfo.cs
+++ b/EventMaker/EventMaker/Properties/AssemblyInfo.cs
@@ -1,10 +1,10 @@
using System.Reflection;
-using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
+
[assembly: AssemblyTitle("EventMaker")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
@@ -24,6 +24,7 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
+
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: ComVisible(false)] \ No newline at end of file
diff --git a/EventMaker/EventMaker/Properties/Default.rd.xml b/EventMaker/EventMaker/Properties/Default.rd.xml
index 80a960c..479eb76 100644
--- a/EventMaker/EventMaker/Properties/Default.rd.xml
+++ b/EventMaker/EventMaker/Properties/Default.rd.xml
@@ -22,8 +22,8 @@
the application package. The asterisks are not wildcards.
-->
<Assembly Name="*Application*" Dynamic="Required All" />
-
-
+
+
<!-- Add your application specific runtime directives here. -->
diff --git a/EventMaker/EventMaker/View/CreateEventPage.xaml b/EventMaker/EventMaker/View/CreateEventPage.xaml
index d42a6d7..b187633 100644
--- a/EventMaker/EventMaker/View/CreateEventPage.xaml
+++ b/EventMaker/EventMaker/View/CreateEventPage.xaml
@@ -57,4 +57,4 @@
</StackPanel>
</Grid>
-</Page>
+</Page> \ No newline at end of file
diff --git a/EventMaker/EventMaker/View/CreateEventPage.xaml.cs b/EventMaker/EventMaker/View/CreateEventPage.xaml.cs
index e6c4ece..b28a590 100644
--- a/EventMaker/EventMaker/View/CreateEventPage.xaml.cs
+++ b/EventMaker/EventMaker/View/CreateEventPage.xaml.cs
@@ -9,12 +9,14 @@ namespace EventMaker.View
public sealed partial class CreateEventPage
{
private readonly SystemNavigationManager _currentView = SystemNavigationManager.GetForCurrentView();
+
public CreateEventPage()
{
InitializeComponent();
_currentView.BackRequested += OnBackRequested;
_currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
}
+
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame.Navigate(typeof(EventPage));
@@ -23,16 +25,17 @@ namespace EventMaker.View
private void GoToEventPage(object sender, RoutedEventArgs e)
{
- bool allFilled = true;
+ var allFilled = true;
foreach (var control in EventForm.Children)
- {
- if (control is TextBox && string.IsNullOrWhiteSpace(((TextBox)control).Text))
+ if (control is TextBox && string.IsNullOrWhiteSpace(((TextBox) control).Text))
{
((TextBox) control).BorderBrush = new SolidColorBrush(Colors.Red);
allFilled = false;
}
- else if(control is TextBox)((TextBox)control).BorderBrush = new SolidColorBrush(Color.FromArgb(255,122,122,122));
- }
+ else if (control is TextBox)
+ {
+ ((TextBox) control).BorderBrush = new SolidColorBrush(Color.FromArgb(255, 122, 122, 122));
+ }
if (allFilled)
{
Frame.Navigate(typeof(EventPage));
@@ -40,4 +43,4 @@ namespace EventMaker.View
}
}
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/View/EditEventPage.xaml b/EventMaker/EventMaker/View/EditEventPage.xaml
index 1dd6f6d..13e0b3f 100644
--- a/EventMaker/EventMaker/View/EditEventPage.xaml
+++ b/EventMaker/EventMaker/View/EditEventPage.xaml
@@ -54,4 +54,4 @@
Foreground="White" />
</StackPanel>
</Grid>
-</Page>
+</Page> \ No newline at end of file
diff --git a/EventMaker/EventMaker/View/EditEventPage.xaml.cs b/EventMaker/EventMaker/View/EditEventPage.xaml.cs
index 2b4cd19..ced7c45 100644
--- a/EventMaker/EventMaker/View/EditEventPage.xaml.cs
+++ b/EventMaker/EventMaker/View/EditEventPage.xaml.cs
@@ -8,13 +8,15 @@ namespace EventMaker.View
{
public sealed partial class EditEventPage
{
- readonly SystemNavigationManager _currentView = SystemNavigationManager.GetForCurrentView();
+ private readonly SystemNavigationManager _currentView = SystemNavigationManager.GetForCurrentView();
+
public EditEventPage()
{
InitializeComponent();
_currentView.BackRequested += OnBackRequested;
_currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
}
+
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame.Navigate(typeof(EventPage));
@@ -23,16 +25,17 @@ namespace EventMaker.View
private void GoToEventPage(object sender, RoutedEventArgs e)
{
- bool allFilled = true;
+ var allFilled = true;
foreach (var control in EventForm.Children)
- {
- if (control is TextBox && string.IsNullOrWhiteSpace(((TextBox)control).Text))
+ if (control is TextBox && string.IsNullOrWhiteSpace(((TextBox) control).Text))
{
- ((TextBox)control).BorderBrush = new SolidColorBrush(Colors.Red);
+ ((TextBox) control).BorderBrush = new SolidColorBrush(Colors.Red);
allFilled = false;
}
- else if (control is TextBox) ((TextBox)control).BorderBrush = new SolidColorBrush(Color.FromArgb(255, 122, 122, 122));
- }
+ else if (control is TextBox)
+ {
+ ((TextBox) control).BorderBrush = new SolidColorBrush(Color.FromArgb(255, 122, 122, 122));
+ }
if (allFilled)
{
Frame.Navigate(typeof(EventPage));
@@ -40,4 +43,4 @@ namespace EventMaker.View
}
}
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/View/EventPage.xaml.cs b/EventMaker/EventMaker/View/EventPage.xaml.cs
index a94c488..9f04d96 100644
--- a/EventMaker/EventMaker/View/EventPage.xaml.cs
+++ b/EventMaker/EventMaker/View/EventPage.xaml.cs
@@ -12,10 +12,10 @@ namespace EventMaker.View
private void SelectEvent(object sender, RoutedEventArgs e)
{
- var item = ((Grid)((Button)sender).Parent).DataContext;
- var container = (ListViewItem)EventsList.ContainerFromItem(item);
+ var item = ((Grid) ((Button) sender).Parent).DataContext;
+ var container = (ListViewItem) EventsList.ContainerFromItem(item);
container.IsSelected = true;
}
}
-}
+} \ No newline at end of file
diff --git a/EventMaker/EventMaker/ViewModel/EventViewModel.cs b/EventMaker/EventMaker/ViewModel/EventViewModel.cs
index f5d63db..e0d6ac6 100644
--- a/EventMaker/EventMaker/ViewModel/EventViewModel.cs
+++ b/EventMaker/EventMaker/ViewModel/EventViewModel.cs
@@ -2,10 +2,10 @@
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
-using EventMaker.Model;
using System.Windows.Input;
using EventMaker.Annotations;
using EventMaker.Common;
+using EventMaker.Model;
namespace EventMaker.ViewModel
{
@@ -13,9 +13,30 @@ namespace EventMaker.ViewModel
{
private static Event _eventTemplate = new Event();
private static string _selectedSortValue = "date (ascending)";
+
+ public EventViewModel()
+ {
+ CreateEventCommand = new RelayCommand(CreateEvent);
+ RemoveEventCommand = new RelayCommand(RemoveEvent);
+ LoadEventCommand = new RelayCommand(LoadEvent);
+ UpdateEventCommand = new RelayCommand(UpdateEvent);
+ CleanTemplateCommand = new RelayCommand(CleanTemplate);
+ SortEvents();
+ }
+
public EventCatalogSingleton EventCatalogSingleton { get; set; } = EventCatalogSingleton.Instance;
public static int SelectedEventIndex { get; set; }
- public static ObservableCollection<string> SortValues { get; set; } = new ObservableCollection<string>() { "date (ascending)", "date (descending)", "name (ascending)", "name (descending)", "place (ascending)", "place (descending)" };
+
+ public static ObservableCollection<string> SortValues { get; set; } = new ObservableCollection<string>
+ {
+ "date (ascending)",
+ "date (descending)",
+ "name (ascending)",
+ "name (descending)",
+ "place (ascending)",
+ "place (descending)"
+ };
+
public static DateTimeOffset Date { get; set; } = DateTimeOffset.Now;
public static TimeSpan Time { get; set; }
public ICommand CreateEventCommand { get; set; }
@@ -45,22 +66,15 @@ namespace EventMaker.ViewModel
}
}
- public EventViewModel()
- {
- CreateEventCommand = new RelayCommand(CreateEvent);
- RemoveEventCommand = new RelayCommand(RemoveEvent);
- LoadEventCommand = new RelayCommand(LoadEvent);
- UpdateEventCommand = new RelayCommand(UpdateEvent);
- CleanTemplateCommand = new RelayCommand(CleanTemplate);
- SortEvents();
- }
+ public event PropertyChangedEventHandler PropertyChanged;
private void CreateEvent()
{
if (string.IsNullOrWhiteSpace(EventTemplate.Name) || string.IsNullOrWhiteSpace(EventTemplate.Description) ||
string.IsNullOrWhiteSpace(EventTemplate.Place)) return;
EventTemplate.Id = (int) (DateTime.Now - new DateTime(1970, 01, 01, 0, 0, 0)).TotalSeconds;
- EventTemplate.DateTime = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes, Time.Seconds);
+ EventTemplate.DateTime = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes,
+ Time.Seconds);
EventCatalogSingleton.Add(EventTemplate);
CleanTemplate();
SortEvents();
@@ -85,7 +99,8 @@ namespace EventMaker.ViewModel
{
if (string.IsNullOrWhiteSpace(EventTemplate.Name) || string.IsNullOrWhiteSpace(EventTemplate.Description) ||
string.IsNullOrWhiteSpace(EventTemplate.Place)) return;
- EventTemplate.DateTime = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes, Time.Seconds);
+ EventTemplate.DateTime = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes,
+ Time.Seconds);
EventCatalogSingleton.Update(SelectedEventIndex, EventTemplate);
CleanTemplate();
}
@@ -103,12 +118,10 @@ namespace EventMaker.ViewModel
OnPropertyChanged(nameof(EventCatalogSingleton));
}
- public event PropertyChangedEventHandler PropertyChanged;
-
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
-}
+} \ No newline at end of file