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(); } }
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))); } }
/// <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())); } }
/// <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>()); }
/// <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()); }
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()); }
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; } }
/// <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)); } }
/// <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); }
/// <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); }
/// <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); }
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))); } }
/// <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); } }
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); } }
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))); } }
/// <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()); } }
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]); }
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); }
/// <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); }
/// <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); } }
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(); } }
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(); } }
/// <summary> /// Initializes a new instance of the <see cref="PackedMessageContext" /> class. /// </summary> /// <param name="message"></param> public PackedMessageContext(JObject message) : base(message.ToJson(), true) { }
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(); } }
public void projection_state_can_be_retrieved() { Assert.NotNull(_state); Assert.NotNull(_stateData); Console.WriteLine(_stateData.ToJson()); }
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); }