diagramme sequence 1 et 2, diagramme de paquetage + début écriture Word de l'archi de l'appli

master
Vivien DUFOUR 2 years ago
parent aa90e9c57a
commit b63e2291c0

Binary file not shown.

@ -0,0 +1,103 @@
<mxfile host="Electron" modified="2023-06-05T12:05:47.907Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="5TVQFXk5BjtkgaeeEIe8" version="21.2.8" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1050" dy="621" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="COeH-z--8yLPQY3ZuvbY-7" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=140;tabHeight=30;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="100" y="70" width="680" height="520" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-8" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;MusiLib&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="100" y="46" width="130" height="80" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-9" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=64;tabHeight=30;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="147" y="240" width="173" height="150" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-10" value="Views" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="150" y="241" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-11" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=50;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="476" y="460" width="154" height="90" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-12" value="Stub" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="470" y="455" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-13" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=50;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="455" y="256" width="277" height="184" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-14" value="Model" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="449" y="250" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-15" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=137;tabHeight=34;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="160" y="429" width="167" height="114" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-16" value="DataContractPersistance" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="199" y="430" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-17" target="COeH-z--8yLPQY3ZuvbY-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-17" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=57;tabHeight=24;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="336" y="114" width="157" height="94" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-18" value="App" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="334" y="110" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-19" value="App.xaml.cs" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="361.5" y="158" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-20" target="COeH-z--8yLPQY3ZuvbY-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-20" value="Favoris" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="176" y="346" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-23" target="COeH-z--8yLPQY3ZuvbY-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-23" value="Accueil" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="176" y="286" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-24" target="COeH-z--8yLPQY3ZuvbY-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-24" value="PartitionView" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="176" y="316" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-25" value="DataToPersist" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="193" y="503" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-26" target="COeH-z--8yLPQY3ZuvbY-32">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-26" value="DataContractPers" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="193" y="473" width="106" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-30" value="Trier" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="533.5" y="370" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-32" value="IPersistenceManager" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="533.5" y="400" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-33" target="COeH-z--8yLPQY3ZuvbY-32">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-33" value="Manager" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="533.5" y="280" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-34" value="Metronome" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="533.5" y="340" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-35" value="Partition" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="533.5" y="310" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="COeH-z--8yLPQY3ZuvbY-36" target="COeH-z--8yLPQY3ZuvbY-32">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="COeH-z--8yLPQY3ZuvbY-36" value="Stub" style="html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="493" y="500" width="120" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,90 @@
<mxfile host="Electron" modified="2023-06-05T12:29:33.459Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="qvW8YyP_UV-Dy8mUF9XZ" version="21.2.8" type="device">
<diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
<mxGraphModel dx="1036" dy="606" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="aM9ryv3xv72pqoxQDRHE-1" value="Accueil" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="1" vertex="1">
<mxGeometry x="170" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-2" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="aM9ryv3xv72pqoxQDRHE-1" vertex="1">
<mxGeometry x="45" y="70" width="10" height="190" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-3" value="Démarrage de l&#39;application" style="html=1;verticalAlign=bottom;startArrow=oval;endArrow=block;startSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" parent="aM9ryv3xv72pqoxQDRHE-1" target="aM9ryv3xv72pqoxQDRHE-2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-110" y="70" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-5" value="Partition1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="1" vertex="1">
<mxGeometry x="325" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-6" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="aM9ryv3xv72pqoxQDRHE-5" vertex="1">
<mxGeometry x="45" y="80" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-7" value="Détails d&#39;une partition" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" parent="1" source="aM9ryv3xv72pqoxQDRHE-2" target="aM9ryv3xv72pqoxQDRHE-6" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="210" as="sourcePoint" />
<Array as="points">
<mxPoint x="285" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-8" value="Revenir à l&#39;accueil" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" parent="1" source="aM9ryv3xv72pqoxQDRHE-6" target="aM9ryv3xv72pqoxQDRHE-2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="285" as="targetPoint" />
<Array as="points">
<mxPoint x="295" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-1" value="Fermeture de l&#39;application" style="html=1;verticalAlign=bottom;startArrow=block;endArrow=none;startSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endFill=0;startFill=1;" edge="1" parent="1" target="aM9ryv3xv72pqoxQDRHE-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="60" y="370" as="sourcePoint" />
<mxPoint x="165" y="310" as="targetPoint" />
<Array as="points">
<mxPoint x="150" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-3" value="Partition2" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="510" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="m0nT7gbObdYD8a64f1L0-3">
<mxGeometry x="45" y="80" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-5" value="Détails d&#39;une seconde partition" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" target="m0nT7gbObdYD8a64f1L0-4">
<mxGeometry relative="1" as="geometry">
<mxPoint x="380" y="210" as="sourcePoint" />
<Array as="points">
<mxPoint x="440" y="210" />
</Array>
<mxPoint x="525" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-6" value="Revenir à la première partition" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" source="m0nT7gbObdYD8a64f1L0-4">
<mxGeometry relative="1" as="geometry">
<mxPoint x="380" y="360" as="targetPoint" />
<Array as="points">
<mxPoint x="520" y="360" />
<mxPoint x="520" y="350" />
<mxPoint x="450" y="370" />
</Array>
<mxPoint x="540" y="370" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-7" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="560" y="272" width="10" height="60" as="geometry" />
</mxCell>
<mxCell id="m0nT7gbObdYD8a64f1L0-8" value="Ajouter la partition aux favoris" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" source="m0nT7gbObdYD8a64f1L0-7" target="m0nT7gbObdYD8a64f1L0-7">
<mxGeometry relative="1" as="geometry">
<mxPoint x="610" y="290" as="sourcePoint" />
<Array as="points">
<mxPoint x="670" y="290" />
</Array>
<mxPoint x="785" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,90 @@
<mxfile host="Electron" modified="2023-06-05T12:32:13.857Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="ao7HOrX-4rXqSCnZfz8e" version="21.2.8" type="device">
<diagram name="Page-1" id="VsGqrv83nBGoYsjf_3-d">
<mxGraphModel dx="1036" dy="606" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="T-8ZS8znIOe0zIxCcSXF-1" value="Accueil" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="170" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-2" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="T-8ZS8znIOe0zIxCcSXF-1">
<mxGeometry x="45" y="70" width="10" height="190" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-3" value="Démarrage de l&#39;application" style="html=1;verticalAlign=bottom;startArrow=oval;endArrow=block;startSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="T-8ZS8znIOe0zIxCcSXF-1" target="T-8ZS8znIOe0zIxCcSXF-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-110" y="70" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-4" value="Favoris" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="350" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-5" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="T-8ZS8znIOe0zIxCcSXF-4">
<mxGeometry x="45" y="80" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-6" value="Accèder à la page des favoris" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" source="T-8ZS8znIOe0zIxCcSXF-2" target="T-8ZS8znIOe0zIxCcSXF-5">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="210" as="sourcePoint" />
<Array as="points">
<mxPoint x="285" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-7" value="Revenir à l&#39;accueil" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" source="T-8ZS8znIOe0zIxCcSXF-5" target="T-8ZS8znIOe0zIxCcSXF-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="285" as="targetPoint" />
<Array as="points">
<mxPoint x="295" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-8" value="Fermeture de l&#39;application" style="html=1;verticalAlign=bottom;startArrow=block;endArrow=none;startSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endFill=0;startFill=1;" edge="1" parent="1" target="T-8ZS8znIOe0zIxCcSXF-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="60" y="370" as="sourcePoint" />
<mxPoint x="165" y="310" as="targetPoint" />
<Array as="points">
<mxPoint x="150" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-9" value="Partition" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="540" y="120" width="100" height="300" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-10" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="T-8ZS8znIOe0zIxCcSXF-9">
<mxGeometry x="45" y="80" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-13" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="T-8ZS8znIOe0zIxCcSXF-9">
<mxGeometry x="51" y="156" width="10" height="60" as="geometry" />
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-14" value="Supprimer la partition des favoris" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="T-8ZS8znIOe0zIxCcSXF-9" source="T-8ZS8znIOe0zIxCcSXF-13" target="T-8ZS8znIOe0zIxCcSXF-13">
<mxGeometry relative="1" as="geometry">
<mxPoint x="70" y="180" as="sourcePoint" />
<Array as="points">
<mxPoint x="160" y="186" />
</Array>
<mxPoint x="245" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-11" value="Détail d&#39;une partition" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" target="T-8ZS8znIOe0zIxCcSXF-10" source="T-8ZS8znIOe0zIxCcSXF-5">
<mxGeometry relative="1" as="geometry">
<mxPoint x="410" y="210" as="sourcePoint" />
<Array as="points">
<mxPoint x="440" y="210" />
</Array>
<mxPoint x="525" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="T-8ZS8znIOe0zIxCcSXF-12" value="Revenir à la page des favoris" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;" edge="1" parent="1" source="T-8ZS8znIOe0zIxCcSXF-10" target="T-8ZS8znIOe0zIxCcSXF-5">
<mxGeometry relative="1" as="geometry">
<mxPoint x="380" y="360" as="targetPoint" />
<Array as="points">
<mxPoint x="520" y="360" />
<mxPoint x="520" y="350" />
<mxPoint x="450" y="370" />
</Array>
<mxPoint x="540" y="370" as="sourcePoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -1,142 +1,142 @@
using Microsoft.Maui.Controls.PlatformConfiguration;
using MusiLib.Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace MusiLib.DataContractPersistance
{
public class DataContractPers : IPersistanceManager
{
using Microsoft.Maui.Controls.PlatformConfiguration;
using MusiLib.Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace MusiLib.DataContractPersistance
{
public class DataContractPers : IPersistanceManager
{
public string FilePath { get; set; } = FileSystem.AppDataDirectory; /* FileSystem.AppDataDirectory permet de renvoyez le chemin d'accès au répertoire spécifique de donnée
* ou l'application peut stocker des fichiers ou des données persistantes*/
public string FileNameFU { get; set; } = "favorisUtilisateurs.xml"; /* déclaration des noms des fichiers stockés pour la persistance*/
public string FileNameP { get; set; } = "partitions.xml";
public (List<Partition>, List<Partition>) chargeDonnees() /*Méthode permettant de charger les données*/
{
var partitionsSerializer = new DataContractSerializer(typeof(List<Partition>));
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
List<Partition> partitions = new List<Partition>();
List<Partition> favoris = new List<Partition>();
using (Stream partitionsStream = File.OpenRead(Path.Combine(FilePath, "partitions.xml"))) /*Path.Combine permet de combiner plusieurs segments de chemin en une seule chaine de chemin*/
{
partitions = partitionsSerializer.ReadObject(partitionsStream) as List<Partition>; /*Serializer permet de convertir des objets */
}
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, "favorisUtilisateurs.xml")))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
favoris = data.favoris;
}
return (partitions, favoris);
}
public void sauvegardeDonnees(List<Partition> p, List<Partition> f) /*Méthode permettant de sauvegarder les données*/
{
var partitionsSerializer = new DataContractSerializer(typeof(List<Partition>));
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
using (Stream partitionsStream = File.Create(Path.Combine(FilePath, FileNameP)))
{
partitionsSerializer.WriteObject(partitionsStream, p);
}
DataToPersist data = new DataToPersist();
data.favoris = f;
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
}
public void sauvegardeFavoriAdd(Partition fav) /*Méthode permettant la sauvegarde de favoris*/
{
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
List<Partition> favoris = new List<Partition>();
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
if (data != null && data.favoris != null)
{
favoris = data.favoris;
}
}
favoris.Add(fav);
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = new DataToPersist();
data.favoris = favoris;
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
Debug.WriteLine("Nouveau favori sauvegardé !");
}
public void sauvegardeFavoriRemove(Partition fav) /*Méthode permettant la sauvegarde de suppression de favoris */
{
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
List<Partition> favoris = new List<Partition>();
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
if (data != null && data.favoris != null)
{
favoris = data.favoris;
}
}
favoris.RemoveAll(f => f.Nom == fav.Nom);
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = new DataToPersist();
data.favoris = favoris;
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
Debug.WriteLine("Favori supprimé de la sauvegarde !");
}
}
* ou l'application peut stocker des fichiers ou des données persistantes*/
public string FileNameFU { get; set; } = "favorisUtilisateurs.xml"; /* déclaration des noms des fichiers stockés pour la persistance*/
public string FileNameP { get; set; } = "partitions.xml";
public (List<Partition>, List<Partition>) chargeDonnees() /*Méthode permettant de charger les données*/
{
var partitionsSerializer = new DataContractSerializer(typeof(List<Partition>));
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
List<Partition> partitions = new List<Partition>();
List<Partition> favoris = new List<Partition>();
using (Stream partitionsStream = File.OpenRead(Path.Combine(FilePath, "partitions.xml"))) /*Path.Combine permet de combiner plusieurs segments de chemin en une seule chaine de chemin*/
{
partitions = partitionsSerializer.ReadObject(partitionsStream) as List<Partition>; /*Serializer permet de convertir des objets */
}
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, "favorisUtilisateurs.xml")))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
favoris = data.favoris;
}
return (partitions, favoris);
}
public void sauvegardeDonnees(List<Partition> p, List<Partition> f) /*Méthode permettant de sauvegarder les données*/
{
var partitionsSerializer = new DataContractSerializer(typeof(List<Partition>));
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
using (Stream partitionsStream = File.Create(Path.Combine(FilePath, FileNameP)))
{
partitionsSerializer.WriteObject(partitionsStream, p);
}
DataToPersist data = new DataToPersist();
data.favoris = f;
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
}
public void sauvegardeFavoriAdd(Partition fav) /*Méthode permettant la sauvegarde de favoris*/
{
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
List<Partition> favoris = new List<Partition>();
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
if (data != null && data.favoris != null)
{
favoris = data.favoris;
}
}
favoris.Add(fav);
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = new DataToPersist();
data.favoris = favoris;
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
Debug.WriteLine("Nouveau favori sauvegardé !");
}
public void sauvegardeFavoriRemove(Partition fav) /*Méthode permettant la sauvegarde de suppression de favoris */
{
var favorisUtilisateursSerializer = new DataContractSerializer(typeof(DataToPersist));
if (!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory créé à l'instant");
Debug.WriteLine(Directory.GetDirectoryRoot(FilePath));
Debug.WriteLine(FilePath);
Directory.CreateDirectory(FilePath);
}
List<Partition> favoris = new List<Partition>();
using (Stream favorisUtilisateursStream = File.OpenRead(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = favorisUtilisateursSerializer.ReadObject(favorisUtilisateursStream) as DataToPersist;
if (data != null && data.favoris != null)
{
favoris = data.favoris;
}
}
favoris.RemoveAll(f => f.Nom == fav.Nom);
using (Stream favorisUtilisateursStream = File.Create(Path.Combine(FilePath, FileNameFU)))
{
DataToPersist data = new DataToPersist();
data.favoris = favoris;
favorisUtilisateursSerializer.WriteObject(favorisUtilisateursStream, data);
}
Debug.WriteLine("Favori supprimé de la sauvegarde !");
}
}
}

@ -10,8 +10,6 @@ namespace MusiLib.Model
[DataContract]
public class Partition
{
[DataMember]
public static int idTotal = 0;
[DataMember]
public string Nom { get; private set; }
[DataMember]
@ -32,7 +30,6 @@ namespace MusiLib.Model
public Partition(string nom, string auteur, string complexite, string description, string instrument, string son)
{
Nom = nom;
IdPartition = idTotal;
Auteur = auteur;
Complexite = complexite;
Description = description;

Loading…
Cancel
Save