This commit is contained in:
2026-09-06 08:48:13 +03:30
parent 2dbc6e34a4
commit a493e788d1
8 changed files with 916 additions and 7 deletions
+23 -5
View File
@@ -4,6 +4,15 @@
"id": "c4f8483a-ebd1-4af6-888d-f285bd159ec8", "id": "c4f8483a-ebd1-4af6-888d-f285bd159ec8",
"title": "Backlogs", "title": "Backlogs",
"cards": [ "cards": [
{
"id": "90ddcd60-e75f-45e7-a367-474749302458",
"listId": "c4f8483a-ebd1-4af6-888d-f285bd159ec8",
"title": "Try to Refactor an Test StringService in Hoppscotch ...",
"description": "",
"labels": [],
"checkboxes": [],
"comments": []
},
{ {
"id": "46e24626-5e56-487d-8d44-209c06ed7b4d", "id": "46e24626-5e56-487d-8d44-209c06ed7b4d",
"listId": "c4f8483a-ebd1-4af6-888d-f285bd159ec8", "listId": "c4f8483a-ebd1-4af6-888d-f285bd159ec8",
@@ -547,29 +556,38 @@
"comments": [] "comments": []
}, },
{ {
"id": "d82776f1-55fe-4977-9db0-f23d17a1ea37", "id": "07747425-25d1-478b-ba84-c56e978574b3",
"listId": "171f43f3-ae73-49b7-9239-9f3fb695cc2b", "listId": "171f43f3-ae73-49b7-9239-9f3fb695cc2b",
"title": "Adding Support for XML Documents Integration for All Exists Assemblies in Swagger", "title": "Add Support for Add/Update Content by Providing Locales in Content Service ...",
"description": "", "description": "",
"labels": [], "labels": [],
"checkboxes": [], "checkboxes": [],
"comments": [] "comments": []
}, },
{ {
"id": "90ddcd60-e75f-45e7-a367-474749302458", "id": "d3e18512-b4a6-4049-974b-af1b0f27cc47",
"listId": "171f43f3-ae73-49b7-9239-9f3fb695cc2b", "listId": "171f43f3-ae73-49b7-9239-9f3fb695cc2b",
"title": "Try to Refactor an Test StringService in Hoppscotch ...", "title": "add Support for reading Tags in Content Enrichers ...",
"description": "", "description": "",
"labels": [], "labels": [],
"checkboxes": [], "checkboxes": [],
"comments": [] "comments": []
} }
] ]
}, },
{ {
"id": "8c15334f-3b2e-4eca-999e-4c887cb628e9", "id": "8c15334f-3b2e-4eca-999e-4c887cb628e9",
"title": "Test", "title": "Test",
"cards": [ "cards": [
{
"id": "d82776f1-55fe-4977-9db0-f23d17a1ea37",
"listId": "8c15334f-3b2e-4eca-999e-4c887cb628e9",
"title": "Adding Support for XML Documents Integration for All Exists Assemblies in Swagger",
"description": "",
"labels": [],
"checkboxes": [],
"comments": []
},
{ {
"id": "a42dd42b-8fe0-4853-955e-e06770784e41", "id": "a42dd42b-8fe0-4853-955e-e06770784e41",
"listId": "8c15334f-3b2e-4eca-999e-4c887cb628e9", "listId": "8c15334f-3b2e-4eca-999e-4c887cb628e9",
@@ -0,0 +1,174 @@
using System;
using AutoMapper;
using System.Linq;
using xModels.Dtos;
using System.Threading;
using xCommons.Extensions;
using xDataService.Providers;
using System.Threading.Tasks;
using System.Collections.Generic;
using xContentService.Interfaces;
using xContentService.Models.Dtos;
using xIdentityService.Interfaces;
using xIdentityService.Extensions;
using xContentService.Interfaces.Dtos;
using xContentService.Models.Entities;
using xContentService.Interfaces.Entities;
namespace xContentService.Providers.Dtos
{
public class XContentRepositoryService : XBaseRepositoryService<XContent, XContentDto, Guid>, IXContentRepositoryService
{
private readonly IXIdentityProvider identityProvider;
private readonly IXContentTitleResourceProvider titleResourceProvider;
private readonly IXContentDescriptionResourceProvider descriptionResourceProvider;
public XContentRepositoryService(
IXContentRepository repository,
IXIdentityProvider identityProvider,
IXContentTitleResourceProvider titleResourceProvider,
IXContentDescriptionResourceProvider descriptionResourceProvider,
IEnumerable<Profile> mapperProfiles = null
) : base(
repository,
mapperProfiles
)
{
this.identityProvider = identityProvider;
this.titleResourceProvider = titleResourceProvider;
this.descriptionResourceProvider = descriptionResourceProvider;
}
//
#region Enrichers ...
/// <summary>
/// Enrich Specified Item ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XContentDto> Enrich(
XContent source,
CancellationToken cancellationToken = default
)
{
//
// Mapping Default ...
var result = Mapper.Map<XContentDto>(source);
result = await Enrich(
source: result,
cancellationToken: cancellationToken
);
//
return result;
}
/// <summary>
/// Enrich Specified Item ...
/// </summary>
/// <param name="source"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<XContentDto> Enrich(
XContentDto source,
CancellationToken cancellationToken = default
)
{
//
// Handdle Owner ...
XPersonDto owner = null;
if (!source.OwnerId.IsNullOrEmpty())
{
//
// Try to Retrieve User Info ...
var device = identityProvider.GetDevice();
var userInfo = await identityProvider.GetUserInfo(
device: device,
userSelectByParam: source.OwnerId
);
owner = userInfo.ToXPersonDto();
}
//
// Hanlde Content Title ...
string contentTitle = string.Empty;
XResourceDto titleResource = await titleResourceProvider.GetResource(
identifier: source.Id,
cancellationToken: cancellationToken
);
if (!titleResource.IsNullOrDefault())
{
contentTitle = titleResource.Resource;
}
//
// Hanlde Content Description ...
string contentDescription = string.Empty;
XResourceDto descriptionResource = await descriptionResourceProvider.GetResource(
identifier: source.Id,
cancellationToken: cancellationToken
);
if (!descriptionResource.IsNullOrDefault())
{
contentDescription = descriptionResource.Resource;
}
//
// Attach Extracted Items ...
var result = Mapper.Map<XContentDto>(source, options =>
{
//
options.Items[nameof(source.Owner)] = owner;
options.Items[nameof(source.Title)] = contentTitle;
options.Items[nameof(source.TitleResource)] = titleResource;
options.Items[nameof(source.Description)] = contentDescription;
options.Items[nameof(source.DescriptionResource)] = descriptionResource;
});
//
return result;
}
/// <summary>
/// Enrich Specified Items ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XContentDto>> EnrichRange(
IEnumerable<XContent> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(x => Enrich(x, cancellationToken));
//
var result = await Task.WhenAll(tasks);
return result;
}
/// <summary>
/// Enrich Specified Items ...
/// </summary>
/// <param name="sources"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<IEnumerable<XContentDto>> EnrichRange(
IEnumerable<XContentDto> sources,
CancellationToken cancellationToken = default
)
{
//
var tasks = sources
.Select(x => Enrich(x, cancellationToken));
//
var result = await Task.WhenAll(tasks);
return result;
}
#endregion
}
}
+616
View File
@@ -0,0 +1,616 @@
<mxfile host="65bd71144e">
<diagram id="Wt-GdZg7QYTV62SjKO1I" name="Page-1">
<mxGraphModel dx="824" dy="751" 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="14" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="15" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="220"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="16" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="7" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="340"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="25" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="17" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="420"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="26" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="18" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="500"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="43" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="3" target="42" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="660"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3" value="Actons" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="5" value="Follow" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="22" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="6" target="21" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="23" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="6" target="20" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="220"/>
<mxPoint x="400" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="24" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="6" target="19" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="220"/>
<mxPoint x="400" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="6" value="Request" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="199" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="12" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="7" target="9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="360" y="340"/>
<mxPoint x="360" y="380"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="13" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="7" target="8" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="360" y="340"/>
<mxPoint x="360" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="7" value="State" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="320" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="29" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="460" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="300"/>
<mxPoint x="600" y="460"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="32" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="540" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="300"/>
<mxPoint x="600" y="540"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="35" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="380" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="300"/>
<mxPoint x="600" y="380"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="37" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="8" target="36" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="41" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="620" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="300"/>
<mxPoint x="600" y="620"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="46" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="700" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="300"/>
<mxPoint x="600" y="700"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8" value="Follower" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="28" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="9" target="27" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="380"/>
<mxPoint x="600" y="460"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="31" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="9" target="30" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="380"/>
<mxPoint x="600" y="540"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="34" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="9" target="33" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="38" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="9" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="640" y="300" as="targetPoint"/>
<Array as="points">
<mxPoint x="600" y="380"/>
<mxPoint x="600" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="40" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="9" target="39" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="380"/>
<mxPoint x="600" y="620"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="45" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="9" target="44" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="600" y="380"/>
<mxPoint x="600" y="700"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="9" value="Following" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="400" y="360" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="17" value="Block" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="400" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="18" value="UnBlock" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="480" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="19" value="Cancel" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="480" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="20" value="Accept" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="480" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="21" value="Reject" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="480" y="199" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="27" value="UnFollow" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="440" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="30" value="Is" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="520" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="33" value="Get" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="360" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="36" value="Gets" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="39" value="List" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="600" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="42" value="FriendshipInfo" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="640" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="44" value="All" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="640" y="680" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="52" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="47" target="51" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="47" value="Follower" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="840" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="49" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="48" target="50" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="680" y="940" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="48" value="Following" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="360" y="920" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="50" value="Some one which current User Followed" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="680" y="920" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="51" value="Some one which Followed Current User" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="680" y="840" width="160" height="40" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="Un_hdBOYMyY1jHtXQnoi" name="Page-2">
<mxGraphModel dx="824" dy="751" 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="8w_6d4HOjkyAXEGj_Nfg-12" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-2">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-13" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-5">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="220"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-14" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-11">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-15" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-6">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="380"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-16" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-7">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="460"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-17" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="539"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-18" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-9">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="619"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-19" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-1" target="8w_6d4HOjkyAXEGj_Nfg-10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="700"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-1" value="Friendship Actions" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-35" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-2" target="8w_6d4HOjkyAXEGj_Nfg-20">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-2" value="Follow" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-1" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-3" target="8w_6d4HOjkyAXEGj_Nfg-20">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-3" value="Input" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-4" value="Outut" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-34" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-5" target="8w_6d4HOjkyAXEGj_Nfg-21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-5" value="Cancel" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="200" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-32" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-6" target="8w_6d4HOjkyAXEGj_Nfg-23">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-6" value="UnFollow Following" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="359" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-31" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-7" target="8w_6d4HOjkyAXEGj_Nfg-24">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-7" value="Block" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="439" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-30" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-8" target="8w_6d4HOjkyAXEGj_Nfg-25">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-8" value="UnBlock" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="519" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-29" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-9" target="8w_6d4HOjkyAXEGj_Nfg-26">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-9" value="Accept" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="599" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-28" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-10" target="8w_6d4HOjkyAXEGj_Nfg-27">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-10" value="Reject" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="679" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-33" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-11" target="8w_6d4HOjkyAXEGj_Nfg-22">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-11" value="UnFollow Follower" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-2" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-20" target="8w_6d4HOjkyAXEGj_Nfg-21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-18" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-20" target="4zzFdiA_19L9uobYTIUO-9">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-20" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-3" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-21" target="8w_6d4HOjkyAXEGj_Nfg-22">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-22" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-21" target="4zzFdiA_19L9uobYTIUO-19">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-21" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="200" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-4" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-22" target="8w_6d4HOjkyAXEGj_Nfg-23">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-23" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-22" target="4zzFdiA_19L9uobYTIUO-20">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-22" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-5" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-23" target="8w_6d4HOjkyAXEGj_Nfg-24">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-24" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-23" target="4zzFdiA_19L9uobYTIUO-21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-23" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="359" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-6" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-24" target="8w_6d4HOjkyAXEGj_Nfg-25">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-17" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-24" target="4zzFdiA_19L9uobYTIUO-10">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-24" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="439" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-7" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-25" target="8w_6d4HOjkyAXEGj_Nfg-26">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-16" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-25" target="4zzFdiA_19L9uobYTIUO-11">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-25" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="519" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-8" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-26" target="8w_6d4HOjkyAXEGj_Nfg-27">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-15" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-26" target="4zzFdiA_19L9uobYTIUO-12">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-26" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="599" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-14" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="8w_6d4HOjkyAXEGj_Nfg-27" target="4zzFdiA_19L9uobYTIUO-13">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8w_6d4HOjkyAXEGj_Nfg-27" value="destUser" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="440" y="679" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-26" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-9" target="4zzFdiA_19L9uobYTIUO-25">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1150" y="140"/>
<mxPoint x="1150" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-9" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-27" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-10">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1240" y="60" as="targetPoint"/>
<Array as="points">
<mxPoint x="1150" y="460"/>
<mxPoint x="1150" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-10" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="439" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-28" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-11">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1240" y="60" as="targetPoint"/>
<Array as="points">
<mxPoint x="1150" y="539"/>
<mxPoint x="1150" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-11" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="519" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-29" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-12">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1240" y="60" as="targetPoint"/>
<Array as="points">
<mxPoint x="1150" y="619"/>
<mxPoint x="1150" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-12" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="599" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-30" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-13" target="4zzFdiA_19L9uobYTIUO-25">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1150" y="700"/>
<mxPoint x="1150" y="60"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-13" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="679" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-19" value="Boolean" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="200" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-20" value="Void" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-21" value="Void" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="800" y="359" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-34" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-25" target="4zzFdiA_19L9uobYTIUO-31">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="140"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-35" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-25" target="4zzFdiA_19L9uobYTIUO-32">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="220"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-36" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-25" target="4zzFdiA_19L9uobYTIUO-33">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-25" value="XFriendshipFollowing" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1240" y="40" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-42" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-31" target="4zzFdiA_19L9uobYTIUO-37">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-43" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-31" target="4zzFdiA_19L9uobYTIUO-38">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1720" y="140"/>
<mxPoint x="1720" y="220"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-44" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-31" target="4zzFdiA_19L9uobYTIUO-39">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1720" y="140"/>
<mxPoint x="1720" y="300"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-45" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-31" target="4zzFdiA_19L9uobYTIUO-40">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1720" y="140"/>
<mxPoint x="1720" y="379"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-46" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-31" target="4zzFdiA_19L9uobYTIUO-41">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1720" y="140"/>
<mxPoint x="1720" y="459"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-31" value="XFriendshipState" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1360" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-49" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-32" target="4zzFdiA_19L9uobYTIUO-47">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1640" y="220"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-32" value="U&lt;span style=&quot;font-family: monospace; font-size: 0px; text-align: start; text-wrap-mode: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22XFriendshipState%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221320%22%20y%3D%22120%22%20width%3D%22160%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;serId" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1360" y="200" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-50" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="4zzFdiA_19L9uobYTIUO-33" target="4zzFdiA_19L9uobYTIUO-48">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1440" y="699"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-33" value="DestId" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1360" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-37" value="None" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1800" y="120" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-38" value="Pending" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1800" y="200" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-39" value="Accepted" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1800" y="280" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-40" value="Rejected" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1800" y="359" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-41" value="Blocked" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1800" y="439" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-47" value="a Logged in User in System Which Fired Actions" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1560" y="559" width="160" height="40" as="geometry"/>
</mxCell>
<mxCell id="4zzFdiA_19L9uobYTIUO-48" value="a Destination User which Friendship State of it between UserId Proccessed" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1560" y="660" width="160" height="80" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+93
View File
@@ -0,0 +1,93 @@
<mxfile host="65bd71144e">
<diagram id="fNuBahxYf4Res9XcKIUM" name="Page-1">
<mxGraphModel dx="1543" dy="817" 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="6" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="2" target="5">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="11" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="3">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="2" value="Entity" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="104" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="10" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="3" target="9">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="3" value="DTO" style="whiteSpace=wrap;html=1;rounded=1;" vertex="1" parent="1">
<mxGeometry x="399" y="104" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="8" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="5" target="7">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="5" value="References" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="224" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="14" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="12">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="7" value="String" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="344" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="13" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="9" target="12">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="9" value="References" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="399" y="224" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="15" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="12" target="16">
<mxGeometry relative="1" as="geometry">
<mxPoint x="599" y="364" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="28" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="12" target="7">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="459" y="560"/>
<mxPoint x="280" y="560"/>
<mxPoint x="100" y="560"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="12" value="XReference&amp;lt;T&amp;gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="399" y="344" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="18" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="16" target="17">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="22" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="16" target="21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="16" value="Provider" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="639" y="344" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="20" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="17" target="19">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="24" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="17" target="23">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="17" value="ProvidedFor" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="639" y="464" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="26" value="" style="edgeStyle=none;html=1;" edge="1" parent="1" source="19" target="25">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="19" value="ForIndex" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="639" y="584" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="21" value="String" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="839" y="344" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="23" value="&amp;lt;T&amp;gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="839" y="464" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="25" value="Int" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="839" y="584" width="120" height="40" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
+4
View File
@@ -0,0 +1,4 @@
{
"title": "محتوای تستی",
"description": "توضیحات محتوای تستی"
}
+4
View File
@@ -9,3 +9,7 @@ git reset --hard 6c669f8
# #
npm run repackFrameworkCore; npm run repackFrameworkServices; npm run repackFrameworkComponents; npm run pServeXFrameworkTest npm run repackFrameworkCore; npm run repackFrameworkServices; npm run repackFrameworkComponents; npm run pServeXFrameworkTest
npm run repackFrameworkComponents; npm run pServeXFrameworkTest npm run repackFrameworkComponents; npm run pServeXFrameworkTest
#
# Refresh Databases ...
npm run refreshApiDbs; npm run refreshAiApiDbs; npm run refreshIdentityDbs