public static void ValidParametersReturnTrue(Packet packet, Regex regex) { var commandService = new CommandService(); var validator = new PayloadValidator(CommandEnum.TextCommand, regex); commandService.ValidatePacket(packet, validator).Should().BeTrue(); }
public async Task <IActionResult> ProcessOrder(IncommingOrderDto order) { try { var validationResult = PayloadValidator.ValidateOrderDetails(order); if (!validationResult.Item1) { return(BadRequest(string.Join(", ", validationResult.Item2))); } var paymentResult = await PaymentProcessor.ProcessPayment(_clientFactory, order); if (!paymentResult.Item1) { return(BadRequest(paymentResult.Item2)); } var result = await _orders.AddNewOrderDetails(order); if (!result.Success) { BadRequest(result.Message); } var uri = $"https://localhost:44327/api/billing/order/{result.SingleOrder.OrderNumber}"; return(Created(uri, DtoMapper.MapResultDtoToCreatedOrderDto(result))); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
protected override async void LoadPayload(string payload) { var newErrors = await PayloadValidator.ValidateAsync(payload); if (newErrors.Any(i => i.Type == ErrorViewModelType.Error)) { MakeErrorsLike(newErrors); return; } try { if (_renderer == null) { InitializeRenderer(MainPageViewModel.HostConfigEditor.HostConfig); } } catch (Exception ex) { newErrors.Add(new ErrorViewModel() { Message = "Initializing renderer error: " + ex.ToString(), Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); return; } try { if (Settings.UseAsyncRenderMethod) { RenderedCard = await _renderer.RenderAdaptiveJsonAsXamlAsync(payload); } else { RenderedCard = _renderer.RenderAdaptiveJsonAsXaml(payload); } if (RenderedCard is FrameworkElement) { (RenderedCard as FrameworkElement).VerticalAlignment = VerticalAlignment.Top; } MakeErrorsLike(newErrors); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); newErrors.Add(new ErrorViewModel() { Message = "Rendering failed", Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); } }
public void ValidatePaymentDetailsDto_ShouldReturnCorrectBool(int orderNumber, double amount, bool expected) { var paymentDetails = new PaymentDetailsDto { OrderNumber = orderNumber, PayableAmount = amount }; var actual = PayloadValidator.ValidatePaymentDetailsDto(paymentDetails); Assert.Equal(expected, actual); }
public void ValidateOrderDetails_ShouldReturnCorrectErrorCount(int orderNumber, int userId, double amount, string gateway, string description, int expected) { var incommingOrder = new IncommingOrderDto { OrderNumber = orderNumber, UserId = userId, PayableAmount = amount, PaymentGateWay = gateway, Description = description }; var actual = PayloadValidator.ValidateOrderDetails(incommingOrder).Item2.Count; Assert.Equal(expected, actual); }
public void ValidatePayementGateway_ShouldReturnErrorMessage() { var gateway = ""; List <string> errors = new List <string>(); var expected = Messages.PaymentGatewayNotSelected(); PayloadValidator.ValidatePayementGateway(gateway, errors); var actual = errors.FirstOrDefault(); Assert.Equal(expected, actual); }
public void ValidatePayableAmount_ShouldReturnErrorMessage() { var amount = -22; List <string> errors = new List <string>(); var expected = Messages.PayableAmountErrorMessage(); PayloadValidator.ValidatePayableAmount(amount, errors); var actual = errors.FirstOrDefault(); Assert.Equal(expected, actual); }
public void ValidateInteger_ShouldReturnErrorMessage() { var integer = 0; var valueType = "user"; List <string> errors = new List <string>(); var expected = Messages.IntegerErrorMessage(valueType); PayloadValidator.ValidateInteger(integer, valueType, errors); var actual = errors.FirstOrDefault(); Assert.Equal(expected, actual); }
protected override async void LoadPayload(string payload) { var newErrors = await PayloadValidator.ValidateAsync(payload); if (newErrors.Any(i => i.Type == ErrorViewModelType.Error)) { MakeErrorsLike(newErrors); return; } try { if (_renderer == null) { InitializeRenderer(MainPageViewModel.HostConfigEditor.HostConfig); } } catch (Exception ex) { newErrors.Add(new ErrorViewModel() { Message = "Initializing renderer error: " + ex.ToString(), Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); return; } try { JsonObject jsonObject; if (JsonObject.TryParse(payload, out jsonObject)) { AdaptiveCardParseResult parseResult = AdaptiveCard.FromJson(jsonObject); RenderedAdaptiveCard renderResult = _renderer.RenderAdaptiveCard(parseResult.AdaptiveCard); if (renderResult.FrameworkElement != null) { RenderedCard = renderResult.FrameworkElement; renderResult.Action += async(sender, e) => { var m_actionDialog = new ContentDialog(); if (e.Action.ActionType == ActionType.ShowCard) { AdaptiveShowCardAction showCardAction = (AdaptiveShowCardAction)e.Action; RenderedAdaptiveCard renderedShowCard = _renderer.RenderAdaptiveCard(showCardAction.Card); if (renderedShowCard.FrameworkElement != null) { m_actionDialog.Content = renderedShowCard.FrameworkElement; } } else { m_actionDialog.Content = SerializeActionEventArgsToString(e); } m_actionDialog.PrimaryButtonText = "Close"; await m_actionDialog.ShowAsync(); }; if (!MainPageViewModel.HostConfigEditor.HostConfig.Media.AllowInlinePlayback) { renderResult.MediaPlay += async(sender, e) => { var onPlayDialog = new ContentDialog(); onPlayDialog.Content = "MediaPlayEvent:"; foreach (var source in e.Media.Sources) { onPlayDialog.Content += "\n" + source.Url + " (" + source.MimeType + ")"; } onPlayDialog.PrimaryButtonText = "Close"; await onPlayDialog.ShowAsync(); }; } else { renderResult.MediaEnded += async(sender, e) => { var mediaEndedDialog = new ContentDialog(); mediaEndedDialog.Content = "Media Ended Event:"; foreach (var source in e.Media.Sources) { mediaEndedDialog.Content += "\n" + source.Url + " (" + source.MimeType + ")"; } mediaEndedDialog.PrimaryButtonText = "Close"; await mediaEndedDialog.ShowAsync(); }; } } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error Rendering this card", Type = ErrorViewModelType.Error }); } foreach (var error in parseResult.Errors) { newErrors.Add(new ErrorViewModel() { Message = error.Message, Type = ErrorViewModelType.Error }); } foreach (var error in renderResult.Errors) { newErrors.Add(new ErrorViewModel() { Message = error.Message, Type = ErrorViewModelType.Error }); } foreach (var error in parseResult.Warnings) { newErrors.Add(new ErrorViewModel() { Message = error.Message, Type = ErrorViewModelType.Warning }); } foreach (var error in renderResult.Warnings) { newErrors.Add(new ErrorViewModel() { Message = error.Message, Type = ErrorViewModelType.Warning }); } } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error creating a JsonObject from the card", Type = ErrorViewModelType.Error }); } if (RenderedCard is FrameworkElement) { (RenderedCard as FrameworkElement).VerticalAlignment = VerticalAlignment.Top; } MakeErrorsLike(newErrors); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); newErrors.Add(new ErrorViewModel() { Message = "Rendering failed", Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); } }
protected override async void LoadPayload(string payload) { var newErrors = await PayloadValidator.ValidateAsync(payload); if (newErrors.Any(i => i.Type == ErrorViewModelType.Error)) { MakeErrorsLike(newErrors); return; } try { if (_renderer == null) { InitializeRenderer(MainPageViewModel.HostConfigEditor.HostConfig); } } catch (Exception ex) { newErrors.Add(new ErrorViewModel() { Message = "Initializing renderer error: " + ex.ToString(), Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); return; } try { JsonObject jsonObject; if (JsonObject.TryParse(payload, out jsonObject)) { RenderedAdaptiveCard renderResult = _renderer.RenderAdaptiveCardFromJson(jsonObject); if (renderResult.FrameworkElement != null) { RenderedCard = renderResult.FrameworkElement; renderResult.Action += async(sender, e) => { var m_actionDialog = new ContentDialog(); if (e.Action.ActionType == ActionType.ShowCard) { AdaptiveShowCardAction showCardAction = (AdaptiveShowCardAction)e.Action; RenderedAdaptiveCard renderedShowCard = _renderer.RenderAdaptiveCard(showCardAction.Card); if (renderedShowCard.FrameworkElement != null) { m_actionDialog.Content = renderedShowCard.FrameworkElement; } } else { m_actionDialog.Content = SerializeActionEventArgsToString(e); } m_actionDialog.PrimaryButtonText = "Close"; await m_actionDialog.ShowAsync(); }; } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error Rendering this card", Type = ErrorViewModelType.Error }); } } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error creating a JsonObject from the card", Type = ErrorViewModelType.Error }); } if (RenderedCard is FrameworkElement) { (RenderedCard as FrameworkElement).VerticalAlignment = VerticalAlignment.Top; } MakeErrorsLike(newErrors); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); newErrors.Add(new ErrorViewModel() { Message = "Rendering failed", Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest request, ILogger logger) { if (string.IsNullOrEmpty(config.Value.GitHubWebhookSecret)) { return new ObjectResult(new { error = "GitHub secret not configured" }) { StatusCode = StatusCodes.Status500InternalServerError } } ; if (string.IsNullOrEmpty(config.Value.GitHubAppId) || string.IsNullOrEmpty(config.Value.GitHubAppPrivateKey)) { return new ObjectResult(new { error = "GitHub App ID/Token not configured" }) { StatusCode = StatusCodes.Status500InternalServerError } } ; string eventName = request.Headers.GetValueOrDefault("X-GitHub-Event"); string deliveryId = request.Headers.GetValueOrDefault("X-GitHub-Delivery"); string receivedSignature = request.Headers.GetValueOrDefault("X-Hub-Signature"); logger.LogInformation("Webhook delivery: Delivery id = '{DeliveryId}', Event name = '{EventName}'", deliveryId, eventName); if (string.IsNullOrEmpty(eventName)) { return new ObjectResult(new { error = "X-GitHub-Event header missing" }) { StatusCode = StatusCodes.Status400BadRequest } } ; var payload = new PayloadReader(request); if (!PayloadValidator.IsSignatureValid(await payload.ReadAsByteArray(), receivedSignature, config.Value.GitHubWebhookSecret)) { return(new BadRequestObjectResult(new { error = "Payload signature not valid" })); } else { var webhookResult = new WebhookResult(); try { string requestBody = await payload.ReadAsString(); await eventDispatchService.Process(eventName, requestBody, webhookResult); } catch (Exception ex) { webhookResult.LogError(ex, "Failed to handle webhook"); } return(new OkObjectResult(webhookResult)); } } } }
public IActionResult ProcessSwedbankPayment([FromBody] PaymentDetailsDto value) { var isValidDto = PayloadValidator.ValidatePaymentDetailsDto(value); return(isValidDto ? StatusCode(200) : StatusCode(400)); }
public void ValidSecret() { Assert.IsTrue(PayloadValidator.IsSignatureValid(testString, "sha1=17776af870091664d05e1a90e22f3cfb181b5411", Key)); }
public void InvalidSecretFails() { Assert.IsFalse(PayloadValidator.IsSignatureValid(testString, "sha1=17776af870091664d05e1a90e22f3cfb181b5411", "InvalidKey")); }
public void InvalidSignatureFails() { Assert.IsFalse(PayloadValidator.IsSignatureValid(testString, "sha1=ab776af870091664d05e1a90e22f3cfb181b54cd", Key)); }
public void EmptySignatureFails() { Assert.IsFalse(PayloadValidator.IsSignatureValid(testString, string.Empty, Key)); }
public PayloadValidationFilter(PayloadValidator validator) { this.validator = Ensure.NotNull(validator, "validator"); }