From 496879c79dfdceeab478e4b0c565eb916b3ccbe3 Mon Sep 17 00:00:00 2001 From: HosseinJavadi Date: Fri, 5 Sep 2025 16:35:05 +0430 Subject: [PATCH] . --- VizhTalk.Grpc.CDN/Commands.proto | 9 ++++ VizhTalk.Grpc.CDN/DTOs.proto | 13 ++++++ VizhTalk.Grpc.CDN/Services.proto | 12 +++++ VizhTalk.Grpc.CDN/VizhTalk.Grpc.CDN.csproj | 13 +++++- .../Helpers/CompressionHelper.cs | 31 ------------- .../Helpers/EncryptionHelper.cs | 45 ------------------- Vizhtalk.CDN.Presentation/Program.cs | 7 +++ .../Services/CDNService.cs | 12 +++++ .../Vizhtalk.CDN.Presentation.csproj | 6 ++- 9 files changed, 68 insertions(+), 80 deletions(-) create mode 100644 VizhTalk.Grpc.CDN/Commands.proto create mode 100644 VizhTalk.Grpc.CDN/DTOs.proto create mode 100644 VizhTalk.Grpc.CDN/Services.proto delete mode 100644 VizhTalk.Services.Grpc.Learning/Helpers/CompressionHelper.cs delete mode 100644 VizhTalk.Services.Grpc.Learning/Helpers/EncryptionHelper.cs create mode 100644 Vizhtalk.CDN.Presentation/Services/CDNService.cs 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 1a4e3c5..789b51e 100644 --- a/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj +++ b/Vizhtalk.CDN.Presentation/Vizhtalk.CDN.Presentation.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -7,7 +7,9 @@ - + + +