private void OnAvailableTimeFound(object sender, AvailableTimeInfo info) { var text = string.Format(Messages.FoundAvailableTime, info.Day, info.Hour); PushMessageToLog(text, JsonConvert.SerializeObject(info)); DebugUtils.WriteLineToDebugConsole(text); }
private async Task DoWork() { var jobCompletedWithResults = false; try { // gets deliveries for current address var deliveriesResponse = await barboraApiClient.GetDeliveriesAsync(); foreach (var delivery in deliveriesResponse.deliveries) { foreach (var deliveryDay in [email protected]) { foreach (var hour in deliveryDay.hours) { if (hour.available) { var info = new AvailableTimeInfo { DayId = deliveryDay.id, Day = deliveryDay.day, HourId = hour.id, Hour = hour.hour, IsExpressDelivery = deliveryDay.isExpressDelivery, Price = hour.price }; OnAvailableTimeFound?.Invoke(this, info); jobCompletedWithResults = true; } } } } OnJobCompleted?.Invoke(this, jobCompletedWithResults); } catch (Exception exc) { if (OnException != null) { OnException.Invoke(this, exc); } else { throw exc; } } }
private async Task TryMakeReservation(AvailableTimeInfo info) { var response = await barboraApiClient.ReserveDeliveryTimeSlotAsync(info.DayId, info.HourId, info.IsExpressDelivery); if (response.reservationValidForSeconds != 0) { PushMessageToLog(string.Format(Messages.ReservationSuccessful, info.Day, info.Hour, response.reservationValidForSeconds / 60)); } else { PushMessageToLog(response.messages.GetFirstErrorMessage()); } }