eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام VerifyPayment است که برای نمایش نتیجه پرداخت در یک پروژه ASP.NET Core استفاده می‌شود. این ویو شامل یک عنوان، پیام موفقیت‌آمیز بودن پرداخت و نمایش شناسه تراکنش است. جزئیات کد: ViewData["Title"]: csharp @{ ViewData["Title"] = "VerifyPayment"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "VerifyPayment" تنظیم شده است. ساختار HTML: html <h1>نتیجه پرداخت</h1> <hr /> <div class="alert alert-success"> <h2>پرداخت موفق</h2> <p>شناسه تراکنش : @ViewBag.code</p> </div> <h1>نتیجه پرداخت</h1>: این تگ h1 یک عنوان بزرگ با متن "نتیجه پرداخت" را نمایش می‌دهد. <hr />: این تگ یک خط افقی را در صفحه ایجاد می‌کند. <div class="alert alert-success">: این تگ div یک پیام موفقیت‌آمیز را در یک باکس هشدار سبز (با کلاس‌های "alert alert-success" از Bootstrap) نمایش می‌دهد. <h2>پرداخت موفق</h2>: این تگ h2 یک عنوان کوچک‌تر با متن "پرداخت موفق" را نمایش می‌دهد. <p>شناسه تراکنش : @ViewBag.code</p>: این تگ p یک پاراگراف با متن "شناسه تراکنش :" و مقدار @ViewBag.code را نمایش می‌دهد. مقدار @ViewBag.code از کنترلر به ویو ارسال شده است و شناسه تراکنش را نمایش می‌دهد. نتیجه‌گیری این ویو برای نمایش نتیجه پرداخت طراحی شده است. در صورتی که پرداخت موفق باشد، پیام موفقیت‌آمیز بودن پرداخت و شناسه تراکنش به کاربر نمایش داده می‌شود. استفاده از کلاس‌های Bootstrap باعث زیباسازی و سازماندهی بهتر صفحه می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام CancelPayment است که برای نمایش نتیجه انصراف از پرداخت در یک پروژه ASP.NET Core استفاده می‌شود. این ویو شامل یک عنوان، پیام انصراف از پرداخت و نمایش پیام خطا (در صورت وجود) است. جزئیات کد: ViewData["Title"]: csharp @{ ViewData["Title"] = "انصراف از پرداخت"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "انصراف از پرداخت" تنظیم شده است. ساختار HTML: html <h1>نتیجه پرداخت</h1> <hr /> <div class="alert alert-danger"> <h2>انصراف از پرداخت</h2> <p>@ViewBag.error</p> </div> <h1>نتیجه پرداخت</h1>: این تگ h1 یک عنوان بزرگ با متن "نتیجه پرداخت" را نمایش می‌دهد. <hr />: این تگ یک خط افقی را در صفحه ایجاد می‌کند. <div class="alert alert-danger">: این تگ div یک پیام انصراف از پرداخت را در یک باکس هشدار قرمز (با کلاس‌های "alert alert-danger" از Bootstrap) نمایش می‌دهد. <h2>انصراف از پرداخت</h2>: این تگ h2 یک عنوان کوچک‌تر با متن "انصراف از پرداخت" را نمایش می‌دهد. <p>@ViewBag.error</p>: این تگ p یک پاراگراف با متن خطا (در صورت وجود) را نمایش می‌دهد. مقدار @ViewBag.error از کنترلر به ویو ارسال شده است و پیام خطا را نمایش می‌دهد. نتیجه‌گیری این ویو برای نمایش نتیجه انصراف از پرداخت طراحی شده است. در صورتی که کاربر انصراف از پرداخت را انتخاب کند، پیام مناسب به همراه جزئیات خطا (در صورت وجود) به کاربر نمایش داده می‌شود. استفاده از کلاس‌های Bootstrap باعث زیباسازی و سازماندهی بهتر صفحه می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد یک متد اکشن به نام PaymenBytHttpClient در کنترلر HomeController است که برای ارسال درخواست پرداخت به زرین‌پال با استفاده از HttpClient و دریافت نتیجه پرداخت استفاده می‌شود. همچنین این متد خطاهای مربوط به قطع اتصال به درگاه یا اینترنت را مدیریت می‌کند. جزئیات کد: تعریف متد: csharp public async Task<IActionResult> PaymenBytHttpClient() { این خط نشان می‌دهد که متد PaymenBytHttpClient یک اکشن از نوع Task<IActionResult> است که به صورت ناهمزمان (asynchronous) اجرا می‌شود و یک IActionResult را برمی‌گرداند. بدنه متد: csharp try { using (var client = new HttpClient()) { RequestParameters parameters = new RequestParameters(merchant, amount, description, callbackurl, "", ""); var json = JsonConvert.SerializeObject(parameters); HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(URLs.requestUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); JObject jo = JObject.Parse(responseBody); string errorscode = jo["errors"].ToString(); JObject jodata = JObject.Parse(responseBody); string dataauth = jodata["data"].ToString(); if (dataauth != "[]") { authority = jodata["data"]["authority"].ToString(); string gatewayUrl = URLs.gateWayUrl + authority; return Redirect(gatewayUrl); } else { return BadRequest("Error: " + errorscode); } } } بیایید این بدنه را تجزیه کنیم: Try-Catch Block: از try-catch برای مدیریت خطاها استفاده می‌شود. اگر خطایی رخ دهد، یک استثنا (Exception) پرتاب می‌شود و خطا ثبت (log) می‌شود. ایجاد HttpClient: csharp using (var client = new HttpClient()) { این کد یک شیء HttpClient ایجاد می‌کند که برای ارسال درخواست HTTP استفاده می‌شود. ایجاد شیء RequestParameters: csharp RequestParameters parameters = new RequestParameters(merchant, amount, description, callbackurl, "", ""); این خط یک نمونه از کلاس RequestParameters ایجاد می‌کند که شامل پارامترهای مورد نیاز برای درخواست پرداخت است. سریال‌سازی JSON: csharp var json = JsonConvert.SerializeObject(parameters); این کد شیء parameters را به یک رشته JSON سریال‌سازی می‌کند. ایجاد HttpContent: csharp HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); این کد محتوای درخواست HTTP را با استفاده از رشته JSON ایجاد می‌کند و نوع محتوا را به application/json تنظیم می‌کند. ارسال درخواست و دریافت پاسخ: csharp HttpResponseMessage response = await client.PostAsync(URLs.requestUrl, content); string responseBody = await response.Content.ReadAsStringAsync(); این کد درخواست POST را به URL مشخص شده ارسال و پاسخ آن را به صورت ناهمزمان دریافت می‌کند. تجزیه پاسخ JSON: csharp JObject jo = JObject.Parse(responseBody); string errorscode = jo["errors"].ToString(); JObject jodata = JObject.Parse(responseBody); string dataauth = jodata["data"].ToString(); این کد پاسخ JSON را به اشیاء JObject تبدیل می‌کند تا بتواند داده‌ها و خطاها را استخراج کند. بررسی داده‌ها و خطاها: csharp if (dataauth != "[]") { authority = jodata["data"]["authority"].ToString(); string gatewayUrl = URLs.gateWayUrl + authority; return Redirect(gatewayUrl); } else { return BadRequest("Error: " + errorscode); } اگر داده‌ها وجود داشته باشند، شناسه تراکنش (authority) استخراج و کاربر به صفحه پرداخت هدایت می‌شود. اگر خطا وجود داشته باشد، پیام خطا برگردانده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
مدیریت خطاها: csharp catch (HttpRequestException httpEx) { _logger.LogError(httpEx, "HTTP request error occurred while processing the payment request."); return View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = "خطا در ارتباط با درگاه پرداخت. لطفاً مجدداً تلاش کنید." }); } catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the payment request."); return View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = ex.Message }); } return NotFound(); } HttpRequestException: csharp catch (HttpRequestException httpEx) { _logger.LogError(httpEx, "HTTP request error occurred while processing the payment request."); return View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = "خطا در ارتباط با درگاه پرداخت. لطفاً مجدداً تلاش کنید." }); } این بلوک خطاهای مربوط به درخواست HTTP را مدیریت می‌کند و یک پیام خطا به همراه ویوی Error نمایش می‌دهد. Exception: csharp catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the payment request."); return View("Error", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrorMessage = ex.Message }); } این بلوک سایر خطاها را مدیریت می‌کند و یک پیام خطا به همراه ویوی Error نمایش می‌دهد. بازگشت نتیجه NotFound در صورت عدم وجود داده: csharp return NotFound(); نتیجه‌گیری این متد اکشن برای ارسال درخواست پرداخت به زرین‌پال با استفاده از HttpClient و مدیریت خطاهای اتصال طراحی شده است. در صورت وقوع خطاهای مختلف، پیام‌های مناسبی به کاربر نمایش داده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک کلاس به نام ErrorViewModel در فضای نام zarinpalasp.netcorerest.Models است. این کلاس برای نمایش اطلاعات خطا در یک پروژه ASP.NET Core استفاده می‌شود. جزئیات کد: فضاهای نام و استفاده‌ها: csharp using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; این خطوط از کد، فضاهای نام مورد نیاز برای عملکرد برنامه را وارد می‌کنند. در این مورد، فضای نام‌های استانداردی مانند System, System.Collections.Generic, System.Linq, و System.Threading.Tasks وارد شده‌اند. تعریف فضای نام: csharp namespace zarinpalasp.netcorerest.Models { این خط فضای نام zarinpalasp.netcorerest.Models را تعریف می‌کند که کلاس ErrorViewModel در آن قرار دارد. تعریف کلاس ErrorViewModel: csharp public class ErrorViewModel { این خط کلاس ErrorViewModel را تعریف می‌کند. این کلاس عمومی (public) است و بنابراین از سایر بخش‌های برنامه قابل دسترسی است. خصوصیات کلاس ErrorViewModel: csharp public string RequestId { get; set; } public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); public string ErrorMessage { get; set; } } این خصوصیات مربوط به کلاس ErrorViewModel را تعریف می‌کنند: RequestId: csharp public string RequestId { get; set; } این خصوصیت یک شناسه درخواست (RequestId) از نوع رشته (string) نگه می‌دارد. ShowRequestId: csharp public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); این خصوصیت یک مقدار بولی (Boolean) بازمی‌گرداند که نشان می‌دهد آیا RequestId مقداردهی شده و خالی نیست. این خصوصیت از نوع عبارت لامبدا (lambda expression) است و فقط یک مقدار بازمی‌گرداند. ErrorMessage: csharp public string ErrorMessage { get; set; } این خصوصیت یک پیام خطا (ErrorMessage) از نوع رشته (string) نگه می‌دارد. نتیجه‌گیری: کلاس ErrorViewModel برای نمایش اطلاعات خطا در یک پروژه ASP.NET Core استفاده می‌شود. این کلاس شامل شناسه درخواست (RequestId)، یک خصوصیت بولی برای نمایش شناسه درخواست (ShowRequestId) و پیام خطا (ErrorMessage) است. استفاده از این کلاس به شما امکان می‌دهد تا اطلاعات مربوط به خطاها را به صورت ساختاریافته در ویوهای خود نمایش دهید.
پروژه ASP.Net Core MVC (وب و سی شارپ)
سلام پروژه تصحح شده زرین پال هست که به صفحه تست بانک زرین وصل می شود نکته مهم : برنامه فقط یک بار ا
شرح کد: این کد مربوط به یک ویو به نام Error در پوشه Views/Shared است که برای نمایش اطلاعات خطا در یک پروژه ASP.NET Core استفاده می‌شود. این ویو از مدل ErrorViewModel برای نمایش پیام خطا و شناسه درخواست استفاده می‌کند. جزئیات کد: استفاده از مدل ErrorViewModel: csharp @model zarinpalasp.netcorerest.Models.ErrorViewModel این خط از کد مشخص می‌کند که ویو از مدل ErrorViewModel استفاده می‌کند. این مدل شامل خصوصیات RequestId و ErrorMessage است که در ویو نمایش داده می‌شوند. تنظیم ViewData["Title"]: csharp @{ ViewData["Title"] = "خطا"; } این خط از کد، عنوان صفحه را با استفاده از ViewData تنظیم می‌کند. در این مورد، عنوان صفحه به "خطا" تنظیم شده است. ساختار HTML: html <h1 class="text-danger">خطا</h1> <h3 class="text-danger">متاسفانه مشکلی پیش آمده است.</h3> <p>@Model.ErrorMessage</p> @if (Model.ShowRequestId) { <p>شناسه درخواست: <code>@Model.RequestId</code></p> } <h1 class="text-danger">خطا</h1>: این تگ h1 یک عنوان بزرگ با کلاس "text-danger" از Bootstrap را نمایش می‌دهد که متن آن "خطا" است. <h3 class="text-danger">متاسفانه مشکلی پیش آمده است.</h3>: این تگ h3 یک عنوان کوچک‌تر با کلاس "text-danger" از Bootstrap را نمایش می‌دهد که متن آن "متاسفانه مشکلی پیش آمده است." است. <p>@Model.ErrorMessage</p>: این تگ p پیام خطا را نمایش می‌دهد. مقدار @Model.ErrorMessage از مدل ErrorViewModel دریافت می‌شود و پیام خطا را نمایش می‌دهد. @if (Model.ShowRequestId): این عبارت شرطی بررسی می‌کند که آیا شناسه درخواست (RequestId) وجود دارد یا خیر. اگر وجود داشته باشد، شناسه درخواست را نمایش می‌دهد. <p>شناسه درخواست: <code>@Model.RequestId</code></p>: این تگ p شناسه درخواست را نمایش می‌دهد. مقدار @Model.RequestId از مدل ErrorViewModel دریافت می‌شود. نتیجه‌گیری: این ویو برای نمایش اطلاعات خطا در یک پروژه ASP.NET Core استفاده می‌شود. در صورتی که خطایی رخ دهد، این ویو پیام خطا و شناسه درخواست را به کاربر نمایش می‌دهد. استفاده از کلاس‌های Bootstrap باعث زیباسازی و سازماندهی بهتر صفحه می‌شود.
TestbankZarinpal.zip
حجم: 18.4M
این پروژه تست بانک زرین پال را به دات نت 8 آپدیت کردم و IIS Express و http را Url: http://localhost:2812 یکی کردم تا اتصال به تست بانک به مشکل نخورد
Test_Store 17.zip
حجم: 56.9M
پروژه فروشگاه این قسمت زرین پال با iisExpress بروید و پورت 44350 میباشد تا برگشت به پروژه از بانک تست زرین پال پروژه را نمیتوانید با http از بانک تست استفاده کرد چون خطای اتصال ایمن می دهد
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه فروشگاه این قسمت زرین پال با iisExpress بروید و پورت 44350 میباشد تا برگشت به پروژه از بانک تس
namespace Test_Store.Domain.Entities.Carts این کد بخش‌های مربوط به مدیریت سبد خرید (Cart) و آیتم‌های سبد خرید (CartItem) را تعریف کرده است. من به‌طور خلاصه توضیح می‌دهم که این کد چه کارهایی انجام می‌دهد: توضیح کلاس‌ها 1. کلاس Cart (سبد خرید): این کلاس نماینده‌ی سبد خرید یک کاربر است و ویژگی‌های زیر را شامل می‌شود: User: ارتباطی (virtual) با کلاس User دارد که مشخص می‌کند سبد خرید متعلق به کدام کاربر است. UserId: شناسه کاربر به‌صورت nullable است، یعنی ممکن است مقدار null داشته باشد (برای سبد خریدهای ناشناس یا بدون ورود کاربر). BrowserId: شناسه مرورگر کاربر برای پیگیری سبد خرید در جلسات مرورگر. Finished: یک مقدار بولین است که مشخص می‌کند آیا سبد خرید تکمیل شده است یا خیر (مانند زمانی که کاربر خرید را نهایی می‌کند). CartItems: مجموعه‌ای از آیتم‌های موجود در این سبد خرید (ارتباط یک‌به‌چند با کلاس CartItem). 2. کلاس CartItem (آیتم‌های سبد خرید): این کلاس نماینده‌ی آیتم‌های موجود در یک سبد خرید است و ویژگی‌های زیر را دارد: Product: ارتباطی (virtual) با کلاس Product دارد که مشخص می‌کند این آیتم مربوط به کدام محصول است. ProductId: شناسه محصول موجود در سبد خرید. Count: تعداد از محصول که در سبد خرید قرار دارد. Price: قیمت محصول در لحظه‌ای که وارد سبد خرید شده است. Cart: ارتباطی (virtual) با کلاس Cart دارد که مشخص می‌کند این آیتم به کدام سبد خرید تعلق دارد. CartId: شناسه سبد خرید. ارتباط بین کلاس‌ها سبد خرید و آیتم‌ها (Cart و CartItem): هر سبد خرید می‌تواند شامل چندین آیتم باشد (ارتباط یک‌به‌چند). از ICollection<CartItem> در کلاس Cart استفاده شده است تا آیتم‌ها مدیریت شوند. آیتم‌های سبد خرید و محصولات (CartItem و Product): هر آیتم سبد خرید به یک محصول خاص مربوط است (ارتباط یک‌به‌یک). سبد خرید و کاربر (Cart و User): هر سبد خرید ممکن است به یک کاربر مرتبط باشد، اما این ارتباط اجباری نیست (UserId می‌تواند null باشد). کاربرد عملی این کلاس‌ها معمولاً برای مدیریت سبد خرید در یک فروشگاه آنلاین استفاده می‌شوند. فرآیند کلی به این شکل است: ایجاد سبد خرید: برای هر کاربر (یا مرورگر ناشناس)، یک سبد خرید ایجاد می‌شود. افزودن آیتم‌ها: آیتم‌ها (محصولات با تعداد مشخص) به سبد خرید اضافه می‌شوند. تکمیل خرید: زمانی که کاربر خرید را نهایی می‌کند، مقدار Finished در کلاس Cart به true تغییر می‌کند. نتیجه‌گیری این ساختار بسیار مناسب برای مدیریت سبد خرید در یک سیستم فروشگاه آنلاین است. ارتباط‌های بین کلاس‌ها به خوبی طراحی شده‌اند و امکان توسعه آسان را فراهم می‌کنند
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه فروشگاه این قسمت زرین پال با iisExpress بروید و پورت 44350 میباشد تا برگشت به پروژه از بانک تس
namespace Test_Store.Domain.Entities.Carts این کد دو کلاس اصلی به نام Cart و CartItem را تعریف می‌کند که برای مدیریت سبد خرید در یک فروشگاه آنلاین استفاده می‌شوند. در ادامه به تفکیک هر کلاس را توضیح می‌دهم: کلاس Cart (سبد خرید): این کلاس نماینده‌ی سبد خرید یک کاربر است و ویژگی‌های زیر را دارد: User: نشان‌دهنده‌ی کاربری است که صاحب سبد خرید است. این ویژگی یک رابطه‌ی virtual دارد که به کلاس User متصل است. UserId: شناسه کاربر به صورت nullable است؛ یعنی ممکن است مقدار null داشته باشد (به عنوان مثال، برای سبد خرید‌های ناشناس یا مهمان‌ها). BrowserId: یک شناسه‌ی یکتا برای مرورگر کاربر است که به کمک آن سبد خرید مدیریت می‌شود. Finished: مشخص می‌کند که سبد خرید تکمیل شده یا خیر (برای زمانی که خرید نهایی و پرداخت انجام شده است). CartItems: مجموعه‌ای از آیتم‌های موجود در سبد خرید است که به کلاس CartItem مربوط می‌شود. کلاس CartItem (آیتم‌های سبد خرید): این کلاس نماینده‌ی آیتم‌های موجود در یک سبد خرید است و ویژگی‌های زیر را شامل می‌شود: Product: ارتباطی virtual با کلاس Product دارد و نشان می‌دهد که این آیتم مربوط به کدام محصول است. ProductId: شناسه محصولی که به سبد خرید اضافه شده است. Count: تعداد این محصول که در سبد خرید قرار دارد. Price: قیمت واحد محصول در لحظه‌ای که به سبد خرید اضافه شده است. Cart: ارتباطی virtual با کلاس Cart دارد و نشان‌دهنده‌ی این است که این آیتم به کدام سبد خرید تعلق دارد. CartId: شناسه‌ی سبد خریدی که این آیتم در آن قرار دارد. ارتباط بین کلاس‌ها: ارتباط سبد خرید و آیتم‌ها: هر سبد خرید (Cart) می‌تواند چندین آیتم (CartItem) داشته باشد. این ارتباط یک‌به‌چند است. ارتباط آیتم‌ها و محصولات: هر آیتم سبد خرید به یک محصول (Product) خاص متصل است. این ارتباط یک‌به‌یک است. ارتباط سبد خرید و کاربر: هر سبد خرید ممکن است به یک کاربر متصل باشد. اگر کاربر ناشناس باشد، UserId مقدار null خواهد داشت. کاربرد این کلاس‌ها: ایجاد سبد خرید برای کاربران یا مرورگرهای ناشناس: با استفاده از BrowserId می‌توان سبد خرید را برای مهمان‌ها مدیریت کرد. افزودن محصولات به سبد خرید: با افزودن آیتم‌های CartItem، سبد خرید پر می‌شود. محاسبه قیمت کل و تکمیل خرید: با استفاده از داده‌های Count و Price، می‌توان مجموع قیمت را محاسبه کرد. ثبت وضعیت پرداخت: پس از تکمیل پرداخت، مقدار Finished به true تغییر می‌کند. نتیجه‌گیری: این طراحی یک مدل ساختاری مناسب برای مدیریت سبد خرید است که از طریق روابط یک‌به‌چند و یک‌به‌یک، تمام اطلاعات سبد خرید و آیتم‌های آن را پوشش می‌دهد.
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه فروشگاه این قسمت زرین پال با iisExpress بروید و پورت 44350 میباشد تا برگشت به پروژه از بانک تس
namespace Test_Store.Domain.Entities.Finances این کد کلاس RequestPay را تعریف می‌کند که برای مدیریت درخواست‌های پرداخت در سیستم مالی یک فروشگاه آنلاین استفاده می‌شود. در ادامه توضیحات بخش‌های مختلف این کلاس ارائه شده است: ویژگی‌ها و توضیحات آن‌ها: 1. Guid: شناسه‌ی یکتا برای هر درخواست پرداخت. این مقدار به صورت خودکار تولید می‌شود و تضمین می‌کند که هر درخواست پرداخت یک شناسه منحصر به فرد داشته باشد. 2. User: ارتباطی (virtual) به کلاس User دارد که نشان می‌دهد این درخواست پرداخت متعلق به کدام کاربر است. 3. UserId: شناسه‌ی کاربری که درخواست پرداخت را ایجاد کرده است. برای ارتباط مستقیم و سریع با کاربر مورد استفاده قرار می‌گیرد. 4. Amount: مقدار مبلغی که برای این پرداخت درخواست شده است. این مقدار به تومان یا واحد پولی موردنظر ذخیره می‌شود. 5. IsPay: مشخص می‌کند که آیا پرداخت انجام شده است (true) یا هنوز در انتظار پرداخت است (false). این ویژگی برای پیگیری وضعیت درخواست پرداخت بسیار مهم است. 6. PayDate: تاریخ انجام پرداخت، اگر پرداخت انجام شده باشد. نوع داده‌ی آن nullable است، بنابراین اگر پرداخت انجام نشده باشد، مقدار آن null خواهد بود. 7. Authority: شناسه‌ای که توسط درگاه پرداخت (مثل زرین‌پال) ایجاد می‌شود و برای تأیید پرداخت استفاده می‌شود. مقدار پیش‌فرض آن یک رشته‌ی خالی ("") است. 8. RefId: شناسه‌ی مرجع پرداخت که توسط بانک یا درگاه پرداخت صادر می‌شود. برای پیگیری تراکنش در سیستم مالی استفاده می‌شود. مقدار پیش‌فرض آن 0 است. کاربرد کلاس RequestPay: این کلاس برای مدیریت درخواست‌های پرداخت استفاده می‌شود و فرآیند کلی به شکل زیر است: ایجاد درخواست پرداخت: هنگام ثبت خرید، یک رکورد جدید از این کلاس ایجاد می‌شود. ذخیره شناسه‌های تراکنش: شناسه‌های Authority و RefId بعد از ارتباط با درگاه پرداخت ذخیره می‌شوند. به‌روزرسانی وضعیت پرداخت: پس از تأیید پرداخت، مقدار IsPay به true تغییر می‌کند و تاریخ پرداخت (PayDate) تنظیم می‌شود. بررسی وضعیت پرداخت: برای نمایش به کاربر یا گزارش‌گیری، اطلاعات پرداخت بررسی و استفاده می‌شود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه فروشگاه این قسمت زرین پال با iisExpress بروید و پورت 44350 میباشد تا برگشت به پروژه از بانک تس
namespace Test_Store.Application.Services.Fainances.Commands.AddRequestPay این کد مسئولیت ایجاد و ثبت درخواست پرداخت جدید در سیستم را بر عهده دارد و به خوبی برای این منظور طراحی شده است. در ادامه توضیحات مربوط به بخش‌های مختلف این کد ارائه شده است: 1. IAddRequestPayService (اینترفیس سرویس): این اینترفیس مشخص می‌کند که کلاس‌های پیاده‌سازی‌شده باید شامل متدی به نام Execute باشند که دو ورودی زیر را دریافت می‌کند: Amount: مبلغی که برای پرداخت تعیین شده است. UserId: شناسه کاربری که این پرداخت برای او انجام می‌شود. این اینترفیس به منظور جداسازی وابستگی‌ها و افزایش انعطاف‌پذیری استفاده می‌شود. 2. AddRequestPayService (پیاده‌سازی سرویس): این کلاس منطق اصلی مربوط به ایجاد درخواست پرداخت را پیاده‌سازی می‌کند. ویژگی‌ها: _context: یک نمونه از IDataBaseContext برای تعامل با پایگاه داده. این شیء از طریق تزریق وابستگی (Dependency Injection) مقداردهی می‌شود. متد Execute: این متد وظایف زیر را انجام می‌دهد: بازیابی اطلاعات کاربر: با استفاده از UserId، کاربر مربوطه از پایگاه داده دریافت می‌شود: csharp var user = _context.Users.Find(UserId); ایجاد یک شیء RequestPay: یک شیء از نوع RequestPay ایجاد می‌شود که شامل اطلاعات درخواست پرداخت است: Amount: مبلغ پرداخت. Guid: شناسه یکتای تولیدشده برای این درخواست پرداخت. IsPay: مقدار اولیه false (یعنی پرداخت انجام نشده است). User: ارتباط با کاربر مربوطه. ذخیره درخواست پرداخت در پایگاه داده: شیء RequestPay به جدول مربوطه اضافه می‌شود و تغییرات ذخیره می‌شود: csharp _context.RequestPays.Add(requestPay); _context.SaveChanges(); بازگشت نتیجه: نتیجه عملیات همراه با اطلاعاتی مثل Guid, Amount, Email, و RequestPayId بازگردانده می‌شود: csharp return new ResultDto<ResultRequestPayDto>() 3. کلاس ResultRequestPayDto: این کلاس مسئول بازگرداندن اطلاعات درخواست پرداخت به بخش‌های دیگر برنامه است: guid: شناسه یکتا که برای پیگیری درخواست پرداخت استفاده می‌شود. Amount: مبلغ پرداخت. Email: ایمیل کاربر مربوطه. RequestPayId: شناسه درخواست پرداخت در پایگاه داده. کاربرد این کد در سیستم پرداخت: ایجاد درخواست پرداخت: هنگام ارسال کاربر به درگاه پرداخت، این کد یک درخواست پرداخت در سیستم ثبت می‌کند. ذخیره اطلاعات تراکنش: شناسه‌های مهم مثل Guid ذخیره می‌شوند تا بعداً بتوان وضعیت پرداخت را پیگیری کرد. بازگشت اطلاعات به کلاینت: اطلاعاتی که برای ارتباط با درگاه پرداخت لازم است (مثل Guid) بازگردانده می‌شود. جمع‌بندی: این کد به طور کلی مسئولیت ایجاد یک درخواست پرداخت جدید را دارد. طراحی آن بسیار دقیق است و اصولی مانند تزریق وابستگی و تفکیک منطق استفاده شده است.