/// <summary> /// ��ȡָ����Ŀ�Ķ��� /// </summary> /// <param name="MaxNumber"></param> /// <returns></returns> public List<RemotingInterface.RI_AllOrders> GetAllOrders(int MaxNumber) { try { if (MaxNumber <= 0) return null; Common.Debug(">>> GetAllOrders() Invoking >>>"); Dictionary<int, Dictionary<int, RemotingInterface.RI_Order>> mapTempUserOrders = null; lock (mapRIUserOrders) mapTempUserOrders = new Dictionary<int, Dictionary<int, RemotingInterface.RI_Order>>(mapRIUserOrders); List<RemotingInterface.RI_AllOrders> listOriginal = new List<RemotingInterface.RI_AllOrders>(); List<RemotingInterface.RI_AllOrders> listTarget = new List<RemotingInterface.RI_AllOrders>(); foreach (object objUserID in mapTempUserOrders.Keys) { if (objUserID == null) continue; int nUserID = Convert.ToInt32(objUserID); if (!mapTempUserOrders.ContainsKey(nUserID)) continue; foreach (object objOrderID in mapTempUserOrders[nUserID].Keys) { if (objOrderID == null) continue; int nOrderID = Convert.ToInt32(objOrderID); if (!mapTempUserOrders[nUserID].ContainsKey(nOrderID)) continue; RemotingInterface.RI_AllOrders data = new RemotingInterface.RI_AllOrders(); data.Clear(); data.UserID = nUserID; if (!data.Import(mapTempUserOrders[nUserID][nOrderID])) continue; listOriginal.Add(data); } } if (listOriginal.Count > 0) { int nCount = listOriginal.Count; while (listTarget.Count < nCount && listOriginal.Count > 0) { RemotingInterface.RI_AllOrders target = new RemotingInterface.RI_AllOrders(); target.Clear(); target.UpdatedDate = DateTime.MinValue; for (int i = 0; i < listOriginal.Count; i++) { if (listOriginal[i].UpdatedDate > target.UpdatedDate) { target = listOriginal[i]; } } if (listOriginal.Contains(target)) { listOriginal.Remove(target); listTarget.Add(target); } if (listTarget.Count >= MaxNumber) { Common.Debug("<<< GetAllOrders() Invoked <<<"); return listTarget; } } } Common.Debug("<<< GetAllOrders() Invoked <<<"); return listTarget; } catch (Exception err) { Common.Log(err); return null; } }
/// <summary> /// 获取指定数目的订单 /// </summary> /// <param name="MaxNumber"></param> /// <returns></returns> public List <RemotingInterface.RI_AllOrders> GetAllOrders(int MaxNumber) { try { if (MaxNumber <= 0) { return(null); } Common.Debug(">>> GetAllOrders() Invoking >>>"); Dictionary <int, Dictionary <int, RemotingInterface.RI_Order> > mapTempUserOrders = null; lock (mapRIUserOrders) mapTempUserOrders = new Dictionary <int, Dictionary <int, RemotingInterface.RI_Order> >(mapRIUserOrders); List <RemotingInterface.RI_AllOrders> listOriginal = new List <RemotingInterface.RI_AllOrders>(); List <RemotingInterface.RI_AllOrders> listTarget = new List <RemotingInterface.RI_AllOrders>(); foreach (object objUserID in mapTempUserOrders.Keys) { if (objUserID == null) { continue; } int nUserID = Convert.ToInt32(objUserID); if (!mapTempUserOrders.ContainsKey(nUserID)) { continue; } foreach (object objOrderID in mapTempUserOrders[nUserID].Keys) { if (objOrderID == null) { continue; } int nOrderID = Convert.ToInt32(objOrderID); if (!mapTempUserOrders[nUserID].ContainsKey(nOrderID)) { continue; } RemotingInterface.RI_AllOrders data = new RemotingInterface.RI_AllOrders(); data.Clear(); data.UserID = nUserID; if (!data.Import(mapTempUserOrders[nUserID][nOrderID])) { continue; } listOriginal.Add(data); } } if (listOriginal.Count > 0) { int nCount = listOriginal.Count; while (listTarget.Count < nCount && listOriginal.Count > 0) { RemotingInterface.RI_AllOrders target = new RemotingInterface.RI_AllOrders(); target.Clear(); target.UpdatedDate = DateTime.MinValue; for (int i = 0; i < listOriginal.Count; i++) { if (listOriginal[i].UpdatedDate > target.UpdatedDate) { target = listOriginal[i]; } } if (listOriginal.Contains(target)) { listOriginal.Remove(target); listTarget.Add(target); } if (listTarget.Count >= MaxNumber) { Common.Debug("<<< GetAllOrders() Invoked <<<"); return(listTarget); } } } Common.Debug("<<< GetAllOrders() Invoked <<<"); return(listTarget); } catch (Exception err) { Common.Log(err); return(null); } }