public Result <SessaoModel> Get(int id) { var result = new Result <SessaoModel>(); result.Value = _sessaoRepository.GetById(id); if (result.Value == null) { result.Message = "A Sessão não existe mais na base de dados!"; result.Status = false; } return(result); }
public void Dado_uma_sessão_cadastra_dentro_do_horario_de_outro_espetaculo_a_mesma_nao_deve_ser_criada() { //Arrange var sessao = _sessaoRepository.GetById(Guid.NewGuid()); var horararioTermino = sessao.HorarioInicio.AddMinutes(sessao.Espetaculo.DuracaoMinutos); var sala = sessao.Sala; var espetaculo = _espetaculoRepository.GetById(Guid.NewGuid()); //Act var command = new CreateSessaoCommand(espetaculo.Id, horararioTermino.AddMinutes(-30), sala.Id, 30); var commandResult = (GenericCommandResult)_handler.Handle(command); //Assert Assert.IsFalse(commandResult.Sucess); }
public Result <ReciboModel> GetRecibo(int id) { var result = new Result <ReciboModel>(); var sessao = _sessaoRepository.GetById(id); if (sessao != null) { result.Value = ConfiguraRecibo(sessao); } else { result.Message = "A Sessão não existe mais na base de dados!"; result.Status = false; } return(result); }
public void Dado_um_CreateReservaCommand_valido_a_reserva_deve_ser_criada() { var sessao = _sessaoRepository.GetById(Guid.NewGuid()); var poltronas = sessao.Poltrona.ToList(); var ingressos = new List <CreateIngressoCommand>() { new CreateIngressoCommand("Jose", poltronas[0].Id), new CreateIngressoCommand("Amanda", poltronas[1].Id), new CreateIngressoCommand("Erika", poltronas[2].Id) }; var command = new CreateReservaCommand(Guid.NewGuid(), sessao.Id, ingressos); var commandResult = (GenericCommandResult)_handler.Handle(command); Assert.IsTrue(commandResult.Sucess); }
//Cadastrar a reserva não quer dizer que ela foi comprada // Tera um handler para confirmar reserva // Ai sim é persistido, mas para outras pessoas, a reserva ja foi feita public ICommandResult Handle(CreateReservaCommand command) { command.Validate(); if (command.Invalid) { return(new GenericCommandResult(false, "Dados incorretos", command.Notifications)); } var cliente = _clienteRepository.GetById(command.ClienteId); var sessao = _sessaoRepository.GetById(command.SessaoId); var poltronas = _sessaoRepository.GetPoltronasByIds(sessao.Id, ExtractGuids.Extract(command)); //Verificar se poltronas estão ocupadas if (IsPoltronasOcuped(poltronas)) { return(new GenericCommandResult(false, "Algumas poltronas selecionadas já estão ocupadas", poltronas)); } var reserva = new Reserva(cliente, sessao); var ingressos = CreateIngressos(command.Ingressos, poltronas); reserva.AdicionarIngresso(ingressos); AddNotifications(reserva); if (Invalid) { return(new GenericCommandResult(false, "Problema ao gerar reserva", this.Notifications)); } _reservaRepository.Add(reserva); return(new GenericCommandResult(true, "Reserva cadastrado, aguardando pagamento", reserva)); //Verifica o estado das poltronas //Utilizar Dapper ou buscar estas informações na tela }