public MSI_Port_CollectionsTrans Post(MSI_Port_CollectionsTrans inTransaction)
        {
            MSI_Port_CollectionsTrans transactionToSave = null;
            MSI_PortCollectionsTransRepository repository = null;
            bool editingRequired = true;

            try
            {
                repository = new MSI_PortCollectionsTransRepository();
                if (inTransaction.ID == 0)
                {
                    transactionToSave = new MSI_Port_CollectionsTrans();
                    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.FaceValue = inTransaction.FaceValue;
                transactionToSave.SalesPrice = inTransaction.SalesPrice;
                transactionToSave.ClosingDate = inTransaction.ClosingDate;
                transactionToSave.Inv_AgencyName = inTransaction.Inv_AgencyName;
                transactionToSave.IsOriginal = inTransaction.IsOriginal;

                if (editingRequired)
                    repository.Update(transactionToSave);
                else
                    repository.Add(transactionToSave);
            }
            catch (Exception ex)
            {
            }
            return transactionToSave;
        }
        public IEnumerable<MSI_Port_CollectionsTrans> GetPortfolioCollectionsSummary(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_CollectionsTrans collectionTransaction = null;
            DBFactory db;
            List<MSI_Port_CollectionsTrans> collectionTransactions = null;
            System.Data.DataSet ds;
            try
            {
                db = new DBFactory();
                ds = db.ExecuteDataset("MSI_sp_GetPortfolioCollectionsSummary", "PurchaseCollectionsSummary", new SqlParameter("@productCode", productCode), new SqlParameter("@userId", userId), new SqlParameter("@isOriginal", isOriginal));

                if (ds.Tables["PurchaseCollectionsSummary"].Rows.Count > 0)
                {
                    collectionTransactions = new List<MSI_Port_CollectionsTrans>();
                    foreach (System.Data.DataRow dr in ds.Tables["PurchaseCollectionsSummary"].Rows)
                    {
                        collectionTransaction = new MSI_Port_CollectionsTrans();
                        collectionTransaction.ID = int.Parse(dr["ID"].ToString());
                        collectionTransaction.Portfolio_ = dr["Portfolio#"].ToString();
                        if (dr["FaceValue"] != DBNull.Value)
                            collectionTransaction.FaceValue = Convert.ToDecimal(dr["FaceValue"].ToString());
                        if (dr["SalesPrice"] != DBNull.Value)
                            collectionTransaction.SalesPrice = Convert.ToDecimal(dr["SalesPrice"].ToString());
                        DateTime closingDate;
                        if (DateTime.TryParse(dr["ClosingDate"].ToString(), out closingDate))
                            collectionTransaction.ClosingDate = closingDate;
                        collectionTransaction.Inv_AgencyName = dr["Inv_AgencyName"].ToString();
                        DateTime notNullDt;
                        if (DateTime.TryParse(dr["CreatedDate"].ToString(), out notNullDt))
                            collectionTransaction.CreatedDate = notNullDt;
                        if (DateTime.TryParse(dr["UpdatedDate"].ToString(), out notNullDt))
                            collectionTransaction.UpdatedDate = notNullDt;
                        collectionTransaction.CreatedBy = dr["CreatedBy"].ToString();
                        collectionTransaction.UpdatedBy = dr["UpdatedBy"].ToString();
                        collectionTransaction.TransType = dr["TransType"].ToString();
                        collectionTransactions.Add(collectionTransaction);
                    }
                }

            }
            catch (Exception ex)
            {
                ErrorLogHelper.Error(logMessage, ex);
            }
            return collectionTransactions.AsEnumerable<MSI_Port_CollectionsTrans>();
        }