public async Task <bool> SaveCategoryTransferAsync(CategoryTransfer transfer) { IList <object> row = null; try { row = CategoryTransfer.ToGoogleRow(transfer); } catch (Exception ex) { _logger.LogError(ex, "Google row instancing error"); return(false); } var valueRange = new ValueRange { Values = new List <IList <object> > { row } }; var appendRequest = _sheetsService.Spreadsheets.Values.Append(valueRange, _spreadSheetId, Options.CategoryTransfersRange); appendRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED; var response = await appendRequest.ExecuteAsync(); return(response.Updates.UpdatedRows == 1); }
public async Task <List <CategoryTransfer> > GetCategoryTransfersAsync(int month = 0) { var request = _sheetsService.Spreadsheets.Values.Get(_spreadSheetId, Options.CategoryTransfersRange); request.ValueRenderOption = SpreadsheetsResource.ValuesResource.GetRequest.ValueRenderOptionEnum.UNFORMATTEDVALUE; var response = await request.ExecuteAsync(); var values = response.Values; if (values == null || values.Count == 0) { return(new List <CategoryTransfer>()); } var result = new List <CategoryTransfer>(); foreach (var row in values) { try { var transfer = CategoryTransfer.FromGoogleRow(row); result.Add(transfer); } catch (Exception ex) { _logger.LogError(ex, "CategoryTransfer instancing error"); } } if (month > 0 && month < 13) { result = result.Where(x => x.Date.Month == month).ToList(); } return(result); }