Ejemplo n.º 1
0
        public static DTOSarauCodigo ConverterComCodigo(this ApresentacaoSarau sarau)
        {
            var dto = new DTOSarauCodigo();

            dto.Converter(sarau);
            return(dto);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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>());
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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);
        }