using FSO.Common.DatabaseService.Framework; using FSO.Common.DataService.Framework; using FSO.Common.Serialization; using FSO.Server.Protocol.Voltron.DataService; using Ninject.Activation; using Ninject.Modules; using System; namespace FSO.Server.DataService { /// /// Data service classes that can be shared between multiple shards when multi-tenanting /// public class GlobalDataServiceModule : NinjectModule { public override void Load() { this.Bind().ToProvider().InSingletonScope(); this.Bind().ToProvider().InSingletonScope(); this.Bind().To(); } } class ModelSerializerProvider : IProvider { private Content.Content Content; public ModelSerializerProvider(Content.Content content) { this.Content = content; } public Type Type { get { return typeof(IModelSerializer); } } public object Create(IContext context) { var serializer = new ModelSerializer(); serializer.AddTypeSerializer(new DatabaseTypeSerializer()); serializer.AddTypeSerializer(new DataServiceModelTypeSerializer(Content.DataDefinition)); serializer.AddTypeSerializer(new DataServiceModelVectorTypeSerializer(Content.DataDefinition)); return serializer; } } class cTSOSerializerProvider : IProvider { private Content.Content Content; public cTSOSerializerProvider(Content.Content content) { this.Content = content; } public Type Type { get { return typeof(cTSOSerializer); } } public object Create(IContext context){ return new cTSOSerializer(this.Content.DataDefinition); } } }