Example #1
0
        public void GetUserInfo()
        {
            JObject joResult = new JObject();

            try
            {
                #region 接口权限
                string clientSessionId = Request["sessionId"] == null ? "" : Request["sessionId"].ToString(); //客户端sessionid
                string code            = Request["code"] == null ? "" : Request["code"].ToString();           //客户端防伪标识

                if (!ClientUtils.Provider.ApiIdentifyCheck(clientSessionId, code))
                {
                    throw new Exception("请求接口仅已登录客户端可调用!");
                }

                string       service      = Request["service"] == null ? "" : Request["service"].ToString();//客户端
                ClientEntity clientEntity = ClientUtils.Provider.GetClient(service);

                ClientUtils.Provider.isApiAuth(clientEntity);
                #endregion

                string account    = Request["account"] == null ? "" : Request["account"].ToString();       //用户账号
                string updateTime = Request["updateTime"] == null ? "" : Request["updateTime"].ToString(); //时间戳

                List <HttpModel> paras = new List <HttpModel>();
                //paras.Add(new HttpModel("account", account));
                paras.Add(new HttpModel("updateTime", updateTime));
                string  url        = GrobalConfig.ManageApi + "/api/GetUserInfo/";
                string  userInfo   = HttpUtils.RestRequest(url, Method.GET, paras, null);
                JObject joUserInfo = JObject.Parse(userInfo);
                if (joUserInfo["message"] != null)
                {
                    throw new Exception(joUserInfo["message"].ToString());
                }
                joResult["code"]    = 1;
                joResult["message"] = "成功";
                joResult["data"]    = joUserInfo;
                Response.Write(joResult.ToJson());
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                joResult["code"]    = 0;
                joResult["message"] = ex.Message;
                joResult["data"]    = new JArray();
                Response.Write(joResult.ToJson());
            }
            finally
            {
                Response.End();
            }
        }
Example #2
0
        public IHttpActionResult GetOrderBycode(JObject jObject)
        {
            _Log.Info("api/app/store/order/getbycode: " + jObject.ToJson());
            var response = new Response();

            try
            {
                JToken jToken;
                if (!jObject.TryGetValue("Code", out jToken))
                {
                    return(Ok(response.Failed("Code invalid !")));
                }
                var code = jToken.Value <string>().Trim().Replace(" ", string.Empty);
                //us([\d]{1,}) => regex usexpress code
                //([a-zA-Z]{2,})([\d]{12})-([\d]{4}) => regex ustranport code
                //code = Regex.Match(code, @"us([\d]{1,})|([a-zA-Z]{2,})([\d]{12})-([\d]{2})").Value;

                if (string.IsNullOrEmpty(code))
                {
                    return(Ok(response.Failed("Code invalid !")));
                }
                var result = _iOrderServices.App_GetDetailPackageHasItemByCode(code);

                return(Ok(response.SetData(result)));
            }
            catch (Exception ex)
            {
                return(Ok(response.System(ex)));
            }
        }
Example #3
0
        /// <summary>
        /// 获取授权 带缓存 文档是1天 这里设置23小时
        /// </summary>
        /// <returns></returns>
        public string GetAuthToken()
        {
            string cacheKey  = "GetTuiAuthToken";
            string authToken = CacheFactory.Cache().GetCache <string>(cacheKey);

            if (!authToken.IsNullEmpty())
            {
                return(authToken);
            }
            string  timestamp = TimeHelper.GetTimeStamp(false).ToString();
            JObject job       = new JObject();

            job.Add("appkey", this.appKey);
            job.Add("timestamp", timestamp);
            job.Add("sign", SecurityHelper.SHA256String(this.appKey + timestamp + this.masterSecret));//(appkey+timestamp+mastersecret)
            string url = string.Format("https://restapi.getui.com/v1/{0}/auth_sign", this.appId);
            string res = PostWebRequest(url, job.ToJson());

            if (BoolHelper.IsJson(res))
            {
                job = JObject.Parse(res);/*Jobject里的每一个字段都可以用JToken来获取*/
                if (job["result"].ToString() == "ok")
                {
                    res = job["auth_token"].ToString();
                    CacheFactory.Cache().WriteCache(cacheKey, res, DateTime.Now.AddHours(this.cacheTokenTimeHour));//缓存23小时
                }
            }
            return(res);
        }
        public async Task <IActionResult> GetElemeProducts([FromQuery] int offset, [FromQuery] int limit)
        {
            limit = limit == 0 ? 50 : limit;
            var url      = AppData.ElemeApi;
            var tokenUrl = AppData.ElemeToken;
            var token    = await Service.GetElemeTokenAsync(tokenUrl, Business.Eleme_AppKey, Business.Eleme_AppSecret);

            var json = new JObject
            {
                ["nop"]   = "1.0.0",
                ["id"]    = Guid.NewGuid().ToString(),
                ["metas"] = new JObject {
                    ["app_key"] = Business.Eleme_AppKey, ["timestamp"] = DateTime.Now.ToTimestamp()
                },
                ["action"] = "eleme.product.item.queryItemByPage",
                ["token"]  = token,
                //["params"] = new JObject { ["shopId"] = Business.Eleme_Poi_Id, ["offset"] = offset, ["limit"] = limit }
                ["params"] = new JObject {
                    ["queryPage"] = new JObject {
                        ["shopId"] = Business.Eleme_Poi_Id, ["offset"] = offset, ["limit"] = limit
                    }
                }
            };
            var eleme = new ElemeInputData(json, Business.Eleme_AppSecret);

            json["signature"] = eleme.MakeSignApi();
            using (var client = new HttpClient())
            {
                var body = new StringContent(json.ToJson());
                body.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                var res = await client.PostAsync(url, body);

                return(Content(await res.Content.ReadAsStringAsync()));
            }
        }
