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);
        }
Exemplo n.º 3
0
        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.");
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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());
        }
Exemplo n.º 7
0
 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;
 }