/// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016-08-23 16:24:47</remarks>
        public bool Update(CrossrobotManagerEntity entity, DbTransaction trans)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_CrossrobotManager_Update");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Guid, entity.Idx);
            database.AddInParameter(commandWrapper, "@SiteId", DbType.AnsiString, entity.SiteId);
            database.AddInParameter(commandWrapper, "@CrossCrowd", DbType.Boolean, entity.CrossCrowd);
            database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }

            entity.Idx = (System.Guid)database.GetParameterValue(commandWrapper, "@Idx");

            return(Convert.ToBoolean(results));
        }
Ejemplo n.º 2
0
 void RobotCrossCrowdHook(CrossrobotManagerEntity entity)
 {
     if (CrossCrowdFight(entity.SiteId, entity.Idx) == MessageCode.Success)
     {
         CrossrobotManagerMgr.UpdateStatus(entity.Idx, (int)EnumRobotMatchStatus.Run);
     }
 }
Ejemplo n.º 3
0
        bool GetHookStatus(CrossrobotManagerEntity entity)
        {
            switch (_curMatchType)
            {
            case EnumMatchType.CrossCrowd:
                return(entity.CrossCrowd);

            default:
                return(false);
            }
        }
Ejemplo n.º 4
0
        void SetHookStatus(CrossrobotManagerEntity entity, bool status)
        {
            switch (_curMatchType)
            {
            case EnumMatchType.CrossCrowd:
                entity.CrossCrowd = status;
                break;

            default:
                break;
            }
        }
Ejemplo n.º 5
0
        public static CrossrobotManagerEntity BuildCrossRobotManager(string siteId, Guid managerId)
        {
            CrossrobotManagerEntity entity = new CrossrobotManagerEntity();

            entity.Idx        = managerId;
            entity.SiteId     = siteId;
            entity.CrossCrowd = false;
            entity.Status     = 0;
            entity.RowTime    = DateTime.Now;
            entity.UpdateTime = DateTime.Now;
            return(entity);
        }
        /// <summary>
        /// 将IDataReader的当前记录读取到CrossrobotManagerEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public CrossrobotManagerEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new CrossrobotManagerEntity();

            obj.Idx        = (System.Guid)reader["Idx"];
            obj.SiteId     = (System.String)reader["SiteId"];
            obj.CrossCrowd = (System.Boolean)reader["CrossCrowd"];
            obj.Status     = (System.Int32)reader["Status"];
            obj.RowTime    = (System.DateTime)reader["RowTime"];
            obj.UpdateTime = (System.DateTime)reader["UpdateTime"];

            return(obj);
        }
Ejemplo n.º 7
0
        public RobotResponse StopRobot(Guid managerId)
        {
            CrossrobotManagerEntity crossRobotManager = null;
            var code = StopCrossRobotManager(managerId, out crossRobotManager);

            if (code != MessageCode.Success)
            {
                return(ResponseHelper.Create <RobotResponse>(code));
            }
            var response = ResponseHelper.CreateSuccess <RobotResponse>();

            return(RobotCore.BuildRobotResponse(response, crossRobotManager));
        }
Ejemplo n.º 8
0
 public static RobotResponse BuildRobotResponse(RobotResponse response, CrossrobotManagerEntity crossRobotManager)
 {
     response.Data = new RobotEntity();
     if (crossRobotManager == null)
     {
         response.Data.CrossCrowd = false;
     }
     else
     {
         response.Data.CrossCrowd = crossRobotManager.CrossCrowd;
     }
     return(response);
 }
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="idx">idx</param>
        /// <returns>CrossrobotManagerEntity</returns>
        /// <remarks>2016-08-23 16:24:47</remarks>
        public CrossrobotManagerEntity GetById(System.Guid idx)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_CrossrobotManager_GetById");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Guid, idx);


            CrossrobotManagerEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Ejemplo n.º 10
0
        MessageCode StopCrossRobotManager(Guid managerId, out CrossrobotManagerEntity entity)
        {
            entity = CrossrobotManagerMgr.GetById(managerId);
            if (entity == null || !GetHookStatus(entity))
            {
                return(MessageCode.InvalidArgs);
            }
            SetHookStatus(entity, false);
            entity.Status = (int)EnumRobotMatchStatus.Stop;
            LogHelper.Insert("test", LogType.Info);
            if (!CrossrobotManagerMgr.Update(entity))
            {
                return(MessageCode.FailUpdate);
            }
            LogHelper.Insert("test2", LogType.Info);
            CrossrobotManagerEntity newEntity = null;

            _crossRobotManagerDic.TryRemove(managerId, out newEntity);
            return(MessageCode.Success);
        }
Ejemplo n.º 11
0
        public static bool Update(CrossrobotManagerEntity crossrobotManagerEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new CrossrobotManagerProvider(zoneId);

            return(provider.Update(crossrobotManagerEntity, trans));
        }
 /// <summary>
 /// Update
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 /// <remarks>2016-08-23 16:24:47</remarks>
 public bool Update(CrossrobotManagerEntity entity)
 {
     return(Update(entity, null));
 }
 /// <summary>
 /// Insert
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="trans">The trans.</param>
 /// <returns></returns>
 /// <remarks>2016-08-23 16:24:47</remarks>
 public bool Insert(CrossrobotManagerEntity entity)
 {
     return(Insert(entity, null));
 }
Ejemplo n.º 14
0
 void doCrossCrowdFinish(CrossrobotManagerEntity entity)
 {
     CrossrobotManagerMgr.UpdateStatus(entity.Idx, (int)EnumRobotMatchStatus.Stop);
 }