Example #5
0
        /// <summary>
        /// 推送给所有用户 可以加推送条件 这里未处理 成功返回{"result":"ok", "taskid":"RASA_0111_4fbcdb8155eb8e9002bec597f78d9999"}
        /// </summary>
        public string PustToApp(string title, string content)
        {
            /*  '{
             *   "message": {
             *      "appkey": "GVvUv4M8FZAF7u5a9H79m6",
             *      "is_offline": false,
             *      "msgtype": "notification"
             *   },
             *   "notification": {
             *       "style": {
             *           "type": 0,
             *           "text": "text",
             *           "title": "tttt"
             *       },
             *       "transmission_type": true,
             *       "transmission_content": "透传内容"
             *   },
             * "condition":[{"key":"phonetype", "values":["ANDROID"], "opt_type":0},
             *                            {"key":"region", "values":["11000000", "12000000"], "opt_type":0},
             *                            {"key":"tag", "values":["usertag"], "opt_type":0}],
             *   "requestid":"12341111111115678978"
             *   }'
             */
            string  url      = string.Format("https://restapi.getui.com/v1/{0}/push_app", this.appId);
            JObject postJson = this.SetPostTransmissionTemp(title, content);

            postJson.Add("requestid", CreateRequestId());//必须要10-20长度
            //string res = PostWebRequest(url, JsonHelper.SerializeObject<JObject>(postJson), this.GetAuthToken());
            string res = PostWebRequest(url, postJson.ToJson(), GetAuthToken());

            return(res);
        }
        public async Task <string> GetWxAccessTokenAsync(string appId, string secret)
        {
            var key = KeyForOther($"Weixin:AccessToken:{appId}");
            var now = DateTime.Now;
            var ret = await Database.StringGetAsync(key);

            JObject json = null;

            if (!ret.IsNull)
            {
                json = JObject.Parse(ret);
                if (json["expire_time"].Value <DateTime>() > now)
                {
                    return(json["access_token"].Value <string>());
                }
            }

            var token = await WeixinHelper.GetAccessTokenAsync(appId, secret);

            json = JObject.Parse(token);
            if (json["errcode"] != null && json["errcode"].Value <int>() > 0)
            {
                throw new Exception($"获取令牌错误,{json["errmsg"].Value<string>()}");
            }
            json.Add("expire_time", now.AddSeconds(7000));      // 距离获取时间7000秒后过期
            await Database.StringSetAsync(key, json.ToJson());

            return(json["access_token"].Value <string>());
        }
Example #7
0
        /// <summary>
        /// Generates the and set access token.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <returns></returns>
        private async Task GenerateAndSetAccessToken(HttpContext context)
        {
            Claim claim     = this.Identity.FindFirst(ClaimTypes.Expiration);
            long  timestamp = claim?.Value?.AsLong() ?? DateTime.UtcNow.UnixTimestamp();

            if (context.Response.ContentType == "application/json")
            {
                string content = null;
                if (context.Response != null)
                {
                    //content = context.Response.ReadBodyAsStringAsync();
                }

                if (content.IsNullOrEmpty())
                {
                    content = "{}";
                }

                JObject jObject = JObject.Parse(content);
                jObject.Remove("access_token");
                jObject.Remove("expiration");
                jObject.Add("access_token", this.accessTokenProtector.Protect(this.Identity));
                jObject.Add("expiration", timestamp);

                context.Response.Clear();
                context.Response.StatusCode = StatusCodes.Status400BadRequest;
                await context.Response.WriteAsync(jObject.ToJson());

                //context.Response.Body = jObject.ToJson().ToStream(); //request.CreateResponse(response.StatusCode, jObject).Content;
            }
        }
    public static string ToXml(this JObject item)
    {
        XmlDocument?node = JsonConvert.DeserializeXmlNode(item.ToJson(), nameof(item), true, true);

        string?result = node?.PrettyXml();

        return(result ?? throw new InvalidOperationException());
    }
Example #9
0
        public void VerifyTicket()
        {
            JObject joResult = new JObject();

            try
            {
                string ticket         = Request["ST"] == null ? "" : Request["ST"].ToString();
                string service        = Request["service"] == null ? "" : Request["service"].ToString();
                string code           = Request["code"] == null ? "" : Request["code"].ToString();
                string sessionIdKey   = Request["sessionIdKey"] == null ? "" : Request["sessionIdKey"].ToString();
                string sessionIdValue = Request["sessionIdValue"] == null ? "" : Request["sessionIdValue"].ToString();

                if (ticket.Equals("") || service.Equals("") || code.Equals(""))
                {
                    joResult["code"]    = 0;
                    joResult["message"] = "参数不正确";
                }

                if (service != "")
                {
                    //验证系统是否有效:即是否接入SSO
                    //ADD CODE
                    UserModel objUserInfo = ClientUtils.Provider.VerifyTicket(ticket, service, code, sessionIdKey, sessionIdValue);

                    joResult["code"]     = 1;
                    joResult["message"]  = "验证通过";
                    joResult["account"]  = objUserInfo.Account;
                    joResult["username"] = objUserInfo.UserName;
                }

                Response.Write(joResult.ToJson());
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                joResult["code"]    = 0;
                joResult["message"] = ex.Message;
                Response.Write(joResult.ToJson());
            }
            finally
            {
                Response.End();
            }
        }
        internal static string GetRurnOver(string arg1, string arg2)
        {
            string[] date1 = arg1.Split(new char[] { '-', '/' });
            string[] date2 = arg2.Split(new char[] { '-', '/' });

            int mounthStart = int.Parse(date1[1]);
            int mounthEnd   = int.Parse(date2[1]);

            int yearStart = int.Parse(date1[0]);
            int yearEnd   = int.Parse(date2[0]);

            JObject data = new JObject();

            JArray turnover = new JArray();


            string beginDate = arg1;

            do
            {
                JObject netIncome = new JObject();


                mounthStart++;

                if (mounthStart > 12)
                {
                    mounthStart = 1;
                    yearStart++;
                }

                string endDate = arg2;

                if (mounthStart != mounthEnd || yearStart != yearEnd)
                {
                    endDate = String.Format("{0}-{1}-01", yearStart, mounthStart.ToString("D2"));
                }

                netIncome.Add("x", endDate);

                string res = GetNetIncome(beginDate, endDate);

                JToken jt = JObject.Parse(res);

                netIncome.Add("y", jt.Value <double>("value"));

                System.Diagnostics.Debug.WriteLine(netIncome.ToJson());

                turnover.Add(netIncome);
            } while (mounthStart != mounthEnd || yearStart != yearEnd);

            data.Add("turnover", turnover);

            return(data.ToString());
        }
