Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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();
 }
Exemple #4
0
        public static bool IsValid(this ApiActionList apiActions)
        {
            if (!apiActions.IsValid <ApiActionInfo>())
            {
                return(false);
            }

            return(true);
        }
Exemple #5
0
        /// <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));
        }
Exemple #7
0
        /// <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;
            }
        }
Exemple #8
0
        /// <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));
                        }
                    }
                }
            }
        }