public void SaveACAccountPosition(AccountBasicInfoRequest account)
        {
            string            acctid           = _accountsRepository.CreateAccountBasicInfo(account);
            AssetClassAccount ACacct           = _accountsRepository.GetAllAssetPositions();
            SaveAssetClassPositionsRequest req = new SaveAssetClassPositionsRequest()
            {
                AccountId   = acctid,
                Balance     = 1000,
                ACPositions = new List <SaveAssetClassPosition>()
                {
                    new SaveAssetClassPosition()
                    {
                        assetClass = new SaveAssetClass()
                        {
                            SecId = ACacct.ACPositions[0].assetClass.SecId
                        }, Pct = 50
                    },
                    new SaveAssetClassPosition()
                    {
                        assetClass = new SaveAssetClass()
                        {
                            SecId = ACacct.ACPositions[1].assetClass.SecId
                        }, Pct = 50
                    }
                }
            };
            bool res = _accountsRepository.SaveAssetAccountPositions(req);

            Assert.True(res);
        }
예제 #2
0
        public AssetClassAccount Calculate(List <OpenPosition> listOfPosition)
        {
            AssetClassAccount acAcct = new AssetClassAccount();

            SortedList <string, PositionAmountPair> mapOfSecAmount = new SortedList <string, PositionAmountPair>();

            //acAcct.AccountId = accountId;

            double dBalance = ExtractSecurityAmount(listOfPosition, ref mapOfSecAmount);

            acAcct.Balance = dBalance;

            List <AssetClass> listOfAssetClass = _brokerMgrRepository.GetAssetClassification(false);

            //mapOfACSecurity = BuildACSecurityMap(listOfAssetClass);


            acAcct.ACPositions = new List <AssetClassPosition>();
            foreach (AssetClass assetObj in listOfAssetClass)
            {
                if (assetObj.AssetType == "O")
                {
                    continue;
                }

                string lGSecID     = assetObj.SecId;
                long   lPositionID = 0;
                double dPct        = 0.0;
                mapOfSecAmount.TryGetValue(lGSecID, out PositionAmountPair posAmtPair);
                if (posAmtPair != null)
                {
                    lPositionID = mapOfSecAmount[lGSecID].m_lPositionID;
                    if (dBalance > 0.0)
                    {
                        dPct = ((mapOfSecAmount[lGSecID].m_dAmount) / dBalance) * 100;
                    }
                }
                AssetClassPosition acPos = new AssetClassPosition();
                acPos.assetClass       = assetObj;
                acPos.Pct              = dPct;
                acPos.assetClass.SecId = lGSecID;
                acPos.PositionId       = lPositionID;
                acAcct.ACPositions.Add(acPos);
            }
            return(acAcct);
        }
        public void GetACAccountPosition()
        {
            AssetClassAccount ACacct = _accountsRepository.GetAllAssetPositions();

            Assert.True(ACacct != null && ACacct.ACPositions.Count > 0);
        }