diff --git a/0_Framework/Application/Gender.cs b/0_Framework/Application/Gender.cs
new file mode 100644
index 00000000..bbc81090
--- /dev/null
+++ b/0_Framework/Application/Gender.cs
@@ -0,0 +1,7 @@
+namespace _0_Framework.Application;
+
+public enum Gender
+{
+ Male,
+ Female
+}
\ No newline at end of file
diff --git a/0_Framework/Application/UID/IUidService.cs b/0_Framework/Application/UID/IUidService.cs
new file mode 100644
index 00000000..19dd0034
--- /dev/null
+++ b/0_Framework/Application/UID/IUidService.cs
@@ -0,0 +1,121 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Permissions;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace _0_Framework.Application.UID;
+
+#region PersonalInfoResponseDTO
+
+///
+/// ویو مدل اطلاعات شخصی کاربر که از سرویس یو آیدی دریافت می شود
+///
+///
+///
+///
+///
+public record PersonalInfoResponse(
+ UidBasicInformation BasicInformation,
+ IdentificationInformation IdentificationInformation,
+ RegistrationStatus RegistrationStatus,
+ ResponseContext ResponseContext);
+
+
+
+public class UidBasicInformation
+{
+ public string FirstName { get; set; }
+ public string LastName { get; set; }
+ public string FatherName { get; set; }
+
+ [JsonProperty("gender")]
+ public string Gender { get; set; }
+
+ public Gender GenderEnum => Gender switch
+ {
+ "GENDER_MALE" => Application.Gender.Male,
+ "GENDER_FEMALE" => Application.Gender.Female,
+ _ => throw new ArgumentOutOfRangeException()
+ };
+}
+public record IdentificationInformation(string NationalId, string BirthDate, string ShenasnameSeri, string ShenasnameSerial, string ShenasnamehNumber);
+
+public class RegistrationStatus
+{
+ [JsonProperty("deathStatus")]
+ public string DeathStatus { get; set; }
+
+ public DeathStatus DeathStatusEnum => DeathStatus switch
+ {
+ "DEATH_STATUS_ALIVE" => UID.DeathStatus.Alive,
+ "DEATH_STATUS_DEATH" => UID.DeathStatus.Dead,
+ _ => throw new ArgumentOutOfRangeException()
+ };
+};
+public record ResponseContext(UidStatus Status);
+
+public record UidStatus(int Code, string Message);
+
+public enum DeathStatus
+{
+ Alive,
+ Dead,
+}
+
+
+
+#endregion
+
+
+#region PersonalInfoRequestDTO
+///
+/// درخواست اطلاعات شخصی کاربر از سرویس یو آیدی
+///
+public class PersonalInfoRequest
+{
+ [JsonProperty("requestContext")]
+ public UidRequestContext RequestContext { get; set; }
+
+ [JsonProperty("nationalId")]
+ public string NationalId { get; set; }
+
+ [JsonProperty("birthDate")]
+ public string BirthDate { get; set; }
+
+ [JsonProperty("mobileNumber")]
+ public string MobileNumber { get; set; }
+}
+
+public class UidRequestContext
+{
+ [JsonProperty("apiInfo")]
+ public ApiInfo ApiInfo => new ApiInfo();
+
+};
+
+public record ApiInfo
+{
+ [JsonProperty("businessToken")]
+ public string BusinessToken => "5e03dd4e-999d-466f-92d8-7c0b1f66a8e9";
+
+ [JsonProperty("businessId")]
+ public string BusinessId => "98ed67ca-d441-4978-a748-e8bebce010eb";
+}
+#endregion
+
+public interface IUidService
+{
+ Task GetPersonalInfo(string nationalCode , string birthDate);
+ Task IsMachPhoneWithNationalCode(string nationalCode , string phoneNumber);
+}
+
+public class MatchMobileWithNationalCodeResponse
+{
+ [JsonProperty("isMatched")] public bool IsMatched { get; set; }
+
+ public ResponseContext ResponseContext { get; set; }
+}
+
diff --git a/0_Framework/Application/UID/UidService.cs b/0_Framework/Application/UID/UidService.cs
new file mode 100644
index 00000000..2a947aa7
--- /dev/null
+++ b/0_Framework/Application/UID/UidService.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Net.Http;
+using System.Net.Http.Json;
+using System.Text;
+using System.Text.Json;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+namespace _0_Framework.Application.UID;
+
+public class UidService : IUidService
+{
+ private readonly HttpClient _httpClient;
+ private const string BaseUrl= "https://json-api.uid.ir/api/inquiry/";
+
+ public UidService()
+ {
+ _httpClient = new HttpClient()
+ {
+ BaseAddress = new Uri(BaseUrl)
+ };
+ }
+
+ public async Task GetPersonalInfo(string nationalCode, string birthDate)
+ {
+ var request = new PersonalInfoRequest
+ {
+ BirthDate = birthDate ,
+ NationalId = nationalCode,
+ RequestContext = new UidRequestContext()
+ };
+ var json = JsonConvert.SerializeObject(request);
+ var contentType = new StringContent(json, Encoding.UTF8, "application/json");
+
+ var requestResult = await _httpClient.PostAsync("person/v2", contentType);
+ if(!requestResult.IsSuccessStatusCode)
+ return null;
+ var responseResult = await requestResult.Content.ReadFromJsonAsync();
+ return responseResult;
+ }
+
+
+ public async Task IsMachPhoneWithNationalCode(string nationalCode, string phoneNumber)
+ {
+ var request = new PersonalInfoRequest
+ {
+ MobileNumber = phoneNumber,
+ NationalId = nationalCode,
+ RequestContext = new UidRequestContext()
+ };
+ var json = JsonConvert.SerializeObject(request);
+ var contentType = new StringContent(json, Encoding.UTF8, "application/json");
+
+ var requestResult = await _httpClient.PostAsync("mobile/owner/v2", contentType);
+ if (!requestResult.IsSuccessStatusCode)
+ return null;
+
+ var responseResult = await requestResult.Content.ReadFromJsonAsync();
+ return responseResult;
+ }
+}
\ No newline at end of file
diff --git a/AccountManagement.Application/TaskApplication.cs b/AccountManagement.Application/TaskApplication.cs
index cb54e320..bd527766 100644
--- a/AccountManagement.Application/TaskApplication.cs
+++ b/AccountManagement.Application/TaskApplication.cs
@@ -928,8 +928,8 @@ public class TaskApplication : ITaskApplication
public OperationResult UploadMedia(IFormFile mediaFile, long senderId)
{
var operation = new OperationResult();
- if ((mediaFile.Length > 5000000))
- return operation.Failed("حجم فایل نمیتواند از 5 مگابایت بیشتر باشد");
+ if ((mediaFile.Length > 50000000))
+ return operation.Failed("حجم فایل نمیتواند از 50 مگابایت بیشتر باشد");
var path = Path.Combine($"{_taskRepository.GetWebEnvironmentPath()}", "Storage",
"temp", $"{senderId}");
Directory.CreateDirectory(path);
diff --git a/AccountManagement.Application/TicketApplication.cs b/AccountManagement.Application/TicketApplication.cs
index 71333f0a..1ad2ad1b 100644
--- a/AccountManagement.Application/TicketApplication.cs
+++ b/AccountManagement.Application/TicketApplication.cs
@@ -446,8 +446,8 @@ public class TicketApplication : ITicketApplication
public OperationResult UploadMedia(IFormFile mediaFile, long senderId)
{
var operation = new OperationResult();
- if ((mediaFile.Length > 5000000) || (mediaFile.Length > 5000000) || (mediaFile.Length > 5000000))
- return operation.Failed("حجم فایل نمیتواند از 5 مگابایت بیشتر باشد");
+ if ((mediaFile.Length > 50000000) || (mediaFile.Length > 50000000) || (mediaFile.Length > 50000000))
+ return operation.Failed("حجم فایل نمیتواند از 50 مگابایت بیشتر باشد");
var path = Path.Combine($"{_taskRepository.GetWebEnvironmentPath()}", "Storage",
"temp", $"{senderId}");
Directory.CreateDirectory(path);
diff --git a/CompanyManagment.EFCore/Repository/LeaveRepository.cs b/CompanyManagment.EFCore/Repository/LeaveRepository.cs
index 62bcb776..2a26e149 100644
--- a/CompanyManagment.EFCore/Repository/LeaveRepository.cs
+++ b/CompanyManagment.EFCore/Repository/LeaveRepository.cs
@@ -436,7 +436,7 @@ public class LeaveRepository : RepositoryBase, ILeaveRepository
var leftCheck = _context.LeftWorkList
.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId)
- .Where(x => x.StartWorkDate <= startLeav && x.LeftWorkDate > startLeav && x.StartWorkDate < endLeav &&
+ .Where(x => x.StartWorkDate <= startLeav && x.LeftWorkDate > startLeav && x.StartWorkDate <= endLeav &&
x.LeftWorkDate > endLeav).ToList();
diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeDatatable.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeDatatable.cshtml
index c1b8cd1f..d8783edf 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeDatatable.cshtml
+++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeDatatable.cshtml
@@ -434,6 +434,7 @@
$('#hiddenBaseYearToEditModal').val(row.find('td:eq(10)').attr("data-BaseYears"));
$('#hiddendaailyWagePlusBaseYear').val(row.find('td:eq(11)').attr("data-DailyWagePlusBaseYears"));
$('#hiddenMonthlySalaryPlusBaseYear').val(row.find('td:eq(8)').attr("data-MonthlySalaryPlusBaseyear"));
+ $('#hiddenMarriedAllowance').val(row.find('td:eq(9)').attr("data-MarriedAllowance"));
}
diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeListForEdit.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeListForEdit.cshtml
index 7413d2e0..4016a27e 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeListForEdit.cshtml
+++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/EmployeeListForEdit.cshtml
@@ -393,6 +393,7 @@
$('#hiddenBaseYearToEditModal').val(row.find('td:eq(10)').attr("data-BaseYears"));
$('#hiddendaailyWagePlusBaseYear').val(row.find('td:eq(11)').attr("data-DailyWagePlusBaseYears"));
$('#hiddenMonthlySalaryPlusBaseYear').val(row.find('td:eq(8)').attr("data-MonthlySalaryPlusBaseyear"));
+ $('#hiddenMarriedAllowance').val(row.find('td:eq(9)').attr("data-MarriedAllowance"));
}
diff --git a/ServiceHost/InsuranceList/477/1403_10/DSKKAR00.dbf b/ServiceHost/InsuranceList/477/1403_10/DSKKAR00.dbf
new file mode 100644
index 00000000..9dfc116c
Binary files /dev/null and b/ServiceHost/InsuranceList/477/1403_10/DSKKAR00.dbf differ
diff --git a/ServiceHost/InsuranceList/477/1403_10/DSKWOR00.dbf b/ServiceHost/InsuranceList/477/1403_10/DSKWOR00.dbf
new file mode 100644
index 00000000..fe03f27f
Binary files /dev/null and b/ServiceHost/InsuranceList/477/1403_10/DSKWOR00.dbf differ
diff --git a/ServiceHost/Pages/Index.cshtml.cs b/ServiceHost/Pages/Index.cshtml.cs
index 40b38c7b..bd795f1e 100644
--- a/ServiceHost/Pages/Index.cshtml.cs
+++ b/ServiceHost/Pages/Index.cshtml.cs
@@ -7,6 +7,7 @@ using AccountManagement.Domain.AccountAgg;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using System.Security.Claims;
+using _0_Framework.Application.UID;
using AccountManagement.Application.Contracts.CameraAccount;
using CompanyManagment.EFCore;
using Company.Domain.EmployeeAgg;
@@ -43,11 +44,12 @@ namespace ServiceHost.Pages
private readonly ICameraAccountApplication _cameraAccountApplication;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IAndroidApkVersionApplication _androidApkVersionApplication;
+ private readonly IUidService _uidService;
public IndexModel(ILogger logger, IAccountApplication accountApplication, IGoogleRecaptcha googleRecaptcha, ISmsService smsService, IWorker worker,
IAuthHelper authHelper, ICameraAccountApplication cameraAccountApplication, IWebHostEnvironment webHostEnvironment,
- IAndroidApkVersionApplication androidApkVersionApplication)
+ IAndroidApkVersionApplication androidApkVersionApplication, IUidService uidService)
{
_logger = logger;
_accountApplication = accountApplication;
@@ -58,11 +60,15 @@ namespace ServiceHost.Pages
_cameraAccountApplication = cameraAccountApplication;
_webHostEnvironment = webHostEnvironment;
_androidApkVersionApplication = androidApkVersionApplication;
- }
+ _uidService = uidService;
+ }
public IActionResult OnGet()
- {
+ {
+
+ //_uidService.GetPersonalInfo("2669318622","1363/02/25").GetAwaiter().GetResult();
+ //_uidService.IsMachPhoneWithNationalCode("2669318622","09114221321").GetAwaiter().GetResult();
HasApkToDownload = _androidApkVersionApplication.HasAndroidApkToDownload();
if (User.Identity is { IsAuthenticated: true })
diff --git a/ServiceHost/Program.cs b/ServiceHost/Program.cs
index fec35be5..10d8caf9 100644
--- a/ServiceHost/Program.cs
+++ b/ServiceHost/Program.cs
@@ -16,6 +16,7 @@ using Query.Bootstrapper;
using ServiceHost.Hubs;
using ServiceHost.MiddleWare;
using WorkFlow.Infrastructure.Config;
+using _0_Framework.Application.UID;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages()
@@ -38,6 +39,7 @@ builder.Services.AddTransient();
builder.Services.AddTransient();
builder.Services.AddTransient();
builder.Services.AddTransient();
+builder.Services.AddTransient();
//services.AddSingleton();
//services.AddHostedService();
diff --git a/ServiceHost/Storage/Task/12296/RollCallBgService_638754044052039151.zip b/ServiceHost/Storage/Task/12296/RollCallBgService_638754044052039151.zip
new file mode 100644
index 00000000..d868647f
Binary files /dev/null and b/ServiceHost/Storage/Task/12296/RollCallBgService_638754044052039151.zip differ
diff --git a/ServiceHost/Storage/Ticket/47/screenshot_638754047520224604.png b/ServiceHost/Storage/Ticket/47/screenshot_638754047520224604.png
new file mode 100644
index 00000000..bb053a8c
Binary files /dev/null and b/ServiceHost/Storage/Ticket/47/screenshot_638754047520224604.png differ
diff --git a/ServiceHost/Storage/Ticket/48/screenshot_638754047808657807.png b/ServiceHost/Storage/Ticket/48/screenshot_638754047808657807.png
new file mode 100644
index 00000000..17c3f4a8
Binary files /dev/null and b/ServiceHost/Storage/Ticket/48/screenshot_638754047808657807.png differ
diff --git a/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/Edit.js b/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/Edit.js
index c543e1ac..bf31be12 100644
--- a/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/Edit.js
+++ b/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/Edit.js
@@ -546,8 +546,8 @@ function attachFileChangeHandler(fileInput, index) {
$(fileInput).off('change').on('change', function () {
let file = fileInput.files[0];
- if (file.size > 5000000) {
- showAlertMessage('.alert-msg', 'لطفا فایل حجم کمتر از 5 مگابایت را انتخاب کنید.', 3500);
+ if (file.size > 50000000) {
+ showAlertMessage('.alert-msg', 'لطفا فایل حجم کمتر از 50 مگابایت را انتخاب کنید.', 3500);
$(`#EditTask_Document${index}`).val('');
return;
}
diff --git a/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/create.js b/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/create.js
index f71f4c51..a99624b2 100644
--- a/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/create.js
+++ b/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/create.js
@@ -626,8 +626,8 @@ function attachFileChangeHandler(fileInput, id, boxClass) {
e.preventDefault();
var fileInputFile = fileInput.files[0];
- if (fileInputFile.size > 5000000) {
- showAlertMessage('.alert-msg', 'لطفا فایل حجم کمتر از 5 مگابایت را انتخاب کنید.', 3500);
+ if (fileInputFile.size > 50000000) {
+ showAlertMessage('.alert-msg', 'لطفا فایل حجم کمتر از 50 مگابایت را انتخاب کنید.', 3500);
$(`#Command_Document${id}`).val('');
return;
}