Exemplo n.º 1
0
        public IActionResult Put(int id, [FromBody] InteressadoDTO interessado)
        {
            if (id != interessado.Id)
            {
                return(new BadRequestResult());
            }
            if (ModelState.IsValid)
            {
                Interessado i = _context.Interessado.Single(q => q.CodInteressado == id);


                i.Nome     = interessado.Nome;
                i.Celular  = interessado.Celular;
                i.Telefone = interessado.Telefone;
                i.Email    = interessado.Email;
                try
                {
                    _context.SaveChanges();
                }
                catch
                {
                    ModelState.AddModelError("Email", "Este email já está cadastrado");
                    return(new BadRequestObjectResult(ModelState));
                }

                return(new ObjectResult(interessado));
            }
            else
            {
                return(new BadRequestObjectResult(ModelState));
            }
        }
Exemplo n.º 2
0
        public void RetornaMaiorValorDadoLeilaoComPeloMenosUmValor(
            double valorEsperado, double[] valores)
        {
            //Arrange

            var modalidade = new MaiorValor();

            var leilao = new Leilao(peca: "Tv Samsung", modalidade);

            leilao.Iniciar();

            var beatriz = new Interessado("Beatriz", leilao);
            var mario   = new Interessado("Mario", leilao);

            for (int contador = 0; contador < valores.Length; contador++)
            {
                if ((contador % 2) == 0)
                {
                    leilao.RecebeLance(beatriz, valores[contador]);
                }
                else
                {
                    leilao.RecebeLance(mario, valores[contador]);
                }
            }

            //Act
            leilao.Finalizar();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
        private IEnumerable <Processo> ProcessosComInteressados()
        {
            var p1 = new Processo {
                Sigla = "PDS", Numero = 16, Ano = 1984
            };
            var p2 = new Processo {
                Sigla = "PLS", Numero = 193, Ano = 2013
            };
            var p3 = new Processo {
                Sigla = "PLC", Numero = 70, Ano = 2013
            };
            var p4 = new Processo {
                Sigla = "PLS", Numero = 16, Ano = 2014
            };
            var p5 = new Processo {
                Sigla = "PLS", Numero = 5, Ano = 2015
            };

            var int1 = new Interessado {
                Nome = "Fulano", Email = "*****@*****.**"
            };
            var int2 = new Interessado {
                Nome = "Beltrano", Email = "*****@*****.**"
            };

            //quero que int1 esteja interessado nos processos p1, p3, p5:
            int1.RegistraInteresse(p1, p3, p5);
            int2.RegistraInteresse(p2, p4);

            return(new List <Processo> {
                p1, p2, p3, p4, p5
            });
        }
Exemplo n.º 4
0
        public IActionResult Post([FromBody] InteressadoDTO i)
        {
            if (ModelState.IsValid)
            {
                Interessado novo = new Interessado()
                {
                    Nome     = i.Nome,
                    Celular  = i.Celular,
                    Email    = i.Email,
                    Telefone = i.Telefone
                };
                _context.Interessado.Add(novo);
                try
                {
                    _context.SaveChanges();
                    i.Id = novo.CodInteressado;
                    return(new ObjectResult(i));
                }
                catch {
                    ModelState.AddModelError("Email", "Este email já está cadastrado");
                    return(new BadRequestObjectResult(ModelState));
                }
            }

            return(new BadRequestObjectResult(ModelState));
        }
Exemplo n.º 5
0
        public IActionResult Get(int id)
        {
            Interessado q = _context.Interessado.SingleOrDefault(i => i.CodInteressado == id);

            if (q == null)
            {
                return(new NotFoundResult());
            }

            InteressadoDTO dto = new InteressadoDTO
            {
                Id       = q.CodInteressado,
                Celular  = q.Celular,
                Email    = q.Email,
                Nome     = q.Nome,
                Telefone = q.Telefone/*,
                                      * Eventos = q.Eventos.OrderByDescending(e => e.DataInicio)
                                      * .Select(e => new EventoDTO
                                      * {
                                      * id = e.CodEvento,
                                      * descricao = e.Descricao,
                                      * title = e.Titulo,
                                      * start = e.DataInicio,
                                      * end = e.DataFim,
                                      * valorDeEntrada = e.ValorDeEntrada,
                                      * valorArrecadado = e.ValorArrecadado
                                      * }).ToList()*/
            };

            return(new ObjectResult(dto));
        }
Exemplo n.º 6
0
        public ActionResult AcompanharProcesso(int processoId, string nome, string email)
        {
            using (var contexto = new ProcessoContext())
            {
                //verificar se o interesse já foi registrado
                var processo = contexto.Processos
                               .Where(p => p.Id == processoId)
                               .Include(p => p.Interesses)
                               .ThenInclude(i => i.Interessado)
                               .Single();

                if (processo.Interesses.Where(i => i.Interessado.Email == email).Count() > 0)
                {
                    ViewBag.MensagemDeAcompanhamentoJaRealizado = "Você já está acompanhando esse processo.";
                    var model = new HomeViewModel(processoId);
                    return(View("Index", model));
                }

                var interessado = contexto
                                  .Interessados
                                  .Where(i => i.Email == email)
                                  .FirstOrDefault();
                if (interessado == null)
                {
                    interessado = new Interessado {
                        Nome = nome, Email = email
                    };
                }
                interessado.RegistraInteresse(processo);
                contexto.SaveChanges();
                return(RedirectToAction("Index"));
            }
        }
Exemplo n.º 7
0
        public void NaoAceitaProximoLanceDadoLeilaoFinalizado()
        {
            //Arrange
            var modalidade = new MaiorValor();

            var leilao = new Leilao(peca: "Notebook HP", modalidade);

            var vinicius = new Interessado("Vinicius", leilao);
            var pamela   = new Interessado("Pamela", leilao);

            leilao.Iniciar();

            leilao.RecebeLance(vinicius, 500);
            leilao.RecebeLance(pamela, 600);
            leilao.Finalizar();

            //Act

            leilao.RecebeLance(vinicius, 700);

            //Assert

            var qtdLancesObtido    = leilao.Lances.Count();
            var qtdLancesEsperados = 2;

            Assert.Equal(qtdLancesEsperados, qtdLancesObtido);
        }
Exemplo n.º 8
0
        static void AvaliaLeilaoComTresLances()
        {
            Console.WriteLine(nameof(AvaliaLeilaoComTresLances));

            //leilão é criado com peça vinculada
            var leilao = new Alura.Leilao.Core.Leilao("Obra de Rembrant");

            //aparecem interessados no leilão...
            var joao  = new Interessado("João de Miranda", leilao);
            var pedro = new Interessado("Pedro Silveira", leilao);
            var malu  = new Interessado("Malu Pereira", leilao);

            //leilão começa e os interessados dão lances...
            pedro.Oferece(1300);
            malu.Oferece(1350);
            joao.Oferece(1200);

            //leilão termina...
            var resultado = leilao.Termina();

            //...e conhecemos seu ganhador!
            Verifica(1350, resultado.MelhorLance.Valor);
            //Verifica(malu.Nome, leilao.MelhorLance.Cliente.Nome);

            Console.WriteLine("");
        }
Exemplo n.º 9
0
        public void RetornaValorSuperiorMaisProximoDadoLeilaoNessaModalidade(
            double valorDestino,
            double valorEsperado,
            double[] ofertas)
        {
            //Arrange
            var modalidade = new OfertaSuperiorMaisProxima(valorDestino);
            var leilao     = new Leilao("Cama Box com Colchão", modalidade);

            leilao.Iniciar();

            var marina = new Interessado("Marina", leilao);
            var maria  = new Interessado("Maria", leilao);

            for (int contador = 0; contador < ofertas.Length; contador++)
            {
                if ((contador % 2) == 0)
                {
                    leilao.RecebeLance(marina, ofertas[contador]);
                }
                else
                {
                    leilao.RecebeLance(maria, ofertas[contador]);
                }
            }

            //Act
            leilao.Finalizar();

            //Assert
            Assert.Equal(valorEsperado, leilao.Ganhador.Valor);
        }
Exemplo n.º 10
0
        public ActionResult DeleteConfirmed(int id)
        {
            Interessado interessado = db.Interessado.Find(id);

            db.Interessado.Remove(interessado);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 11
0
        public void AntesDeInvocadoNaoPermiteLances()
        {
            var leilao = new Core.Leilao("Peça qualquer");
            var joao   = new Interessado("Fulano de tal", leilao);

            leilao.RecebeOferta(new Lance(joao, 901));
            leilao.RecebeOferta(new Lance(joao, 1349));
            Assert.Equal(0, leilao.Lances.Count);
        }
Exemplo n.º 12
0
        public void NaoPermiteLancesConsecutivosDoMesmoCliente()
        {
            var leilao = new Core.Leilao("Peça qualquer");
            var joao   = new Interessado("João", leilao);

            leilao.Inicia();
            leilao.RecebeOferta(new Lance(joao, 180));
            leilao.RecebeOferta(new Lance(joao, 200));
            Assert.Equal(1, leilao.Lances.Count);
            Assert.Equal(180, leilao.Lances[0].Valor);
        }
Exemplo n.º 13
0
        public void DepoisDeInvocadoAceitaLances()
        {
            var leilao = new Core.Leilao("Peça qualquer");
            var joao   = new Interessado("Fulano de tal", leilao);
            var maria  = new Interessado("Maria", leilao);

            leilao.Inicia();
            leilao.RecebeOferta(new Lance(joao, 901));
            leilao.RecebeOferta(new Lance(maria, 1349));
            Assert.Equal(2, leilao.Lances.Count);
        }
Exemplo n.º 14
0
 public ActionResult Edit([Bind(Include = "InteressadoId,Nome,Telefone,Email,DataCadastro,DataAgendamento,DataVisita,Status,EnderecoId")] Interessado interessado)
 {
     if (ModelState.IsValid)
     {
         db.Entry(interessado).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.EnderecoId = new SelectList(db.Endereco, "EnderecoId", "Descricao", interessado.EnderecoId);
     return(View(interessado));
 }
Exemplo n.º 15
0
        // GET: Interessado/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Interessado interessado = db.Interessado.Find(id);

            if (interessado == null)
            {
                return(HttpNotFound());
            }
            return(View(interessado));
        }
Exemplo n.º 16
0
        // GET: Interessado/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Interessado interessado = db.Interessado.Find(id);

            if (interessado == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EnderecoId = new SelectList(db.Endereco, "EnderecoId", "Descricao", interessado.EnderecoId);
            return(View(interessado));
        }
Exemplo n.º 17
0
        public IActionResult Delete(int id)
        {
            Interessado interessado = _context.Interessado.Single(q => q.CodInteressado == id);

            _context.Interessado.Remove(interessado);
            try
            {
                _context.SaveChanges();
                return(new NoContentResult());
            }
            catch
            {
                return(new BadRequestResult());
            }
        }
Exemplo n.º 18
0
        static void Main()
        {
            var leilao = new Alura.Leilao.Core.Leilao("Obra de Rembrant");

            var joao  = new Interessado("João de Miranda", leilao);
            var pedro = new Interessado("Pedro Silveira", leilao);
            var malu  = new Interessado("Malu Pereira", leilao);

            pedro.Oferece(1300);
            malu.Oferece(1350);
            joao.Oferece(1200);

            var resultado = leilao.Termina();

            Console.WriteLine(resultado.MelhorLance.Valor);
        }
Exemplo n.º 19
0
        static void AvaliaLeilaoComLancesDoMesmoCliente()
        {
            Console.WriteLine(nameof(AvaliaLeilaoComLancesDoMesmoCliente));
            var leilao = new Alura.Leilao.Core.Leilao("Obra de Dalí");

            var joao = new Interessado("João de Miranda", leilao);

            joao.Oferece(900);
            joao.Oferece(1200);
            joao.Oferece(1300);
            joao.Oferece(1350);

            var resultado = leilao.Termina();

            Verifica(1350, resultado.MelhorLance.Valor);
            Console.WriteLine("");
        }
Exemplo n.º 20
0
        public void NaoPermiteLancesMenoresDoMesmoCliente()
        {
            var leilao = new Core.Leilao("Peça qualquer");
            var joao   = new Interessado("João", leilao);
            var maria  = new Interessado("Maria", leilao);

            leilao.Inicia();
            leilao.RecebeOferta(new Lance(joao, 180));
            leilao.RecebeOferta(new Lance(maria, 200));
            leilao.RecebeOferta(new Lance(joao, 170));
            Assert.Equal(2, leilao.Lances.Count);
            var valorLanceJoao = leilao.Lances
                                 .Where(l => l.Cliente == joao)
                                 .Select(l => l.Valor)
                                 .First();

            Assert.Equal(180, valorLanceJoao);
        }
Exemplo n.º 21
0
        public void RetornaOfertaSuperiorMaisProxima(
            double valorEsperado,
            double valorDestino,
            double[] ofertas)
        {
            var leilao = new Core.Leilao("Peça qualquer", new OfertaSuperiorMaisProxima(valorDestino));

            leilao.Inicia();
            foreach (var oferta in ofertas)
            {
                var interessado = new Interessado("Fulano", leilao);
                var lance       = new Lance(interessado, oferta);
                leilao.RecebeOferta(lance);
            }

            var resultado = leilao.Termina();

            Assert.Equal(valorEsperado, resultado.MelhorLance.Valor);
        }
Exemplo n.º 22
0
        public void LeilaoComApenasUmLance()
        {
            //Arranje - cenário || Given
            var leilao = new Leilao("Van Gogh");
            var fulano = new Interessado("Fulano", leilao);
            var maria  = new Interessado("Maria", leilao);

            leilao.RecebeLance(fulano, 800);


            //Act - método sob teste || When
            leilao.TerminaPregao();

            //Assert || Then
            var valorEsperado = 800;
            var valorObtido   = leilao.Ganhador.Valor;

            //Verifica(valorEsperado, valorObtido);
            Assert.Equal(valorEsperado, valorObtido);
        }
Exemplo n.º 23
0
        public void NaoAceitaProximoLanceDadoMesmoClienteUltimoLance()
        {
            //Arrange

            var modalidade = new MaiorValor();

            var leilao = new Leilao("Geladeira", modalidade);

            var vinicius = new Interessado("Vinicius", leilao);

            leilao.Iniciar();

            leilao.RecebeLance(vinicius, 800);

            //Act
            leilao.RecebeLance(vinicius, 900);

            //Assert
            double qtdLancesEsperado = 1;
            double qtdLancesObtido   = leilao.Lances.Count();

            Assert.Equal(qtdLancesEsperado, qtdLancesObtido);
        }
Exemplo n.º 24
0
        /// <summary>
        /// Apenas para testes
        /// </summary>
        private static void CadastrarInteressados()
        {
            using (var contexto = new ProcessoContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(new MyFilteredLoggerProvider());

                var processosMonitorados = contexto.Processos;
                var daniel = new Interessado()
                {
                    Nome = "Daniel Portugal", Email = "*****@*****.**"
                };
                var marcia = new Interessado()
                {
                    Nome = "Marcia Garcia", Email = "*****@*****.**"
                };

                daniel.RegistraInteresse(processosMonitorados);
                marcia.RegistraInteresse(processosMonitorados);

                contexto.SaveChanges();
            }
        }
Exemplo n.º 25
0
 public Lance(Interessado cliente, double valor)
 {
     Cliente = cliente;
     Valor   = valor;
 }
Exemplo n.º 26
0
 public Produto(Interessado interessado)
 {
     _interessado = interessado;
 }
        public IActionResult Put(int id, [FromBody] EventoDTO evento)
        {
            if (id != evento.id)
            {
                return(new BadRequestResult());
            }
            if (ModelState.IsValid)
            {
                Evento e = _context.Evento
                           .Include(q => q.Interessados)
                           .ThenInclude(q => q.Interessado)
                           .Include(q => q.Voluntarios)
                           .Include(q => q.Favorecidos)
                           .Include(q => q.Doadores)
                           .Single(q => q.CodEvento == id);

                e.Titulo     = evento.title;
                e.Descricao  = evento.descricao;
                e.Cor        = evento.color;
                e.CorDaFonte = evento.textColor;
                e.DataInicio = evento.start;
                e.DataFim    = evento.end;

                e.ValorArrecadado = evento.valorArrecadado;
                e.Relato          = evento.relato;



                //interessados
                if (evento.interessados == null)
                {
                    evento.interessados = new List <InteressadoDTOR>();
                }
                //verifica quem está presente e quem saiu
                List <InteressadoEvento> corretos = new List <InteressadoEvento>();
                foreach (var inter in evento.interessados)
                {
                    var eventoInteressado = e.Interessados.SingleOrDefault(q => q.CodInteressado == inter.Id);
                    if (eventoInteressado == null)
                    {
                        Interessado interessado = _context.Interessado.Single(q => q.CodInteressado == inter.Id);
                        eventoInteressado = new InteressadoEvento {
                            CodEvento = e.CodEvento, CodInteressado = interessado.CodInteressado
                        };                                                                                                                 //,Evento =e,Interessado=interessado };
                        _context.InteressadoEvento.Add(eventoInteressado);
                        corretos.Add(eventoInteressado);
                        e.Interessados.Add(eventoInteressado);
                    }
                    corretos.Add(eventoInteressado);
                }
                //remove incorretos
                var incorretos = e.Interessados.Except(corretos);
                foreach (var incorreto in incorretos.ToArray())
                {
                    e.Interessados.Remove(incorreto);
                }



                if (evento.voluntarios == null)
                {
                    evento.voluntarios = new List <VoluntarioDTOR>();
                }
                //verifica quem está presente e quem saiu
                List <VoluntarioEvento> voluntariosCorretos = new List <VoluntarioEvento>();
                foreach (var volunt in evento.voluntarios)
                {
                    var eventoVoluntario = e.Voluntarios.SingleOrDefault(q => q.IdVoluntario == volunt.Id);
                    if (eventoVoluntario == null)
                    {
                        eventoVoluntario = new VoluntarioEvento {
                            CodEvento = e.CodEvento, IdVoluntario = volunt.Id
                        };
                        _context.VoluntarioEvento.Add(eventoVoluntario);
                        voluntariosCorretos.Add(eventoVoluntario);
                        e.Voluntarios.Add(eventoVoluntario);
                    }
                    voluntariosCorretos.Add(eventoVoluntario);
                }
                //remove incorretos
                var voluntariosIncorretos = e.Voluntarios.Except(voluntariosCorretos);
                foreach (var incorreto in voluntariosIncorretos.ToArray())
                {
                    e.Voluntarios.Remove(incorreto);
                }


                //favorecidos
                if (evento.favorecidos == null)
                {
                    evento.favorecidos = new List <FavorecidoDTOR>();
                }

                //verifica quem está presente e quem saiu
                List <FavorecidoEvento> favorecidosCorretos = new List <FavorecidoEvento>();
                foreach (var favorecido in evento.favorecidos)
                {
                    var eventoFavorecido = e.Favorecidos.SingleOrDefault(q => q.CodFavorecido == favorecido.Id);
                    if (eventoFavorecido == null)
                    {
                        eventoFavorecido = new FavorecidoEvento {
                            CodEvento = e.CodEvento, CodFavorecido = favorecido.Id, Evento = e
                        };
                        _context.FavorecidoEvento.Add(eventoFavorecido);
                        favorecidosCorretos.Add(eventoFavorecido);
                        e.Favorecidos.Add(eventoFavorecido);
                    }
                    favorecidosCorretos.Add(eventoFavorecido);
                }
                //remove incorretos
                var favorecidosIncorretos = e.Favorecidos.Except(favorecidosCorretos);
                foreach (var incorreto in favorecidosIncorretos.ToArray())
                {
                    e.Favorecidos.Remove(incorreto);
                }

                //doadores
                if (evento.doadoresPf == null)
                {
                    evento.doadoresPf = new List <DoadorDTOR>();
                }
                if (evento.doadoresPj == null)
                {
                    evento.doadoresPj = new List <DoadorDTOR>();
                }
                List <DoadorDTOR> doadores = evento.doadoresPf.Concat(evento.doadoresPj).ToList();


                //verifica quem está presente e quem saiu
                List <DoadorEvento> doadoresCorretos = new List <DoadorEvento>();
                foreach (var doador in doadores)
                {
                    var eventoDoador = e.Doadores.SingleOrDefault(q => q.CodDoador == doador.Id);
                    if (eventoDoador == null)
                    {
                        eventoDoador = new DoadorEvento {
                            CodEvento = e.CodEvento, CodDoador = doador.Id
                        };
                        _context.DoadorEvento.Add(eventoDoador);
                        doadoresCorretos.Add(eventoDoador);
                        e.Doadores.Add(eventoDoador);
                    }
                    doadoresCorretos.Add(eventoDoador);
                }
                //remove incorretos
                var DoadoresIncorretos = e.Doadores.Except(doadoresCorretos);
                foreach (var incorreto in DoadoresIncorretos.ToArray())
                {
                    e.Doadores.Remove(incorreto);
                }



                _context.SaveChanges();

                return(new ObjectResult(evento));
            }
            else
            {
                return(new BadRequestObjectResult(ModelState));
            }
        }
Exemplo n.º 28
0
 public Produto(Interessado interessado)
 {
     _interessado = interessado;
 }