From cbc80e71fac7d2896ac496b0fbf22051c0cdcff7 Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Mon, 17 Feb 2020 17:00:29 +0200 Subject: merge --- .../Utilities/Tango.WebClientGenerator/Program.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs') diff --git a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs index 6bbcd1884..b05e6e311 100644 --- a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs @@ -21,6 +21,9 @@ namespace Tango.WebClientGenerator //Generate Machine Studio client. GenerateWebClient("Tango.MachineStudio.Common.Web", "MachineStudioWebClientBase", PathHelper.GetSolutionFolder() + @"\MachineStudio\Tango.MachineStudio.Common\Web"); + + //Generate FSE client. + GenerateWebClientV2("Tango.FSE.Common.Web", "FSEWebClientBase", PathHelper.GetSolutionFolder() + @"\FSE\Tango.FSE.Common\Web"); } private static void GenerateWebClient(String nameSpace, String name, String path) where TLoginRequest : WebRequestMessage where TLoginResponse : WebTokenResponse where TController : TangoController @@ -45,5 +48,28 @@ namespace Tango.WebClientGenerator String code = model.GenerateCode(); File.WriteAllText(Path.Combine(path, name + ".cs"), code); } + + private static void GenerateWebClientV2(String nameSpace, String name, String path) where TLoginRequest : WebRequestMessage where TLoginResponse : WebTokenResponse where TController : TangoController + { + TangoWebClientv2CodeFile model = new TangoWebClientv2CodeFile(); + model.Namespace = nameSpace; + model.ControllerName = typeof(TController).Name.Replace("Controller", ""); + model.Name = name; + model.LoginRequest = typeof(TLoginRequest).FullName; + model.LoginResponse = typeof(TLoginResponse).FullName; + + foreach (var action in typeof(TController).GetMethods().Where(x => typeof(WebResponseMessage).IsAssignableFrom(x.ReturnType) && x.Name != "Login")) + { + model.Actions.Add(new TangoWebClientv2CodeFile.ControllerAction() + { + Name = action.Name, + Request = action.GetParameters()[0].ParameterType.FullName, + Response = action.ReturnType.FullName, + }); + } + + String code = model.GenerateCode(); + File.WriteAllText(Path.Combine(path, name + ".cs"), code); + } } } -- cgit v1.3.1