Example #11
0
        public IHttpActionResult Login(JObject jObject)
        {
            _Log.Info("api/app/login: "******"Email", out jToken))
                {
                    return(Ok(response.Failed("Username invalid!")));
                }
                var email = jToken.Value <string>();

                if (!jObject.TryGetValue("Password", out jToken))
                {
                    return(Ok(response.Failed("Password invalid!")));
                }
                var password = jToken.Value <string>();

                var user = _iAppServices.Login(email, password);
                if (user != null)
                {
                    if (!user.IsActive)
                    {
                        return(Ok(response.Failed("Tài khoản đã bị khóa!")));
                    }
                    var     roleMenu     = _iAppServices.GetAppUserRoleMenu((int)user.Id);
                    dynamic userResponse = new ExpandoObject();
                    userResponse.UserId    = user.Id;
                    userResponse.Email     = user.Username;
                    userResponse.Fullname  = user.FullName;
                    userResponse.RoleMenus = new List <dynamic>();
                    roleMenu.ForEach(x => userResponse.RoleMenus.Add(x.AppMenuId));
                    return(Ok(response.SetData(userResponse)));
                }
                else
                {
                    return(Ok(response.Failed("Tài khoản không tồn tại!")));
                }
            }
            catch (Exception ex)
            {
                _Log.Error(ex.Message, ex);
                return(Ok(response.System(ex)));
            }
            finally
            {
                response = null;
            }
        }
Example #12
0
        /// <summary>
        /// 提现记录
        /// </summary>
        /// <returns></returns>
        public ActionResult withdrawLogs(int page, int pagesize, string start, string end, int?status)
        {
            var agentEntity = agentBll.GetEntityByOpenId(CurrentWxUser.OpenId);

            if (agentEntity != null)
            {
                Pagination pagination = new Pagination()
                {
                    rows = pagesize,
                    page = page,
                    sidx = "id",
                    sord = "desc"
                };
                JObject queryJson = new JObject {
                    { "StartTime", start },
                    { "EndTime", end },
                    { "status", status },
                    { "agent_id", agentEntity.Id.ToString() }   //
                };
                var withdrawList = withdrawLogBLL.GetPageList(pagination, queryJson.ToJson());

                JObject obj  = new JObject();
                JObject obj1 = new JObject();

                obj1["data"]         = JArray.FromObject(withdrawList);
                obj1["current_page"] = pagination.page;
                obj1["last_page"]    = pagination.total;
                obj1["total"]        = pagination.records;

                obj["code"]    = 200;
                obj["success"] = "success";
                obj["data"]    = obj1;//嵌套

                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter {
                    DateTimeFormat = "yyyy'-'MM'-'dd"
                };
                //json显示日期带T问题的解决方法
                //此问题是由Newtonsoft.Json转换json导致的;
                //Newtonsoft.Json产生的默认日期时间格式为: IsoDateTimeConverter 格式
                string root = JsonConvert.SerializeObject(obj, Formatting.Indented, timeConverter);

                return(Content(root, "text/json"));
            }
            else
            {
                var root = new ReturnJson {
                    code = 401, msg = "fail"
                };
                return(Json(root));
            }
        }
Example #13
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Key">键</param>
        public void Remove(string Key)
        {
            var jo = new JObject();

            if (Context.Request.Cookies.TryGetValue(Name, out string cooks))
            {
                jo = JObject.Parse(Core.CalcTo.DeDES(cooks, SecretKey));
            }
            jo.Remove(Key);
            jo.Remove(Key + ExpireSuffix);
            string newcooks = Core.CalcTo.EnDES(jo.ToJson(), SecretKey);

            SaveCookie(newcooks);
        }
Example #14
0
        /// <summary>
        /// 赋值
        /// </summary>
        /// <param name="Key">键</param>
        /// <param name="Value">值</param>
        /// <param name="Expiress">过期时间 默认5分钟</param>
        public void Set(string Key, string Value, DateTime?Expiress = null)
        {
            var jo = new JObject();

            if (Context.Request.Cookies.TryGetValue(Name, out string cooks))
            {
                jo = JObject.Parse(Core.CalcTo.DeDES(cooks, SecretKey));
            }
            jo[Key] = Value;
            jo[Key + ExpireSuffix] = Expiress ?? DateTime.Now.AddMinutes(5);
            string newcooks = Core.CalcTo.EnDES(jo.ToJson(), SecretKey);

            SaveCookie(newcooks);
        }
Example #15
0
        /// <summary>
        /// 组推
        /// </summary>
        /// <returns></returns>
        public string PushToList(string title, string content, string[] cids)
        {
            string taskId = string.Empty;

            this.SavaListBody(title, content, ref taskId);
            string  url      = string.Format("https://restapi.getui.com/v1/{0}/push_list", this.appId);
            JObject postJson = new JObject();
            JArray  aad      = new JArray(cids);

            postJson.Add("cid", aad);
            postJson.Add("taskid", taskId);
            postJson.Add("need_detail", true);
            string res = PostWebRequest(url, postJson.ToJson(), GetAuthToken());

            return(res);
        }
Example #16
0
        public IHttpActionResult GetListStore(JObject jObject)
        {
            var response = new Response();

            try
            {
                _Log.Info("api/app/store/getall: " + jObject.ToJson());
                var packageSearchFromApp = jObject.ToObject <PackageSearchFromApp>();
                if (packageSearchFromApp == null || packageSearchFromApp.UserId < 1)
                {
                    return(Ok(response.Failed(null)));
                }
                if (packageSearchFromApp.WarehouseId == 0)
                {
                    var rolewarehouse = _iUserServices.CheckRoleUser(packageSearchFromApp.UserId, Lib.Business.Models.Extension.Constant.RoleUser.SupplierEmployee);
                    if (rolewarehouse)
                    {
                        var userInfo = _iUserServices.GetUserById(packageSearchFromApp.UserId);
                        if (userInfo != null)
                        {
                            packageSearchFromApp.WarehouseId = userInfo.WarehouseID ?? 0;
                        }
                    }
                }
                else
                {
                    // nv cskh co chon warehouseId
                    // khong phai nv cskh se ko dc lay
                    var roleCustomerService = _iUserServices.CheckRoleUser(packageSearchFromApp.UserId, Lib.Business.Models.Extension.Constant.RoleUser.UserVN);
                    if (!roleCustomerService)
                    {
                        packageSearchFromApp.WarehouseId = 0;
                    }
                }
                if (packageSearchFromApp.WarehouseId == 0)
                {
                    return(Ok(response.Failed(packageSearchFromApp)));
                }
                var result = _iOrderServices.App_SearchStoreWithCountPackage(packageSearchFromApp);
                return(Ok(response.SetData(result)));
            }
            catch (Exception ex)
            {
                return(Ok(response.System(ex)));
            }
        }
