Skip to content

Commit

Permalink
refactored IActionInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
ignatandrei committed May 9, 2020
1 parent 319c6cf commit 0dcbdc5
Show file tree
Hide file tree
Showing 12 changed files with 54 additions and 34 deletions.
34 changes: 17 additions & 17 deletions src/NetCore2Blockly/NetCore2Blockly/ActionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace NetCore2Blockly
/// generator
/// </summary>

public class ActionInfo
class ActionInfo : IActionInfo
{

/// <summary>
Expand Down Expand Up @@ -76,18 +76,18 @@ public int CustomGetHashCode()

return hash;
}
internal virtual Dictionary<string, (Type type, BindingSourceDefinition bs)> Params { get; set; }

public Dictionary<string, (Type type, BindingSourceDefinition bs)> Params { get; set; }
internal bool HasParams => (Params?.Count ?? 0) > 0;
private BindingSourceDefinition ConvertFromBindingSource(BindingSource bs)
{
return bs switch
{
var x when x == BindingSource.Body => BindingSourceDefinition.Body,
var x when x == BindingSource.Custom => BindingSourceDefinition.Custom,
var x when x == BindingSource.Form=> BindingSourceDefinition.Form,
var x when x == BindingSource.Form => BindingSourceDefinition.Form,
var x when x == BindingSource.FormFile => BindingSourceDefinition.FormFile,
var x when x == BindingSource.Header=> BindingSourceDefinition.Header,
var x when x == BindingSource.Header => BindingSourceDefinition.Header,

var x when x == BindingSource.ModelBinding => BindingSourceDefinition.ModelBinding,

Expand Down Expand Up @@ -120,18 +120,18 @@ private BindingSourceDefinition ConvertFromBindingSource(BindingSource bs)
null // for the items that have not binding source, assume are query string
};

parameterDescriptions
.Where(parameterDescription => parameterDescription != null)
.Select(parameterDescription => parameterDescription.ParameterDescriptor)
.Where(parameterDescriptor => parameterDescriptor != null && okBindingSource.Contains(parameterDescriptor.BindingInfo?.BindingSource))
.Distinct()
.ToList()
.ForEach(x => desc.Add(x.Name, (x.ParameterType,ConvertFromBindingSource( x.BindingInfo?.BindingSource??BindingSource.Query))));
parameterDescriptions
.Where(parameterDescription => parameterDescription != null)
.Select(parameterDescription => parameterDescription.ParameterDescriptor)
.Where(parameterDescriptor => parameterDescriptor != null && okBindingSource.Contains(parameterDescriptor.BindingInfo?.BindingSource))
.Distinct()
.ToList()
.ForEach(x => desc.Add(x.Name, (x.ParameterType, ConvertFromBindingSource(x.BindingInfo?.BindingSource ?? BindingSource.Query))));

if (parameterDescriptions.Length > desc.Count)
{
Debug.Assert(false, " should not have more parameters");

}

return desc;
Expand All @@ -150,20 +150,20 @@ public ActionInfo(ApiDescription apiDescription)
Params = GetParameters(apiDescription.ParameterDescriptions.ToArray());
var actionDescriptor = apiDescription.ActionDescriptor as ControllerActionDescriptor;
ReturnType = actionDescriptor?.MethodInfo?.ReturnType;


if (ReturnType != null && ReturnType.IsGenericType)
{
if (ReturnType.IsSubclassOf(typeof(Task)))
{
ReturnType = ReturnType.GetGenericArguments()[0];//TODO: get all

}
}
ControllerName = actionDescriptor?.ControllerName;

}


}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
/// defintion of binding
/// See BindingSource
/// </summary>
internal enum BindingSourceDefinition
public enum BindingSourceDefinition
{
None = 0,
Body,
Expand Down
4 changes: 2 additions & 2 deletions src/NetCore2Blockly/NetCore2Blockly/BlocklyFileGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ namespace NetCore2Blockly
public class BlocklyFileGenerator
{
JavascriptGenerator _jsGenerator;
List<ActionInfo> _actionList;
List<IActionInfo> _actionList;


/// <summary>
/// Initializes a new instance of the <see cref="BlocklyFileGenerator"/> class.
/// </summary>
/// <param name="actionList">The action list.</param>
public BlocklyFileGenerator(List<ActionInfo> actionList)
public BlocklyFileGenerator(List<IActionInfo> actionList)
{
_jsGenerator = new JavascriptGenerator();
_actionList = actionList;
Expand Down
4 changes: 2 additions & 2 deletions src/NetCore2Blockly/NetCore2Blockly/EnumerateWebAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ public EnumerateWebAPI(IApiDescriptionGroupCollectionProvider api)
/// Creates the action list to generate blocks
/// </summary>
/// <returns></returns>
public List<ActionInfo> CreateActionList()
public List<IActionInfo> CreateActionList()
{
var allActions = new List<ActionInfo>();
var allActions = new List<IActionInfo>();
var groups = api.ApiDescriptionGroups;

foreach (var g in groups.Items)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public static class ActionInfoExtensions
/// </summary>
/// <param name="actionInfo">The action information.</param>
/// <returns></returns>
public static string GenerateCommandName(this ActionInfo actionInfo)
public static string GenerateCommandName(this IActionInfo actionInfo)
{
var nameCommand = actionInfo.ActionName.Replace("/", "_");
nameCommand = nameCommand.Replace("{", "_").Replace("}", "_");
Expand All @@ -27,7 +27,7 @@ public static string GenerateCommandName(this ActionInfo actionInfo)
/// </summary>
/// <param name="actionInfo">The action information.</param>
/// <returns></returns>
public static string CommandDisplayName(this ActionInfo actionInfo)
public static string CommandDisplayName(this IActionInfo actionInfo)
{

return actionInfo.Verb + " " + actionInfo.ActionName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static class ActionListExtensions
/// </summary>
/// <param name="list">The list.</param>
/// <returns></returns>
public static Type[] GetAllTypesWithNullBlocklyType(this List<ActionInfo> list)
public static Type[] GetAllTypesWithNullBlocklyType(this List<IActionInfo> list)
{
return list

Expand Down
20 changes: 20 additions & 0 deletions src/NetCore2Blockly/NetCore2Blockly/IActionInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;

namespace NetCore2Blockly
{
public interface IActionInfo
{
string ActionName { get; set; }
string ControllerName { get; set; }
string Host { get; set; }
string RelativeRequestUrl { get; set; }
Type ReturnType { get; set; }
string Verb { get; set; }

int CustomGetHashCode();
Dictionary<string, (Type type, BindingSourceDefinition bs)> Params { get; set; }

bool HasParams => (Params?.Count > 0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class BlocklyFunctionDefinitionGenerator
/// </summary>
/// <param name="actionInfo">The action information.</param>
/// <returns></returns>
public string GeneratePropertyDefinitions(ActionInfo actionInfo)
public string GeneratePropertyDefinitions(IActionInfo actionInfo)
{
string tooltip = $"{actionInfo.GenerateCommandName()} :";
var strPropsDefinition = "";
Expand Down Expand Up @@ -46,7 +46,7 @@ public string GeneratePropertyDefinitions(ActionInfo actionInfo)
/// </summary>
/// <param name="actionInfo">The action information.</param>
/// <returns></returns>
public string GenerateFunctionDefinition(ActionInfo actionInfo)
public string GenerateFunctionDefinition(IActionInfo actionInfo)
{
var strPropsDefinition = GeneratePropertyDefinitions(actionInfo);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class BlocklyFunctionJSGenerator
/// </summary>
/// <param name="actionInfo">The action information.</param>
/// <returns></returns>
public string GenerateFunctionJS(ActionInfo actionInfo)
public string GenerateFunctionJS(IActionInfo actionInfo)
{
var paramsStr = "";
var paramsBodyStr = "";
Expand Down Expand Up @@ -69,7 +69,7 @@ public string GenerateFunctionJS(ActionInfo actionInfo)
";
}

internal string GenerateGet(ActionInfo actionInfo)
internal string GenerateGet(IActionInfo actionInfo)
{
var paramsXHR = "strUrl";
bool existBody = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class BlocklyToolBoxFunctionDefinitionsGenerator
/// </summary>
/// <param name="actionList">The action list.</param>
/// <returns></returns>
public string GenerateBlocklyToolBoxFunctionDefinitions(List<ActionInfo> actionList)
public string GenerateBlocklyToolBoxFunctionDefinitions(List<IActionInfo> actionList)
{
string blockText = "var blockTextLocalSiteFunctions='';";
foreach (var actionsGroupedByController in actionList.GroupBy(it => it.ControllerName))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public string GenerateBlocklyToolBoxValue(Type[] types)
/// </summary>
/// <param name="actionList">The action list.</param>
/// <returns></returns>
public string GenerateBlocklyToolBoxFunctionDefinitions(List<ActionInfo> actionList)
public string GenerateBlocklyToolBoxFunctionDefinitions(List<IActionInfo> actionList)
{
return _toolBoxFunctionDefinitionGenerator.GenerateBlocklyToolBoxFunctionDefinitions(actionList);
}
Expand All @@ -61,7 +61,7 @@ public string GenerateBlocklyToolBoxFunctionDefinitions(List<ActionInfo> actionL
/// </summary>
/// <param name="action">The action.</param>
/// <returns></returns>
public string GenerateFunctionJS(ActionInfo action)
public string GenerateFunctionJS(IActionInfo action)
{
return _functionJSGenerator.GenerateFunctionJS(action);
}
Expand All @@ -71,7 +71,7 @@ public string GenerateFunctionJS(ActionInfo action)
/// </summary>
/// <param name="action">The action.</param>
/// <returns></returns>
public string GenerateFunctionDefinition(ActionInfo action)
public string GenerateFunctionDefinition(IActionInfo action)
{
return _functionDefinitionGenerator.GenerateFunctionDefinition(action);
}
Expand Down
2 changes: 1 addition & 1 deletion src/NetCore2Blockly/NetCore2Blockly/NetCore2Blockly.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<DocumentationFile>NetCore2Blockly.xml</DocumentationFile>
<DocumentationFile></DocumentationFile>
<WarningsAsErrors></WarningsAsErrors>
</PropertyGroup>

Expand Down

0 comments on commit 0dcbdc5

Please sign in to comment.