diff --git a/VizhTalk.Grpc.CDN/Commands.proto b/VizhTalk.Grpc.CDN/Commands.proto
new file mode 100644
index 0000000..73e8117
--- /dev/null
+++ b/VizhTalk.Grpc.CDN/Commands.proto
@@ -0,0 +1,9 @@
+syntax="proto3";
+
+option csharp_namespace="VizhTalk.Grpc.CDN";
+
+package greet;
+
+message UploadFileCommand{
+ bytes file = 1;
+}
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/DTOs.proto b/VizhTalk.Grpc.CDN/DTOs.proto
new file mode 100644
index 0000000..d449833
--- /dev/null
+++ b/VizhTalk.Grpc.CDN/DTOs.proto
@@ -0,0 +1,13 @@
+syntax="proto3";
+
+option csharp_namespace="VizhTalk.Grpc.CDN";
+
+package greet;
+
+message Id{
+ string value = 1;
+}
+
+message UploadFileDTO{
+ Id id = 1;
+}
\ No newline at end of file
diff --git a/VizhTalk.Grpc.CDN/Services.proto b/VizhTalk.Grpc.CDN/Services.proto
new file mode 100644
index 0000000..3504ead
--- /dev/null
+++ b/VizhTalk.Grpc.CDN/Services.proto
@@ -0,0 +1,12 @@
+syntax="proto3";
+
+option csharp_namespace="VizhTalk.Grpc.CDN";
+
+package greet;
+
+import "DTOs.proto";
+import "Commands.proto";
+
+service CDNGrpc{
+ rpc UploadFile (UploadFileCommand) returns (UploadFileDTO);
+}
\ 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 fa71b7a..1d53f75 100644
--- a/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj
+++ b/VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj
@@ -5,5 +5,14 @@
enable
enable
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VizhTalk.Services.Grpc.Learning/Helpers/CompressionHelper.cs b/VizhTalk.Services.Grpc.Learning/Helpers/CompressionHelper.cs
deleted file mode 100644
index b38dac5..0000000
--- a/VizhTalk.Services.Grpc.Learning/Helpers/CompressionHelper.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO.Compression;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace VizhTalk.Grpc.Learning.Helpers
-{
- internal class CompressionHelper
- {
- public static byte[] Compress(byte[] data)
- {
- using var output = new MemoryStream();
- using (var gzip = new GZipStream(output, CompressionMode.Compress))
- {
- gzip.Write(data, 0, data.Length);
- }
- return output.ToArray();
- }
-
- public static byte[] Decompress(byte[] compressedData)
- {
- using var input = new MemoryStream(compressedData);
- using var gzip = new GZipStream(input, CompressionMode.Decompress);
- using var output = new MemoryStream();
- gzip.CopyTo(output);
- return output.ToArray();
- }
- }
-}
diff --git a/VizhTalk.Services.Grpc.Learning/Helpers/EncryptionHelper.cs b/VizhTalk.Services.Grpc.Learning/Helpers/EncryptionHelper.cs
deleted file mode 100644
index f42f68c..0000000
--- a/VizhTalk.Services.Grpc.Learning/Helpers/EncryptionHelper.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System.Security.Cryptography;
-using System.Text;
-
-namespace VizhTalk.Grpc.Learning.Helpers
-{
- internal class EncryptionHelper
- {
- private const string Alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- public static string Encrypt(string input)
- {
- byte[] bytes = Encoding.UTF8.GetBytes(input);
-
- // تبدیل بایتها به عدد بزرگ
- var number = new System.Numerics.BigInteger(bytes);
-
- // اگر منفی شد، مثبتش کن
- if (number < 0) number = -number;
-
- // تبدیل به Base62
- StringBuilder result = new StringBuilder();
- while (number > 0)
- {
- result.Insert(0, Alphabet[(int)(number % 62)]);
- number /= 62;
- }
-
- return result.ToString();
- }
-
- public static string Decrypt(string encoded)
- {
- System.Numerics.BigInteger number = 0;
- foreach (char c in encoded)
- {
- number = number * 62 + Alphabet.IndexOf(c);
- }
-
- // تبدیل دوباره به بایت
- byte[] bytes = number.ToByteArray();
-
- // رشته اصلی
- return Encoding.UTF8.GetString(bytes);
- }
- }
-}
diff --git a/Vizhtalk.CDN.Presentation/Program.cs b/Vizhtalk.CDN.Presentation/Program.cs
index 1760df1..3c95eda 100644
--- a/Vizhtalk.CDN.Presentation/Program.cs
+++ b/Vizhtalk.CDN.Presentation/Program.cs
@@ -1,6 +1,13 @@
+using Vizhtalk.CDN.Presentation.Services;
+
var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddGrpc();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
+app.MapGrpcService();
+
+
app.Run();
diff --git a/Vizhtalk.CDN.Presentation/Services/CDNService.cs b/Vizhtalk.CDN.Presentation/Services/CDNService.cs
new file mode 100644
index 0000000..8dbf38b
--- /dev/null
+++ b/Vizhtalk.CDN.Presentation/Services/CDNService.cs
@@ -0,0 +1,12 @@
+using Grpc.Core;
+using VizhTalk.Grpc.CDN;
+
+namespace Vizhtalk.CDN.Presentation.Services;
+
+public class CDNService : CDNGrpc.CDNGrpcBase
+{
+ public override Task UploadFile(UploadFileCommand request, ServerCallContext context)
+ {
+ return base.UploadFile(request, context);
+ }
+}
diff --git a/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj b/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj
index 78b9228..789b51e 100644
--- a/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj
+++ b/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj
@@ -7,7 +7,9 @@
-
+
+
+