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.
		
		
		
		
		
			
		
			
				
					
					
						
							92 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							92 lines
						
					
					
						
							3.4 KiB
						
					
					
				
								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();
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 |