public async Task Pedido_QuandoExistiremHistoricosPedidosEmUmDrone_DeveRetornarDoBancoDados() { //Arrange var usuario = Usuario.Criar("test", "test@email", 0, 0, UsuarioRole.Cliente); usuario.AdicionarPassword("password"); usuario.AdicionarRefreshToken("refreshToken", DateTime.Now.AddDays(1)); await _context.AddAsync(usuario); var drone = Drone.Criar(12000, 5, 40, 100, DroneStatus.EmEntrega); await _context.AddAsync(drone); var pedido = Pedido.Criar(123, 1000, usuario); pedido.AssociarDrone(drone); await _context.AddAsync(pedido); var historicoPedido = HistoricoPedido.Criar(drone.Id, pedido.Id); await _context.AddAsync(historicoPedido); await _context.SaveChangesAsync(); //Act var historicoDrone = await _pedidoRepository.ObterHistoricoPedidosDoDroneAsync(drone.Id); //Assert Assert.True(historicoDrone.Count(x => x.DroneId == drone.Id) == 1); }
public HistoricoPedido_View(HistoricoPedido d) { No = d.No; OrderDate = d.OrderDate; ExpectedReceiptDate = d.ExpectedReceiptDate ?? DateTimeOffset.MinValue; Centro = d.Centro; Zona = d.Zona; BuyFromVendorName = d.BuyFromVendorName ?? ""; BuyFromVendorName2 = d.BuyFromVendorName2 ?? ""; BuyFromAddress = d.BuyFromAddress ?? ""; BuyFromAddress2 = d.BuyFromAddress2 ?? ""; BuyFromPostCode = d.BuyFromPostCode ?? ""; BuyFromCounty = d.BuyFromCounty ?? ""; BuyFromCity = d.BuyFromCity ?? ""; BuyFromVendorNo = d.BuyFromVendorNo ?? ""; BuyFromContact = d.BuyFromContact ?? ""; Amount = d.Amount; VendorOrderNo = d.VendorOrderNo ?? ""; PostingDate = d.PostingDate ?? DateTimeOffset.MinValue; VendorShipmentNo = d.VendorShipmentNo ?? ""; Estado = d.Estado; OrigenPedido = d.OrigenPedido ?? ""; AmountIncludingVAT = d.AmountIncludingVAT ?? 0; ReadingDate = d.ReadingDate ?? DateTimeOffset.MinValue; }
public async Task <Guid> Handle(AlterarSituacaoPedidoCommand request, CancellationToken cancellationToken) { var historicoPedido = new HistoricoPedido(); var pedido = _pedidoRepository.GetEntityById(request.IDPedido); if (pedido == null) { request.AddNotification("Pedido", $"Pedido({request.IDPedido}) não encontrado no banco de dados."); } else { historicoPedido = new HistoricoPedido(request.Situacao, pedido.Id); } if (historicoPedido.Invalid || request.Invalid) { historicoPedido.AddNotifications(request.Notifications); await _mediator.Publish(new DomainNotification { Erros = historicoPedido.Notifications }, cancellationToken); return(await Task.FromResult(Guid.Empty)); } _historicoPedidoRepository.Add(historicoPedido); return(await Task.FromResult(historicoPedido.Id)); }
public async Task CriarHistoricoPedidoAsync(IEnumerable <Pedido> pedidos) { foreach (var pedido in pedidos) { await _context.HistoricoPedidos.InsertOneAsync(HistoricoPedido.Criar(pedido.DroneId.GetValueOrDefault(), pedido.Id)); } }
public void HistoricoDoPedidoDevePossuirSituacaoValida() { var enumInvalido = System.Enum.Parse <EnumSituacaoPedido>("14"); var historicoPedido = new HistoricoPedido(enumInvalido, Guid.NewGuid()); Assert.True(historicoPedido.Invalid); }
public HistoricoPedidoModelView(HistoricoPedido historicoPedido) { StatusPedido = historicoPedido.StatusPedido; Descricao = historicoPedido.Descricao; //UsuarioLogado = new UsuarioModelView(historicoPedido.UsuarioLogado); CodigoRetornoTransacao = historicoPedido.CodigoRetornoTransacao; //Pedido = new PedidoModelView(historicoPedido.Pedido); }
public void PedidoHistorico_MarcarEntregaRealizada_DeveAdicionarDataEntrega() { // Arrange var historico = HistoricoPedido.Criar(Guid.NewGuid(), Guid.NewGuid()); //Act historico.MarcarEntregaCompleta(); // Assert Assert.NotNull(historico.DataEntrega); }
public ResultAndError <HistoricoPedido> CloseOrder(Document order) { ResultAndError <HistoricoPedido> result = new ResultAndError <HistoricoPedido>(); try { HistoricoPedido oHistorico = GetHistoricoFromOrder(order); return(result = Update(oHistorico, true)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public void PedidoHistorico_CriarHistorico_DeveRetornarHistorico() { // Arrange var pedidoId = Guid.NewGuid(); var droneId = Guid.NewGuid(); //Act var historico = HistoricoPedido.Criar(droneId, pedidoId); // Assert Assert.Equal(pedidoId, historico.PedidoId); Assert.Equal(droneId, historico.DroneId); Assert.Null(historico.DataEntrega); }
public ResultAndError <HistoricoPedido> Add(HistoricoPedido c) { ResultAndError <HistoricoPedido> result = new ResultAndError <HistoricoPedido>(); try { db.HistoricoPedidos.Add(c); db.SaveChanges(); return(result.AddResult(c)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public bool DeleteMulti(IEnumerable <int> HistoricoPedidos) { List <HistoricoPedido> oAlbaran = new List <HistoricoPedido>(); foreach (int HistoricoPedidosNo in HistoricoPedidos) { HistoricoPedido oHistoricoPedidos = Get(HistoricoPedidosNo); if (oHistoricoPedidos != null) { oAlbaran.Add(oHistoricoPedidos); } } db.HistoricoPedidos.RemoveRange(oAlbaran); db.SaveChanges(); return(true); }
public bool UpdateMulti(IEnumerable <HistoricoPedido> oHistoricoPedidos, bool insertIfNoExists = false) { foreach (HistoricoPedido albaran in oHistoricoPedidos) { HistoricoPedido old = Get(albaran.No); if (old == null && insertIfNoExists) { Add(albaran); } else { db.Entry(old).CurrentValues.SetValues(albaran); } } db.SaveChanges(); return(true); }
public ResultAndError <bool> Delete(int id) { ResultAndError <bool> result = new ResultAndError <bool>(); try { HistoricoPedido HistoricoPedidos = Get(id); if (HistoricoPedidos == null) { return(result.AddError("No se encontro la tarifa con el id " + id)); } db.HistoricoPedidos.Remove(HistoricoPedidos); db.SaveChanges(); return(result.AddResult(true)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public ResultAndError <HistoricoPedido> Update(HistoricoPedido cr, bool insertIfNoExists = false) { ResultAndError <HistoricoPedido> result = new ResultAndError <HistoricoPedido>(); try { HistoricoPedido old = Get(cr.No); if (old == null && insertIfNoExists) { return(Add(cr)); } db.Entry(old).CurrentValues.SetValues(cr); db.SaveChanges(); return(result.AddResult(cr)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
private async Task <IEnumerable <Drone> > ObterDronesParaViagem() { var dronesProntos = await _unitOfWork.Drones.ObterDronesParaEntregaAsync(); var pedidos = dronesProntos.SelectMany(x => x.Pedidos).Where(x => x.Status == PedidoStatus.EmEntrega); foreach (var drone in dronesProntos) { drone.AtualizarStatus(DroneStatus.EmEntrega); } foreach (var pedido in pedidos) { pedido.CriarHistorico(HistoricoPedido.Criar(pedido.DroneId.GetValueOrDefault(), pedido.Id)); } await _unitOfWork.SaveAsync(); return(dronesProntos); }
private async Task <IEnumerable <Drone> > ObterDronesParaViagem() { var dronesProntos = await _unitOfWork.Drones.ObterDronesParaEntregaAsync(); foreach (var drone in dronesProntos) { drone.AtualizarStatus(DroneStatus.EmEntrega); foreach (var pedido in drone.Pedidos.Where(x => x.Status == PedidoStatus.EmEntrega)) { var hist = HistoricoPedido.Criar(drone.Id, pedido.Id); drone.CriarHistorico(hist); } } if (dronesProntos.Any()) { await _unitOfWork.Drones.AdicionarHistoricoAsync(dronesProntos.SelectMany(x => x.HistoricoPedidos)); await _unitOfWork.SaveAsync(); } return(dronesProntos); }
public async Task <Guid> Handle(CriarPedidoCommand request, CancellationToken cancellationToken) { var pedido = new Pedido(); var garcom = _garcomRepository.GetEntityById(request.IDGarcom); if (garcom == null) { request.AddNotification("Garcom", "Garcom não encontrado no banco de dados."); } var cliente = _clienteRepository.GetEntityById(request.IDCliente); if (cliente == null) { request.AddNotification("Cliente", "Cliente não encontrado no banco de dados."); } var comanda = _comandaRepository.GetEntityById(request.IDComanda); if (comanda == null) { request.AddNotification("Comanda", "Comanda não encontrado no banco de dados."); } else { var ultimoHistoricoPedidoComanda = await _mediator.Send(new ObterUltimoHistoricoPedidoComandaQuery(comanda.Id)); if (ultimoHistoricoPedidoComanda != null) { if (!SituacaoPedido.SituacoesPermiteAberturaComanda.Any(situacao => situacao == ultimoHistoricoPedidoComanda.Situacao)) { request.AddNotification("Comanda", $"Comanda não pode ser aberta devido ao ultimo pedido estar com a situação({ultimoHistoricoPedidoComanda.Situacao})."); } } } pedido = new Pedido(garcom, comanda, cliente); request.Produtos.ToList().ForEach(produtoPedido => pedido.AdicionarProduto(produtoPedido)); if (pedido.Invalid || request.Invalid) { pedido.AddNotifications(request.Notifications); await _mediator.Publish(new DomainNotification { Erros = pedido.Notifications }, cancellationToken); return(await Task.FromResult(Guid.Empty)); } var historicoPedido = new HistoricoPedido(Enums.EnumSituacaoPedido.Aberto, pedido.Id); pedido.AdicionarHistorico(historicoPedido); _pedidoRepository.Add(pedido); return(await Task.FromResult(pedido.Id)); }
public IActionResult UpdHistoricoPedido([FromBody] HistoricoPedido HistoricoPedido, bool insertIfNoExists = false) { return(Ok(hBS.Update(HistoricoPedido, insertIfNoExists))); }