/// <summary> /// Retrieve ViewModels from all api actions parameters and return types. /// </summary> /// <param name="apiActions">A list of api actions.</param> /// <returns>A list of EntityInfo.</returns> public static List <EntityInfo> GetApiActionListViewModelsEntities(this ApiActionList apiActions) { var viewModels = new List <EntityInfo>(); if (!apiActions.IsValid()) { return(viewModels); } var entityComparer = new EntityInfoComparer(); foreach (var apiAction in apiActions) { if (apiAction.IsValid()) { viewModels = viewModels .Union( apiAction.GetApiActionViewModelsEntities(), entityComparer) .ToList(); } } return(viewModels); }
/// <summary> /// Retrieve all direct refrences from api actions. /// </summary> /// <param name="apiActions">An ApiActionList object.</param> /// <returns>A list of EntityInfo.</returns> public static List <EntityInfo> GetApiActionListDirectReferences(this ApiActionList apiActions) { var directReferences = new List <EntityInfo>(); if (!apiActions.IsValid()) { return(directReferences); } var entityComparer = new EntityInfoComparer(); foreach (var apiAction in apiActions) { if (apiAction.IsValid()) { directReferences = directReferences .Union( apiAction.GetApiActionDirectReferences(), entityComparer) .ToList(); } } return(directReferences); }
/// <summary> /// 初始化 /// </summary> private void Init() { this.apiActionList = new ApiActionList(this.FindApiActions()); this.packetIdProvider = new PacketIdProvider(); this.taskSetterTable = new TaskSetterTable <long>(); this.TimeOut = TimeSpan.FromSeconds(30); this.JsonSerializer = new DefaultDynamicJsonSerializer(); }
public static bool IsValid(this ApiActionList apiActions) { if (!apiActions.IsValid <ApiActionInfo>()) { return(false); } return(true); }
/// <summary> /// JsonWebSocket服务端 /// </summary> public JsonWebSocketServer() { this.apiActionList = new ApiActionList(); this.PacketIdProvider = new PacketIdProvider(); this.TaskSetActionTable = new TaskSetActionTable(); this.JsonSerializer = new DefaultDynamicJsonSerializer(); this.GlobalFilters = new GlobalFilters(); this.DependencyResolver = new DefaultDependencyResolver(); this.FilterAttributeProvider = new DefaultFilterAttributeProvider(); }
/// <summary> /// JsonWebSocket中间件 /// </summary> public JsonWebSocketMiddleware() { this.apiActionList = new ApiActionList(); this.PacketIdProvider = new PacketIdProvider(); this.TaskSetActionTable = new TaskSetActionTable(); this.JsonSerializer = new DefaultDynamicJsonSerializer(); this.GlobalFilters = new WebSocketGlobalFilters(); this.DependencyResolver = new DefaultDependencyResolver(); this.FilterAttributeProvider = new DefaultFilterAttributeProvider(); DomainAssembly.GetAssemblies().ForEach(item => this.BindService(item)); }
/// <summary> /// 释放资源 /// </summary> /// <param name="disposing">是否也释放托管资源</param> protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { this.apiActionList = null; this.TaskSetActionTable.Clear(); this.TaskSetActionTable = null; this.PacketIdProvider = null; this.JsonSerializer = null; this.GlobalFilters = null; this.DependencyResolver = null; this.FilterAttributeProvider = null; } }
/// <summary> /// Retrieve ViewModels from all api actions parameters and return types. /// </summary> /// <param name="apiActions">A list of api actions.</param> /// <returns>A list of ViewModels id.</returns> public static List <string> GetApiActionListViewModelsId(this ApiActionList apiActions) { var viewModels = new List <string>(); if (!apiActions.IsValid()) { return(viewModels); } foreach (var apiAction in apiActions) { if (apiAction.IsValid()) { viewModels = viewModels .Union(apiAction.GetApiActionViewModelsId()) .ToList(); } } return(viewModels); }
/// <summary> /// Retrieve viewModels from api actions parameters and return type. /// </summary> /// <param name="layoutAction">A layout action.</param> /// <param name="apiActions">A list of api actions.</param> public void getApiActionViewModels(string layoutAction, ApiActionList apiActions) { if (apiActions.AsEnumerable() != null) { foreach (ApiActionInfo apiAction in apiActions.AsEnumerable()) { if (apiAction.Id.ToLower().Equals(layoutAction.ToLower()) && apiAction.Parameters.AsEnumerable() != null) { foreach (ApiParameterInfo apiActionParameter in apiAction.Parameters.AsEnumerable()) { if (IsModelBool(apiActionParameter.TypeScriptType()) && !_viewModels.AsEnumerable().Contains(TextConverter.PascalCase(apiActionParameter.TypeScriptType()))) { _viewModels.Add(TextConverter.PascalCase(apiActionParameter.TypeScriptType())); } } if (apiAction.ReturnType != null && apiAction.ReturnType.Id != null && !_viewModels.AsEnumerable().Contains(TextConverter.PascalCase(apiAction.ReturnType.Id))) { _viewModels.Add(TextConverter.PascalCase(apiAction.ReturnType.Id)); } } } } }