private void sortGridViewMFPortfolio(string sortExpression, string direction)
        {
            DataTable dtMFPortfolioTransaction = new DataTable();

            dtMFPortfolioTransaction.Columns.Add("Date");
            dtMFPortfolioTransaction.Columns.Add("Transaction Type");

            dtMFPortfolioTransaction.Columns.Add("Buy/Sell");
            dtMFPortfolioTransaction.Columns.Add("Buy Quantity");
            dtMFPortfolioTransaction.Columns.Add("Buy Price");
            dtMFPortfolioTransaction.Columns.Add("Sell Quantity");
            dtMFPortfolioTransaction.Columns.Add("Sell Price");
            dtMFPortfolioTransaction.Columns.Add("Cost Of Acquisition");
            dtMFPortfolioTransaction.Columns.Add("Realized Sales Value");
            dtMFPortfolioTransaction.Columns.Add("Cost Of Sales");
            dtMFPortfolioTransaction.Columns.Add("Net Cost");
            dtMFPortfolioTransaction.Columns.Add("Net Holdings");
            dtMFPortfolioTransaction.Columns.Add("Average Price");
            dtMFPortfolioTransaction.Columns.Add("Profit/Loss");



            DataRow drMFPortfolioTransaction;

            for (int i = 0; i < mfPortfolioTransactionVoList.Count; i++)
            {
                drMFPortfolioTransaction = dtMFPortfolioTransaction.NewRow();
                mfPortfolioTransactionVo = new MFPortfolioTransactionVo();
                mfPortfolioTransactionVo = mfPortfolioTransactionVoList[i];

                drMFPortfolioTransaction[0] = mfPortfolioTransactionVo.TransactionDate.ToShortDateString();
                drMFPortfolioTransaction[1] = mfPortfolioTransactionVo.TransactionType.ToString();

                drMFPortfolioTransaction[2]  = mfPortfolioTransactionVo.BuySell.ToString();
                drMFPortfolioTransaction[3]  = mfPortfolioTransactionVo.BuyQuantity.ToString("f4");
                drMFPortfolioTransaction[4]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.BuyPrice.ToString("f4")));
                drMFPortfolioTransaction[5]  = mfPortfolioTransactionVo.SellQuantity.ToString("f4");
                drMFPortfolioTransaction[6]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.SellPrice.ToString("f4")));
                drMFPortfolioTransaction[7]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.CostOfAcquisition.ToString("f4")));
                drMFPortfolioTransaction[8]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.RealizedSalesValue.ToString("f4")));
                drMFPortfolioTransaction[9]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.CostOfSales.ToString("f4")));
                drMFPortfolioTransaction[10] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.NetCost.ToString("f4")));
                drMFPortfolioTransaction[11] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.NetHoldings.ToString("f4")));
                drMFPortfolioTransaction[12] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.AveragePrice.ToString("f4")));
                drMFPortfolioTransaction[13] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.RealizedProfitLoss.ToString("f4")));

                dtMFPortfolioTransaction.Rows.Add(drMFPortfolioTransaction);
            }

            DataView dv = new DataView(dtMFPortfolioTransaction);

            dv.Sort = sortExpression + direction;
            gvMFPortfolio.DataSource = dv;
            gvMFPortfolio.DataBind();
            gvMFPortfolio.Visible = true;
        }
        public void LoadEquityPortfolioTransactions()
        {
            try
            {
                if (mfPortfolioTransactionVoList == null)
                {
                }
                else
                {
                    lblCustomer.Text = customerVo.FirstName.ToString() + " " + customerVo.LastName.ToString();
                    lblScrip.Text    = mfPortfolioVo.SchemePlan.ToString();
                    lblAccount.Text  = mfPortfolioVo.Folio.ToString();
                    realizedPL       = 0;
                    unrealizedPL     = 0;
                    totalPL          = 0;
                    DataTable dtMFPortfolioTransaction = new DataTable();

                    dtMFPortfolioTransaction.Columns.Add("Transaction Type");
                    dtMFPortfolioTransaction.Columns.Add("Buy Date");
                    dtMFPortfolioTransaction.Columns.Add("Buy Quantity");
                    dtMFPortfolioTransaction.Columns.Add("Buy Price");
                    dtMFPortfolioTransaction.Columns.Add("Cost Of Acquisition");
                    dtMFPortfolioTransaction.Columns.Add("Sell Date");
                    dtMFPortfolioTransaction.Columns.Add("Sell Quantity");
                    dtMFPortfolioTransaction.Columns.Add("Sell Price");
                    dtMFPortfolioTransaction.Columns.Add("Realized Sales Value");
                    dtMFPortfolioTransaction.Columns.Add("Current NAV");
                    dtMFPortfolioTransaction.Columns.Add("Current Value");
                    dtMFPortfolioTransaction.Columns.Add("AgeOfInvestment");
                    dtMFPortfolioTransaction.Columns.Add("ActualPL");
                    dtMFPortfolioTransaction.Columns.Add("NotionalPL");
                    dtMFPortfolioTransaction.Columns.Add("TotalPL");
                    dtMFPortfolioTransaction.Columns.Add("AbsReturn");
                    dtMFPortfolioTransaction.Columns.Add("AnnReturn");
                    dtMFPortfolioTransaction.Columns.Add("STT");
                    dtMFPortfolioTransaction.Columns.Add("NetSalesProceed");
                    dtMFPortfolioTransaction.Columns.Add("STCG");
                    dtMFPortfolioTransaction.Columns.Add("LTCG");

                    DataRow drMFPortfolioTransaction;
                    for (int i = 0; i < mfPortfolioTransactionVoList.Count; i++)
                    {
                        drMFPortfolioTransaction = dtMFPortfolioTransaction.NewRow();
                        mfPortfolioTransactionVo = new MFPortfolioTransactionVo();
                        mfPortfolioTransactionVo = mfPortfolioTransactionVoList[i];
                        unrealizedPL             = unrealizedPL + mfPortfolioTransactionVo.NotionalProfitLoss;
                        realizedPL = realizedPL + mfPortfolioTransactionVo.RealizedProfitLoss;
                        totalPL    = totalPL + mfPortfolioTransactionVo.TotalProfitLoss;
                        drMFPortfolioTransaction[0] = mfPortfolioTransactionVo.TransactionType.ToString();

                        if (mfPortfolioTransactionVo.BuyDate != DateTime.MinValue)
                        {
                            drMFPortfolioTransaction[1] = mfPortfolioTransactionVo.BuyDate.ToShortDateString();
                        }
                        else
                        {
                            drMFPortfolioTransaction[1] = "";
                        }
                        drMFPortfolioTransaction[2] = mfPortfolioTransactionVo.BuyQuantity.ToString("f4");
                        drMFPortfolioTransaction[3] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.BuyPrice.ToString("f4")));
                        drMFPortfolioTransaction[4] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.CostOfAcquisition.ToString("f4")));

                        if (mfPortfolioTransactionVo.SellDate != DateTime.MinValue)
                        {
                            drMFPortfolioTransaction[5] = mfPortfolioTransactionVo.SellDate.ToShortDateString();
                        }
                        else
                        {
                            drMFPortfolioTransaction[5] = "-";
                        }
                        drMFPortfolioTransaction[6] = mfPortfolioTransactionVo.SellQuantity.ToString("f4");
                        drMFPortfolioTransaction[7] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.SellPrice.ToString("f4")));
                        drMFPortfolioTransaction[8] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.RealizedSalesValue.ToString("f4")));

                        drMFPortfolioTransaction[9]  = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.CurrentNAV.ToString("f4")));
                        drMFPortfolioTransaction[10] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.CurrentValue.ToString("f4")));
                        drMFPortfolioTransaction[11] = String.Format("{0:n0}", decimal.Parse(mfPortfolioTransactionVo.AgeOfInvestment.ToString("f0")));
                        drMFPortfolioTransaction[12] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.RealizedProfitLoss.ToString("f4")));
                        drMFPortfolioTransaction[13] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.NotionalProfitLoss.ToString("f4")));
                        drMFPortfolioTransaction[14] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.TotalProfitLoss.ToString("f4")));
                        drMFPortfolioTransaction[15] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.AbsoluteReturns.ToString("f4")));
                        drMFPortfolioTransaction[16] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.AnnualReturns.ToString("f4")));
                        drMFPortfolioTransaction[17] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.STT.ToString("f4")));
                        drMFPortfolioTransaction[18] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.NetSalesProceed.ToString("f4")));
                        drMFPortfolioTransaction[19] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.STCGTax.ToString("f4")));
                        drMFPortfolioTransaction[20] = String.Format("{0:n4}", decimal.Parse(mfPortfolioTransactionVo.LTCGTax.ToString("f4")));
                        dtMFPortfolioTransaction.Rows.Add(drMFPortfolioTransaction);
                    }
                    gvMFPortfolio.DataSource = dtMFPortfolioTransaction;
                    gvMFPortfolio.DataBind();
                    gvMFPortfolio.Visible = true;
                }
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();
                FunctionInfo.Add("Method", "ViewMutualFundPortfolioTransactions.ascx:LoadEquityPortfolioTransactions()");
                object[] objects = new object[1];
                objects[0]   = mfPortfolioTransactionVoList;
                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
        }