protected void btnComprar_Click(object sender, EventArgs e) { try { ListaAux = (List <ItemCarrito>)Session["ListaCarrito"]; PedidosNegocio negocio = new PedidosNegocio(); ItemCarritoNegocio itemCarritoNegocio = new ItemCarritoNegocio(); Pedido pedido = new Pedido(); pedido.ImporteTotal = 0; foreach (ItemCarrito item in ListaAux) // lista aux tiene al carrito { pedido.ImporteTotal += item.PrecioActual; } pedido.Fecha = DateTime.Now; pedido.Estado = 1; pedido.IdUsuario = pepito.Id; negocio.Agregar(pedido); long idAux = negocio.UbicarID(); pedido.IdPedido = idAux; foreach (var item in ListaAux) { //conseguir id item.IdPedido = idAux; // mediante esta asignacion lo que hago es relacionar el id del ultimo pedido obtenido y se lo asigno al item pedido pero del detalle itemCarritoNegocio.AgregarDetalle(item); //item ya estaba casi listo para guardarlo en la db solo le faltaba esta magia de asignar los id del pedido para poder despues relacionarlos } Response.Redirect("Compra.aspx"); } catch (Exception) { throw; } }
protected void Page_Load(object sender, EventArgs e) { if (Session["alguienNuevo"] == null) { Response.Redirect("Login.aspx"); } pedidin = new Pedido(); ListaPedidos = new List <Pedido>(); negociopedidos = new PedidosNegocio(); listaItems = new List <ItemCarrito>(); negocioItems = new ItemCarritoNegocio(); IdAux = Convert.ToInt32(Request.QueryString["IdPedido"]); if (Session["Compra"] == null) { Session["Compra"] = listaItems; } //SqlMoney AcumuladorImporte = 0; //foreach (var item in (List<ItemCarrito>)Session["Compra"]) //{ // AcumuladorImporte += (item.CantidadPedida * item.PrecioActual); //} //lblTotal.Text = "Total a Pagar = " + AcumuladorImporte.ToString(); if (((Usuario)Session["alguienNuevo"]).TipoUsuario == TipoUsuarioConstante.ADMINISTRADOR) { DdlEstados.Visible = true; statusPedido = new EstadoPedido(); negocioEstados = new EstadoPedidoNegocio(); if (!IsPostBack) { listaDdlEstados = negocioEstados.Listar(); DdlEstados.DataSource = listaDdlEstados; DdlEstados.DataValueField = "Id"; DdlEstados.DataTextField = "Descripcion"; DdlEstados.DataBind(); } } if (Session["ListaDetalle"] == null) { Session.Add("ListaDetalle", listaItems); } if (IdAux != 0) { ListaPedidos = negociopedidos.Listar(); pedidin = ListaPedidos.Find(x => x.IdPedido == IdAux); listaItems = negocioItems.Listar(pedidin); Session.Add("ListaDetalle", listaItems); } }