Ejemplo n.º 1
0
        /// <summary>
        /// Retrieve direct references from api action parameters and return type.
        /// </summary>
        /// <param name="apiAction">An ApiActionInfo object.</param>
        /// <returns>A list of EntityInfo.</returns>
        public static List <EntityInfo> GetApiActionDirectReferences(this ApiActionInfo apiAction)
        {
            var directReferences = new List <EntityInfo>();

            if (!apiAction.IsValid())
            {
                return(directReferences);
            }

            var entityComparer = new EntityInfoComparer();

            if (apiAction.Parameters != null)
            {
                directReferences = directReferences
                                   .Union(
                    apiAction.Parameters.GetApiParametersDirectReferences(),
                    entityComparer)
                                   .ToList();
            }

            if (apiAction.ReturnType.IsValid() &&
                apiAction.ReturnType.References != null)
            {
                directReferences = directReferences
                                   .Union(
                    apiAction.ReturnType.GetEntityDirectReferences(),
                    entityComparer)
                                   .ToList();
            }

            return(directReferences);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Retrieve ViewModels from an api action for a specific layout action.
        /// </summary>
        /// <param name="apiAction">An ApiActionInfo object.</param>
        /// <param name="layoutAction">A layout name.</param>
        /// <returns>A list of ViewModels id.</returns>
        public static List <string> GetApiActionViewModelsId(
            this ApiActionInfo apiAction,
            string layoutAction)
        {
            var viewModels = new List <string>();

            if (!apiAction.IsValid() ||
                !layoutAction.IsValid())
            {
                return(viewModels);
            }

            if (apiAction.Id.ToLower().Equals(layoutAction.ToLower()) &&
                apiAction.Parameters != null)
            {
                if (apiAction.ReturnType.IsValid() &&
                    !viewModels.Any(item =>
                                    item == apiAction.ReturnType.Id.ToPascalCase()))
                {
                    viewModels.Add(apiAction.ReturnType.Id.ToPascalCase());
                }

                viewModels = viewModels
                             .Union(apiAction.Parameters.GetApiParametersViewModelsId())
                             .ToList();
            }

            return(viewModels);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Retrieve ViewModels from an api action for a specific layout action.
        /// </summary>
        /// <param name="apiAction">An ApiActionInfo object.</param>
        /// <param name="layoutAction">A layout name.</param>
        /// <returns>A list of EntityInfo.</returns>
        public static List <EntityInfo> GetApiActionViewModelsEntities(
            this ApiActionInfo apiAction,
            string layoutAction)
        {
            var viewModels = new List <EntityInfo>();

            if (!apiAction.IsValid() ||
                !layoutAction.IsValid())
            {
                return(viewModels);
            }

            var entityComparer = new EntityInfoComparer();

            if (apiAction.Id.ToLower().Equals(layoutAction.ToLower()) &&
                apiAction.Parameters != null)
            {
                if (apiAction.ReturnType.IsValid() &&
                    !viewModels.Any(item =>
                                    entityComparer.Equals(
                                        item,
                                        apiAction.ReturnType)))
                {
                    viewModels.Add(apiAction.ReturnType);
                }

                viewModels = viewModels
                             .Union(
                    apiAction.Parameters.GetApiParametersViewModelsEntities(),
                    entityComparer)
                             .ToList();
            }

            return(viewModels);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Transform a Mobioos request type to a C# request type.
        /// </summary>
        /// <param name="apiAction">An ApiActionInfo object.</param>
        /// <returns>A request type in string.</returns>
        public static string CSharpType(this ApiActionInfo apiAction)
        {
            if (!apiAction.IsValid())
            {
                return(null);
            }

            switch (apiAction.Type.ToLower())
            {
            case "datalist":
            case "dataget":
                return("HttpGet");

            case "datacreate":
                return("HttpPost");

            case "dataupdate":
                return("HttpPut");

            case "datadelete":
                return("HttpDelete");

            default:
                return(apiAction.Type);
            }
        }