< Summary

Information
Class: Repository.Persistency.Implementations.LancamentoRepositorioImpl
Assembly: Despesas.Repository
File(s): /src/Despesas.Repository/Persistency/Implementations/LancamentoRepositorioImpl.cs
Line coverage
100%
Covered lines: 49
Uncovered lines: 0
Coverable lines: 49
Total lines: 64
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Context()100%11100%
.ctor(...)100%11100%
FindByMesAno()100%11100%

File(s)

/src/Despesas.Repository/Persistency/Implementations/LancamentoRepositorioImpl.cs

#LineLine coverage
 1using Domain.Core.ValueObject;
 2using Domain.Entities;
 3using Microsoft.EntityFrameworkCore;
 4using Repository.Persistency.Abstractions;
 5using System.Collections.Immutable;
 6using System.Data;
 7
 8namespace Repository.Persistency.Implementations;
 9public class LancamentoRepositorioImpl : ILancamentoRepositorio
 10{
 611    public RegisterContext Context { get; }
 512    public LancamentoRepositorioImpl(RegisterContext context)
 513    {
 514        Context = context;
 515    }
 16
 17    public async Task<ICollection<Lancamento>> FindByMesAno(DateTime data, Guid idUsuario)
 318    {
 319        int mes = data.Month;
 320        int ano = data.Year;
 321        var despesas = await Context.Despesa
 322            .Include(d => d.Categoria)
 323            .Include(tc => tc.Categoria.TipoCategoria)
 324            .Where(d => d.Data.Month == mes && d.Data.Year == ano && d.UsuarioId == idUsuario && d.Categoria.TipoCategor
 325            .Select(d => new Lancamento
 326            {
 327                Id = d.Id,
 328                Categoria = d.Categoria,
 329                CategoriaId = d.CategoriaId,
 330                DespesaId = d.Id,
 331                UsuarioId = d.UsuarioId,
 332                Data = d.Data,
 333                DataCriacao = DateTime.Now,
 334                Valor = d.Valor,
 335                Despesa = new Despesa { Id = d.Id, Descricao = d.Descricao },
 336                Receita = null,
 337                ReceitaId = null
 338            })
 339            .ToListAsync();
 40
 341        var receitas = await Context.Receita
 342            .Include(r => r.Categoria)
 343            .Include(tc => tc.Categoria.TipoCategoria)
 344            .Where(r => r.Data.Month == mes && r.Data.Year == ano && r.UsuarioId == idUsuario && r.Categoria.TipoCategor
 345            .Select(r => new Lancamento
 346            {
 347                Id = r.Id,
 348                Categoria = r.Categoria,
 349                CategoriaId = r.CategoriaId,
 350                ReceitaId = r.Id,
 351                UsuarioId = r.UsuarioId,
 352                Data = r.Data,
 353                DataCriacao = DateTime.Now,
 354                Valor = r.Valor,
 355                Despesa = null,
 356                Receita = new Receita { Id = r.Id, Descricao = r.Descricao },
 357                DespesaId = null
 358            })
 359            .ToListAsync();
 60
 2161        var lancamentos = despesas.Concat(receitas).OrderBy(l => l.Data).ToImmutableArray();
 162        return lancamentos;
 163    }
 64}