Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.65 KB | None | 0 0
  1. public async Task<bool> Handle(GetDeviceDetailsCommand request, CancellationToken cancellationToken) {
  2.                 var result = await cloudAPI.GetLoggedDeviceDetails();
  3.  
  4.                 using (var transaction = context.Database.BeginTransaction()) {
  5.                     try {
  6.                         var targetDevice = await context.SSDevice.FirstAsync();
  7.  
  8.                         targetDevice.DatabaseVersion = result.DatabaseVersion;
  9.                         targetDevice.SerialNumber = result.SerialNumber;
  10.                         targetDevice.SoftwareVersion = result.SoftwareVersion;
  11.                         targetDevice.LastSyncDateUTC = result.LastSyncDateUTC;
  12.                         targetDevice.ModifiedDateUTC = result.ModifiedDateUTC;
  13.                         targetDevice.SSStoreId = result.SSStoreId;
  14.                         targetDevice.IsDeleted = result.IsDeleted;
  15.                         targetDevice.IsInitiated = result.IsInitiated;
  16.  
  17.                         await context.SaveChangesAsync(cancellationToken);
  18.  
  19.                         var cashRegister = await context.SSCashRegister
  20.                             .Where(c => c.SSDeviceId == targetDevice.Id)
  21.                             .FirstAsync();
  22.  
  23.                         cashRegister.APIVersion = result.SSCashRegister.APIVersion;
  24.                         cashRegister.Description = result.SSCashRegister.Description;
  25.                         cashRegister.ERPSyncVersion = result.SSCashRegister.ERPSyncVersion;
  26.                         cashRegister.ModifiedDateUTC = result.SSCashRegister.ModifiedDateUTC;
  27.                         cashRegister.Name = result.SSCashRegister.Name;
  28.                         cashRegister.SSDeviceId = result.SSCashRegister.SSDeviceId;
  29.  
  30.                         await context.SaveChangesAsync(cancellationToken);
  31.  
  32.                         var cashRegisterConfig = await context.SSCashRegisterConfig.FirstAsync();
  33.  
  34.                         cashRegisterConfig.IsActive = result.SSCashRegister.SSCashRegisterConfig.IsActive;
  35.                         cashRegisterConfig.IsMaster = result.SSCashRegister.SSCashRegisterConfig.IsMaster;
  36.                         cashRegisterConfig.ModifiedDateUTC = result.SSCashRegister.SSCashRegisterConfig.ModifiedDateUTC;
  37.                         cashRegisterConfig.RebootEndTime = result.SSCashRegister.SSCashRegisterConfig.RebootEndTime;
  38.                         cashRegisterConfig.RebootStartTime = result.SSCashRegister.SSCashRegisterConfig.RebootStartTime;
  39.                         cashRegisterConfig.UpdateEndTime = result.SSCashRegister.SSCashRegisterConfig.UpdateEndTime;
  40.                         cashRegisterConfig.UpdateStartTime = result.SSCashRegister.SSCashRegisterConfig.UpdateStartTime;
  41.  
  42.                         await context.SaveChangesAsync(cancellationToken);
  43.  
  44.                         var cashRegisterNetworkConfig = await context.SSCashRegisterNetworkConfig.FirstAsync();
  45.  
  46.                         cashRegisterNetworkConfig.DictConnectionType = (byte) result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.DictConnectionType;
  47.                         cashRegisterNetworkConfig.DictWirelessProtectionType = (byte) result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.DictWirelessProtectionType;
  48.                         cashRegisterNetworkConfig.DNSPrimary = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.DNSPrimary;
  49.                         cashRegisterNetworkConfig.DNSSecondary = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.DNSSecondary;
  50.                         cashRegisterNetworkConfig.Gateway = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.Gateway;
  51.                         cashRegisterNetworkConfig.GSMOperator = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.GSMOperator;
  52.                         cashRegisterNetworkConfig.GSMPhoneNumber = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.GSMPhoneNumber;
  53.                         cashRegisterNetworkConfig.GSMSimNumber = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.GSMSimNumber;
  54.                         cashRegisterNetworkConfig.KeepAliveIntervalInSec = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.KeepAliveIntervalInSec;
  55.                         cashRegisterNetworkConfig.ModifiedDateUTC = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.ModifiedDateUTC;
  56.                         cashRegisterNetworkConfig.SelfServiceAPISecretKey = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.SelfServiceAPISecretKey;
  57.                         cashRegisterNetworkConfig.SelfServiceAPIUrl = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.SelfServiceAPIUrl;
  58.                         cashRegisterNetworkConfig.StaticIP = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.StaticIP;
  59.                         cashRegisterNetworkConfig.SubnetMask = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.SubnetMask;
  60.                         cashRegisterNetworkConfig.UseDHCP = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.UseDHCP;
  61.                         cashRegisterNetworkConfig.WirelessPassword = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.WirelessPassword;
  62.                         cashRegisterNetworkConfig.WirelessSSID = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterNetworkConfig.WirelessSSID;
  63.  
  64.                         await context.SaveChangesAsync(cancellationToken);
  65.  
  66.                         var cashRegisterERPSyncConfig = await context.SSCashRegisterERPSyncConfig.FirstAsync();
  67.  
  68.                         cashRegisterERPSyncConfig.ERPSyncAPIUrl = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterERPSyncConfig.ERPSyncAPIUrl;
  69.                         cashRegisterERPSyncConfig.IsERPSyncActive = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterERPSyncConfig.IsERPSyncActive;
  70.                         cashRegisterERPSyncConfig.ModifiedDateUTC = result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterERPSyncConfig.ModifiedDateUTC;
  71.                        
  72.                         await context.SaveChangesAsync(cancellationToken);
  73.  
  74.                         var cashRegisterVatRateConfig = await context.SSCashRegisterVatRateConfig.ToListAsync();
  75.                         result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterVatRateConfig.ToList().ForEach(cfg => {
  76.                             var config = cashRegisterVatRateConfig.Where(config => config.Id == cfg.Id).First();
  77.  
  78.                             if (config != null) {
  79.                                 config.ModifiedDateUTC = cfg.ModifiedDateUTC;
  80.                                 config.Symbol = cfg.Symbol;
  81.                                 config.VatRate = cfg.VatRate;
  82.                             } else {
  83.                                 cashRegisterVatRateConfig.Add(mapper.Map<SSCashRegisterVatRateConfig>(cfg));
  84.                             }
  85.                         });
  86.                         await context.SaveChangesAsync(cancellationToken);
  87.  
  88.                         var cashRegisterComponent = await context.SSCashRegisterComponent.ToListAsync();
  89.                         result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterComponent.ToList().ForEach(component => {
  90.                             var cmp = cashRegisterComponent.Where(cmp => cmp.Id == component.Id).First();
  91.  
  92.                             if (cmp != null) {
  93.                                 cmp.DictCashRegisterComponentType = (byte)component.DictCashRegisterComponentType;
  94.                                 cmp.HardwareVersion = component.HardwareVersion;
  95.                                 cmp.IsActive = component.IsActive;
  96.                                 cmp.ModifiedDateUTC = component.ModifiedDateUTC;
  97.                                 cmp.NextServiceDateUTC = component.NextServiceDateUTC;
  98.                                 cmp.Status1 = component.Status1;
  99.                                 cmp.Status2 = component.Status2;
  100.                             } else {
  101.                                 cashRegisterComponent.Add(mapper.Map<SSCashRegisterComponent>(component));
  102.                             }
  103.                         });
  104.                         await context.SaveChangesAsync(cancellationToken);
  105.  
  106.                         var cashRegisterFile = await context.SSCashRegisterFile.ToListAsync();
  107.                         result.SSCashRegister.SSCashRegisterConfig.SSCashRegisterFile.ToList().ForEach(file => {
  108.                             var f = cashRegisterFile.Where(f => f.SSFileId == file.SSFileId).First();
  109.  
  110.                             if (f != null) {
  111.                                 f.DictCashRegisterFileType = (byte) file.DictCashRegisterFileType;
  112.                                 f.ModifiedDateUTC = file.ModifiedDateUTC;
  113.                                 f.SSFile.FileName = file.SSFile.FileName;
  114.                                 f.SSFile.IsDeleted = file.SSFile.IsDeleted;
  115.                                 f.SSFile.ModifiedDateUTC = file.SSFile.ModifiedDateUTC;
  116.                                 // ?
  117.                                
  118.                             } else {
  119.                                 cashRegisterFile.Add(mapper.Map<SSCashRegisterFile>(file));
  120.                             }
  121.                         });
  122.                         await context.SaveChangesAsync(cancellationToken);
  123.  
  124.                         transaction.Commit();
  125.                     } catch (Exception e) {
  126.                         transaction.Rollback();
  127.                         throw e;
  128.                     }
  129.                 }
  130.  
  131.                 return true;
  132.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement