public Grupo_Novo_Criado_Corretamente()
        {
            string nome = "Grupo";
            string email = "*****@*****.**";
            grupoPai = MockRepository.GenerateStub<Grupo>();

            grupo = new Grupo(nome, email, grupoPai);
        }
Beispiel #2
0
 public Evento(string nome, string descricao, DateTime dataInicioEvento, DateTime dataFimEvento, Grupo grupo, TipoEventoEnum tipoDoEvento)
 {
     Preencher(nome, descricao, dataInicioEvento, dataFimEvento, grupo, tipoDoEvento);
     DataCadastro = SystemTime.Now();
     Estado = EstadoEventoEnum.Agendado;
     Conflitos = new List<Conflito>();
     Reservas = new List<Reserva>();
 }
        public static void CriarUsuario(this IDocumentSession session, Usuario usuario, Grupo grupo)
        {
            var usuarioExistente = session.Query<Usuario>().FirstOrDefault(u => u.Email == usuario.Email);
            if (usuarioExistente != null)
                throw new UsuarioExistenteException(usuarioExistente);

            grupo.PrecisaCriarUsuario = false;
            session.Store(usuario);
        }
Beispiel #4
0
        public Grupo(string nome, string email, Grupo grupoPai)
        {
            PreencherNome(nome);
            PreencherGrupoPai(grupoPai);

            // TODO validar email
            this.Email = email;

            CriarSenhaPadrao();
        }
Beispiel #5
0
        private void AdicionarGruposFilhos(Grupo grupoPai)
        {
            if (grupoPai.GruposFilhos != null)
            {
                nivelArvoreGrupos++;
                foreach (var grupoFilho in grupoPai.GruposFilhos.OrderBy(g => g.Nome))
                {
                    GrupoViewModel grupoDTO = new GrupoViewModel() { Id = grupoFilho.Id, Nome = grupoFilho.Nome };
                    if (!gruposOrganizados.Contains(grupoDTO))
                    {
                        grupoDTO.Nome = grupoFilho.Nome;
                        for (int i = nivelArvoreGrupos; i > 0; i--) { grupoDTO.Nome = grupoDTO.Nome.Insert(0, "---"); };
                        gruposOrganizados.Add(grupoDTO);
                    }

                    AdicionarGruposFilhos(gruposExistentes.Single(g => g.Id == grupoFilho.Id));
                }
                nivelArvoreGrupos--;
            }
        }
        public ActionResult Salvar(GrupoViewModel grupoForm)
        {
            if (ModelState.IsValid)
            {
                Grupo grupoPai = grupos.Com(g => g.Id == grupoForm.GrupoPai);

                if (String.IsNullOrEmpty(grupoForm.Id))
                {
                    Grupo grupo = new Grupo(grupoForm.Nome, grupoForm.Email, grupoPai);
                    grupos.Salvar(grupo);
                    // TODO enviar email
                    //Email.AgendarEmail(grupo.Email, "{ Integer } Acesso ao calendário", grupo.ObterMensagemBoasVindas());
                }
                else
                {
                    Grupo grupo = grupos.Com(g => g.Id == grupoForm.Id);
                    grupo.Alterar(grupoForm.Nome, grupoForm.Email, grupoPai);
                }
            }
            return PartialView("GrupoForm", grupoForm);
        }
Beispiel #7
0
        private void PreencherGrupo(Grupo grupo)
        {
            #region pré-condição
            var grupoFoiInformado = Assertion.That(grupo != null).WhenNot("Necessário informar o grupo que promoverá o evento.");
            #endregion
            grupoFoiInformado.Validate();

            Grupo = grupo;
        }
Beispiel #8
0
 private void Preencher(string nome, string descricao, 
                                         DateTime dataInicioEvento, DateTime dataFimEvento, 
                                         Grupo grupo, TipoEventoEnum tipoDoEvento)
 {
     PreencherNome(nome);
     PreencherDescricao(descricao);
     PreencherDatas(dataInicioEvento, dataFimEvento);
     PreencherGrupo(grupo);
     PreencherTipo(tipoDoEvento);
 }
Beispiel #9
0
        public void Alterar(string nome, string descricao, DateTime dataInicio, DateTime dataFim, Grupo grupo, TipoEventoEnum tipo)
        {
            bool dataInicioMudou = !this.DataInicio.Equals(dataInicio);
            bool dataFimMudou = !this.DataFim.Equals(dataFim);
            if (dataInicioMudou || dataFimMudou)
            {
                this.DataInicio = dataInicio;
                this.DataFim = dataFim;
                DomainEvents.Raise<HorarioDeEventoAlteradoEvent>(new HorarioDeEventoAlteradoEvent(this));
            }

            this.Nome = nome;
            this.Descricao = descricao;
            this.Grupo = grupo;
            this.Tipo = tipo; // TODO: disparar DomainEvent de tipo alterado (se o tipo diminuiu a prioridade, o handler deverá remover os conflitos dos eventos menos prioritários até então)
        }
Beispiel #10
0
 public void Alterar(string nome, string email, Grupo grupoPai)
 {
     PreencherNome(nome);
     PreencherGrupoPai(grupoPai);
     this.Email = email;
 }
Beispiel #11
0
 private void PreencherGrupoPai(Grupo grupo)
 {
     this.GrupoPai = grupo;
 }
 private void Cria_Grupo()
 {
     grupo = new Grupo(nome, email, grupoPai);
 }
 public void Salvar(Grupo evento)
 {
     documentSession.Store(evento);
 }
Beispiel #14
0
        private static void ImportarPara(IDocumentStore store)
        {
            Stopwatch sp = Stopwatch.StartNew();

            using (var agenda = new AgendaContainer())
            {
                Console.WriteLine("Começando...");

                #region Locais
                Console.WriteLine("Importando Locais...");
                IEnumerable<Local> locais = agenda.Local.ToList();
                Console.WriteLine("Carregar Locais demorou: {0:#,#} ms", sp.ElapsedMilliseconds);

                var locaisRaven = new List<NovaVersaoParoquia.Local>();
                using (IDocumentSession s = store.OpenSession())
                {
                    foreach (Local l in locais)
                    {
                        var local = new NovaVersaoParoquia.Local(l.Nome);
                        s.Store(local);
                        locaisRaven.Add(local);
                    }
                    s.SaveChanges();
                }
                Console.WriteLine("Locais: " + locaisRaven.Count);
                #endregion

                #region Grupos
                Console.WriteLine("Importando Grupos...");
                IEnumerable<Grupo> grupos = agenda.Grupo.ToList();
                Console.WriteLine("Carregar Grupos demorou: {0:#,#} ms", sp.ElapsedMilliseconds);

                var gruposRaven = new List<NovaVersaoParoquia.Grupo>();
                using (IDocumentSession s = store.OpenSession())
                {
                    #region grupos
                    foreach (Grupo g in grupos)
                    {
                        var grupo = new NovaVersaoParoquia.Grupo(g.Nome, DeParaGrupoEmail(g.Id), null);
                        s.Store(grupo);
                        gruposRaven.Add(grupo);
                    }
                    #endregion

                    s.SaveChanges();
                }
                Console.WriteLine("Grupos: " + gruposRaven.Count);
                #endregion

                #region TiposEvento
                Console.WriteLine("Inserindo Tipos...");
                using (IDocumentSession s = store.OpenSession())
                {
                    s.Store(new NovaVersaoAgenda.TipoEvento { Id = ((int)NovaVersaoAgenda.TipoEventoEnum.Paroquial).ToString(), Nome = "Paroquial" });
                    s.Store(new NovaVersaoAgenda.TipoEvento { Id = ((int)NovaVersaoAgenda.TipoEventoEnum.Sacramento).ToString(), Nome = "Sacramento" });
                    s.Store(new NovaVersaoAgenda.TipoEvento { Id = ((int)NovaVersaoAgenda.TipoEventoEnum.GrandeMovimentoDePessoas).ToString(), Nome = "Grande movimento de pessoas" });
                    s.Store(new NovaVersaoAgenda.TipoEvento { Id = ((int)NovaVersaoAgenda.TipoEventoEnum.Comum).ToString(), Nome = "Comum" });
                    s.SaveChanges();
                }
                #endregion

                #region Eventos
                Console.WriteLine("Importando Eventos...");
                IEnumerable<Evento> eventos = agenda.Evento
                    .Include("Grupo")
                    .Include("ListaInternaConflitos")
                    .Include("ListaInternaReservasDeLocais")
                    .Where(e => e.DataInicio.Year >= 2012)
                    .OrderBy(e => e.DataInicio).ToList();

                Console.WriteLine("Para carregar eventos, demorou: {0:#,#} ms", sp.ElapsedMilliseconds);

                var eventosRaven = new List<NovaVersaoAgenda.Evento>();
                using (IDocumentSession s = store.OpenSession())
                {
                    foreach (Evento ev in eventos)
                    {
                        var grupo = gruposRaven.Where(g => g.Nome == ev.Grupo.Nome).Single();
                        string descricao = ev.Descricao;
                        if (descricao != null && descricao.Length > 150)
                            descricao = descricao.Substring(0, 150);

                        var evento = new NovaVersaoAgenda.Evento(
                            ev.Nome,
                            descricao,
                            ev.DataInicio,
                            ev.DataFim,
                            grupo,
                            DeParaTipoEvento(ev.Tipo));
                        s.Store(evento);
                        eventosRaven.Add(evento);
                    }
                    s.SaveChanges();
                }
                Console.WriteLine("Eventos: " + eventos.Count());
                #endregion
            }
        }