Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }