public async Task AnswerDeliveryDemand(string deliveryCode, AnswerDeliveryDemandRequest request) { Status = "InProgress"; await Update(); Contribution contribution = new Contribution(ProcessId, Id, deliveryCode, request); contribution.SetStore(_transactionStore); AddComponent(contribution); await contribution.Save(); }
public async Task AnswerDeliveryDemand(string deliveryDemandId, AnswerDeliveryDemandRequest answerDeliveryDemandRequest) { string json = JsonConvert.SerializeObject(answerDeliveryDemandRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, $"api/transactions/delivery-demands/answer-delivery-demand/{deliveryDemandId}") { Content = new StringContent(json, Encoding.UTF8, "application/json") }; HttpResponseMessage responseMessage = await _httpClient.SendAsync(request); await EnsureSuccessOrThrowAsync(responseMessage); }
public async Task AnswerDeliveryDemand(string deliveryDemandId, AnswerDeliveryDemandRequest request) { var deliveryDemand = await _transactionStore.GetDeliveryDemand(deliveryDemandId); Process process = await BuildProcess(deliveryDemand.ProcessId); await process.AnswerDeliveryDemand(request); var user = await _userService.GetUser(deliveryDemand.PickupUsername); _notificationService.NotifyUser(user.Email, "PickUp volunteer on his way!", request.Username + " Will be picking up your donation."); }
public async Task AnswerDeliveryDemand(AnswerDeliveryDemandRequest request) //For delivery courier. Once a delivery demand is answered, its status is updated to: InProgress. { Status = "InProgress"; // Delivery Code is auto-generated for later valdation DeliveryCode = CreateDeliveryCode(); await Update(); var deliveryDemand = GetDeliveryDemand(); await deliveryDemand.AnswerDeliveryDemand(DeliveryCode, request); var contribution = GetContribution(); await contribution.SetStatusInProgress(); }
private async void DeliveryDemandMatchPanel_AnswerCampaignButton_Click(object sender, EventArgs e) { var timeWindowStart = ToUnixTime(DeliveryInfoPanel_DatePicker.Value, DeliveryInfoPanel_TimePicker1.Value); var timeWindowEnd = ToUnixTime(DeliveryInfoPanel_DatePicker.Value, DeliveryInfoPanel_TimePicker2.Value); var answerDeliveryDemandRequest = new AnswerDeliveryDemandRequest { Username = Properties.Settings.Default["Username"].ToString(), TimeWindowStart = timeWindowStart, TimeWindowEnd = timeWindowEnd }; await client.AnswerDeliveryDemand(matchedDeliveryDemand.Id, answerDeliveryDemandRequest); MessageBox.Show("Thank you for your intiative! You can access more details on the pickup and delivery locations in \"My Contributions\"."); Navigate(MenuPanel); }
public async Task <IActionResult> AnswerDeliveryDemand(string deliveryDemandId, [FromBody] AnswerDeliveryDemandRequest request) { await _transactionService.AnswerDeliveryDemand(deliveryDemandId, request); return(Ok()); }
public Contribution(string processId, string deliveryDemandId, string deliveryCode, AnswerDeliveryDemandRequest request) { Id = Utils.CreateId(); ProcessId = processId; DeliveryDemandId = deliveryDemandId; DeliveryCode = deliveryCode; Type = "Delivery"; Username = request.Username; Status = "InProgress"; TimeWindowStart = request.TimeWindowStart; TimeWindowEnd = request.TimeWindowEnd; OtherInfo = request.OtherInfo; TimeCreated = Utils.UnixTimeSeconds(); TimeCompleted = 0; }