diff --git a/VizhTalk.Grpc.CDN/Commands.cs b/VizhTalk.Grpc.CDN/Commands.cs
new file mode 100644
index 0000000..434bb2d
--- /dev/null
+++ b/VizhTalk.Grpc.CDN/Commands.cs
@@ -0,0 +1,3 @@
+namespace VizhTalk.Grpc.CDN;
+
+public sealed partial class UploadFileCommand;
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/Commands.proto b/VizhTalk.Grpc.CDN/Commands.proto
index 73e8117..c7449ec 100644
--- a/VizhTalk.Grpc.CDN/Commands.proto
+++ b/VizhTalk.Grpc.CDN/Commands.proto
@@ -4,6 +4,16 @@ option csharp_namespace="VizhTalk.Grpc.CDN";
package greet;
+import "DTOs.proto";
+
message UploadFileCommand{
bytes file = 1;
+ Id mediaGroupId = 2;
+ string clientId = 3;
+ string fileName = 4;
+}
+message CreateMediaGroupCommand{
+ string key = 1;
+ bool isSecure = 2;
+ string title = 3;
}
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/DTOs.proto b/VizhTalk.Grpc.CDN/DTOs.proto
index d449833..13f9f14 100644
--- a/VizhTalk.Grpc.CDN/DTOs.proto
+++ b/VizhTalk.Grpc.CDN/DTOs.proto
@@ -9,5 +9,8 @@ message Id{
}
message UploadFileDTO{
+ Id mediaGroupMediaId = 1;
+}
+message MediaGroupDTO{
Id id = 1;
}
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/Id.cs b/VizhTalk.Grpc.CDN/Id.cs
new file mode 100644
index 0000000..9b5c664
--- /dev/null
+++ b/VizhTalk.Grpc.CDN/Id.cs
@@ -0,0 +1,36 @@
+
+
+using VizhTalk.BuildingBlocks.Domain;
+
+namespace VizhTalk.Grpc.CDN;
+
+public sealed partial class Id
+{
+ public static implicit operator string(Id id)
+ => EncryptionIdHelper.Decrypt(id.Value);
+
+ public static implicit operator Id(string id)
+ => new Id()
+ {
+ Value = EncryptionIdHelper.Encrypt(id)
+ };
+
+ public static implicit operator int(Id id)
+ => int.Parse(EncryptionIdHelper.Decrypt(id.Value));
+
+ public static implicit operator Guid(Id id)
+ => Guid.Parse(EncryptionIdHelper.Decrypt(id.Value));
+
+ public static implicit operator long(Id id)
+ => long.Parse(EncryptionIdHelper.Decrypt(id.Value));
+
+
+ public static implicit operator Id(int id)
+ => (Id)id.ToString();
+
+ public static implicit operator Id(long id)
+ => (Id)id.ToString();
+
+ public static implicit operator Id(Guid id)
+ => (Id)id.ToString();
+}
diff --git a/VizhTalk.Grpc.CDN/Services.proto b/VizhTalk.Grpc.CDN/Services.proto
index 3504ead..434b223 100644
--- a/VizhTalk.Grpc.CDN/Services.proto
+++ b/VizhTalk.Grpc.CDN/Services.proto
@@ -9,4 +9,5 @@ import "Commands.proto";
service CDNGrpc{
rpc UploadFile (UploadFileCommand) returns (UploadFileDTO);
+ rpc CreateMediaGroup (CreateMediaGroupCommand) returns (MediaGroupDTO);
}
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj b/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj
index 1d53f75..c9a81ba 100644
--- a/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj
+++ b/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj
@@ -10,6 +10,9 @@
+
+
+
diff --git a/Vizhtalk.CDN.Presentation/Entities/MediaGroupMedia.cs b/Vizhtalk.CDN.Presentation/Entities/MediaGroupMedia.cs
index ed2dc52..08418f4 100644
--- a/Vizhtalk.CDN.Presentation/Entities/MediaGroupMedia.cs
+++ b/Vizhtalk.CDN.Presentation/Entities/MediaGroupMedia.cs
@@ -7,6 +7,6 @@ namespace Vizhtalk.CDN.Presentation.Entities
{
public MediaId MediaId { get; set; }
public MediaGroupId MediaGroupId { get; set; }
- public List MediaClients { get; set; }
+ public List MediaClients { get; set; }
}
}
diff --git a/Vizhtalk.CDN.Presentation/Services/CDNService.cs b/Vizhtalk.CDN.Presentation/Services/CDNService.cs
index 8dbf38b..859be08 100644
--- a/Vizhtalk.CDN.Presentation/Services/CDNService.cs
+++ b/Vizhtalk.CDN.Presentation/Services/CDNService.cs
@@ -5,6 +5,10 @@ namespace Vizhtalk.CDN.Presentation.Services;
public class CDNService : CDNGrpc.CDNGrpcBase
{
+ public override Task CreateMediaGroup(CreateMediaGroupCommand request, ServerCallContext context)
+ {
+ return base.CreateMediaGroup(request, context);
+ }
public override Task UploadFile(UploadFileCommand request, ServerCallContext context)
{
return base.UploadFile(request, context);