public IEnumerable<MSI_Port_InterestTrans> GetPortfolioInterestSummary(string productCode, string userId, bool isOriginal)
        {
            string thisMethod = string.Format("{0}.{1}", thisClass, System.Reflection.MethodBase.GetCurrentMethod().Name);
            string logMessage = string.Format("{0}|Method incoming parameters productCode={1}, userId={2}", thisMethod, productCode, userId);
            LogHelper.Info(logMessage);

            MSI_Port_InterestTrans interestTransaction = null;
            DBFactory db;
            List<MSI_Port_InterestTrans> interestTransactions = null;
            System.Data.DataSet ds;
            try
            {
                db = new DBFactory();
                ds = db.ExecuteDataset("MSI_sp_GetPortfolioInterestSummary", "InterestSummary", new SqlParameter("@productCode", productCode), new SqlParameter("@userId", userId), new SqlParameter("@isOriginal", isOriginal));

                if (ds.Tables["InterestSummary"].Rows.Count > 0)
                {
                    interestTransactions = new List<MSI_Port_InterestTrans>();
                    foreach (System.Data.DataRow dr in ds.Tables["InterestSummary"].Rows)
                    {
                        interestTransaction = new MSI_Port_InterestTrans();
                        interestTransaction.ID = int.Parse(dr["ID"].ToString());
                        interestTransaction.Portfolio_ = dr["Portfolio#"].ToString();
                        if (dr["SalesPrice"] != DBNull.Value)
                            interestTransaction.SalesPrice = Convert.ToDecimal(dr["SalesPrice"].ToString());
                        if (dr["Notes"] != DBNull.Value)
                            interestTransaction.Notes = dr["Notes"].ToString();
                        if (dr["CheckNo"] != DBNull.Value)
                            interestTransaction.CheckNo = dr["CheckNo"].ToString();
                        interestTransaction.Inv_AgencyName = dr["Inv_AgencyName"].ToString();
                        DateTime notNullDt;
                        if (DateTime.TryParse(dr["ClosingDate"].ToString(), out notNullDt))
                            interestTransaction.ClosingDate = notNullDt;
                        if (DateTime.TryParse(dr["CreatedDate"].ToString(), out notNullDt))
                            interestTransaction.CreatedDate = notNullDt;
                        if (DateTime.TryParse(dr["UpdatedDate"].ToString(), out notNullDt))
                            interestTransaction.UpdatedDate = notNullDt;
                        interestTransaction.CreatedBy = dr["CreatedBy"].ToString();
                        interestTransaction.UpdatedBy = dr["UpdatedBy"].ToString();
                        interestTransactions.Add(interestTransaction);
                    }
                }

            }
            catch (Exception ex)
            {
                ErrorLogHelper.Error(logMessage, ex);
            }
            return interestTransactions.AsEnumerable<MSI_Port_InterestTrans>();
        }
        public MSI_Port_InterestTrans Post(MSI_Port_InterestTrans inTransaction)
        {
            MSI_Port_InterestTrans transactionToSave = null;
            MSI_PortInterestTransRepository repository = null;
            bool editingRequired = true;

            try
            {
                repository = new MSI_PortInterestTransRepository();
                if (inTransaction.ID == 0)
                {
                    transactionToSave = new MSI_Port_InterestTrans();
                    transactionToSave.Portfolio_ = inTransaction.Portfolio_;
                    editingRequired = false;
                }
                else
                {
                    transactionToSave = repository.GetById(inTransaction.ID);
                    if (inTransaction.IsOriginal.Value)
                        editingRequired = true;
                    if (!inTransaction.IsOriginal.Value)
                    {
                        if (transactionToSave.IsOriginal.Value)
                            editingRequired = false;
                        else
                            editingRequired = true;
                    }
                }

                transactionToSave.SalesPrice = inTransaction.SalesPrice;
                transactionToSave.CheckNo = inTransaction.CheckNo;
                transactionToSave.Notes = inTransaction.Notes;
                transactionToSave.Inv_AgencyName = inTransaction.Inv_AgencyName;
                transactionToSave.IsOriginal = inTransaction.IsOriginal;
                transactionToSave.ClosingDate = inTransaction.ClosingDate;

                if (editingRequired)
                    repository.Update(transactionToSave);
                else
                    repository.Add(transactionToSave);
            }
            catch (Exception ex)
            {
            }
            return transactionToSave;
        }