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.Peis.ThirdInterfaces;using Shentun.Utilities;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Threading;using System.Threading.Tasks;
namespace Shentun.Peis.Schedulers{    public interface IImportElectrocardiogramResultInterfaceWorker    {        public void DoWork(Guid interfaceId);        public void DoWork();    }
    public class ImportElectrocardiogramResultInterfaceWorker : ThirdInterfaceWorkerBase, IImportElectrocardiogramResultInterfaceWorker    {
        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 thirdInterfaceDtos = appServiceHelper.CallAppService<object, List<ThirdInterfaceDto>>("api/app/ThirdInterface/GetList", null);                var thirdInterfaceDto = thirdInterfaceDtos.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)            {                _isRunning = false;                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();        }    }}
  |