public async Task <IActionResult> ValidateDelivery([FromBody] ValidateDeliveryRequest request) { var isValid = await _transactionService.ValidateDelivery(request); var response = new ValidateDeliveryResult { IsValid = isValid }; return(Ok(response)); }
public async Task <ValidateDeliveryResult> ValidateDelivery(ValidateDeliveryRequest validateDeliveryRequest) { string json = JsonConvert.SerializeObject(validateDeliveryRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "api/transactions/validate-delivery") { Content = new StringContent(json, Encoding.UTF8, "application/json") }; HttpResponseMessage responseMessage = await _httpClient.SendAsync(request); await EnsureSuccessOrThrowAsync(responseMessage); string recievedJson = await responseMessage.Content.ReadAsStringAsync(); var validateDeliveryResult = JsonConvert.DeserializeObject <ValidateDeliveryResult>(recievedJson); return(validateDeliveryResult); }
public async Task <bool> ValidateDelivery(ValidateDeliveryRequest request) { if (request.ValidationType == "Pickup") { var contribution = await _transactionStore.GetContribution(request.ContributionId); Process process = await BuildProcess(contribution.ProcessId); if (process.DeliveryCode == request.DeliveryCode) { await process.ValidatePickup(); return(true); } else { return(false); } } else if (request.ValidationType == "Destination") { var getProcessesResult = await _transactionStore.GetProcesses(request.CampaignId); Process process = getProcessesResult.Processes.Find(x => x.DeliveryCode == request.DeliveryCode); if (process != null) { process = await BuildProcess(process.Id); await process.ValidateDestination(); var deliveryDemand = process.GetDeliveryDemand(); var user = await _userService.GetUser(deliveryDemand.PickupUsername); _notificationService.NotifyUser(user.Email, "Donation Delivered!", "Hey " + user.FirstName + "! Your donation has been delivered. Thank you for your generosity!"); return(true); } else { return(false); } } else { throw new BadRequestException("Invalid ValidationType"); } }
private async void ValidateDeliveryButton_Click(object sender, EventArgs e) { var validateDeliveryRequest = new ValidateDeliveryRequest { ValidationType = "Destination", CampaignId = SelectedCampaign.Id, DeliveryCode = DashboardPanel_DeliveryCodeTextBox.Text }; var result = await client.ValidateDelivery(validateDeliveryRequest); string message; if (result.IsValid) { message = "Delivery Validated!"; DashboardPanel_TreeView.Focus(); } else { message = "Wrong Delivery Code."; } MessageBox.Show(message); }
private async void ContributionPanel_ValidatePickupButton_Click(object sender, EventArgs e) { var validateDeliveryRequest = new ValidateDeliveryRequest { ValidationType = "Pickup", ContributionId = contributionIdTag, DeliveryCode = ContributionPanel_DeliveryCodeTextBox.Text }; var result = await client.ValidateDelivery(validateDeliveryRequest); string message; if (result.IsValid) { message = "Delivery Validated!"; ContributionPanel.Focus(); } else { message = "Wrong Delivery Code."; } MessageBox.Show(message); }