refactor: migrate project structure by reorganizing realization code snippets into documentation and analysis categories.
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Xml.Serialization;
|
||||
using Unity;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Interfaces;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Services;
|
||||
using Gebhardt.StoreWare.Wcs.HostBooking.InterfaceWcsWms.Interfaces;
|
||||
using Gebhardt.Shared.Process;
|
||||
using Gebhardt.Shared.Process.ProducerConsumer;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Interfaces;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Models;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.EntityFramework;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.EntityFramework.Models;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Mapping;
|
||||
using Gebhardt.StoreWare.WcsWms.InterfaceWcsWms.Helpers;
|
||||
|
||||
using Gebhardt.Shared;
|
||||
using Gebhardt.StoreWare.WcsWms.Constants;
|
||||
|
||||
|
||||
namespace Gebhardt.StoreWare.Wcs.HostBooking.InterfaceWcsWms
|
||||
{
|
||||
internal class FromWmsBookingConsumer : Consumer<IHostMessage>
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private readonly IUnityContainer _unityContainer;
|
||||
private readonly IHostMessageFromWmsService _serviceFromWms;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public FromWmsBookingConsumer(string name, int aliveTime, int queueLength, IUnityContainer unityContainer)
|
||||
: base(name, aliveTime, true, queueLength)
|
||||
{
|
||||
_unityContainer = unityContainer;
|
||||
_serviceFromWms = _unityContainer.Resolve<IHostMessageFromWmsService>();
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public override bool DoWork(IHostMessage hostMessage)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
IHandleRecord<IHostMessage> handler = null;
|
||||
try
|
||||
{
|
||||
//handler = _unityContainer.Resolve<IHandleRecord>(hostMessage.RecordType);
|
||||
handler = (IHandleRecord<IHostMessage>)_unityContainer.Resolve(hostMessage.GetType()); //TODO test
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Write(LogLevel.Error, $"IHandleRecord on UnityContainer in RegisterFromWmsServices from MessageInitializer.cs not registired. '{e.Message}'");
|
||||
}
|
||||
if (handler == null)
|
||||
{
|
||||
hostMessage.Handle();
|
||||
}
|
||||
else
|
||||
{
|
||||
handler.Handle(hostMessage);
|
||||
hostMessage.SetFinished();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//Log.WriteException(e);
|
||||
string exceptionMessage = e.InnerException?.InnerException?.Message ?? e.InnerException?.Message ?? e.Message;
|
||||
Log.Write(LogLevel.Error, $"Nachricht {hostMessage.RecordType} kann nicht verbucht werden: {exceptionMessage}");
|
||||
hostMessage.SetFailed(e.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_serviceFromWms.Update(hostMessage);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user