Example #17
0
        /// <summary>
        /// 需首先执行save_list_body接口,将推送消息保存在服务器上,后面可以重复调用tolist接口将保存的消息发送给不同的目标用户。
        /// </summary>
        public bool SavaListBody(string title, string content, ref string taskId)
        {
            string url = string.Format("https://restapi.getui.com/v1/{0}/save_list_body", this.appId);
            //JObject postJson = this.SetPostNotificationTemp(title, content);
            JObject postJson = this.SetPostTransmissionTemp(title, content);

            string res = PostWebRequest(url, postJson.ToJson(), GetAuthToken());

            if (BoolHelper.IsJson(res) && (JObject.Parse(res)["result"].ToString() == "ok"))
            {
                taskId = JObject.Parse(res)["taskid"].ToString();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #18
0
        public async Task <IHttpActionResult> UpdateStoreStatus(JObject jObject)
        {
            //_Log.Info("api/app/store/updatestatus: " + jObject.ToJson());
            Libraries.Log.Write("api/app/store/updatestatus: " + jObject.ToJson());
            var response = new Response();

            try
            {
                JToken jToken;
                if (!jObject.TryGetValue("PackageId", out jToken))
                {
                    return(Ok(response.Failed("PackageId invalid !")));
                }
                var packageId = jToken.Value <int>();

                if (!jObject.TryGetValue("UpdateStatus", out jToken))
                {
                    return(Ok(response.Failed("UpdateStatus invalid !")));
                }
                var updateStatus = jToken.Value <int>();
                var appTime      = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                if (jObject.TryGetValue("AppTime", out jToken))
                {
                    appTime = jToken.Value <string>();
                }

                var result = _iOrderServices.App_UpdateStatusPackage(packageId, updateStatus);

                if (result.Result == 1 && updateStatus == (int)OrderStatusInfo.SendToVN)
                {
                    //tạo vận đơn bên kerry
                    await Task.Run(() => _iKerryServices.PostNewOrder(packageId));
                }

                return(Ok(result.Result == 1 ? response.SetData(result.Message) : response.Failed(result.Message)));
            }
            catch (Exception ex)
            {
                return(Ok(response.System(ex)));
            }
        }
        public async Task WithTestMessagePayloadsWhenDecoding_ShouldDecodeMessagesAsPerSpec(Protocol protocol,
                                                                                            JObject messageData)
        {
            Logger.LogLevel = LogLevel.Debug;

            var channelName = "channel-name-" + new Random().Next(int.MaxValue);

            var httpClient = (await Fixture.GetSettings()).GetHttpClient();

            JObject rawMessage = new JObject();

            rawMessage["data"]     = messageData["data"];
            rawMessage["encoding"] = messageData["encoding"];

            var request = new AblyRequest($"/channels/{channelName}/messages", HttpMethod.Post, Protocol.Json);

            request.RequestBody = rawMessage.ToJson().GetBytes();

            var client1 = await GetRestClient(protocol);

            await client1.AblyAuth.AddAuthHeader(request);

            await httpClient.Execute(request);

            var channel = client1.Channels.Get(channelName);
            var result  = await channel.HistoryAsync();

            var returnedMessage = result.Items.First();
            var expectedType    = (string)messageData["expectedType"];

            if (expectedType == "binary")
            {
                ((byte[])returnedMessage.Data).ToHexString().Should().Be((string)messageData["expectedHexValue"]);
            }
            else
            {
                var returnedData  = expectedType == "string" ? returnedMessage.Data.ToString() : returnedMessage.Data.ToJson();
                var expectedValue = expectedType == "string" ? (string)messageData["expectedValue"] : messageData["expectedValue"].ToJson();
                returnedData.Should().Be(expectedValue);
            }
        }
Example #20
0
        public IHttpActionResult GetLstPackageByStore(JObject jObject)
        {
            var response = new Response();

            try
            {
                _Log.Info("api/app/store/getpackage: " + jObject.ToJson());
                var packageSearchFromApp = jObject.ToObject <PackageSearchFromApp>();
                if (packageSearchFromApp == null || packageSearchFromApp.UserId < 1 || packageSearchFromApp.WarehouseId == 0)
                {
                    return(Ok(response.Failed(null)));
                }
                var rolewarehouse = _iUserServices.CheckRoleUser(packageSearchFromApp.UserId, Lib.Business.Models.Extension.Constant.RoleUser.SupplierEmployee);
                if (rolewarehouse)
                {
                    var userInfo = _iUserServices.GetUserById(packageSearchFromApp.UserId);
                    // nv kho phải lấy đúng kho mình xử lý
                    if (userInfo != null && packageSearchFromApp.WarehouseId != userInfo.WarehouseID)
                    {
                        return(Ok(response.Failed(packageSearchFromApp)));
                    }
                }
                else
                {
                    // nv cskh co chon warehouseId
                    //
                    var roleCustomerService = _iUserServices.CheckRoleUser(packageSearchFromApp.UserId, Lib.Business.Models.Extension.Constant.RoleUser.UserVN);
                    if (!roleCustomerService)
                    {
                        return(Ok(response.Failed(packageSearchFromApp)));
                    }
                }
                packageSearchFromApp.PageIndex = 0;
                var result = _iOrderServices.App_SearchPackage(packageSearchFromApp);
                return(Ok(response.SetData(result)));
            }
            catch (Exception ex)
            {
                return(Ok(response.System(ex)));
            }
        }
Example #21
0
 /// <summary>
 /// 向json object追加item,并返回序列化后的string
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="content"></param>
 /// <returns></returns>
 public static string Merge(object obj, object content)
 {
     try
     {
         var     reqStr  = ToJson(obj);
         JObject jobject = (JObject)JsonConvert.DeserializeObject(reqStr);
         if (content is JObject)
         {
             jobject.Merge(content);
         }
         else
         {
             jobject.Merge(JObject.FromObject(content));
         }
         return(jobject.ToJson());
     }
     catch
     {
         //非json格式
         return(obj == null ? "" : obj.ToString());
     }
 }
Example #22
0
        public void ParseToJToken()
        {
            var obj = new JObject();
            obj["Id"] = Guid.Empty;
            obj["Username"] = "******";

            var profile = new JObject();
            profile["Birthday"] = new DateTime(2015, 1, 1);
            profile["Age"] = 12;

            var favors = new JArray();
            favors.Push(12);
            favors.Push("Sweet Milk");
            obj["Profile"] = profile;
            profile["Favors"] = favors;

            obj["Actived"] = true;

            var jsonString = obj.ToJson();

            var convert = new Json.Parser();
            var json = convert.Parse(jsonString) as JObject;
            System.Text.RegularExpressions.Regex JsonDateRegex = new System.Text.RegularExpressions.Regex("^(\\d{4})\\-(10|11|12|0?\\d)\\-([012]\\d|30|31)T([01]\\d|2[0-3]):([0-5]?\\d):([0-5]?\\d)$", System.Text.RegularExpressions.RegexOptions.Compiled);
            var datestr = "2015-01-01T10:3:3";
            var match = JsonDateRegex.Match(datestr);
            Assert.Equal(Guid.Empty.ToString(), json["Id"].ToString());
            Assert.Equal("yiy", (string)json["Username"]);
            Assert.Equal(true, (bool)json["Actived"]);
            profile = json["Profile"] as JObject;
            Assert.Equal(new DateTime(2015, 1, 1), (DateTime)profile["Birthday"]);
            Assert.Equal(12, (int)profile["Age"]);
            favors = profile["Favors"] as JArray;
            Assert.Equal(12, (int)favors[0]);
            Assert.Equal("Sweet Milk", (string)favors[1]);

        }
Example #23
0
        protected override HttpRequestItem BuildRequest()
        {
            HttpRequestItem req  = null;
            var             json = new JObject()
            {
                ["content"]    = _msg.PackContentList(),
                ["msg_id"]     = Interlocked.Increment(ref _msgId),
                ["clientid"]   = Session.ClientId,
                ["psessionid"] = Session.SessionId,
            };

            json.Add("face", 252); // 不知道有什么卵用

            switch (_msg)
            {
            case FriendMessage fMsg:
                /*
                 *  {
                 *     "to": 3269846909,
                 *     "content": "[\"嗯\",[\"font\",{\"name\":\"宋体\",\"size\":10,\"style\":[0,0,0],\"color\":\"000000\"}]]",
                 *     "face": 252,
                 *     "clientid": 53999199,
                 *     "msg_id": 22700002,
                 *     "psessionid": "8368046764001d636f6e6e7365727665725f77656271714031302e3133332e34312e383400001ad00000066b026e040015808a206d0000000a406172314338344a69526d0000002859185d94e66218548d1ecb1a12513c86126b3afb97a3c2955b1070324790733ddb059ab166de6857"
                 * }
                 */
                json.Add("to", fMsg.Friend.Uin);
                req = HttpRequestItem.CreateFormRequest(ApiUrls.SendFriendMsg);
                break;

            case GroupMessage gMsg:
                /*
                 *  {
                 *      "group_uin": 95198668,
                 *      "content": "[\"有人没\",[\"font\",{\"name\":\"宋体\",\"size\":10,\"style\":[0,0,0],\"color\":\"000000\"}]]",
                 *      "face": 252,
                 *      "clientid": 53999199,
                 *      "msg_id": 22700001,
                 *      "psessionid": "8368046764001d636f6e6e7365727665725f77656271714031302e3133332e34312e383400001ad00000066b026e040015808a206d0000000a406172314338344a69526d0000002859185d94e66218548d1ecb1a12513c86126b3afb97a3c2955b1070324790733ddb059ab166de6857"
                 *  }
                 */
                req = HttpRequestItem.CreateFormRequest(ApiUrls.SendGroupMsg);
                json.Add("group_uin", gMsg.Group.Gid);
                break;

            case DiscussionMessage dMsg:
                /*
                 *  {
                 *      "did": 800220077,
                 *      "content": "[\"asdf\",[\"font\",{\"name\":\"宋体\",\"size\":10,\"style\":[0,0,0],\"color\":\"000000\"}]]",
                 *      "face": 252,
                 *      "clientid": 53999199,
                 *      "msg_id": 22700003,
                 *      "psessionid": "8368046764001d636f6e6e7365727665725f77656271714031302e3133332e34312e383400001ad00000066b026e040015808a206d0000000a406172314338344a69526d0000002859185d94e66218548d1ecb1a12513c86126b3afb97a3c2955b1070324790733ddb059ab166de6857"
                 *  }
                 */

                req = HttpRequestItem.CreateFormRequest(ApiUrls.SendDiscussionMsg);
                json.Add("did", dMsg.Discussion.Did);
                break;

            default: throw new ArgumentOutOfRangeException(nameof(_msg));
            }
            req.Referrer = "https://d1.web2.qq.com/cfproxy.html?v=20151105001&callback=1";
            req.AddData("r", json.ToJson());
            return(req);
        }
Example #24
0
        /// <summary>
        /// Gist代码片段,同步到GitHub、Gitee
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public static ActionResultVM GistSync(int UserId = 1)
        {
            var vm = new ActionResultVM();

            try
            {
                //日志
                var listLog = new List <object>();

                using (var db = new ContextBase())
                {
                    var listGist = db.Gist.Where(x => x.Uid == UserId).OrderBy(x => x.GistCreateTime).ToList();

                    var codes = listGist.Select(x => x.GistCode).ToList();

                    var listGs = db.GistSync.Where(x => x.Uid == UserId).ToList();

                    //执行命令记录
                    var dicSync = new Dictionary <string, string>();

                    foreach (var gist in listGist)
                    {
                        var gs = listGs.FirstOrDefault(x => x.GistCode == gist.GistCode);
                        //新增
                        if (gs == null)
                        {
                            dicSync.Add(gist.GistCode, "add");
                        }
                        else if (gs?.GsGitHubTime != gist.GistUpdateTime || gs?.GsGiteeTime != gist.GistUpdateTime)
                        {
                            dicSync.Add(gist.GistCode, "update");
                        }
                    }

                    //删除
                    var delCode = listGs.Select(x => x.GistCode).Except(listGist.Select(x => x.GistCode)).ToList();

                    var token_gh = GlobalTo.GetValue("ApiKey:GitHub:GistToken");
                    var token_ge = GlobalTo.GetValue("ApiKey:Gitee:GistToken");

                    listLog.Add("同步新增、修改:" + dicSync.Count + " 条");
                    listLog.Add(dicSync);

                    //同步新增、修改
                    if (dicSync.Count > 0)
                    {
                        foreach (var key in dicSync.Keys)
                        {
                            var st   = dicSync[key];
                            var gist = listGist.FirstOrDefault(x => x.GistCode == key);
                            var gs   = listGs.FirstOrDefault(x => x.GistCode == key);

                            //发送主体
                            #region MyRegion
                            var jo = new JObject
                            {
                                ["access_token"] = token_ge,//only gitee

                                ["description"] = gist.GistRemark,
                                ["public"]      = gist.GistOpen == 1
                            };

                            var jc = new JObject
                            {
                                ["content"] = gist.GistContent
                            };

                            var jf = new JObject
                            {
                                [gist.GistFilename] = jc
                            };

                            jo["files"] = jf;
                            #endregion

                            switch (st)
                            {
                            case "add":
                            {
                                var gsmo = new Domain.GistSync()
                                {
                                    GistCode     = key,
                                    Uid          = UserId,
                                    GistFilename = gist.GistFilename
                                };

                                //GitHub
                                {
                                    var hwr = Core.HttpTo.HWRequest("https://api.github.com/gists", "POST", jo.ToJson());
                                    hwr.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh);
                                    hwr.ContentType = "application/json";
                                    hwr.UserAgent   = GlobalTo.GetValue("UserAgent");

                                    var rt = Core.HttpTo.Url(hwr);

                                    gsmo.GsGitHubId   = rt.ToJObject()["id"].ToString();
                                    gsmo.GsGitHubTime = gist.GistUpdateTime;
                                }

                                //Gitee
                                {
                                    var hwr = Core.HttpTo.HWRequest("https://gitee.com/api/v5/gists", "POST", jo.ToJson());
                                    hwr.ContentType = "application/json";

                                    var rt = Core.HttpTo.Url(hwr);

                                    gsmo.GsGiteeId   = rt.ToJObject()["id"].ToString();
                                    gsmo.GsGiteeTime = gist.GistUpdateTime;
                                }

                                _ = db.GistSync.Add(gsmo);
                                _ = db.SaveChanges();

                                listLog.Add("新增一条成功");
                                listLog.Add(gsmo);
                            }
                            break;

                            case "update":
                            {
                                if (gs.GistFilename != gist.GistFilename)
                                {
                                    jo["files"][gs.GistFilename] = null;
                                    gs.GistFilename = gist.GistFilename;
                                }

                                //GitHub
                                {
                                    var hwr = Core.HttpTo.HWRequest("https://api.github.com/gists/" + gs.GsGitHubId, "PATCH", jo.ToJson());
                                    hwr.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh);
                                    hwr.ContentType = "application/json";
                                    hwr.UserAgent   = GlobalTo.GetValue("UserAgent");

                                    _ = Core.HttpTo.Url(hwr);

                                    gs.GsGitHubTime = gist.GistUpdateTime;
                                }

                                //Gitee
                                {
                                    var hwr = Core.HttpTo.HWRequest("https://gitee.com/api/v5/gists/" + gs.GsGiteeId, "PATCH", jo.ToJson());
                                    hwr.ContentType = "application/json";

                                    _ = Core.HttpTo.Url(hwr);

                                    gs.GsGiteeTime = gist.GistUpdateTime;
                                }

                                _ = db.GistSync.Update(gs);
                                _ = db.SaveChanges();

                                listLog.Add("更新一条成功");
                                listLog.Add(gs);
                            }
                            break;
                            }

                            Thread.Sleep(1000 * 2);
                        }
                    }

                    listLog.Add("同步删除:" + delCode.Count + " 条");
                    listLog.Add(delCode);

                    //同步删除
                    if (delCode.Count > 0)
                    {
                        foreach (var code in delCode)
                        {
                            var gs = listGs.FirstOrDefault(x => x.GistCode == code);

                            var dc = "00".ToCharArray();

                            #region GitHub
                            var hwr_gh = Core.HttpTo.HWRequest("https://api.github.com/gists/" + gs.GsGitHubId, "DELETE");
                            hwr_gh.Headers.Add(HttpRequestHeader.Authorization, "token " + token_gh);
                            hwr_gh.UserAgent = GlobalTo.GetValue("UserAgent");
                            var resp_gh = (HttpWebResponse)hwr_gh.GetResponse();
                            if (resp_gh.StatusCode == HttpStatusCode.NoContent)
                            {
                                dc[0] = '1';
                            }
                            #endregion

                            #region Gitee
                            var hwr_ge  = Core.HttpTo.HWRequest("https://gitee.com/api/v5/gists/" + gs.GsGiteeId + "?access_token=" + token_ge, "DELETE");
                            var resp_ge = (HttpWebResponse)hwr_ge.GetResponse();
                            if (resp_ge.StatusCode == HttpStatusCode.NoContent)
                            {
                                dc[1] = '1';
                            }
                            #endregion

                            if (string.Join("", dc) == "11")
                            {
                                _ = db.GistSync.Remove(gs);
                                _ = db.SaveChanges();

                                listLog.Add("删除一条成功");
                                listLog.Add(gs);
                            }
                            else
                            {
                                listLog.Add("删除一条异常");
                                listLog.Add(dc);
                            }

                            Thread.Sleep(1000 * 2);
                        }
                    }

                    listLog.Add("完成同步");

                    vm.Set(ARTag.success);
                    vm.data = listLog;
                }
            }
            catch (Exception ex)
            {
                vm.Set(ex);
            }

            return(vm);
        }
