public void NormalizeType_ValueKindFalse() { var jElement = JsonSerializer.Deserialize <bool>("false"); var value = (bool)DotNetifyHub.NormalizeType(jElement); Assert.IsFalse(value); }
public void NormalizeType_ValueKindNull() { var jElement = JsonSerializer.Deserialize <object>("null"); var value = DotNetifyHub.NormalizeType(jElement); Assert.IsNull(value); }
public void NormalizeType_ValueKindNumberDouble() { var jElement = JsonSerializer.Deserialize <double>("3.14159265359"); var value = DotNetifyHub.NormalizeType(jElement); Assert.AreEqual(3.14159265359, value); }
public void NormalizeType_ValueKindNumberInt() { var jElement = JsonSerializer.Deserialize <int>("1991"); var value = DotNetifyHub.NormalizeType(jElement); Assert.AreEqual(1991, value); }
public void NormalizeType_ValueKindString() { var jElement = JsonSerializer.Deserialize <string>("\"abc1234xyz\""); var value = DotNetifyHub.NormalizeType(jElement); Assert.AreEqual("abc1234xyz", value); }
public void NormalizeType_Dictionary() { var vmData = JsonSerializer.Deserialize <Dictionary <string, object> >("{\"Key1\": \"\", \"Key2\": {\"Name\": \"John\"}, \"Key3\": 99}"); var data = vmData?.ToDictionary(x => x.Key, x => DotNetifyHub.NormalizeType(x.Value)); Assert.AreEqual("", data["Key1"]); Assert.AreEqual("John", (data["Key2"] as JObject)["Name"]); Assert.AreEqual((long)99, data["Key3"]); }
public void NormalizeType_ValueKindArray() { var jElement = JsonSerializer.Deserialize <object>("[{\"firstName\": \"John\", \"lastName\": \"Doe\", \"age\": 24 }]"); var jArray = (JArray)DotNetifyHub.NormalizeType(jElement); Assert.AreEqual("John", jArray[0]["firstName"]); Assert.AreEqual("Doe", jArray[0]["lastName"]); Assert.AreEqual(24, jArray[0]["age"]); }
public void NormalizeType_ValueKindObject() { var jElement = JsonSerializer.Deserialize <object>("{\"firstName\": \"John\", \"lastName\": \"Doe\", \"age\": 24 }"); var jObject = (JObject)DotNetifyHub.NormalizeType(jElement); Assert.AreEqual("John", jObject["firstName"]); Assert.AreEqual("Doe", jObject["lastName"]); Assert.AreEqual(24, jObject["age"]); }
public async Task <string> Request_VM( string vmId, [FromQuery] string vmArg, [FromServices] IVMFactory vmFactory, [FromServices] IHubServiceProvider hubServiceProvider, [FromServices] IVMServiceScopeFactory serviceScopeFactory, [FromServices] IHubPipeline hubPipeline, [FromServices] IPrincipalAccessor principalAccessor ) { var taskCompletionSource = new TaskCompletionSource <string>(TaskCreationOptions.RunContinuationsAsynchronously); Task responseVM(string arg1, string arg2, string arg3) { taskCompletionSource.TrySetResult(arg3); return(Task.CompletedTask); } var vmController = new VMController(responseVM, vmFactory, serviceScopeFactory.CreateScope()) { ResponseVMFilter = CreateRespondingVMFilter(hubPipeline, vmId, vmArg) }; var httpCallerContext = InitializeContext(vmController, hubServiceProvider, principalAccessor); var connectionId = httpCallerContext.ConnectionId; try { var hubContext = new DotNetifyHubContext(httpCallerContext, nameof(Request_VM), vmId, vmArg, BuildHeaders(), httpCallerContext.User); vmController.RequestVMFilter = CreateVMFilter(hubContext, hubPipeline); await hubPipeline.RunMiddlewaresAsync(hubContext, async ctx => { await vmController.OnRequestVMAsync(connectionId, ctx.VMId, ctx.Data); vmController.Dispose(); }); } catch (Exception ex) { var finalEx = await hubPipeline.RunExceptionMiddlewareAsync(httpCallerContext, ex); if (finalEx is OperationCanceledException == false) { taskCompletionSource.TrySetResult(DotNetifyHub.SerializeException(finalEx)); } } return(await taskCompletionSource.Task); }
public MockDotNetifyHub Create() { _hub = new DotNetifyHub( new VMControllerFactory(_memoryCache) { ResponseDelegate = ResponseVM }, new HubPrincipalAccessor(), new HubPipeline(_middlewareFactories, _vmFilterFactories), new MockHubContext() { MockHubClients = new MockHubClients { MockClientProxy = new MockClientProxy { Hub = this } } }) { Context = new HubCallerContext(new MockHubConnectionContext(ConnectionId)) }; return(this); }
public async Task <string> Update_VM( string vmId, [FromQuery] string vmArg, [FromBody] Dictionary <string, object> vmData, [FromServices] IVMFactory vmFactory, [FromServices] IHubServiceProvider hubServiceProvider, [FromServices] IVMServiceScopeFactory serviceScopeFactory, [FromServices] IHubPipeline hubPipeline, [FromServices] IPrincipalAccessor principalAccessor) { var taskCompletionSource1 = new TaskCompletionSource <string>(); var taskCompletionSource2 = new TaskCompletionSource <string>(); var vmController = new VMController((arg1, arg2, arg3) => { if (!taskCompletionSource1.TrySetResult(arg3)) { taskCompletionSource2.TrySetResult(arg3); } }, vmFactory, serviceScopeFactory.CreateScope()) { ResponseVMFilter = CreateRespondingVMFilter(hubPipeline, vmId, vmData) }; var httpCallerContext = InitializeContext(vmController, hubServiceProvider, principalAccessor); var connectionId = httpCallerContext.ConnectionId; try { var hubContext = new DotNetifyHubContext(httpCallerContext, nameof(Request_VM), vmId, vmArg, BuildHeaders(), httpCallerContext.User); vmController.RequestVMFilter = CreateVMFilter(hubContext, hubPipeline); hubPipeline.RunMiddlewares(hubContext, ctx => { vmController.OnRequestVM(connectionId, ctx.VMId, ctx.Data); return(Task.CompletedTask); }); } catch (Exception ex) { var finalEx = hubPipeline.RunExceptionMiddleware(httpCallerContext, ex); if (finalEx is OperationCanceledException == false) { taskCompletionSource1.TrySetResult(DotNetifyHub.SerializeException(finalEx)); } } await taskCompletionSource1.Task; try { var hubContext = new DotNetifyHubContext(httpCallerContext, nameof(Update_VM), vmId, vmData, BuildHeaders(), httpCallerContext.User); vmController.UpdateVMFilter = CreateVMFilter(hubContext, hubPipeline); hubPipeline.RunMiddlewares(hubContext, ctx => { vmController.OnUpdateVM(connectionId, ctx.VMId, ctx.Data as Dictionary <string, object>); vmController.Dispose(); return(Task.CompletedTask); }); } catch (Exception ex) { var finalEx = hubPipeline.RunExceptionMiddleware(httpCallerContext, ex); if (finalEx is OperationCanceledException == false) { taskCompletionSource2.TrySetResult(DotNetifyHub.SerializeException(finalEx)); } } return(await taskCompletionSource2.Task); }