예제 #1
0
        public static Business.UserActivityList <Business.UserActivity> Load(Business.UserActivityParameters paras)
        {
            StringBuilder key = new StringBuilder("UserActivity" + paras.Udc.UserID.ToString());

            if (paras.WithAdminData)
            {
                key.Append("WAD");
            }

            if (paras.Amount > 0 && paras.Amount <= Business.DataAccessConfiguration.UserActivityMaximalAmount())
            {
                key.Append(paras.Amount.ToString());
            }
            else
            {
                key.Append(Business.DataAccessConfiguration.UserActivityMaximalAmount().ToString());
            }

            QuickCacheHandler cacheHandler = new QuickCacheHandler(key.ToString());

            cacheHandler.AlternateCacheMinutes = 2;
            cacheHandler.ItemPriority          = System.Web.Caching.CacheItemPriority.Default;

            Business.UserActivityList <Business.UserActivity> list = cacheHandler.Get() as Business.UserActivityList <Business.UserActivity>;
            if (list != null)
            {
                return(list);
            }

            list = new Business.UserActivityList <Business.UserActivity>(paras);

            SqlConnection Conn      = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CSBoosterConnectionString"].ConnectionString);
            SqlDataReader sqlReader = null;

            try
            {
                SqlCommand GetData = new SqlCommand();

                GetData.Connection  = Conn;
                GetData.CommandType = CommandType.StoredProcedure;

                //if (paras.ObjectType == ObjectType.Community)
                //{
                //    GetData.CommandText = "hisp_UserActivity_Community_Load";
                //    GetData.Parameters.AddWithValue("@USR_ID", paras.Udc.UserId.ToGuid());
                //    GetData.Parameters.AddWithValue("@CTY_ID", paras.ObjectID);
                //}
                //else
                //{
                GetData.CommandText = "hisp_UserActivity_User_Load";
                GetData.Parameters.AddWithValue("@USR_ID", paras.Udc.UserID);
                //}

                if (paras.WithAdminData)
                {
                    GetData.Parameters.AddWithValue("@WithAdminData", 1);
                }

                if (paras.UserActivityType != null)
                {
                    GetData.Parameters.AddWithValue("@USA_Type", (int)paras.UserActivityType.Value);
                }

                if (paras.Amount > 0 && paras.Amount <= Business.DataAccessConfiguration.UserActivityMaximalAmount())
                {
                    GetData.Parameters.AddWithValue("@Amount", paras.Amount);
                }
                else
                {
                    GetData.Parameters.AddWithValue("@Amount", Business.DataAccessConfiguration.UserActivityMaximalAmount());
                }

                Conn.Open();
                sqlReader = GetData.ExecuteReader(CommandBehavior.CloseConnection);
                while (sqlReader.Read())
                {
                    Business.UserActivity item = new Business.UserActivity(sqlReader["USA_ID"].ToString().ToGuid(), (UserActivityWhat)sqlReader["USA_What"].ToString().ToInt32(0));
                    item.UserID       = sqlReader["USR_ID"].ToString().ToGuid();
                    item.UserNickname = sqlReader["USR_Nickname"].ToString();
                    item.Date         = Convert.ToDateTime(sqlReader["USA_Date"]);
                    if (sqlReader["USA_Target_OBJ_ID"] != DBNull.Value)
                    {
                        item.TargetObjectID = sqlReader["USA_Target_OBJ_ID"].ToString().ToGuid();
                    }
                    if (sqlReader["USA_Target_OBJ_Type"] != DBNull.Value)
                    {
                        item.TargetObjectType = Convert.ToInt32(sqlReader["USA_Target_OBJ_Type"]);
                    }
                    item.TargetObjectText = sqlReader["USA_Target_OBJ_Text"].ToString();

                    if (sqlReader["USA_Detail_OBJ_ID"] != DBNull.Value)
                    {
                        item.DetailObjectID = sqlReader["USA_Detail_OBJ_ID"].ToString().ToGuid();
                    }
                    if (sqlReader["USA_Detail_OBJ_Type"] != DBNull.Value)
                    {
                        item.DetailObjectType = Convert.ToInt32(sqlReader["USA_Detail_OBJ_Type"]);
                    }

                    if (item.ActivityWhat == UserActivityWhat.DoNowThis && sqlReader["USA_Text"] != DBNull.Value)
                    {
                        item.DetailObjectText = sqlReader["USA_Text"].ToString();
                    }
                    else
                    {
                        item.DetailObjectText = sqlReader["USA_Detail_OBJ_Text"].ToString();
                    }

                    item.OnlyVisibleForAdmin = Convert.ToBoolean(sqlReader["USA_OnlyVisibleForAdmin"]);

                    list.Add(item);
                }
            }
            finally
            {
                if (sqlReader != null)
                {
                    sqlReader.Close();
                }
                sqlReader = null;
            }

            paras.ItemTotal = list.Count;
            cacheHandler.Insert(list);

            return(list);
        }
예제 #2
0
 public UserActivityList(Business.UserActivityParameters paras) : base(paras.InitialCapacity)
 {
     amount = paras.Amount;
 }