Example #25
0
        /// <summary>
        /// execl表格操作
        /// </summary>
        /// <param name="requestMsg">请求信息</param>
        /// <param name="gridKey">execl文档key</param>
        /// <returns></returns>
        public async Task Process(JObject requestMsg, string gridKey)
        {
            try
            {
                NLogger.Info(requestMsg.ToJson());
                if (requestMsg == null)
                {
                    return;
                }
                string type = requestMsg.Value <string>("t");
                switch (type)
                {
                case "v":
                    // 单个单元格刷新
                    await Operation_V(requestMsg, gridKey);

                    break;

                case "rv":
                    // 范围单元格刷新
                    await Operation_Rv(requestMsg, gridKey);

                    break;

                case "cg":
                    // config操作
                    await Operation_Cg(requestMsg, gridKey);

                    break;

                case "all":
                    // 通用保存
                    await Operation_All(requestMsg, gridKey);

                    break;

                case "fc":
                    // 函数链操作
                    await Operation_Fc(requestMsg, gridKey);

                    break;

                case "drc":
                    // 删除行或列
                    await Operation_Drc(requestMsg, gridKey);

                    break;

                case "arc":
                    // 增加行或列
                    await Operation_Arc(requestMsg, gridKey);

                    break;

                case "fsc":
                    // 清除筛选
                    await Operation_Fsc(requestMsg, gridKey);

                    break;

                case "fsr":
                    // 恢复筛选
                    await Operation_Fsr(requestMsg, gridKey);

                    break;

                case "sha":
                    // 新建sheet
                    await Operation_Sha(requestMsg, gridKey);

                    break;

                case "shc":
                    // 复制sheet
                    await Operation_Shc(requestMsg, gridKey);

                    break;

                case "shd":
                    // 删除sheet
                    await Operation_Shd(requestMsg, gridKey);

                    break;

                case "shre":
                    // 删除sheet后恢复操作
                    await Operation_Shre(requestMsg, gridKey);

                    break;

                case "shr":
                    // 调整sheet位置
                    await Operation_Shr(requestMsg, gridKey);

                    break;

                case "shs":
                    // 切换到指定sheet
                    await Operation_Shs(requestMsg, gridKey);

                    break;

                case "sh":
                    // sheet属性(隐藏或显示)
                    await Operation_Sh(requestMsg, gridKey);

                    break;

                case "na":
                    // 修改工作簿名称
                    Operation_Na(requestMsg, gridKey);
                    break;
                }
            }
            catch (Exception e)
            {
                NLogger.Error(e.Message);
            }
        }
