You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Logging;using Shentun.Utilities;using System;using System.IO;using System.Linq;using System.Threading;using System.Threading.Tasks;using Volo.Abp.BackgroundWorkers.Hangfire;
namespace Shentun.Peis.Schedulers{ public interface IImportPacsResultInterfaceWorker { public void DoWork(Guid interfaceId); public void DoWork(); } public class ImportPacsResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportPacsResultInterfaceWorker {
private static long i; private static bool _isRunning = false; private static readonly object lockObject = new object(); public virtual void DoWork(Guid interfaceId) { if (_isRunning) return; lock (lockObject) { _isRunning = true; try { //Logger.LogInformation("Executed" + GetType().Name + "..!");
var appServiceHelper = new AppServiceHelper(); //appServiceHelper.Login();
var thirdInterFaceForHostOutDto = appServiceHelper.CallAppService<object, ThirdInterFaceForHostOutDto>("api/app/ThirdInterface/GetList", null); var thirdInterfaceDto = thirdInterFaceForHostOutDto.Data.Where(o => o.Id == interfaceId).FirstOrDefault(); if (thirdInterfaceDto == null) { _isRunning = false; return; } if (thirdInterfaceDto.IsActive != 'Y') { _isRunning = false; return; } var parmValue = thirdInterfaceDto.ParmValue; if (!string.IsNullOrWhiteSpace(parmValue)) { var configurationBuilder = new ConfigurationBuilder() .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue))); var interfaceConfig = configurationBuilder.Build();
var isActive = interfaceConfig.GetSection("Interface").GetSection("Scheduler") .GetSection("IsActive").Value; if (isActive != "Y") { _isRunning = false; return; } var assemblyName = interfaceConfig.GetSection("Interface").GetSection("AssemblyName").Value; var className = interfaceConfig.GetSection("Interface").GetSection("ClassName").Value; var funName = "DoWork"; object[] classConstructorArg = new object[] { thirdInterfaceDto.Id }; ReflectionHelper.Invoke(assemblyName, className, classConstructorArg, funName); }
} catch (Exception ex) { Logger.LogError("Executed " + GetType().Name + " Error" + ex.Message); } _isRunning = false; return; } }
public void DoWork() { throw new NotImplementedException(); }
public override Task DoWorkAsync(CancellationToken cancellationToken = default) { throw new NotImplementedException(); } }}
|