Userhez is lehet már NFC kódot rendelni
This commit is contained in:
@@ -21,7 +21,7 @@ namespace WorkFlowCheck.MAUI.Services
|
||||
{
|
||||
private readonly IUserService _userService;
|
||||
|
||||
public SyncService(HttpClient httpClient, IConfiguration configuration, AppDbContext dbContext, IMapper mapper, IUserService userService) : base(httpClient, configuration, dbContext, mapper)
|
||||
public SyncService(HttpClient httpClient, AppDbContext dbContext, IMapper mapper, IUserService userService) : base(httpClient, dbContext, mapper)
|
||||
{
|
||||
_userService = userService;
|
||||
}
|
||||
@@ -34,6 +34,7 @@ namespace WorkFlowCheck.MAUI.Services
|
||||
await SyncEquipments_Down(reportProgress);
|
||||
await SyncCheckListTemplates_Down(reportProgress);
|
||||
await SyncCheckListHeader_Down(reportProgress);
|
||||
await SyncUsers_Down(reportProgress);
|
||||
}
|
||||
public async Task DownloadAPK(Action<double, string> reportProgress)
|
||||
{
|
||||
@@ -404,5 +405,72 @@ namespace WorkFlowCheck.MAUI.Services
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
public async Task<ApiResponseDTO<string>> SyncUsers_Up(Action<double, string> reportProgress)
|
||||
{
|
||||
var retVal = new ApiResponseDTO<string>();
|
||||
try
|
||||
{
|
||||
await PrepareAuthenticatedRequestAsync();
|
||||
|
||||
var userList = await _dbContext.MobileUsers.ToListAsync();
|
||||
|
||||
var mobileUserListDTO = _mapper.Map<List<MobileUserDTO>>(userList);
|
||||
var endpoint = $"{_httpClient.BaseAddress}api/Sync/UpdateAllMobileUser";
|
||||
|
||||
var json = JsonConvert.SerializeObject(mobileUserListDTO, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
|
||||
var jsonBytes = Encoding.UTF8.GetBytes(json);
|
||||
var jsonStream = new MemoryStream(jsonBytes);
|
||||
|
||||
var progressContent = new ProgressableStreamContent(jsonStream, 8192, (uploaded, total) =>
|
||||
{
|
||||
double percentage = (double)uploaded / total * 100;
|
||||
reportProgress(percentage, "Beküldés...");
|
||||
});
|
||||
|
||||
progressContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||||
|
||||
using (HttpResponseMessage httpResponseMessage = await _httpClient.PostAsync(endpoint, progressContent))
|
||||
{
|
||||
httpResponseMessage.EnsureSuccessStatusCode();
|
||||
var jsonString = await httpResponseMessage.Content.ReadAsStringAsync();
|
||||
retVal = JsonConvert.DeserializeObject<ApiResponseDTO<string>>(jsonString);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
retVal.IsSuccess = false;
|
||||
retVal.Errors.Add(ex.Message);
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
public async Task SyncUsers_Down(Action<double, string> reportProgress)
|
||||
{
|
||||
try
|
||||
{
|
||||
string endpoint = $"{_httpClient.BaseAddress}api/Sync/GetAllMobileUsers";
|
||||
var responseList = DownloadDataAsync<MobileUserDTO>(endpoint, reportProgress).Result;
|
||||
|
||||
if (responseList != null)
|
||||
{
|
||||
if (responseList.IsSuccess)
|
||||
{
|
||||
var entityList = await _dbContext.MobileUsers.ToListAsync();
|
||||
var missingItems = responseList.Data.Where(f => !entityList.Any(s => s.Id == f.Id)).ToList();
|
||||
|
||||
var mappedMissingItems = _mapper.Map<List<MobileUser>>(missingItems);
|
||||
|
||||
_dbContext.MobileUsers.AddRange(mappedMissingItems);
|
||||
await _dbContext.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Hiba visszaadása
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user