Example #26
0
        public void DoLogout()
        {
            JObject joResult = new JObject();

            try
            {
                #region 验证调用权限
                string clientSessionId = Request["sessionId"] == null ? "" : Request["sessionId"].ToString(); //客户端sessionid
                string code            = Request["code"] == null ? "" : Request["code"].ToString();           //客户端防伪标识

                if (!ClientUtils.Provider.ApiIdentifyCheck(clientSessionId, code))
                {
                    throw new Exception("请求接口仅已登录客户端可调用!");
                }

                string       service      = Request["service"] == null ? "" : Request["service"].ToString();//客户端
                ClientEntity clientEntity = ClientUtils.Provider.GetClient(service);

                ClientUtils.Provider.isApiAuth(clientEntity);

                ClientUtils.Provider.LogoutClient(clientEntity);
                #endregion

                #region 账户
                string account = Request["account"] == null ? "" : Request["account"].ToString();//用户账号
                if (account.Equals(""))
                {
                    throw new Exception("请指定需要登出的用户!");
                }
                BaseUserEntity userEntity = UserUtils.Provider.GetUserEntity(account);

                string sessionid = UserUtils.Provider.UserSession(userEntity.UserId);

                if (sessionid == null || sessionid.Equals(""))
                {
                    throw new Exception("未查询到用户登录信息!");
                }

                UserModel user = UserUtils.Provider.GetUser(sessionid);
                if (user == null)
                {
                    throw new Exception("未查询到用户登录信息!");
                }

                if (user.Clients == null || user.Clients.Count == 0)
                {
                    throw new Exception("用户未登录客户端!");
                }
                #endregion

                List <ClientEntity> clientList = ClientUtils.Provider.getAllAuthClient(user.UserId).ToList();

                #region 只登出具体客户端 废弃

                /*string client = Request["client"] == null ? "" : Request["client"].ToString();//需要登出的客户端
                 * //bool isRelation = Request["isRelation"] == null ? true : bool.Parse(Request["isRelation"].ToString());//是否关联登出
                 *
                 * ClientEntity clientEntity = null;
                 * ClientModel clientModel = null;
                 *
                 * if (client != "")
                 * {
                 *  clientEntity = clientList.Find(t => t.AppSvcUrl == client);
                 *  if (clientEntity == null)
                 *  {
                 *      throw new Exception("未授权客户端!");
                 *  }
                 *  isRelation = isRelation && (clientEntity.IsJoinSso == 1);
                 *
                 *  clientModel = user.Clients.Find(t => t.ClientUrl == client);
                 *  if (clientModel == null)
                 *  {
                 *      throw new Exception("客户端未登录!");
                 *  }
                 * }
                 *
                 * if (!isRelation && clientModel != null && clientEntity != null)//只登本客户端
                 * {
                 *  ClientUtils.Provider.LogoutOne(sessionid, user, clientModel, clientEntity);
                 * }
                 * else//登出用户登录的所有客户端
                 * {
                 *  ClientUtils.Provider.LogoutAllAction(user, clientList);
                 *  //清理session 和redis
                 *  UserUtils.Provider.EmptyUser(user.UserId);
                 * }*/
                #endregion

                ClientUtils.Provider.LogoutAllAction(user, clientList, clientSessionId);
                //清理session 和redis
                UserUtils.Provider.EmptyUser(user.UserId);

                joResult["code"]    = 1;
                joResult["message"] = "成功";
                Response.Write(joResult.ToJson());
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                joResult["code"]    = 0;
                joResult["message"] = ex.Message;
                Response.Write(joResult.ToJson());
            }
            finally
            {
                Response.End();
            }
        }
