From a201e2028e09079d86eafbe3b976985eee2b011d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Szab=C3=B3?= Date: Tue, 8 Apr 2025 21:05:12 +0200 Subject: [PATCH] =?UTF-8?q?JsonSerialize=20jav=C3=ADt=C3=A1sa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataLayer/Entities/CheckPoint.cs | 1 + .../Mapper/MapperProfile.cs | 3 ++- .../Services/SyncService.cs | 24 ++++++++++++------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/WorkFlowCheck.MAUI/DataLayer/Entities/CheckPoint.cs b/src/WorkFlowCheck.MAUI/DataLayer/Entities/CheckPoint.cs index 9113329..b12f94f 100644 --- a/src/WorkFlowCheck.MAUI/DataLayer/Entities/CheckPoint.cs +++ b/src/WorkFlowCheck.MAUI/DataLayer/Entities/CheckPoint.cs @@ -11,6 +11,7 @@ namespace WorkFlowCheck.MAUI.DataLayer.Entities public int Id { get; set; } public string ShortName { get; set; } = null!; public string Code { get; set; } = null!; + public bool IsEnabled { get; set; } public virtual ICollection CheckListTemplateRows { get; set; } = new List(); } diff --git a/src/WorkFlowCheck.MAUI/Mapper/MapperProfile.cs b/src/WorkFlowCheck.MAUI/Mapper/MapperProfile.cs index 9e54424..be452c4 100644 --- a/src/WorkFlowCheck.MAUI/Mapper/MapperProfile.cs +++ b/src/WorkFlowCheck.MAUI/Mapper/MapperProfile.cs @@ -20,7 +20,8 @@ namespace WorkFlowCheck.MAUI.Mapper .ForMember(dest => dest.CheckListTemplateRows, opt => opt.MapFrom(src => src.CheckListTemplateRowDTO)); CreateMap() .ForMember(dest => dest.CheckListTemplateRowDTO, opt => opt.MapFrom(src => src.CheckListTemplateRows)); - CreateMap(); + CreateMap() + .ForMember(dest => dest.CheckPointDTO, opt => opt.MapFrom(src => src.CheckPoint)); CreateMap(); CreateMap() diff --git a/src/WorkFlowCheck.MAUI/Services/SyncService.cs b/src/WorkFlowCheck.MAUI/Services/SyncService.cs index 95c2a64..4c4809e 100644 --- a/src/WorkFlowCheck.MAUI/Services/SyncService.cs +++ b/src/WorkFlowCheck.MAUI/Services/SyncService.cs @@ -20,13 +20,13 @@ namespace WorkFlowCheck.MAUI.Services public class SyncService : BaseService, ISyncService { private readonly IUserService _userService; - + public SyncService(HttpClient httpClient, IConfiguration configuration, AppDbContext dbContext, IMapper mapper, IUserService userService) : base(httpClient, configuration, dbContext, mapper) { _userService = userService; } - - + + public async Task SyncDatas(Action reportProgress) { await SyncCheckPoints_Down(reportProgress); @@ -66,7 +66,7 @@ namespace WorkFlowCheck.MAUI.Services using (var stream = await response.Content.ReadAsStreamAsync()) using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) { - byte[] buffer = new byte[1024 * 1024] + byte[] buffer = new byte[1024 * 1024] ; int bytesRead; @@ -145,8 +145,8 @@ namespace WorkFlowCheck.MAUI.Services try { await PrepareAuthenticatedRequestAsync(); - - var checkPointList = await _dbContext.CheckPoints.ToListAsync(); + + var checkPointList = await _dbContext.CheckPoints.ToListAsync(); var checkPointListDTO = _mapper.Map>(checkPointList); var endpoint = $"{_httpClient.BaseAddress}api/Sync/UpdateAllCheckPoint"; @@ -306,13 +306,19 @@ namespace WorkFlowCheck.MAUI.Services var checkListHeader = await _dbContext.CheckListHeaders .Where(w => w.Id == Id) .Include(i => i.CheckListRows) + .ThenInclude(i => i.CheckListTemplateRow) + .ThenInclude(i => i.CheckPoint) .AsNoTracking() .FirstOrDefaultAsync(); var checkListHeaderDTO = _mapper.Map(checkListHeader); var endpoint = $"{_httpClient.BaseAddress}api/Sync/SendCheckListHeader"; - var json = JsonConvert.SerializeObject(checkListHeaderDTO); + var json = JsonConvert.SerializeObject(checkListHeaderDTO, + new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore + }); var jsonBytes = Encoding.UTF8.GetBytes(json); var jsonStream = new MemoryStream(jsonBytes); @@ -382,7 +388,7 @@ namespace WorkFlowCheck.MAUI.Services public async Task> DeviceMessageReadUnreaded(string deviceId) { - var deviceIdBase64= Base64UrlEncoder.Encode(Encoding.UTF8.GetBytes(deviceId)); + var deviceIdBase64 = Base64UrlEncoder.Encode(Encoding.UTF8.GetBytes(deviceId)); string endpoint = $"{_httpClient.BaseAddress}api/Sync/DeviceMessageReadUnreaded/{deviceIdBase64}"; var retVal = new List(); try @@ -398,7 +404,7 @@ namespace WorkFlowCheck.MAUI.Services } catch (Exception ex) { - + } return retVal; }