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; }
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); } }
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"); }
public string Serialize(TypeHandlerBase typeHandler) => Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(typeHandler, JsonSerializerSettings)));