Example #27
0
        public void GetOnLines()
        {
            JObject joResult = new JObject();

            try
            {
                #region 接口权限
                string clientSessionId = Request["sessionId"] == null ? "" : Request["sessionId"].ToString(); //客户端sessionid
                string code            = Request["code"] == null ? "" : Request["code"].ToString();           //客户端防伪标识

                if (!ClientUtils.Provider.ApiIdentifyCheck(clientSessionId, code))
                {
                    throw new Exception("请求接口仅已客户端可调用!");
                }

                string       service      = Request["service"] == null ? "" : Request["service"].ToString();//调用的客户端
                ClientEntity clientEntity = ClientUtils.Provider.GetClient(service);

                ClientUtils.Provider.isApiAuth(clientEntity);
                #endregion

                string client = Request["client"] == null ? "" : Request["client"].ToString();//客户端
                if (!client.Equals(""))
                {
                    List <ClientEntity> clientList = ClientUtils.Provider.getAllClient().ToList();
                    ClientEntity        _client    = clientList.Find(t => t.AppSvcUrl == client);
                    if (_client == null)
                    {
                        throw new Exception("客户端不存在!");
                    }
                }
                IDictionary <string, UserModel> users = UserUtils.Provider.GetAllOnLines();
                JArray list = new JArray();
                if (users != null)
                {
                    foreach (var user in users)
                    {
                        if (client.Equals("") || (user.Value.Clients.Find(t => t.ClientUrl == client) != null))
                        {
                            //屏蔽隐秘数据
                            user.Value.Password = "";
                            user.Value.Clients.ForEach(t =>
                            {
                                t.SessionIdKey   = "";
                                t.SessionIdValue = "";
                                t.Code           = "";
                                t.Ticket         = "";
                            });
                            list.Add(JsonUtils.ModelToJObject(user.Value));
                        }
                    }
                }

                joResult["code"]    = 1;
                joResult["message"] = "成功";
                joResult["data"]    = list;
                Response.Write(joResult.ToJson());
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                joResult["code"]    = 0;
                joResult["message"] = ex.Message;
                joResult["data"]    = new JArray();
                Response.Write(joResult.ToJson());
            }
            finally
            {
                Response.End();
            }
        }
