//RETRIEVE - SINGLE ORDER BY CUSTOMER ID public OneOrder GetOrder(int id) //by cust id/status { using (var context = DbContextFactory.Create()) { try { var ord = context.OrderDetails .Include(s => s.Shipmethod) .Include(c => c.CustomerDetails).Include(a => a.CustomerDetails.Addresses) .Include(l => l.Lineitems).ThenInclude(p => p.ProductDetails) .Where(o => o.Id == id).First(); var returnOrder = new OneOrder(); returnOrder.Id = ord.Id; returnOrder.CustomerDetails = ord.CustomerDetails; returnOrder.Shipmethod = ord.Shipmethod; returnOrder.Addresses = ord.CustomerDetails.Addresses; returnOrder.Lineitems = ord.Lineitems.Where(l => l.OrderDetails.Id == id); returnOrder.ProductDetails = ord.Lineitems.Select(p => p.ProductDetails); returnOrder.OrderStatus = (orders_library.OneOrder.ShippingStatus)ord.OrderStatus; returnOrder.OrderDate = ord.OrderDate; Console.WriteLine($"Order #{ord.Id} retrieved for user: {ord.CustomerDetails.Id}"); return returnOrder; } catch (Exception) { Console.WriteLine("*** Error retrieving order...."); return null; } } }
// TODO: 需要完成 string DumpOrder() { string strResult = ""; for (int i = 0; i < this.Orders.Count; i++) { OneOrder issue = this.Orders[i]; // strResult += "publish_time [" + issue.Order.PublishTime + "] issue[" + issue.Issue + "] is_guess[" + issue.IsGuess.ToString() + "]\r\n"; } return(strResult); }
public async Task <IActionResult> Order(Login login) { var user = await _userManager.FindByEmailAsync(login.Email); var Nmbr = _db.Paniers.Where(n => n.UserId == user.Id).ToList().Count; if (Nmbr == 0) { return(Ok("panier est vide")); } IList <Panier> ListPanier = _db.Paniers.Where(l => l.UserId == user.Id).Include(p => p.Product).ToList(); var tp = await _db.Paniers.Where(p => p.UserId == user.Id).Include(n => n.Product).SumAsync(n => (n.TotalPrice)); Order order = new Order { UserId = user.Id, Date = DateTime.Now, OrderStateId = "3", TotalePrice = tp }; _db.Orders.Add(order); _db.SaveChanges(); foreach (Panier p in ListPanier) { OneOrder oneOrder = new OneOrder { OrderId = order.Id, ProductId = p.ProductId, Price = p.Product.Prix, Quantity = p.Quantity }; await _db.OneOrders.AddAsync(oneOrder); } await _db.SaveChangesAsync(); var panier = _db.Paniers.Where(p => p.UserId == user.Id).ToList(); if (panier.Count > 0) { _db.Paniers.RemoveRange(panier); await _db.SaveChangesAsync(); } return(Ok(order)); }
/// <summary> /// 获得渠道地址 XML /// </summary> /// <param name="strSeller">渠道</param> /// <returns>XML 字符串</returns> public string GetAddressXml(string strSeller) { if (this.Orders == null) { return(null); } for (int i = 0; i < this.Orders.Count; i++) { OneOrder order = this.Orders[i]; if (order.Seller == strSeller) { return(order.SellerAddress); } } return(null); }
// 2012/8/31 // // return: // -1 出错 // 0 没有装载 // 1 已经装载 /// <summary> /// 装入订购记录 /// </summary> /// <param name="strOrderRecPath">订购记录路径</param> /// <param name="strRefID">返回参考 ID</param> /// <param name="strError">返回出错信息</param> /// <returns>-1: 出错; 0: 没有装载; 1: 已经装载</returns> public int LoadOrderRecord(string strOrderRecPath, out string strRefID, out string strError) { strError = ""; strRefID = ""; this.ClearOrders(); string strOutputBiblioRecPath = ""; byte[] order_timestamp = null; string strOutputOrderRecPath = ""; string strResult = ""; string strBiblio = ""; long lRet = Channel.GetOrderInfo( Stop, "@path:" + strOrderRecPath, "xml", out strResult, out strOutputOrderRecPath, out order_timestamp, "recpath", out strBiblio, out strOutputBiblioRecPath, out strError); if (lRet == 0 || lRet == -1) { return(-1); } this.BiblioRecPath = strOutputBiblioRecPath; OneOrder order = new OneOrder(); int nRet = order.LoadRecord( strOutputOrderRecPath, strResult, out strError); if (nRet == -1) { strError = "路径为 '" + strOutputOrderRecPath + "' 的订购记录用于初始化OneOrder对象时发生错误: " + strError; return(-1); } string strState = DomUtil.GetElementText(order.Dom.DocumentElement, "state"); if (strState == "已订购" || strState == "已验收") { } else { strError = "订购记录 '" + strOutputOrderRecPath + "' 的状态不是 已订购 或 已验收,被跳过"; return(0); } this.Orders.Add(order); strRefID = DomUtil.GetElementText(order.Dom.DocumentElement, "refID"); return(1); }
// 装入订购记录 // return: // -1 出错 // 0 没有装载 // 1 已经装载 public int LoadOrderRecords(string strBiblioRecPath, out string strError) { this.BiblioRecPath = strBiblioRecPath; this.ClearOrders(); try { // string strHtml = ""; long lStart = 0; long lResultCount = 0; long lCount = -1; // 2012/5/9 改写为循环方式 for (; ;) { EntityInfo[] orders = null; long lRet = Channel.GetOrders( stop, strBiblioRecPath, lStart, lCount, "", "zh", out orders, out strError); if (lRet == -1) { goto ERROR1; } if (lRet == 0) { return(0); } lResultCount = lRet; Debug.Assert(orders != null, ""); for (int i = 0; i < orders.Length; i++) { if (orders[i].ErrorCode != ErrorCodeValue.NoError) { strError = "路径为 '" + orders[i].OldRecPath + "' 的订购记录装载中发生错误: " + orders[i].ErrorInfo; // NewRecPath return(-1); } OneOrder order = new OneOrder(); int nRet = order.LoadRecord( orders[i].OldRecPath, orders[i].OldRecord, out strError); if (nRet == -1) { strError = "路径为 '" + orders[i].OldRecPath + "' 的订购记录用于初始化OneOrder对象时发生错误: " + strError; return(-1); } this.Orders.Add(order); } lStart += orders.Length; if (lStart >= lResultCount) { break; } } } finally { /* * stop.EndLoop(); * stop.OnStop -= new StopEventHandler(this.DoStop); * stop.Initial(""); * */ } return(1); ERROR1: return(-1); }
// 获得期各种信息 // 每期一行,按照书商名进行了汇总 // TODO: “直订”等需要特殊处理 // return: // -1 error // 0 没有任何信息 // >0 信息个数 /// <summary> /// 获得期各种信息 /// </summary> /// <param name="filter">时间过滤器</param> /// <param name="issue_infos">返回期信息集合</param> /// <param name="strError">返回出错信息</param> /// <param name="strWarning">返回警告信息</param> /// <returns> /// -1 出错 /// 0 没有任何信息 /// >0 信息个数 /// </returns> public int GetOrderInfo( TimeFilter filter, out List <IssueInfo> issue_infos, out string strError, out string strWarning) { strError = ""; strWarning = ""; issue_infos = new List <IssueInfo>(); string strLastSeller = ""; int nOrderCount = 0; int nArriveCount = 0; OneOrder order = null; for (int j = 0; j < this.Orders.Count; j++) { order = this.Orders[j]; string strCurrentSeller = order.Seller; if (strCurrentSeller != strLastSeller && strLastSeller != "") { // 将上一段汇总值推出 IssueInfo info = new IssueInfo(); // 获得预计的出版时间 string strPublishTime = ""; int nRet = order.GetPublishTime( filter, out strPublishTime, out strError); if (nRet == -1) { strWarning += "获得(订购记录路径 '" + order.RecPath + "')预计出版日期时出错: " + strError + "\r\n"; continue; } info.PublishTime = strPublishTime; // 预计出版时间 info.OrderTime = order.OrderTime; // 2012/8/31 // info.Issue = order.Issue; info.Seller = strLastSeller; info.OrderCount = nOrderCount.ToString(); info.ArrivedCount = nArriveCount.ToString(); info.MissingCount = Math.Max(0, nOrderCount - nArriveCount).ToString(); issue_infos.Add(info); nOrderCount = 0; nArriveCount = 0; } nOrderCount += order.OldCopyValue; nArriveCount += order.NewCopyValue; strLastSeller = strCurrentSeller; } // 将最后一段汇总值推出 if ((nOrderCount != 0 || nArriveCount != 0) && strLastSeller != "") { IssueInfo info = new IssueInfo(); // 获得预计的出版时间 string strPublishTime = ""; int nRet = order.GetPublishTime( filter, out strPublishTime, out strError); if (nRet == -1) { strWarning += "获得(订购记录路径 '" + order.RecPath + "')预计出版日期时出错: " + strError + "\r\n"; goto END1; } info.PublishTime = strPublishTime; info.OrderTime = order.OrderTime; // 2012/8/31 // info.Issue = order.Issue; info.Seller = strLastSeller; info.OrderCount = nOrderCount.ToString(); info.ArrivedCount = nArriveCount.ToString(); info.MissingCount = Math.Max(0, nOrderCount - nArriveCount).ToString(); issue_infos.Add(info); } END1: return(issue_infos.Count); }