public async Task <ActionResult> Put(int id, [FromBody] AlterarReservaViewModel reserva) { ReservaRepository _reserva = new ReservaRepository(); var ReservaUsuario = await _reserva.BuscarPorID(id); if (ReservaUsuario == null) { return(NotFound(new { Mensagem = "Reserva não encontrada", Erro = true })); } OfertaRepository _oferta = new OfertaRepository(); var QtdOferta = await _oferta.BuscarPorID(ReservaUsuario.OfertaId.Value); if (QtdOferta != null) { QtdOferta.Quantidade = QtdOferta.Quantidade + ReservaUsuario.Quantidade; var RetornorOferta = await _oferta.Alterar(QtdOferta); } if (QtdOferta.Quantidade < reserva.Quantidade) { return(NotFound(new { Mensagem = "Atenção! Quantidade desejada maior que a ofertada", Erro = true })); } var ReservaAlterada = VerificaAlteracaoReserva(ReservaUsuario, reserva); QtdOferta.Quantidade = QtdOferta.Quantidade - ReservaAlterada.Quantidade; try { await _repositorio.Alterar(ReservaAlterada); await _oferta.Alterar(QtdOferta); return(Ok(new { Mensagem = "Reserva Alterada Com Sucesso", Erro = false })); } catch (DbUpdateConcurrencyException) { //Verificamos se o objeto realmente existe no banco var reserva_valido = await _repositorio.BuscarPorID(id); if (reserva_valido == null) { return(NotFound()); } else { throw; } } }
public IEnumerable <Oferta> Get() { OfertaRepository repository = new OfertaRepository(); var resultado = repository.Listar().Select(x => _mapper.Map <Oferta>(x)); //Consulta DAO return(resultado.AsEnumerable <Oferta>()); }
private static async void RotinaOfertaExpirada() { using (CoorganicasContext _contexto = new CoorganicasContext()){ OfertaRepository _oferta = new OfertaRepository(); var Ofertas = await _oferta.Listar(); foreach (var oferta in Ofertas) { if (oferta.Validade.Date <= DateTime.Now.Date) { var Ret = await _oferta.Excluir(oferta); } } } }
public async Task <ActionResult <Reserva> > Post([FromBody] CadastrarReservaViewModel reserva) { try { OfertaRepository _oferta = new OfertaRepository(); var QtdOferta = await _oferta.BuscarPorID(reserva.OfertaId); if (QtdOferta.Quantidade < reserva.Quantidade) { return(Accepted(new { Mensagem = "Quantidade desejada maior que a ofertada", Erro = true })); } Reserva NovoReserva = new Reserva(); NovoReserva.DataReserva = DateTime.Now.Date; NovoReserva.DataEspera = NovoReserva.DataReserva.AddDays(5); NovoReserva.StatusReserva = "Aguardando"; NovoReserva.UsuarioId = PegarUsuarioLogadoId(); // Quanto fizer a pagina de login volta a função NovoReserva.OfertaId = reserva.OfertaId; NovoReserva.Quantidade = reserva.Quantidade; var RetornoReserva = await _repositorio.Salvar(NovoReserva); if (RetornoReserva != null) { QtdOferta.Quantidade = QtdOferta.Quantidade - reserva.Quantidade; var RetornorOferta = await _oferta.Alterar(QtdOferta); if (RetornorOferta != null) { return(Ok(new { Mensagem = "Reserva Cadastrada Com Sucesso", Erro = false })); } } return(NotFound(new { Mensagem = "Não Foi Possível Fazer a Reserva", Erro = true })); } catch (DbUpdateConcurrencyException) { throw; } }
/// <summary> /// Rotina para excluir reservas expiradas e ofertas vencidas /// </summary> /// <returns></returns> public static async void RotinaReservaExistente() { using (CoorganicasContext _contexto = new CoorganicasContext()){ OfertaRepository _oferta = new OfertaRepository(); ReservaRepository _reserva = new ReservaRepository(); var Reservas = await _contexto.Reserva.Include("Oferta").ToListAsync(); var Ofertas = await _contexto.Oferta.ToListAsync(); if (Ofertas != null) { foreach (var reserva in Reservas) { if (reserva.DataEspera <= DateTime.Now.Date) { var qtd = reserva.Quantidade; foreach (var oferta in Ofertas) { if (oferta.OfertaId == reserva.Oferta.OfertaId) { oferta.Quantidade = oferta.Quantidade + qtd; await _oferta.Alterar(oferta); await _reserva.Excluir(reserva); if (oferta.Validade.Date <= DateTime.Now.Date) { await _oferta.Excluir(oferta); } } } } } RotinaOfertaExpirada(); } } }
public async Task <ActionResult <Reserva> > Delete(int id) { var reserva = await _repositorio.BuscarPorID(id); if (reserva == null) { return(NotFound()); } OfertaRepository _oferta = new OfertaRepository(); var oferta = await _oferta.BuscarPorID(reserva.OfertaId.Value); if (oferta.Validade.Date > DateTime.Now.Date) { oferta.Quantidade = oferta.Quantidade + reserva.Quantidade; await _oferta.Alterar(oferta); } await _repositorio.Excluir(reserva); return(reserva); }
public IActionResult Index() { var listaModel = new List <Oferta>(); OfertaRepository repo = new OfertaRepository(); foreach (var item in repo.Listar()) { listaModel.Add(new Oferta { Id = item.IdOferta, Descricao = item.Descricao, Data = item.Data, Situacao = item.Situacao, IdUsuario = item.IdUsuario, TipoOferta = item.TipoOferta, DescricaoTipoOferta = StatusTipoOferta(item.TipoOferta), DesricaoSituacao = StatusSituacao(item.Situacao) }); } return(View(listaModel)); }
private async Task SyncronizeData(DateTime?date = null) { await Task.WhenAll(new Task[] { Task.Run(() => OfertaRepository.SyncDataBaseAsync(date)), Task.Run(() => CarteiraProdutoRepository.SyncDataBaseAsync(date)), Task.Run(() => ProdutoRepository.SyncDataBaseAsync(date)), Task.Run(() => TipoRepository.SyncDataBaseAsync(date)), Task.Run(() => MarcaRepository.SyncDataBaseAsync(date)), Task.Run(() => EstabelecimentoRepository.SyncDataBaseAsync(date)), Task.Run(() => UnidadeMedidaRepository.SyncDataBaseAsync(date)), Task.Run(() => GrupoOfertaRepository.SyncDataBaseAsync(date)), Task.Run(() => HistoricoOfertaRepository.SyncDataBaseAsync(date)), Task.Run(() => ParticipanteGrupoRepository.SyncDataBaseAsync(date)), Task.Run(() => UserRepository.SyncDataBaseAsync(date)), Task.Run(() => CategoriaRepository.SyncDataBaseAsync(date)), Task.Run(() => MonitoramentoOfertaRepository.SyncDataBaseAsync(date)), Task.Run(() => ListaCompraRepository.SyncDataBaseAsync(date)), Task.Run(() => ParticipanteListaCompraRepository.SyncDataBaseAsync(date)), Task.Run(() => ParticipanteListaCompraRepository.SyncDataBaseAsync(date)), Task.Run(() => ProdutoListaCompraRepository.SyncDataBaseAsync(date)), }); }
public OfertaController(ClienteRepository clienteRepository, ProdutoRepository produtoRepository, OfertaRepository ofertaRepository) { _clienteRepository = clienteRepository; _produtoRepository = produtoRepository; _ofertaRepository = ofertaRepository; }
public async Task <bool> FirstUsageAsync() => (await OfertaRepository.GetEntitiesAsync(0, 1)).Count == 0;
public VendaController(OfertaRepository ofertaRepository, ILogger <VendaController> logger) { _ofertaRepository = ofertaRepository; _logger = logger; }
public OfertaService(OfertaRepository ofertaRepository) { this.ofertaRepository = ofertaRepository; }