Example #28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PackedMessageContext" /> class.
 /// </summary>
 /// <param name="message"></param>
 public PackedMessageContext(JObject message) : base(message.ToJson(), true)
 {
 }
Example #29
0
        public void CheckLogin(string username, string password, string verifycode)
        {
            JObject joResult = new JObject();

            try
            {
                #region 验证码验证
                verifycode = EncryptUtils.doEncrypt(verifycode.ToLower());
                if (Session[GrobalConfig.VerifyCode].IsEmpty() || verifycode != Session[GrobalConfig.VerifyCode].ToString())
                {
                    throw new Exception("验证码错误,请重新输入");
                }
                #endregion

                #region 内部账户验证
                UserModel userModel = UserUtils.Provider.CheckLogin(username, password);
                #endregion

                #region 多地登录
                //不支持多地登录处理
                if (!GrobalConfig.IsMultiplePlace)
                {
                    string otherSessionId = UserUtils.Provider.UserSession(userModel.UserId);
                    if (otherSessionId != null && !otherSessionId.Equals("") && !otherSessionId.Equals(UserUtils.Provider.getCurrentSession()))//redis 中存在(已在别地登录)
                    {
                        UserModel           user    = UserUtils.Provider.GetUser(otherSessionId);
                        List <ClientEntity> clients = ClientUtils.Provider.getAllAuthClient(user.UserId).ToList();
                        //post 请求清理客户端用户登录信息
                        ClientUtils.Provider.LogoutAllAction(user, clients, "");

                        //清理session 和redis
                        UserUtils.Provider.EmptyUser(user.UserId);
                    }
                }
                #endregion

                UserUtils.Provider.AddCurrent(userModel);

                #region 登录返回
                joResult["type"]    = 1;
                joResult["message"] = "登陆成功";
                joResult["st"]      = "";
                string service = Request["service"] == null ? "" : Request["service"].ToString();
                string code    = Request["code"] == null ? "" : Request["code"].ToString();
                joResult["service"] = service;
                if (!service.Equals(""))
                {
                    joResult["st"] = ClientUtils.Provider.GetTicket(service, code);
                }
                Response.Write(joResult.ToJson());
                #endregion
            }
            catch (Exception ex)
            {
                LogUtils.myError(log, ex);
                joResult["type"]    = 0;
                joResult["message"] = ex.Message;
                Response.Write(joResult.ToJson());
            }
            finally
            {
                Response.End();
            }
        }
Example #30
0
 public void projection_state_can_be_retrieved()
 {
     Assert.NotNull(_state);
     Assert.NotNull(_stateData);
     Console.WriteLine(_stateData.ToJson());
 }
Example #31
0
        public bool ProcessEvent(
            string partition, CheckpointTag eventPosition, string category1, ResolvedEvent data,
            out string newState, out string newSharedState, out EmittedEventEnvelope[] emittedEvents)
        {
            newSharedState = null;
            emittedEvents  = null;
            newState       = null;
            if (data.EventStreamId != data.PositionStreamId)
            {
                return(false);
            }
            if (!data.IsJson)
            {
                return(false);
            }

            JObject metadata = null;

            try {
                metadata = JObject.Parse(data.Metadata);
            } catch (JsonReaderException) {
                return(false);
            }

            if (metadata[_correlationIdProperty] == null)
            {
                return(false);
            }

            string correlationId = metadata[_correlationIdProperty].Value <string>();

            if (correlationId == null)
            {
                return(false);
            }

            string linkTarget;

            if (data.EventType == SystemEventTypes.LinkTo)
            {
                linkTarget = data.Data;
            }
            else
            {
                linkTarget = data.EventSequenceNumber + "@" + data.EventStreamId;
            }

            var metadataDict = new Dictionary <string, string>();

            metadataDict.Add("$eventTimestamp", "\"" + data.Timestamp.ToString("yyyy-MM-ddTHH:mm:ss.ffffffZ") + "\"");
            if (data.EventType == SystemEventTypes.LinkTo)
            {
                JObject linkObj = new JObject();
                linkObj.Add("eventId", data.EventId);
                linkObj.Add("metadata", metadata);
                metadataDict.Add("$link", linkObj.ToJson());
            }

            var linkMetadata = new ExtraMetaData(metadataDict);

            emittedEvents = new[] {
                new EmittedEventEnvelope(
                    new EmittedDataEvent(
                        _corrIdStreamPrefix + correlationId, Guid.NewGuid(), "$>", false,
                        linkTarget,
                        linkMetadata,
                        eventPosition,
                        expectedTag: null))
            };


            return(true);
        }