示例#1
0
		/// <summary>
		///   初始化
		/// </summary>
		/// <param name="to">日期終止日</param>
		/// <param name="count">資料個數</param>
		/// <param name="requestType">資料請求類型</param>
		/// <param name="from">日期起始日</param>
		public DataRequest(DateTime to, int count, DataRequestType requestType, DateTime from) {
			this.To = to;
			this.From = from;
			this.Count = count;
			this.RequestType = requestType;
			this.IsAlreadyRequestAllData = false;
		}
示例#2
0
 /// <summary>
 ///   初始化
 /// </summary>
 /// <param name="to">日期終止日</param>
 /// <param name="count">資料個數</param>
 /// <param name="requestType">資料請求類型</param>
 /// <param name="from">日期起始日</param>
 public DataRequest(DateTime to, int count, DataRequestType requestType, DateTime from)
 {
     this.To                      = to;
     this.From                    = from;
     this.Count                   = count;
     this.RequestType             = requestType;
     this.IsAlreadyRequestAllData = false;
 }
		/// <summary>
		///   根據設定資訊調整 InstrumentDataRequest 設定並回傳目前的設定類別
		/// </summary>
		/// <param name="request">InstrumentDataRequest類別</param>
		/// <returns>回傳值: 目前的 InstrumentSettings類別</returns>
		public InstrumentSettings Create(ref InstrumentDataRequest request) {
			SessionObject cSession = GetSessionFromToday();
			DataRequestType cRequestType = request.Range.RequestType;
			
			request.Resolution.CalculateRate(cSession.GetStartTimeForDaylight(), cSession.GetCloseTimeForDaylight(), __cProperty.Sessions.Count);
			if (cRequestType == DataRequestType.DaysBack || cRequestType == DataRequestType.FromTo) {
				request.Range.Count = request.Resolution.ConvertDaysToBars(request.Range.Count);
			}
			return this;
		}
        public static JObject Request(DataRequestType dataRequestType, Session session, uint profileId = 0)
        {
            var requestData = new List <RequestData>();
            var service     = Service.None;

            if (dataRequestType == DataRequestType.GameData)
            {
                requestData.Add(new RequestData()
                {
                    Key = "projectId", Value = ApiRequest.ProjectId.ToString()
                });
                requestData.Add(new RequestData()
                {
                    Key = "token", Value = session.Token
                });
                service = Service.Data;
            }
            else
            {
                requestData.Add(new RequestData()
                {
                    Key = "projectId", Value = ApiRequest.ProjectId.ToString()
                });
                if (profileId == 0)
                {
                    requestData.Add(new RequestData()
                    {
                        Key = "profileId", Value = session.ProfileId.ToString()
                    });
                }
                else
                {
                    requestData.Add(new RequestData()
                    {
                        Key = "profileId", Value = profileId.ToString()
                    });
                }
                requestData.Add(new RequestData()
                {
                    Key = "token", Value = session.Token
                });
                service = Service.UserDeck;
            }

            var dataRequest = ApiRequest.Request(service, WebMethod.POST, requestData);

            if (dataRequest.StatusCode == 200)
            {
                return(JObject.Parse(dataRequest.Content));
            }

            return(null);
        }
示例#5
0
        public virtual bool SaveClientData(string DetailSource, UpdateData updata, DataRequestType type = DataRequestType.Update)
        {
            return(true);

            string GridSource = "JdUnion_Client_Goods_Full";
            string strRowId   = "";
            string strKey     = "JGD02";

            updata.keydpt = new DataPoint(strKey);
            //if (!updata.Updated) return true;
            DataSource ds = GlobalShare.mapDataSource[DetailSource];
            //ds.SourceName = DetailSource;
            List <DataCondition> conds = new List <DataCondition>();
            DataCondition        dcond = new DataCondition();

            dcond.Datapoint = new DataPoint(strKey);
            //dcond.value = strRowId;
            conds.Add(dcond);
            //DataRequestType type = DataRequestType.Update;
            if (strRowId == null || strRowId == "")
            {
                type = DataRequestType.Add;
            }
            if (GlobalShare.mapDataSource.ContainsKey(GridSource))
            {
                DataSource grid_source = GlobalShare.mapDataSource[GridSource];
                ds.SubSource = grid_source;
            }
            //updata.SubItems.Where(a=>a.ReqType)
            string msg = GlobalShare.DataCenterClientObj.UpdateDataList(ds, dcond, updata, type);

            if (msg != null)
            {
                //MessageBox.Show(msg);
                return(false);
            }
            return(true);
        }
示例#6
0
 public bool SaveClientData(UpdateData updata, DataRequestType type = DataRequestType.Update)
 {
     throw new NotImplementedException();
 }
示例#7
0
 public bool SaveData(CMenuItem mnu, DataRequestType type = DataRequestType.Update)
 {
     throw new NotImplementedException();
 }
