public static DTOSarauCodigo ConverterComCodigo(this ApresentacaoSarau sarau) { var dto = new DTOSarauCodigo(); dto.Converter(sarau); return(dto); }
private static DTOSarau Converter(this DTOSarau dto, ApresentacaoSarau sarau) { dto.DuracaoMin = sarau.DuracaoMin; dto.Id = sarau.Id; dto.Participantes = sarau.Inscritos.Select(y => y.ConverterSimplificada()).ToList(); dto.Tipo = sarau.Tipo; return(dto); }
internal void IncluirOuAtualizarPorParticipanteSemExecucaoSegura(Inscricao inscricao, IEnumerable <DTOSarau> dtoApresentacoes) { var repApresentacoes = Contexto.RepositorioApresentacoesSarau; var apresentacoes = repApresentacoes.ListarPorInscricao(inscricao.Id); var apresentacoesRemovidas = apresentacoes.Where(x => dtoApresentacoes.Count(y => y.Id == x.Id) == 0).ToList(); foreach (var apresentacao in apresentacoesRemovidas) { if (apresentacao.Inscritos.Count() == 1) { repApresentacoes.Excluir(apresentacao); } else { var inscritos = new List <Inscricao>(apresentacao.Inscritos); inscritos.Remove(inscricao); apresentacao.AtualizarInscricoes(inscritos); repApresentacoes.Atualizar(apresentacao); } } foreach (var dtoSarau in dtoApresentacoes) { if (dtoSarau.Id != null) { var apresentacao = repApresentacoes.ObterPorId(inscricao.Evento.Id, dtoSarau.Id.Value); apresentacao.DuracaoMin = dtoSarau.DuracaoMin; apresentacao.Tipo = dtoSarau.Tipo; if (apresentacao.Inscritos.Count(x => x == inscricao) == 0) { var inscritos = new List <Inscricao>(apresentacao.Inscritos) { inscricao }; apresentacao.AtualizarInscricoes(inscritos); } repApresentacoes.Atualizar(apresentacao); } else { var apresentacao = new ApresentacaoSarau(inscricao.Evento, dtoSarau.DuracaoMin, dtoSarau.Tipo, new List <Inscricao>() { inscricao }); repApresentacoes.Incluir(apresentacao); } } }
protected override int ObterTempoTotalApresentacoes(Evento evento, ApresentacaoSarau apresentacaoNaoConsiderar = null) { var consulta = mSessao.QueryOver <ApresentacaoSarau>() .Where(apresentacao => apresentacao.Evento.Id == evento.Id); if (apresentacaoNaoConsiderar != null) { consulta.Where(apresentacao => apresentacao.Id != apresentacaoNaoConsiderar.Id); } return(consulta .Select(Projections.Sum <ApresentacaoSarau>(x => x.DuracaoMin)) .SingleOrDefault <int>()); }
public override IList <ApresentacaoSarau> ListarPorInscricao(int idInscricao) { ApresentacaoSarau apresentacaoAlias = null; return(mSessao .QueryOver <ApresentacaoSarau>(() => apresentacaoAlias) .WithSubquery .WhereExists(QueryOver.Of <ApresentacaoSarau>() .Where(a => a.Id == apresentacaoAlias.Id) .Inner.JoinQueryOver <Inscricao>(a => a.Inscritos) .Where(i => i.Id == idInscricao) .Select(a => a.Id)) .Inner.JoinQueryOver <Inscricao>(x => x.Inscritos) .Inner.JoinQueryOver <Pessoa>(x => x.Pessoa) .TransformUsing(Transformers.DistinctRootEntity) .List()); }
public DTOId Incluir(int idEvento, DTOSarau dto) { DTOId retorno = new DTOId(); ExecutarSeguramente(() => { var evento = Contexto.RepositorioEventos.ObterEventoPeloId(idEvento); var inscritos = dto .Participantes .Select(x => Contexto.RepositorioInscricoes .ObterInscricaoPeloIdEventoEInscricao(idEvento, x.Id)) .ToList(); var sarau = new ApresentacaoSarau(evento, dto.DuracaoMin, dto.Tipo, inscritos); Contexto.RepositorioApresentacoesSarau.Incluir(sarau); retorno.Id = sarau.Id; }); return(retorno); }