Пример #1
0
        public void Register(Type type)
        {
            if (!typeof(TypeHandlerBase).IsAssignableFrom(type))
            {
                throw new ArgumentException("Type must inherit from " + nameof(TypeHandlerBase));
            }

            var desc = new TypeHandlerDescriptor()
            {
                Type      = type,
                TypeId    = TypeHandlerBase.GetTypeId(type),
                Resources = TypeHandlerResourcesAttribute.GetResolved(type),
            };

            desc.Render = _services.Handlebars.Compile(desc.Resources.Template);

            _handlers.Add(type, desc);

            _builder.RegisterSubtype(type, desc.TypeId);


            _jsonSerializerSettings = null; // reset cached json converters

            LastModified = DateTime.UtcNow;
        }
Пример #2
0
 public string Render(TypeHandlerBase typeHandler, object model)
 {
     if (_handlers.TryGetValue(typeHandler.GetType(), out var desc))
     {
         return(desc.Render(model));
     }
     else
     {
         throw new InvalidOperationException("Type handler not registered: " + typeHandler.GetType().FullName);
     }
 }
Пример #3
0
 public MessageHandler(TypeHandlerBase handler, SimpleLogger logger, ICacheProvider <string, Message> cacheProvider = null)
 {
     cache             = cacheProvider ?? new SimpleCacheProvider <Message>();
     Handler           = handler;
     Checker           = new Timer(40000);
     Checker.AutoReset = true;
     Checker.Elapsed  += Checker_Elapsed;
     MessageType       = handler.MessageType;
     _Logger           = logger;
     _Logger.CreateLogger(MessageType);
     _Logger.CreateLogger(HistoryFile = $"{MessageType}_History");
 }
Пример #4
0
 public string Serialize(TypeHandlerBase typeHandler) => Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(typeHandler, JsonSerializerSettings)));