Example #1
0
 public void SetOptionDirection(OpenMarketRepo repo, int flag, GlobalValueParams globalValues)
 {
     if (flag == 1)
     {
         repo.Direction = globalValues.Direction_injection;
     }
     else if (flag == -1)
     {
         repo.Direction = globalValues.Direction_withdrawal;
         repo.Amount    = -repo.Amount;
         repo.Volume    = -repo.Volume;
     }
 }
Example #2
0
        /// <summary>
        /// Get different categories
        /// </summary>
        /// <param name="repo"></param>
        /// <param name="categoryType"></param>
        /// <param name="flag">used to sign which category type is used</param>
        /// <returns></returns>
        public static List <OpenMarketRepo> GetCategorys(List <OpenMarketRepo> repo, string categoryType, ref int flag)
        {
            List <string> category_List = new List <string>();

            switch (categoryType)
            {
            case ConstValues.category_Term:
                category_List = repo.OrderBy(t => t.Term).Select(t => t.OperationTerm).Distinct().ToList();
                repo.GroupBy(t => t.OperationTerm);
                flag = 1;
                break;

            case ConstValues.category_Variety:
                category_List = repo.Select(t => t.Category).Distinct().ToList();
                repo.GroupBy(t => t.Category);
                flag = -1;
                break;

            default:
                flag = 0;
                break;
            }
            if (category_List.Count == 0)
            {
                return(repo.OrderByDescending(r => r.Date).ToList());
            }
            else
            {
                OpenMarketRepo totalRow = new OpenMarketRepo {
                    IsSumItem = true, Category = Resources.Global.Total, Amount = 0, Volume = 0
                };
                List <OpenMarketRepo> selectedGroupRepo = new List <OpenMarketRepo>();
                foreach (string item in category_List)
                {
                    OpenMarketRepo sumRow = new OpenMarketRepo {
                        IsSumItem = true, Amount = 0, Volume = 0
                    };
                    List <OpenMarketRepo> temp = ItemGroupOfCurrentCategory(item, repo, flag, ref sumRow);
                    totalRow.Amount += sumRow.Amount;
                    totalRow.Volume += sumRow.Volume;
                    selectedGroupRepo.Add(sumRow);
                    foreach (OpenMarketRepo t in temp)
                    {
                        selectedGroupRepo.Add(t);
                    }
                }
                selectedGroupRepo.Add(totalRow);
                return(selectedGroupRepo);
            }
        }
Example #3
0
        public void SetOptionTerm(string currentConetext, OpenMarketRepo repo)
        {
            switch (currentConetext)
            {
            case ConstValues.english:
                repo.OperationTerm = repo.TermEn;
                break;

            case ConstValues.chinese:
                repo.OperationTerm = repo.TermCn;
                break;

            default:
                break;
            }
        }
Example #4
0
        /// <summary>
        /// Select items from the original repo that belongs to the current category
        /// </summary>
        /// <param name="category">Category name</param>
        /// <param name="repo">the original repo</param>
        /// <param name="sumRow">used as a sum row of the current category</param>
        /// <returns></returns>
        public static List <OpenMarketRepo> ItemGroupOfCurrentCategory(string category, List <OpenMarketRepo> repo, int flag, ref OpenMarketRepo sumRow)
        {
            List <OpenMarketRepo> selectedGroupRepo = new List <OpenMarketRepo>();

            if (flag == 1)
            {
                selectedGroupRepo = repo.OrderByDescending(r => r.Date).Where(r => r.OperationTerm == category).ToList();
                sumRow.Category   = selectedGroupRepo.FirstOrDefault().OperationTerm;
            }
            else if (flag == -1)
            {
                selectedGroupRepo = repo.OrderByDescending(r => r.Date).Where(r => r.Category == category).ToList();
                sumRow.Category   = selectedGroupRepo.FirstOrDefault().Category;
            }
            double?sum_Amount = selectedGroupRepo.Sum(t => t.Amount);
            double?sum_Volume = selectedGroupRepo.Sum(t => t.Volume);

            sumRow.IsSumItem = true;
            sumRow.Amount    = sum_Amount;
            sumRow.Volume    = sum_Volume;
            return(selectedGroupRepo);
        }