示例#8
0
        /// <summary>
        /// Process and log the request and associated data
        /// </summary>
        private async Task ProcessRequestDataAsync(DataRequestType requestType = DataRequestType.Log)
        {
            Guid?sessionIdentifier = null;  // Null means it will be automatically created
            // A cross-domain SID can be specified
            var sentSessId = (string)Request.Form.sid;

            // TODO: Maybe validation to ensure SID is not being overwritten
            if (sentSessId != null)
            {
                if (Guid.TryParse(sentSessId, out Guid resultSessGuid))
                {
                    // TODO: Possibly note that session used custom ID
                    sessionIdentifier = resultSessGuid;
                }
            }

            var sessionInfo = await CreateOrRetrieveSessionAsync(sessionIdentifier);

            var currentSession = sessionInfo.Item1;
            var newSession     = sessionInfo.Item2;

            var eventIdentifier = Guid.NewGuid();

            if (requestType.HasFlag(DataRequestType.Log))
            {
                var req = new LogRequest
                {
                    Identifier        = eventIdentifier,
                    SessionIdentifier = currentSession.SessionId,
                    Timestamp         = DateTime.Now,
                    RequestType       = requestType
                };
                // Get client address
                var clientAddr = GetClientAddress();
                req.OriginAddress = clientAddr;
                req.KQApiNode     = Request.Url;
                if (requestType.HasFlag(DataRequestType.Hit))
                {
                    // Map to Hit request
                    var hitReq = Mapper.Map <HitRequest>(req);
                    // Check if also a web request
                    if (requestType.HasFlag(DataRequestType.Web))
                    {
                        hitReq.Referrer = Request.Headers.Referrer;
                        // Attempt to get page URL
                        hitReq.PageIdentifier =
                            (string)Request.Query.u      // Query string
                            ?? (string)Request.Form.u    // Form data
                            ?? Request.Headers.Referrer; // Referrer
                                                         // Check if FetchScript
                        if (requestType.HasFlag(DataRequestType.FetchScript))
                        {
                            // Map to FetchScriptRequest
                            var fetchScriptReq = Mapper.Map <FetchScriptRequest>(hitReq);
                            hitReq = fetchScriptReq;
                        }
                    }
                    req = hitReq;
                }
                // Tag is not compatible with Hit
                else if (requestType.HasFlag(DataRequestType.Tag))
                {
                    // Log with custom data
                    var tagReq = Mapper.Map <TagRequest>(req);
                    tagReq.Tag       = Request.Form.tag;
                    tagReq.ExtraData = Request.Form.data;
                    req = tagReq;
                }
                // Redirect is not compatible with Tag or Hit
                else if (requestType.HasFlag(DataRequestType.Redirect))
                {
                    // TODO: Log redirect
                    var redirReq = Mapper.Map <RedirectRequest>(req);
                    // This flag IMPLIES the Web flag
                    if (requestType.HasFlag(DataRequestType.Web))
                    {
                        // Get target URL and save
                        redirReq.DestinationUrl = Request.Query.t;
                    }
                    req = redirReq;
                }
                var dataLoggerService = new DataLoggerService(ServerContext);
                // Save data using Logger service, on the thread pool
                var saveDataTask = Task.Factory.StartNew(async() =>
                {
                    await dataLoggerService.SaveLogRequestAsync(req);
                });
                // Custom saving
                if (req is TagRequest)
                {
                    var saveTagTask = Task.Factory.StartNew(async() =>
                    {
                        await dataLoggerService.SaveTagRequestAsync((TagRequest)req);
                    });
                }
            }
        }
        public void RequestData(DataRequestType data, long start, long end, int entityId, string callback)
        {
            switch (data)
            {
            case DataRequestType.States:
                TransferStates(start, callback);
                break;

            case DataRequestType.FetchEntities:
                TransferEntities(callback);
                break;

            case DataRequestType.FetchLocations:
                TransferLocations(start, end, callback);
                break;

            case DataRequestType.DetailedDamageTaken:
                if (entityId > 0)
                {
                    TransferDetailedDamageTaken(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.FetchResists:
                if (entityId > 0)
                {
                    TransferResists(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.DetailedDamageDealt:
                if (entityId > 0)
                {
                    TransferDetailedDamageDealt(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.SimpleDamageDealt:
                if (entityId > 0)
                {
                    TransferSimpleDamageDealt(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.SimpleDamageTaken:
                if (entityId > 0)
                {
                    TransferSimpleDamageTaken(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.EntityHealth:
                if (entityId > 0)
                {
                    TransferHealth(entityId, start, end, callback);
                }
                else
                {
                    Logger.Warn($"Data request for {data} was not handled due to the entityId being <0.");
                }
                break;

            case DataRequestType.FetchPetDamageDealt:
                TransferPetDamageDealt(start, end, callback);
                break;

            default:
                Logger.Warn($"Data request for {data} was not handled, unknown type.");
                break;
            }
        }
示例#10
0
 public GetDataRequest(DataRequestType pDataRequestType, params string[] pIncludes)
 {
     this.DataRequestType = pDataRequestType;
     this.Includes        = pIncludes;
 }
示例#11
0
 public static GetDataRequest <T> Create(Expression <Func <T, bool> > pWhere, DataRequestType pDataRequestType, params string[] pIncludes)
 {
     return(new GetDataRequest <T>(pWhere, pDataRequestType, pIncludes));
 }
示例#12
0
 public static GetDataRequest <T> Create(DataRequestType pDataRequestType, params string[] pIncludes)
 {
     return(new GetDataRequest <T>(pDataRequestType, pIncludes));
 }
示例#13
0
 public GetDataRequest(Expression <Func <T, bool> > pWhere, DataRequestType pDataRequestType, params string[] pIncludes)
 {
     this.Where           = pWhere;
     this.DataRequestType = pDataRequestType;
     this.Includes        = pIncludes;
 }