3 changed files with 188 additions and 0 deletions
			
			
		- 
					5src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
 - 
					92src/Shentun.Peis.HttpApi.Host/Schedulers/ImportElectrocardiogramResultInterfaceWorker.cs
 - 
					91src/Shentun.Peis.HttpApi.Host/Schedulers/SyncPatientRegisterReportInterfaceWorker.cs
 
@ -0,0 +1,92 @@ | 
				
			|||
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(); | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,91 @@ | 
				
			|||
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 ISyncPatientRegisterReportInterfaceWorker | 
				
			|||
    { | 
				
			|||
        public void DoWork(Guid interfaceId); | 
				
			|||
        public void DoWork(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    public class SyncPatientRegisterReportInterfaceWorker : ThirdInterfaceWorkerBase, ISyncPatientRegisterReportInterfaceWorker | 
				
			|||
    { | 
				
			|||
        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(); | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue