public PedidoHATEOASManager(string urlBase, PedidoEstadoAtualDaAplicacao estadoAtualAplicacao, PedidoDTO pedidoDTO = null, PedidoItemDTO pedidoItemDTO = null) { _urlBase = urlBase; _estadoAtual = estadoAtualAplicacao; _pedidoDTO = pedidoDTO; _pedidoItemDTO = pedidoItemDTO; }
public static PedidoItemDTO GerarLinks(this PedidoItemDTO pedidoItemDTO, string urlBase, PedidoEstadoAtualDaAplicacao estadoAtual) { var pedidoHATEOAS = new PedidoHATEOASManager(urlBase, estadoAtual, pedidoItemDTO: pedidoItemDTO); pedidoItemDTO.Links = pedidoHATEOAS.ObterLinks(); return(pedidoItemDTO); }
public PedidoItemDTO Insert(PedidoItemDTO item) { Pedido_Itens entity = _repository.Insert(Mapper.Map <Pedido_Itens>(item)); item.Id = entity.Id; return(item); }
public void Update(PedidoItemDTO item) { bool result = _repository.Update(Mapper.Map <Pedido_Itens>(item)); if (!result) { throw new Exception("Nao foi possivel atualizar este Item."); } }
public IHttpActionResult Post([FromBody] PedidoItemDTO pedidoItem) { try { pedidoItem = _business.Insert(pedidoItem); } catch (Exception ex) { return(InternalServerError(ex)); } return(Ok(pedidoItem)); }
public IHttpActionResult Put([FromBody] PedidoItemDTO pedidoItem) { try { _business.Update(pedidoItem); } catch (Exception ex) { return(InternalServerError(ex)); } return(Ok()); }
public IHttpActionResult Get(int id) { PedidoItemDTO item = new PedidoItemDTO(); try { item = _business.GetById(id); } catch (Exception ex) { return(InternalServerError(ex)); } return(Ok(item)); }
public int SalvarItem(PedidoDTO pedido, List <ProdutoDTO> produtos) { PedidoDatabase pedidoDatabase = new PedidoDatabase(); int idPedido = pedidoDatabase.Salvar(pedido); PedidoItemBusiness itemBusiness = new PedidoItemBusiness(); foreach (ProdutoDTO item in produtos) { PedidoItemDTO itemDto = new PedidoItemDTO(); itemDto.id_pedido = idPedido; itemDto.id_produto = item.id_produto; itemBusiness.Salvar(itemDto); } return(idPedido); }
private PedidoDTO MapearPedido(dynamic result) { var pedido = new PedidoDTO { Codigo = result[0].CODIGO, Data = result[0].DATACADASTRO, Status = result[0].PEDIDOSTATUS, ValorTotal = result[0].VALORTOTAL, Desconto = result[0].DESCONTO, VoucherUtilizado = result[0].VOUCHERUTILIZADO, PedidoItems = new List <PedidoItemDTO>(), Endereco = new EnderecoDTO { Logradouro = result[0].LOGRADOURO, Bairro = result[0].BAIRRO, Cep = result[0].CEP, Cidade = result[0].CIDADE, Complemento = result[0].COMPLEMENTO, Estado = result[0].ESTADO, Numero = result[0].NUMERO } }; foreach (var item in result) { var pedidoItem = new PedidoItemDTO { Nome = item.PRODUTONOME, Valor = item.VALORUNITARIO, Quantidade = item.QUANTIDADE, Imagem = item.PRODUTOIMAGEM }; pedido.PedidoItems.Add(pedidoItem); } return(pedido); }
private PedidoDTO MapearPedido(dynamic result) { var pedido = new PedidoDTO { Codigo = result[0].Codigo, Status = result[0].PedidoStatus, ValorTotal = result[0].ValorTotal, Desconto = result[0].Desconto, VoucherUtilizado = result[0].VoucherUtilizado, PedidoItems = new List <PedidoItemDTO>(), Endereco = new EnderecoDTO { Logradouro = result[0].Logradouro, Bairro = result[0].Bairro, Cep = result[0].Cep, Cidade = result[0].Cidade, Complemento = result[0].Complemento, Estado = result[0].Estado, Numero = result[0].Numero } }; foreach (var item in result) { var pedidoItem = new PedidoItemDTO { Nome = item.ProdutoNome, Valor = item.ValorUnitario, Quantidade = item.Quantidade, Imagem = item.ProdutoImagem }; pedido.PedidoItems.Add(pedidoItem); } return(pedido); }
public async Task <Pedido> PedidoProveedor(int idPedido) { ServicioGenerico servicio = new ServicioGenerico(); ServiciosProductos servProductos = new ServiciosProductos(); string urlMayorista = servicio.ParametroObtenerValor("URL_MAYORISTA"); string myIdCliente = servicio.ParametroObtenerValor("TRADING_ID_CLIENTE"); if (string.IsNullOrEmpty(urlMayorista)) { throw new ApplicationException("No está vinculado ningún proveedor mayorista"); } if (string.IsNullOrEmpty(myIdCliente)) { throw new ApplicationException("No tiene asingdo IdCliente en el proveedor mayorista"); } RepositoryGenerico <Pedido> repository = new RepositoryGenerico <Pedido>(); Pedido pedido = repository.Obtener(idPedido); if (pedido == null) { throw new ApplicationException("No existe pedido"); } //PEdido se se enviara al proveedor PedidoDTO pedidoProveedor = new PedidoDTO(); pedido.Items = this.Listar <PedidoItem>("IdPedido", idPedido).ToList <PedidoItem>(); //agregamos los productos de nuestro cliente en al app del mayorista pedido.Items .FindAll(item => item.Producto.StockPropio == false) .ForEach(delegate(PedidoItem item) { int cantidadProducto = item.Cantidad; PedidoItemDTO itemProveedor = new PedidoItemDTO(); itemProveedor.Id = -1; itemProveedor.CodigoProducto = item.Producto.Codigo; if (item.ItemProductos.Count == 0) { itemProveedor.Cantidad = item.Cantidad; itemProveedor.Observaciones = string.Format("Cant: {0} - Obs: {1}", item.Cantidad, item.Observaciones); } else { item.ItemProductos.ToList <PedidoItemProducto>() .ForEach(delegate(PedidoItemProducto pip) { PedidoItemProductoDTO pipProv = new PedidoItemProductoDTO() { Cantidad = pip.Cantidad, Medida = pip.Medida }; itemProveedor.ItemProductos.Add(pipProv); }); } pedidoProveedor.Items.Add(itemProveedor); }); pedidoProveedor.IdCliente = myIdCliente.ConvertirInt(); //enviamos el id y numero del pedido para mantener trazabilidad pedidoProveedor.IdPedidoMinorista = pedido.Id; pedidoProveedor.NumeroPedidoMinorista = pedido.Numero; Pedido nuevoPedidoGenerado = new Pedido(); using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(urlMayorista); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(pedidoProveedor), Encoding.UTF8); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage Res = await httpClient.PostAsync("api/Pedido/Minorista", httpContent); if (Res.IsSuccessStatusCode) { var pedidoResponse = Res.Content.ReadAsStringAsync().Result; nuevoPedidoGenerado = JsonConvert.DeserializeObject <Pedido>(pedidoResponse); } else { throw new ApplicationException("Error"); } } if (nuevoPedidoGenerado.VerificarStock) { List <PedidoItem> itemsVerificar = nuevoPedidoGenerado.Items.ToList <PedidoItem>(); pedido.Items.ToList <PedidoItem>() .ForEach(delegate(PedidoItem pit) { PedidoItem piVerificar = itemsVerificar.Find(x => x.Producto.Codigo == pit.Producto.Codigo); if (piVerificar != null) { List <PedidoItemProducto> pitNuevoPedido = piVerificar.ItemProductos.ToList <PedidoItemProducto>(); if (pit.ItemProductos.Count > 0) { pit.ItemProductos.ToList <PedidoItemProducto>() .ForEach(delegate(PedidoItemProducto pip) { pip.StockDisponible = pitNuevoPedido.Find(x => x.Medida.Descripcion == pip.Medida.Descripcion).StockDisponible; }); } } }); } /** ATENCION!!! SI EL PEDIDO VIENE CON VerificarStock TRUE => NO SE DEBE MODIFICAR EL ESTADO NI LOS NUMEROS DEL PROVEEDRO **/ //para la trazabilidad, guardo el id y el numero del pedido en el proveedor pedido.IdPedidoProveedor = nuevoPedidoGenerado.Id; pedido.NumeroPedidoProveedor = nuevoPedidoGenerado.Numero; pedido.Estado = this.ObtenerObjeto <Estado>((int)ESTADOS.PROVEEDOR_); repository.Actualizar(pedido); return(this.PedidoObtener(pedido.Id)); }