diff options
author | marcinzelent <marcin@zelent.net> | 2017-02-18 22:21:37 +0100 |
---|---|---|
committer | marcinzelent <marcin@zelent.net> | 2017-02-18 22:21:37 +0100 |
commit | 44995cdd14bee7b236fe96916697ca3ee24f6e74 (patch) | |
tree | db92c41539bf3f4b703a75167739ab54fe7798ce | |
parent | 2165212bc735886ec76be51eccd0b2aafd685d2d (diff) |
Added sequence diagram for removing event, cleaned up code.
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<Event>" + 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<Event>" + 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<Event>" + 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<Event>" + 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<Event>" + isActor="false" + lifelineDisplayName="Events : ObservableCollection<Event>"> + <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<Event>" /> + </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<Event>" /> + </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<Event>" /> + </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<Event>" /> + </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<Event>" isActor="false" lifelineDisplayName="Events : ObservableCollection<Event>"> + <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<Event>" /> + <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<Event>" /> + <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<Event>" /> + </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(() => Property)</c></item> - /// <item><c>NotifyChanged((VM x) => 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 => Output | Output <= 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("=> halt")] - /// public void TerminationMethod() - /// </code></item> - /// <item><code> - /// [ContractAnnotation("halt <= condition: false")] - /// public void Assert(bool condition, string text) // regular assertion method - /// </code></item> - /// <item><code> - /// [ContractAnnotation("s:null => 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 => null; notnull => notnull")] - /// public object Transform(object data) - /// </code></item> - /// <item><code> - /// [ContractAnnotation("=> true, result: notnull; => 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<T>(this IEnumerable<T> 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<T>(this IEnumerable<T> 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(() => Property)</c> + /// </item> + /// <item> + /// <c>NotifyChanged((VM x) => 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 => Output | Output <= 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("=> halt")] + /// public void TerminationMethod() + /// </code> + /// </item> + /// <item> + /// <code> + /// [ContractAnnotation("halt <= condition: false")] + /// public void Assert(bool condition, string text) // regular assertion method + /// </code> + /// </item> + /// <item> + /// <code> + /// [ContractAnnotation("s:null => 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 => null; notnull => notnull")] + /// public object Transform(object data) + /// </code> + /// </item> + /// <item> + /// <code> + /// [ContractAnnotation("=> true, result: notnull; => 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<T>(this IEnumerable<T> 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<T>(this IEnumerable<T> 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 |