Структура
This commit is contained in:
+221
-182
@@ -173,31 +173,57 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Profiles.UnitT
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Contracts", "Contracts", "{FFBE31B8-50B9-B415-22BC-2F92C97CADA3}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Contracts", "Contracts", "{FFBE31B8-50B9-B415-22BC-2F92C97CADA3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Admin.Contracts", "src\Contracts\Knot.Modules.Admin.Contracts\Knot.Modules.Admin.Contracts.csproj", "{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Admin", "Admin", "{1C8A9B45-FCC1-A5B3-3601-CB39D7CED4E3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Auth.Contracts", "src\Contracts\Knot.Modules.Auth.Contracts\Knot.Modules.Auth.Contracts.csproj", "{E8C0F163-735D-44A2-B684-673A0B0D7D2A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Admin", "src\Contracts\Admin\Knot.Contracts.Admin.csproj", "{D3C7D267-5646-4907-A451-E7CFA853BBF5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Conversations.Contracts", "src\Contracts\Knot.Modules.Conversations.Contracts\Knot.Modules.Conversations.Contracts.csproj", "{65E67218-A02C-4C42-8B60-6FDAB737E613}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Auth", "Auth", "{28F8F726-0D9B-F051-A252-088B861055C6}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Federation.Contracts", "src\Contracts\Knot.Modules.Federation.Contracts\Knot.Modules.Federation.Contracts.csproj", "{7226D94C-B9A5-41D7-9E59-50A68F39EE78}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Auth", "src\Contracts\Auth\Knot.Contracts.Auth.csproj", "{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Klipy.Contracts", "src\Contracts\Knot.Modules.Klipy.Contracts\Knot.Modules.Klipy.Contracts.csproj", "{4AC0C433-475F-4B0C-B160-E4F33779E3CB}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Conversations", "Conversations", "{19B3F750-A3A3-3AEB-CE4F-46FB52BB3151}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Messaging.Contracts", "src\Contracts\Knot.Modules.Messaging.Contracts\Knot.Modules.Messaging.Contracts.csproj", "{9D86914A-43A8-4451-BEFD-092ABFF793D6}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Conversations", "src\Contracts\Conversations\Knot.Contracts.Conversations.csproj", "{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Profiles.Contracts", "src\Contracts\Knot.Modules.Profiles.Contracts\Knot.Modules.Profiles.Contracts.csproj", "{1DC69DD3-3348-4375-844C-D44A760D50EC}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Federation", "Federation", "{E97EBA1B-122C-1D64-94D9-187425FF5DF0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Relations.Contracts", "src\Contracts\Knot.Modules.Relations.Contracts\Knot.Modules.Relations.Contracts.csproj", "{352A455F-AC3F-4D34-BADA-574BF83E131C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Federation", "src\Contracts\Federation\Knot.Contracts.Federation.csproj", "{62A821F2-F296-4888-8AB1-A80ED514AC08}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Settings.Contracts", "src\Contracts\Knot.Modules.Settings.Contracts\Knot.Modules.Settings.Contracts.csproj", "{D10F0FA0-A682-42D4-A23F-46094D14A8F6}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Klipy", "Klipy", "{7555181C-EB04-A6C5-D475-6FC0320F57B5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Storage.Contracts", "src\Contracts\Knot.Modules.Storage.Contracts\Knot.Modules.Storage.Contracts.csproj", "{F57F6152-A359-4BB5-AC01-5531C85EE47A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Klipy", "src\Contracts\Klipy\Knot.Contracts.Klipy.csproj", "{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.Stories.Contracts", "src\Contracts\Knot.Modules.Stories.Contracts\Knot.Modules.Stories.Contracts.csproj", "{32631ED6-956A-4572-AD7A-B8D0ECE26C78}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Messaging", "Messaging", "{3E835F76-AFEE-6419-1441-2CED62F241B2}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.TelegramImport.Contracts", "src\Contracts\Knot.Modules.TelegramImport.Contracts\Knot.Modules.TelegramImport.Contracts.csproj", "{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Messaging", "src\Contracts\Messaging\Knot.Contracts.Messaging.csproj", "{87048157-DF94-49E6-A34F-7DEF3255FA35}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Modules.WebRtc.Contracts", "src\Contracts\Knot.Modules.WebRtc.Contracts\Knot.Modules.WebRtc.Contracts.csproj", "{623330CA-6CA5-4B74-A921-DEAE8002FCC5}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiles", "Profiles", "{0286CA1A-73E9-C153-D97B-31BA60AC101B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Profiles", "src\Contracts\Profiles\Knot.Contracts.Profiles.csproj", "{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Relations", "Relations", "{319B016B-E46C-7232-249F-DBE50922C757}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Relations", "src\Contracts\Relations\Knot.Contracts.Relations.csproj", "{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Settings", "Settings", "{C91F5B42-26A0-36B8-1C54-AE965E022F68}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Settings", "src\Contracts\Settings\Knot.Contracts.Settings.csproj", "{338C69EA-F921-41B3-BB6C-116AADEBF356}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Storage", "Storage", "{6F45E82C-238A-FDE4-59E5-CCCD65D77EB8}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Storage", "src\Contracts\Storage\Knot.Contracts.Storage.csproj", "{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Stories", "Stories", "{3DE423CC-7CB5-260E-2A62-D5E89000EF8F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.Stories", "src\Contracts\Stories\Knot.Contracts.Stories.csproj", "{613354F0-3B35-4406-8250-C8E88A0DECF6}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TelegramImport", "TelegramImport", "{5C1B4B87-5A65-F9C7-EAA3-6456BCBFD6EC}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.TelegramImport", "src\Contracts\TelegramImport\Knot.Contracts.TelegramImport.csproj", "{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebRtc", "WebRtc", "{6DD751EB-CB14-7F42-4B4B-7E4DCC49705A}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Knot.Contracts.WebRtc", "src\Contracts\WebRtc\Knot.Contracts.WebRtc.csproj", "{D939680D-864D-4FED-A81D-8F30EE6A97A0}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -629,162 +655,162 @@ Global
|
|||||||
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x64.Build.0 = Release|Any CPU
|
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x86.ActiveCfg = Release|Any CPU
|
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x86.Build.0 = Release|Any CPU
|
{6BD8DC02-2270-4276-952E-E34E973A1237}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|x64.Build.0 = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Debug|x86.Build.0 = Debug|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|x64.ActiveCfg = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|x64.Build.0 = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|x86.ActiveCfg = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF}.Release|x86.Build.0 = Release|Any CPU
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|x64.Build.0 = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Debug|x86.Build.0 = Debug|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|x64.ActiveCfg = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|x64.Build.0 = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|x86.ActiveCfg = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A}.Release|x86.Build.0 = Release|Any CPU
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|x64.Build.0 = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Debug|x86.Build.0 = Debug|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|Any CPU.Build.0 = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|x64.ActiveCfg = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|x64.Build.0 = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|x86.ActiveCfg = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613}.Release|x86.Build.0 = Release|Any CPU
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|x64.Build.0 = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Debug|x86.Build.0 = Debug|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|Any CPU.Build.0 = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|x64.ActiveCfg = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|x64.Build.0 = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|x86.ActiveCfg = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78}.Release|x86.Build.0 = Release|Any CPU
|
{62A821F2-F296-4888-8AB1-A80ED514AC08}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|x64.Build.0 = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Debug|x86.Build.0 = Debug|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|x64.ActiveCfg = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|x64.Build.0 = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|x86.ActiveCfg = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB}.Release|x86.Build.0 = Release|Any CPU
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|x64.Build.0 = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Debug|x86.Build.0 = Debug|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|x64.ActiveCfg = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|x64.Build.0 = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|x86.ActiveCfg = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6}.Release|x86.Build.0 = Release|Any CPU
|
{87048157-DF94-49E6-A34F-7DEF3255FA35}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|x64.Build.0 = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Debug|x86.Build.0 = Debug|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|x64.ActiveCfg = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|x64.Build.0 = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|x86.ActiveCfg = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC}.Release|x86.Build.0 = Release|Any CPU
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|x64.Build.0 = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Debug|x86.Build.0 = Debug|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|Any CPU.Build.0 = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|x64.ActiveCfg = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|x64.Build.0 = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|x86.ActiveCfg = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C}.Release|x86.Build.0 = Release|Any CPU
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|x64.Build.0 = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Debug|x86.Build.0 = Debug|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|Any CPU.Build.0 = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|x64.ActiveCfg = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|x64.Build.0 = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|x86.ActiveCfg = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6}.Release|x86.Build.0 = Release|Any CPU
|
{338C69EA-F921-41B3-BB6C-116AADEBF356}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|x64.Build.0 = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Debug|x86.Build.0 = Debug|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|x64.ActiveCfg = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|x64.Build.0 = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|x86.ActiveCfg = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A}.Release|x86.Build.0 = Release|Any CPU
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|x64.Build.0 = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Debug|x86.Build.0 = Debug|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|Any CPU.Build.0 = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|x64.ActiveCfg = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|x64.Build.0 = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|x86.ActiveCfg = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78}.Release|x86.Build.0 = Release|Any CPU
|
{613354F0-3B35-4406-8250-C8E88A0DECF6}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|x64.Build.0 = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Debug|x86.Build.0 = Debug|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|Any CPU.Build.0 = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|x64.ActiveCfg = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|x64.Build.0 = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|x86.ActiveCfg = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5}.Release|x86.Build.0 = Release|Any CPU
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|x64.Build.0 = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Debug|x86.Build.0 = Debug|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|x64.ActiveCfg = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|x64.Build.0 = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|x86.ActiveCfg = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5}.Release|x86.Build.0 = Release|Any CPU
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -873,18 +899,31 @@ Global
|
|||||||
{3A48F700-9635-2216-D291-85337CE5D869} = {553D81D4-666B-BE26-75F9-480CB214ACEE}
|
{3A48F700-9635-2216-D291-85337CE5D869} = {553D81D4-666B-BE26-75F9-480CB214ACEE}
|
||||||
{6BD8DC02-2270-4276-952E-E34E973A1237} = {3A48F700-9635-2216-D291-85337CE5D869}
|
{6BD8DC02-2270-4276-952E-E34E973A1237} = {3A48F700-9635-2216-D291-85337CE5D869}
|
||||||
{FFBE31B8-50B9-B415-22BC-2F92C97CADA3} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
|
{FFBE31B8-50B9-B415-22BC-2F92C97CADA3} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
|
||||||
{1D50E7AA-2378-4114-A3C3-E351D46FB8BF} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{1C8A9B45-FCC1-A5B3-3601-CB39D7CED4E3} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{E8C0F163-735D-44A2-B684-673A0B0D7D2A} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{D3C7D267-5646-4907-A451-E7CFA853BBF5} = {1C8A9B45-FCC1-A5B3-3601-CB39D7CED4E3}
|
||||||
{65E67218-A02C-4C42-8B60-6FDAB737E613} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{28F8F726-0D9B-F051-A252-088B861055C6} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{7226D94C-B9A5-41D7-9E59-50A68F39EE78} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{D65EE034-84B9-4EBE-BC1F-5606AB4524A4} = {28F8F726-0D9B-F051-A252-088B861055C6}
|
||||||
{4AC0C433-475F-4B0C-B160-E4F33779E3CB} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{19B3F750-A3A3-3AEB-CE4F-46FB52BB3151} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{9D86914A-43A8-4451-BEFD-092ABFF793D6} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{17B31CB0-F2C5-47A6-9BF2-C55403C97DC7} = {19B3F750-A3A3-3AEB-CE4F-46FB52BB3151}
|
||||||
{1DC69DD3-3348-4375-844C-D44A760D50EC} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{E97EBA1B-122C-1D64-94D9-187425FF5DF0} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{352A455F-AC3F-4D34-BADA-574BF83E131C} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{62A821F2-F296-4888-8AB1-A80ED514AC08} = {E97EBA1B-122C-1D64-94D9-187425FF5DF0}
|
||||||
{D10F0FA0-A682-42D4-A23F-46094D14A8F6} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{7555181C-EB04-A6C5-D475-6FC0320F57B5} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{F57F6152-A359-4BB5-AC01-5531C85EE47A} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{D0CE2D52-EC1C-444E-A5C5-79813E1814D4} = {7555181C-EB04-A6C5-D475-6FC0320F57B5}
|
||||||
{32631ED6-956A-4572-AD7A-B8D0ECE26C78} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{3E835F76-AFEE-6419-1441-2CED62F241B2} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
{7E22E87D-78D2-411D-AC30-2F090C3F5ED5} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{87048157-DF94-49E6-A34F-7DEF3255FA35} = {3E835F76-AFEE-6419-1441-2CED62F241B2}
|
||||||
{623330CA-6CA5-4B74-A921-DEAE8002FCC5} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
{0286CA1A-73E9-C153-D97B-31BA60AC101B} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{D28F8DB7-077E-47F6-B07D-BB93AF950A0D} = {0286CA1A-73E9-C153-D97B-31BA60AC101B}
|
||||||
|
{319B016B-E46C-7232-249F-DBE50922C757} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{75CDF4D0-53B2-4FCE-9C2D-06940FD2E817} = {319B016B-E46C-7232-249F-DBE50922C757}
|
||||||
|
{C91F5B42-26A0-36B8-1C54-AE965E022F68} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{338C69EA-F921-41B3-BB6C-116AADEBF356} = {C91F5B42-26A0-36B8-1C54-AE965E022F68}
|
||||||
|
{6F45E82C-238A-FDE4-59E5-CCCD65D77EB8} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{531F88C6-B9A5-4BF6-A121-AAA95DE4A288} = {6F45E82C-238A-FDE4-59E5-CCCD65D77EB8}
|
||||||
|
{3DE423CC-7CB5-260E-2A62-D5E89000EF8F} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{613354F0-3B35-4406-8250-C8E88A0DECF6} = {3DE423CC-7CB5-260E-2A62-D5E89000EF8F}
|
||||||
|
{5C1B4B87-5A65-F9C7-EAA3-6456BCBFD6EC} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{A47CCC4C-8B19-4A12-8B05-BE4AAEABB1BA} = {5C1B4B87-5A65-F9C7-EAA3-6456BCBFD6EC}
|
||||||
|
{6DD751EB-CB14-7F42-4B4B-7E4DCC49705A} = {FFBE31B8-50B9-B415-22BC-2F92C97CADA3}
|
||||||
|
{D939680D-864D-4FED-A81D-8F30EE6A97A0} = {6DD751EB-CB14-7F42-4B4B-7E4DCC49705A}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Knot.Modules.Admin.Application.Admin.Commands;
|
using Knot.Modules.Admin.Application.Admin.Commands;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Application.Users.Login;
|
using Knot.Modules.Auth.Application.Users.Login;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Auth.Application.Users.Auth;
|
using Knot.Modules.Auth.Application.Users.Auth;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ using Knot.Modules.Conversations.Domain;
|
|||||||
using Knot.Modules.Messaging.Domain;
|
using Knot.Modules.Messaging.Domain;
|
||||||
using Knot.Modules.Conversations.Application.Abstractions;
|
using Knot.Modules.Conversations.Application.Abstractions;
|
||||||
using Knot.Modules.Conversations.Application.Messages.Send;
|
using Knot.Modules.Conversations.Application.Messages.Send;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Conversations.UnitTests.Messages;
|
namespace Knot.Modules.Conversations.UnitTests.Messages;
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ public class SendMessageCommandHandlerTests
|
|||||||
_mediator = Substitute.For<IMediator>();
|
_mediator = Substitute.For<IMediator>();
|
||||||
_messagesSettings = Substitute.For<IMessagesSettings>();
|
_messagesSettings = Substitute.For<IMessagesSettings>();
|
||||||
|
|
||||||
var config = new Knot.Modules.Settings.Contracts.Application.DTOs.MessagesConfig();
|
var config = new Knot.Contracts.Settings.Application.DTOs.MessagesConfig();
|
||||||
_messagesSettings.Current.Returns(config);
|
_messagesSettings.Current.Returns(config);
|
||||||
|
|
||||||
_handler = new SendMessageCommandHandler(_chatRepository, _messageRepository, _unitOfWork, _mediator, _messagesSettings);
|
_handler = new SendMessageCommandHandler(_chatRepository, _messageRepository, _unitOfWork, _mediator, _messagesSettings);
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ using FluentAssertions;
|
|||||||
using Knot.Modules.Stories.Application.Stories.Commands.CreateStory;
|
using Knot.Modules.Stories.Application.Stories.Commands.CreateStory;
|
||||||
using Knot.Modules.Stories.Domain;
|
using Knot.Modules.Stories.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Stories.Application.Abstractions;
|
using Knot.Modules.Stories.Application.Abstractions;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Knot.Modules.Profiles.Application.Profiles.UpdateProfile;
|
using Knot.Modules.Profiles.Application.Profiles.UpdateProfile;
|
||||||
using Knot.Modules.Profiles.Contracts.Domain;
|
using Knot.Contracts.Profiles.Domain;
|
||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Abstractions;
|
namespace Knot.Contracts.Auth.Application.Abstractions;
|
||||||
|
|
||||||
public interface IAuthDbContext
|
public interface IAuthDbContext
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Abstractions;
|
namespace Knot.Contracts.Auth.Application.Abstractions;
|
||||||
|
|
||||||
public interface IAuthUnitOfWork : IUnitOfWork
|
public interface IAuthUnitOfWork : IUnitOfWork
|
||||||
{
|
{
|
||||||
+2
-1
@@ -1,8 +1,9 @@
|
|||||||
namespace Knot.Modules.Auth.Contracts.Application.Abstractions;
|
namespace Knot.Contracts.Auth.Application.Abstractions;
|
||||||
|
|
||||||
public interface IJwtTokenProvider
|
public interface IJwtTokenProvider
|
||||||
{
|
{
|
||||||
string GenerateAccessToken(Guid userId, string username);
|
string GenerateAccessToken(Guid userId, string username);
|
||||||
string GenerateRefreshToken();
|
string GenerateRefreshToken();
|
||||||
string Generate(Guid userId, string username, string displayName, string? avatar);
|
string Generate(Guid userId, string username, string displayName, string? avatar);
|
||||||
|
string Generate(Domain.UserContract user);
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
namespace Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
|
|
||||||
public static class AuthErrors
|
public static class AuthErrors
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
namespace Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
|
|
||||||
public class AuthResponseDto
|
public class AuthResponseDto
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
using MediatR;
|
||||||
|
|
||||||
|
namespace Knot.Contracts.Auth.Application.Users.GetMe;
|
||||||
|
|
||||||
|
public record GetMeQuery() : IRequest<UserContract>;
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Users.Login;
|
namespace Knot.Contracts.Auth.Application.Users.Login;
|
||||||
|
|
||||||
public record LoginUserCommand(
|
public record LoginUserCommand(
|
||||||
string Username,
|
string Username,
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
using Knot.Shared.Kernel;
|
||||||
|
using MediatR;
|
||||||
|
|
||||||
|
namespace Knot.Contracts.Auth.Application.Users.Register;
|
||||||
|
|
||||||
|
public record RegisterUserCommand(
|
||||||
|
string Username,
|
||||||
|
string Password,
|
||||||
|
string DisplayName,
|
||||||
|
string? Email,
|
||||||
|
string? Bio
|
||||||
|
) : IRequest<Result<AuthResponseDto>>;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Knot.Modules.Auth.Contracts.Domain;
|
namespace Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
public interface IUserRepository
|
public interface IUserRepository
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Knot.Modules.Auth.Contracts.Domain;
|
namespace Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
public class UserContract
|
public class UserContract
|
||||||
{
|
{
|
||||||
+1
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
+1
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
+1
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
+1
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
-9
@@ -1,9 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Abstractions;
|
|
||||||
|
|
||||||
public interface IIdentityDbContext
|
|
||||||
{
|
|
||||||
DbSet<T> Set<T>() where T : class;
|
|
||||||
Task<int> SaveChangesAsync(CancellationToken cancellationToken = default);
|
|
||||||
}
|
|
||||||
-9
@@ -1,9 +0,0 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
|
||||||
using Knot.Shared.Kernel;
|
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Abstractions;
|
|
||||||
|
|
||||||
public interface IIdentityUnitOfWork : IUnitOfWork
|
|
||||||
{
|
|
||||||
IUserRepository UserRepository { get; }
|
|
||||||
}
|
|
||||||
-6
@@ -1,6 +0,0 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
|
||||||
using MediatR;
|
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Users.GetMe;
|
|
||||||
|
|
||||||
public record GetMeQuery() : IRequest<UserContract>;
|
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
|
||||||
using Knot.Shared.Kernel;
|
|
||||||
using MediatR;
|
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Contracts.Application.Users.Register;
|
|
||||||
|
|
||||||
public record RegisterUserCommand(
|
|
||||||
string Username,
|
|
||||||
string Password,
|
|
||||||
string DisplayName,
|
|
||||||
string? PhoneNumber,
|
|
||||||
bool IsBot = false
|
|
||||||
) : IRequest<Result<AuthResponseDto>>;
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-6
@@ -1,6 +0,0 @@
|
|||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
|
||||||
using MediatR;
|
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.Profiles.Search;
|
|
||||||
|
|
||||||
public record SearchProfilesQuery(string Query, int Limit = 20) : IRequest<List<UserProfileDto>>;
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MediatR" Version="12.0.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.DTOs;
|
namespace Knot.Contracts.Profiles.Application.DTOs;
|
||||||
|
|
||||||
public static class ProfilesErrors
|
public static class ProfilesErrors
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.DTOs;
|
namespace Knot.Contracts.Profiles.Application.DTOs;
|
||||||
|
|
||||||
public record SearchProfilesRequest(string Query, int Limit = 20) : IRequest<List<UserProfileDto>>;
|
public record SearchProfilesRequest(string Query, int Limit = 20) : IRequest<List<UserProfileDto>>;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Knot.Modules.Profiles.Contracts.Application.DTOs;
|
namespace Knot.Contracts.Profiles.Application.DTOs;
|
||||||
|
|
||||||
public class UserProfileDto
|
public class UserProfileDto
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.Profiles.Avatar;
|
namespace Knot.Contracts.Profiles.Application.Profiles.Avatar;
|
||||||
|
|
||||||
public record UploadAvatarCommand(Stream Stream, string FileName) : IRequest<Result<string>>;
|
public record UploadAvatarCommand(Stream Stream, string FileName) : IRequest<Result<string>>;
|
||||||
|
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.Profiles.GetUser;
|
namespace Knot.Contracts.Profiles.Application.Profiles.GetUser;
|
||||||
|
|
||||||
public record GetProfileQuery(Guid UserId) : IRequest<Result<UserProfileDto>>;
|
public record GetProfileQuery(Guid UserId) : IRequest<Result<UserProfileDto>>;
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
|
using MediatR;
|
||||||
|
|
||||||
|
namespace Knot.Contracts.Profiles.Application.Profiles.Search;
|
||||||
|
|
||||||
|
public record SearchProfilesQuery(string Query, int Limit = 20) : IRequest<List<UserProfileDto>>;
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.Profiles.UpdateProfile;
|
namespace Knot.Contracts.Profiles.Application.Profiles.UpdateProfile;
|
||||||
|
|
||||||
public record UpdateProfileCommand(
|
public record UpdateProfileCommand(
|
||||||
string? DisplayName,
|
string? DisplayName,
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Application.Profiles.UpdateSettings;
|
namespace Knot.Contracts.Profiles.Application.Profiles.UpdateSettings;
|
||||||
|
|
||||||
public record UpdateSettingsCommand(
|
public record UpdateSettingsCommand(
|
||||||
bool? ShowLastSeen,
|
bool? ShowLastSeen,
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel.Storage;
|
using Knot.Shared.Kernel.Storage;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Domain;
|
namespace Knot.Contracts.Profiles.Domain;
|
||||||
|
|
||||||
public interface IAvatarStorageService
|
public interface IAvatarStorageService
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
using Knot.Modules.Profiles.Contracts.Application.DTOs;
|
using Knot.Contracts.Profiles.Application.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Domain;
|
namespace Knot.Contracts.Profiles.Domain;
|
||||||
|
|
||||||
public interface IProfileRepository
|
public interface IProfileRepository
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
namespace Knot.Modules.Profiles.Contracts.Domain;
|
namespace Knot.Contracts.Profiles.Domain;
|
||||||
|
|
||||||
public interface IProfilesUnitOfWork : IUnitOfWork
|
public interface IProfilesUnitOfWork : IUnitOfWork
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Settings.Contracts.Application.Abstractions;
|
namespace Knot.Contracts.Settings.Application.Abstractions;
|
||||||
|
|
||||||
public interface ISettingsService
|
public interface ISettingsService
|
||||||
{
|
{
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Knot.Modules.Settings.Contracts.Application.DTOs;
|
namespace Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
public class SystemConfig
|
public class SystemConfig
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="MediatR" Version="12.0.1" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -190,7 +190,7 @@ using (var scope = app.Services.CreateScope())
|
|||||||
Knot.Modules.Messaging.Infrastructure.Persistence.Mongo.EncryptedStringSerializer.EncryptionService = encryptionService;
|
Knot.Modules.Messaging.Infrastructure.Persistence.Mongo.EncryptedStringSerializer.EncryptionService = encryptionService;
|
||||||
|
|
||||||
// Initialize Global Settings Cache
|
// Initialize Global Settings Cache
|
||||||
var settingsService = scope.ServiceProvider.GetRequiredService<Knot.Modules.Settings.Contracts.Application.Abstractions.ISettingsService>();
|
var settingsService = scope.ServiceProvider.GetRequiredService<Knot.Contracts.Settings.Application.Abstractions.ISettingsService>();
|
||||||
if (settingsService is Knot.Modules.Settings.Infrastructure.Configuration.SettingsService concreteSettings)
|
if (settingsService is Knot.Modules.Settings.Infrastructure.Configuration.SettingsService concreteSettings)
|
||||||
{
|
{
|
||||||
concreteSettings.Initialize();
|
concreteSettings.Initialize();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Klipy.Application.Abstractions;
|
using Knot.Modules.Klipy.Application.Abstractions;
|
||||||
|
|
||||||
namespace Knot.Modules.Admin.Application.Admin.Commands.TestKlipy;
|
namespace Knot.Modules.Admin.Application.Admin.Commands.TestKlipy;
|
||||||
|
|||||||
+2
-2
@@ -4,8 +4,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
|
|
||||||
namespace Knot.Modules.Admin.Application.Admin.Commands;
|
namespace Knot.Modules.Admin.Application.Admin.Commands;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Admin.Application.Admin.Queries;
|
namespace Knot.Modules.Admin.Application.Admin.Queries;
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||||
using Knot.Modules.Messaging.Domain;
|
using Knot.Modules.Messaging.Domain;
|
||||||
using System;
|
using System;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Admin.Domain.Events;
|
namespace Knot.Modules.Admin.Domain.Events;
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,11 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Auth.Contracts\Knot.Modules.Auth.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Auth\Knot.Contracts.Auth.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Profiles.Contracts\Knot.Modules.Profiles.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Profiles\Knot.Contracts.Profiles.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Conversations.Contracts\Knot.Modules.Conversations.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Conversations\Knot.Contracts.Conversations.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Settings.Contracts\Knot.Modules.Settings.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Settings\Knot.Contracts.Settings.csproj" />
|
||||||
|
<ProjectReference Include="..\Auth\Knot.Modules.Auth.csproj" />
|
||||||
<ProjectReference Include="..\Conversations\Knot.Modules.Conversations.csproj" />
|
<ProjectReference Include="..\Conversations\Knot.Modules.Conversations.csproj" />
|
||||||
<ProjectReference Include="..\Stories\Knot.Modules.Stories.csproj" />
|
<ProjectReference Include="..\Stories\Knot.Modules.Stories.csproj" />
|
||||||
<ProjectReference Include="..\Klipy\Knot.Modules.Klipy.csproj" />
|
<ProjectReference Include="..\Klipy\Knot.Modules.Klipy.csproj" />
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using Carter;
|
using Carter;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Auth.Application.Users.Register;
|
using Knot.Modules.Auth.Application.Users.Register;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Modules.Admin.Application.Admin.Queries;
|
using Knot.Modules.Admin.Application.Admin.Queries;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Application.Users.GetMe;
|
namespace Knot.Modules.Auth.Application.Users.GetMe;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using BCrypt.Net;
|
using BCrypt.Net;
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Auth.DTOs;
|
using Knot.Contracts.Auth.Application.Auth.DTOs;
|
||||||
using Knot.Modules.Auth.Domain;
|
using Knot.Modules.Auth.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using BCrypt.Net;
|
using BCrypt.Net;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Application.Users.Register;
|
namespace Knot.Modules.Auth.Application.Users.Register;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Команда для регистрации нового пользователя.
|
/// Êîìàíäà äëÿ ðåãèñòðàöèè íîâîãî ïîëüçîâàòåëÿ.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed record RegisterUserCommand(
|
public sealed record RegisterUserCommand(
|
||||||
string Username,
|
string Username,
|
||||||
@@ -20,7 +20,7 @@ public sealed record RegisterUserCommand(
|
|||||||
string? Bio) : ICommand<AuthResponseDto>;
|
string? Bio) : ICommand<AuthResponseDto>;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обработчик команды регистрации.
|
/// Îáðàáîò÷èê êîìàíäû ðåãèñòðàöèè.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal sealed class RegisterUserCommandHandler : ICommandHandler<RegisterUserCommand, AuthResponseDto>
|
internal sealed class RegisterUserCommandHandler : ICommandHandler<RegisterUserCommand, AuthResponseDto>
|
||||||
{
|
{
|
||||||
@@ -48,16 +48,16 @@ internal sealed class RegisterUserCommandHandler : ICommandHandler<RegisterUserC
|
|||||||
return Result.Failure<AuthResponseDto>(AuthErrors.IdentityRegistrationDisabled);
|
return Result.Failure<AuthResponseDto>(AuthErrors.IdentityRegistrationDisabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Проверка уникальности username
|
// 1. Ïðîâåðêà óíèêàëüíîñòè username
|
||||||
if (!await _userRepository.IsUsernameUniqueAsync(request.Username, cancellationToken))
|
if (!await _userRepository.IsUsernameUniqueAsync(request.Username, cancellationToken))
|
||||||
{
|
{
|
||||||
return Result.Failure<AuthResponseDto>(AuthErrors.IdentityUsernameNotUnique);
|
return Result.Failure<AuthResponseDto>(AuthErrors.IdentityUsernameNotUnique);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Хеширование пароля
|
// 2. Õåøèðîâàíèå ïàðîëÿ
|
||||||
string passwordHash = BCrypt.Net.BCrypt.HashPassword(request.Password);
|
string passwordHash = BCrypt.Net.BCrypt.HashPassword(request.Password);
|
||||||
|
|
||||||
// 3. Создание сущности
|
// 3. Ñîçäàíèå ñóùíîñòè
|
||||||
var user = User.Create(
|
var user = User.Create(
|
||||||
request.Username,
|
request.Username,
|
||||||
passwordHash,
|
passwordHash,
|
||||||
@@ -65,7 +65,7 @@ internal sealed class RegisterUserCommandHandler : ICommandHandler<RegisterUserC
|
|||||||
request.Email,
|
request.Email,
|
||||||
request.Bio);
|
request.Bio);
|
||||||
|
|
||||||
// 4. Сохранение - используем метод с Domain User
|
// 4. Ñîõðàíåíèå - èñïîëüçóåì ìåòîä ñ Domain User
|
||||||
var repoWithDomainUserAdd = _userRepository as Infrastructure.Persistence.UserRepository;
|
var repoWithDomainUserAdd = _userRepository as Infrastructure.Persistence.UserRepository;
|
||||||
repoWithDomainUserAdd?.Add(user);
|
repoWithDomainUserAdd?.Add(user);
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Knot.Modules.Auth.Infrastructure.Persistence;
|
using Knot.Modules.Auth.Infrastructure.Persistence;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Infrastructure.Authentication;
|
using Knot.Modules.Auth.Infrastructure.Authentication;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Shared.Kernel.Events;
|
using Knot.Shared.Kernel.Events;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Domain;
|
namespace Knot.Modules.Auth.Domain;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Сущность пользователя в контексте идентификации (Identity).
|
/// Ñóùíîñòü ïîëüçîâàòåëÿ â êîíòåêñòå èäåíòèôèêàöèè (Identity).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class User : AggregateRoot<Guid>
|
public sealed class User : AggregateRoot<Guid>
|
||||||
{
|
{
|
||||||
@@ -44,7 +44,7 @@ public sealed class User : AggregateRoot<Guid>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Фабричный метод для создания нового пользователя.
|
/// Ôàáðè÷íûé ìåòîä äëÿ ñîçäàíèÿ íîâîãî ïîëüçîâàòåëÿ.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static User Create(string username, string passwordHash, string displayName, string? email = null, string? bio = null)
|
public static User Create(string username, string passwordHash, string displayName, string? email = null, string? bio = null)
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@ public sealed class User : AggregateRoot<Guid>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Создает "теневого" пользователя для контакта с другого сервера.
|
/// Ñîçäàåò "òåíåâîãî" ïîëüçîâàòåëÿ äëÿ êîíòàêòà ñ äðóãîãî ñåðâåðà.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static User CreateExternal(Guid id, string username, string displayName, string domain, string? avatar = null)
|
public static User CreateExternal(Guid id, string username, string displayName, string domain, string? avatar = null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ using System.Security.Claims;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
using DomainUser = Knot.Modules.Auth.Domain.User;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Infrastructure.Authentication;
|
namespace Knot.Modules.Auth.Infrastructure.Authentication;
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ internal sealed class JwtTokenProvider : IJwtTokenProvider
|
|||||||
return new JwtSecurityTokenHandler().WriteToken(token);
|
return new JwtSecurityTokenHandler().WriteToken(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Generate(User user)
|
public string Generate(UserContract user)
|
||||||
{
|
{
|
||||||
return Generate(user.Id, user.Username, user.DisplayName, user.Avatar);
|
return Generate(user.Id, user.Username, user.DisplayName, user.Avatar);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using MediatR;
|
using MediatR;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Shared.Kernel.Security;
|
using Knot.Shared.Kernel.Security;
|
||||||
using DomainUser = Knot.Modules.Auth.Domain.User;
|
using DomainUser = Knot.Modules.Auth.Domain.User;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Domain;
|
using Knot.Modules.Auth.Domain;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Infrastructure.Persistence;
|
namespace Knot.Modules.Auth.Infrastructure.Persistence;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
namespace Knot.Modules.Auth.Infrastructure.Services;
|
namespace Knot.Modules.Auth.Infrastructure.Services;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Auth.Contracts\Knot.Modules.Auth.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Auth\Knot.Contracts.Auth.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Profiles.Contracts\Knot.Modules.Profiles.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Profiles\Knot.Contracts.Profiles.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Settings.Contracts\Knot.Modules.Settings.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Settings\Knot.Contracts.Settings.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -33,6 +33,3 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ namespace Knot.Modules.Auth.Migrations
|
|||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
modelBuilder.Entity("Knot.Modules.Auth.Contracts.Domain.User", b =>
|
modelBuilder.Entity("Knot.Contracts.Auth.Domain.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ namespace Knot.Modules.Auth.Migrations
|
|||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
modelBuilder.Entity("Knot.Modules.Auth.Contracts.Domain.User", b =>
|
modelBuilder.Entity("Knot.Contracts.Auth.Domain.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ namespace Knot.Modules.Auth.Migrations
|
|||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
modelBuilder.Entity("Knot.Modules.Auth.Contracts.Domain.User", b =>
|
modelBuilder.Entity("Knot.Contracts.Auth.Domain.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace Knot.Modules.Auth.Migrations
|
|||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
modelBuilder.Entity("Knot.Modules.Auth.Contracts.Domain.User", b =>
|
modelBuilder.Entity("Knot.Contracts.Auth.Domain.User", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Modules.Conversations.Application.Abstractions;
|
using Knot.Modules.Conversations.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ using Knot.Modules.Messaging.Application.Abstractions;
|
|||||||
using Knot.Modules.Messaging.Domain;
|
using Knot.Modules.Messaging.Domain;
|
||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Conversations.Application.Abstractions;
|
using Knot.Modules.Conversations.Application.Abstractions;
|
||||||
|
|
||||||
namespace Knot.Modules.Conversations.Application.Messages.Send;
|
namespace Knot.Modules.Conversations.Application.Messages.Send;
|
||||||
|
|||||||
+2
-2
@@ -6,8 +6,8 @@ using System.Threading.Tasks;
|
|||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Shared.Kernel.Storage;
|
using Knot.Shared.Kernel.Storage;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Conversations.Application.DTOs;
|
using Knot.Modules.Conversations.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Conversations.Application.Messages.UploadFile;
|
namespace Knot.Modules.Conversations.Application.Messages.UploadFile;
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Contracts.Application.Abstractions;
|
using Knot.Contracts.Auth.Application.Abstractions;
|
||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Modules.Messaging.Domain;
|
using Knot.Modules.Messaging.Domain;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
|
|||||||
@@ -1,8 +1,15 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Settings.Contracts\Knot.Modules.Settings.Contracts.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
||||||
|
<ProjectReference Include="..\..\Contracts\Settings\Knot.Contracts.Settings.csproj" />
|
||||||
<ProjectReference Include="..\Messaging\Knot.Modules.Messaging.csproj" />
|
<ProjectReference Include="..\Messaging\Knot.Modules.Messaging.csproj" />
|
||||||
<ProjectReference Include="..\Auth\Knot.Modules.Auth.csproj" />
|
<ProjectReference Include="..\Auth\Knot.Modules.Auth.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -30,10 +37,4 @@
|
|||||||
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" />
|
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@ using Knot.Shared.Kernel.Constants;
|
|||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Host.Application.Federation.Commands;
|
namespace Host.Application.Federation.Commands;
|
||||||
|
|
||||||
|
|||||||
+11
-11
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -8,11 +8,11 @@ using System.Threading.Tasks;
|
|||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Messaging.Application.Abstractions;
|
using Knot.Modules.Messaging.Application.Abstractions;
|
||||||
using Knot.Modules.Messaging.Domain;
|
using Knot.Modules.Messaging.Domain;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Shared.Kernel.Constants;
|
using Knot.Shared.Kernel.Constants;
|
||||||
|
|
||||||
namespace Host.Application.Federation.Commands;
|
namespace Host.Application.Federation.Commands;
|
||||||
@@ -52,7 +52,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
|
|
||||||
var packet = request.Packet;
|
var packet = request.Packet;
|
||||||
|
|
||||||
// 1. Проверяем подпись отправителя
|
// 1. Ïðîâåðÿåì ïîäïèñü îòïðàâèòåëÿ
|
||||||
var senderConfig = settings.Federation.AllowedDomains.FirstOrDefault(d => d.IsEnabled && d.Domain.Equals(packet.SenderDomain, StringComparison.OrdinalIgnoreCase));
|
var senderConfig = settings.Federation.AllowedDomains.FirstOrDefault(d => d.IsEnabled && d.Domain.Equals(packet.SenderDomain, StringComparison.OrdinalIgnoreCase));
|
||||||
if (senderConfig == null || string.IsNullOrEmpty(senderConfig.PublicKey))
|
if (senderConfig == null || string.IsNullOrEmpty(senderConfig.PublicKey))
|
||||||
return Result.Failure(new Error("Federation.SenderNotAllowed", "Sender domain not in allowlist."));
|
return Result.Failure(new Error("Federation.SenderNotAllowed", "Sender domain not in allowlist."));
|
||||||
@@ -67,7 +67,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Расшифровываем IV своим Private Key
|
// 2. Ðàñøèôðîâûâàåì IV ñâîèì Private Key
|
||||||
byte[] aesKey;
|
byte[] aesKey;
|
||||||
byte[] aesIv;
|
byte[] aesIv;
|
||||||
using (var rsaDecrypt = RSA.Create())
|
using (var rsaDecrypt = RSA.Create())
|
||||||
@@ -82,7 +82,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
Buffer.BlockCopy(decryptedKeys, 32, aesIv, 0, 16);
|
Buffer.BlockCopy(decryptedKeys, 32, aesIv, 0, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Расшифровываем само сообщение (AES-256)
|
// 3. Ðàñøèôðîâûâàåì ñàìî ñîîáùåíèå (AES-256)
|
||||||
string plainText;
|
string plainText;
|
||||||
using (var aes = Aes.Create())
|
using (var aes = Aes.Create())
|
||||||
{
|
{
|
||||||
@@ -96,7 +96,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Логика обработки типов сообщений
|
// 4. Ëîãèêà îáðàáîòêè òèïîâ ñîîáùåíèé
|
||||||
if (packet.Metadata.MessageType == "sync_capabilities")
|
if (packet.Metadata.MessageType == "sync_capabilities")
|
||||||
{
|
{
|
||||||
var capabilities = JsonSerializer.Deserialize<RemoteCapabilities>(plainText);
|
var capabilities = JsonSerializer.Deserialize<RemoteCapabilities>(plainText);
|
||||||
@@ -119,7 +119,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
user.IsOnline = isOnline;
|
user.IsOnline = isOnline;
|
||||||
await _userRepository.UpdateAsync(user, cancellationToken);
|
await _userRepository.UpdateAsync(user, cancellationToken);
|
||||||
|
|
||||||
// Уведомляем локальных пользователей через SignalR
|
// Óâåäîìëÿåì ëîêàëüíûõ ïîëüçîâàòåëåé ÷åðåç SignalR
|
||||||
await _notifier.NotifyNewMessageAsync(Guid.Empty, new { type = "presence_update", userId = user.Id, isOnline = user.IsOnline }, cancellationToken);
|
await _notifier.NotifyNewMessageAsync(Guid.Empty, new { type = "presence_update", userId = user.Id, isOnline = user.IsOnline }, cancellationToken);
|
||||||
}
|
}
|
||||||
return Result.Success();
|
return Result.Success();
|
||||||
@@ -183,7 +183,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
if (packet.Metadata.MessageType == "poll" && !settings.Messages.AllowPolls)
|
if (packet.Metadata.MessageType == "poll" && !settings.Messages.AllowPolls)
|
||||||
return Result.Failure(new Error("Federation.PollsDisabled", "We do not accept polls."));
|
return Result.Failure(new Error("Federation.PollsDisabled", "We do not accept polls."));
|
||||||
|
|
||||||
// 5. Сохранение в базу сообщений (MongoDB)
|
// 5. Ñîõðàíåíèå â áàçó ñîîáùåíèé (MongoDB)
|
||||||
var message = new TextMessage(
|
var message = new TextMessage(
|
||||||
Guid.NewGuid(),
|
Guid.NewGuid(),
|
||||||
packet.Metadata.ChatId,
|
packet.Metadata.ChatId,
|
||||||
@@ -197,7 +197,7 @@ internal sealed class InboundFederationCommandHandler : ICommandHandler<InboundF
|
|||||||
|
|
||||||
_messageRepository.Add(message);
|
_messageRepository.Add(message);
|
||||||
|
|
||||||
// 6. Уведомление пользователя через SignalR
|
// 6. Óâåäîìëåíèå ïîëüçîâàòåëÿ ÷åðåç SignalR
|
||||||
await _notifier.NotifyNewMessageAsync(packet.Metadata.ChatId, message, cancellationToken);
|
await _notifier.NotifyNewMessageAsync(packet.Metadata.ChatId, message, cancellationToken);
|
||||||
|
|
||||||
return Result.Success();
|
return Result.Success();
|
||||||
|
|||||||
+3
-3
@@ -3,9 +3,9 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace Host.Application.Federation.Commands;
|
namespace Host.Application.Federation.Commands;
|
||||||
|
|||||||
+3
-3
@@ -7,9 +7,9 @@ using Knot.Modules.Messaging.Domain;
|
|||||||
using Knot.Modules.Federation.Application.Federation.Services;
|
using Knot.Modules.Federation.Application.Federation.Services;
|
||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Application.Federation.Events;
|
namespace Knot.Modules.Federation.Application.Federation.Events;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -7,9 +7,9 @@ using Knot.Modules.Messaging.Domain;
|
|||||||
using Knot.Modules.Federation.Application.Federation.Services;
|
using Knot.Modules.Federation.Application.Federation.Services;
|
||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Application.Federation.Events;
|
namespace Knot.Modules.Federation.Application.Federation.Events;
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -6,8 +6,8 @@ using MediatR;
|
|||||||
using Knot.Modules.Settings.Domain.Events;
|
using Knot.Modules.Settings.Domain.Events;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Modules.Federation.Application.Federation.Services;
|
using Knot.Modules.Federation.Application.Federation.Services;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Application.Federation.Events;
|
namespace Knot.Modules.Federation.Application.Federation.Events;
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -1,21 +1,21 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Knot.Modules.Auth.Contracts.Domain;
|
using Knot.Contracts.Auth.Domain;
|
||||||
using Knot.Modules.Auth.Domain;
|
using Knot.Modules.Auth.Domain;
|
||||||
using Knot.Modules.Conversations.Domain;
|
using Knot.Modules.Conversations.Domain;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Modules.Federation.Application.Federation.Services;
|
using Knot.Modules.Federation.Application.Federation.Services;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Application.Federation.Events;
|
namespace Knot.Modules.Federation.Application.Federation.Events;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обработчик изменения статуса пользователя.
|
/// Îáðàáîò÷èê èçìåíåíèÿ ñòàòóñà ïîëüçîâàòåëÿ.
|
||||||
/// Рассылает новый статус всем серверам, где у пользователя есть чаты.
|
/// Ðàññûëàåò íîâûé ñòàòóñ âñåì ñåðâåðàì, ãäå ó ïîëüçîâàòåëÿ åñòü ÷àòû.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class UserStatusChangedDomainEventHandler : INotificationHandler<UserStatusChangedDomainEvent>
|
public sealed class UserStatusChangedDomainEventHandler : INotificationHandler<UserStatusChangedDomainEvent>
|
||||||
{
|
{
|
||||||
@@ -44,11 +44,11 @@ public sealed class UserStatusChangedDomainEventHandler : INotificationHandler<U
|
|||||||
var settings = await _settingsService.GetSettingsAsync(cancellationToken);
|
var settings = await _settingsService.GetSettingsAsync(cancellationToken);
|
||||||
if (!settings.Federation.Enabled) return;
|
if (!settings.Federation.Enabled) return;
|
||||||
|
|
||||||
// 1. Находим все чаты пользователя
|
// 1. Íàõîäèì âñå ÷àòû ïîëüçîâàòåëÿ
|
||||||
var userChats = await _chatRepository.GetUserChatsAsync(notification.UserId, cancellationToken);
|
var userChats = await _chatRepository.GetUserChatsAsync(notification.UserId, cancellationToken);
|
||||||
if (!userChats.Any()) return;
|
if (!userChats.Any()) return;
|
||||||
|
|
||||||
// 2. Определяем уникальные внешние домены участников этих чатов
|
// 2. Îïðåäåëÿåì óíèêàëüíûå âíåøíèå äîìåíû ó÷àñòíèêîâ ýòèõ ÷àòîâ
|
||||||
var allMemberIds = userChats.SelectMany(c => c.Members.Select(m => m.UserId)).Distinct().ToList();
|
var allMemberIds = userChats.SelectMany(c => c.Members.Select(m => m.UserId)).Distinct().ToList();
|
||||||
var members = await _userRepository.GetByIdsAsync(allMemberIds, cancellationToken);
|
var members = await _userRepository.GetByIdsAsync(allMemberIds, cancellationToken);
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ public sealed class UserStatusChangedDomainEventHandler : INotificationHandler<U
|
|||||||
|
|
||||||
if (!externalDomains.Any()) return;
|
if (!externalDomains.Any()) return;
|
||||||
|
|
||||||
// 3. Формируем пакет статуса
|
// 3. Ôîðìèðóåì ïàêåò ñòàòóñà
|
||||||
var statusData = new {
|
var statusData = new {
|
||||||
notification.IsOnline,
|
notification.IsOnline,
|
||||||
notification.LastSeen
|
notification.LastSeen
|
||||||
@@ -75,7 +75,7 @@ public sealed class UserStatusChangedDomainEventHandler : INotificationHandler<U
|
|||||||
DateTime.UtcNow
|
DateTime.UtcNow
|
||||||
);
|
);
|
||||||
|
|
||||||
// 4. Рассылка по доменам
|
// 4. Ðàññûëêà ïî äîìåíàì
|
||||||
foreach (var domain in externalDomains)
|
foreach (var domain in externalDomains)
|
||||||
{
|
{
|
||||||
var packetResult = await _packetService.PreparePacketAsync(payload, metadata, domain, cancellationToken);
|
var packetResult = await _packetService.PreparePacketAsync(payload, metadata, domain, cancellationToken);
|
||||||
|
|||||||
+2
-2
@@ -8,8 +8,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Shared.Kernel.Security;
|
using Knot.Shared.Kernel.Security;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Application.Federation.Services;
|
namespace Knot.Modules.Federation.Application.Federation.Services;
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Shared.Kernel.Security;
|
using Knot.Shared.Kernel.Security;
|
||||||
|
|
||||||
namespace Knot.Modules.Federation.Infrastructure.Services;
|
namespace Knot.Modules.Federation.Infrastructure.Services;
|
||||||
|
|||||||
@@ -7,11 +7,12 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Auth.Contracts\Knot.Modules.Auth.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Auth\Knot.Contracts.Auth.csproj" />
|
||||||
<ProjectReference Include="..\Conversations\Knot.Modules.Conversations.csproj" />
|
<ProjectReference Include="..\..\Contracts\Settings\Knot.Contracts.Settings.csproj" />
|
||||||
<ProjectReference Include="..\Auth\Knot.Modules.Auth.csproj" />
|
<ProjectReference Include="..\Auth\Knot.Modules.Auth.csproj" />
|
||||||
|
<ProjectReference Include="..\Conversations\Knot.Modules.Conversations.csproj" />
|
||||||
|
<ProjectReference Include="..\Messaging\Knot.Modules.Messaging.csproj" />
|
||||||
<ProjectReference Include="..\Stories\Knot.Modules.Stories.csproj" />
|
<ProjectReference Include="..\Stories\Knot.Modules.Stories.csproj" />
|
||||||
<ProjectReference Include="..\Settings\Knot.Modules.Settings.csproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Carter" Version="10.0.0" />
|
<PackageReference Include="Carter" Version="10.0.0" />
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ using System;
|
|||||||
using Host.Application.Federation.Commands;
|
using Host.Application.Federation.Commands;
|
||||||
using Knot.Modules.Federation.Application.Abstractions;
|
using Knot.Modules.Federation.Application.Abstractions;
|
||||||
using Knot.Shared.Kernel.Storage;
|
using Knot.Shared.Kernel.Storage;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
|
|
||||||
namespace Host.Endpoints;
|
namespace Host.Endpoints;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Shared.Kernel.Constants;
|
using Knot.Shared.Kernel.Constants;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using System;
|
using System;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Knot.Shared.Kernel;
|
using Knot.Shared.Kernel;
|
||||||
using Knot.Modules.Settings.Contracts.Application.Abstractions;
|
using Knot.Contracts.Settings.Application.Abstractions;
|
||||||
using Knot.Modules.Settings.Contracts.Application.DTOs;
|
using Knot.Contracts.Settings.Application.DTOs;
|
||||||
using Knot.Shared.Kernel.Constants;
|
using Knot.Shared.Kernel.Constants;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using System;
|
using System;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Kernel\Knot.Shared.Kernel.csproj" />
|
||||||
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
<ProjectReference Include="..\..\Shared\Knot.Shared.Infrastructure\Knot.Shared.Infrastructure.csproj" />
|
||||||
<ProjectReference Include="..\..\Contracts\Knot.Modules.Settings.Contracts\Knot.Modules.Settings.Contracts.csproj" />
|
<ProjectReference Include="..\..\Contracts\Settings\Knot.Contracts.Settings.csproj" />
|
||||||
<ProjectReference Include="..\Settings\Knot.Modules.Settings.csproj" />
|
<ProjectReference Include="..\Settings\Knot.Modules.Settings.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user