/// <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); }
/// <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); }
/// <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); }
/// <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); } }