public async Task <RespuestaDatos> GuardarProductoPedido(ProdSerXVendidosPed productoPedido) { RespuestaDatos respuestaDatos; ProductosServiciosPc producto = await _cOContenidoFachada.GetPublicacionPorIdPublicacion(productoPedido.Idproductoservico); System.Diagnostics.Debug.WriteLine("Este es el ID:"); System.Diagnostics.Debug.WriteLine(productoPedido.Idproductoservico); if (producto != null) { if (await ValidarPrecioProductoPedido(productoPedido)) { TipoPublicacionPc tipoProductoPedido = _cOContenidoFachada.GetTipoPublicacionPorID(producto.Idtipopublicacion); productoPedido.Creacion = DateTime.Now; if (tipoProductoPedido != null) { System.Diagnostics.Debug.WriteLine("Este es el tipo:"); System.Diagnostics.Debug.WriteLine(tipoProductoPedido.Nombre); if (tipoProductoPedido.Id == 2) { try { PedidosPed pedido = _pEPedidoBiz.GetPedidoPorId(productoPedido.Idpedido); respuestaDatos = respuestaDatos = await _pEPedidoBiz.GuardarProductoPedido(productoPedido, pedido); } catch (COExcepcion e) { RepoErrorLog.AddErrorLog(new ErrorLog { Mensaje = e.Message, Traza = e.StackTrace, Usuario = "no_aplica", Creacion = DateTime.Now, Tipoerror = COErrorLog.ENVIO_CORREO }); throw e; } } else { if (await ValidarCantidadProductoPedido(productoPedido)) { try { PedidosPed pedido = _pEPedidoBiz.GetPedidoPorId(productoPedido.Idpedido); respuestaDatos = respuestaDatos = await _pEPedidoBiz.GuardarProductoPedido(productoPedido, pedido); } catch (COExcepcion e) { RepoErrorLog.AddErrorLog(new ErrorLog { Mensaje = e.Message, Traza = e.StackTrace, Usuario = "no_aplica", Creacion = DateTime.Now, Tipoerror = COErrorLog.ENVIO_CORREO }); throw e; } } else { throw new COExcepcion("No hay suficiente cantidad del producto deseado"); } } } else { throw new COExcepcion("Hay un inconveniente con el tipo del producto"); } } else { throw new COExcepcion("Hay un inconveniente con el precio total del producto pedido"); } } else { throw new COExcepcion("El producto deseado no existe"); } return(respuestaDatos); }