public async Task <Xpto> InserValues()
        {
            var xptoEntity = await repository.GetAll().FirstOrDefaultAsync();

            if (xptoEntity == null)
            {
                xptoEntity = new Xpto();

                await repository.CreateAsync(xptoEntity);

                await repository.CommitAsync();
            }

            xptoEntity = await UpdateValues(xptoEntity, "TotalProduced", "produced", "vol_produced");

            xptoEntity = await UpdateValues(xptoEntity, "TotalPlanned", "planned", "vol_planned");

            repository.Update(xptoEntity);
            try
            {
                await repository.CommitAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(await Task.FromResult(xptoEntity));
        }
        private async Task <Xpto> UpdateValues(Xpto xptoEntity, string propriedade, string paramQuery, string column)
        {
            using (NpgsqlConnection conexao = new NpgsqlConnection(config.GetConnectionString("DefaultConnection")))
            {
                conexao.Open();

                for (int i = 1; i <= 11; i++)
                {
                    var propertyName = $"{propriedade}{i}";
                    var query        = $"SELECT SUM({paramQuery}{i}) FROM xpto.{column}";
                    var somaQuery    = await conexao.QueryFirstOrDefaultAsync <dynamic>(query);

                    var prop = xptoEntity.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
                    if (null != prop && prop.CanWrite)
                    {
                        prop.SetValue(xptoEntity, somaQuery.sum, null);
                    }
                }
            }

            return(await Task.FromResult(xptoEntity));
        }