public async Task <PostMeterReadingsResponse> Upload(PostMeterReadingsRequest request, CancellationToken cancellationToken = default) { var requestUrl = "https://localhost:44362/customers/meter-readings"; var responseMessage = await s_client.PostAsJsonAsync(requestUrl, request, cancellationToken); var jsonString = await responseMessage.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <PostMeterReadingsResponse>(jsonString)); }
public async Task OnPostAsync() { if (FormFile == null) { return; } var request = new PostMeterReadingsRequest(); try { using var reader = FormFile.OpenReadStream(); using var csv = new CsvReader(new ExcelParser(reader, "in")); var meterReadings = csv.GetRecordsAsync <MeterReading>(); request.MeterReadings = new List <PostMeterReadingsRequest.MeterReading>(); await foreach (var meterReading in meterReadings) { request.MeterReadings.Add(new PostMeterReadingsRequest.MeterReading { AccountId = meterReading.AccountId, MeterReadValue = meterReading.MeterReadValue, MeterReadingDateTime = DateTime.Parse(meterReading.MeterReadingDateTime) }); } } catch (Exception) { UploadError = true; return; } var response = await _meterReadingsClient.Upload(request, CancellationToken.None); TotalSuccessCount = response.TotalSuccessCount; TotalFailCount = response.TotalFailCount; }