/// <summary> /// 获取成员 /// </summary> /// <param name="userid">成员UserID。对应管理端的帐号</param> /// <returns></returns> public CorpUser GetUser(string userid) { CorpUser user = new CorpUser(); try { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={0}&userid={1}", sAccessToken, userid); string result = string.Empty; result = HTTPHelper.GetRequest(url); JObject jo = (JObject)JsonConvert.DeserializeObject(result); if ("ok".Equals(jo["errmsg"].ToString())) { user = jo.ToObject <CorpUser>(); } else { log.Info(string.Format("CorpCore GetUser Failed: {0} ", result)); } } catch (Exception err) { log.Error("CorpCore GetUser error!", err); } return(user); }
public CorpUser GetUserByLogin(string userId) { //This is useless logic...just for the demo. var usr = new CorpUser(); if (userId == "adminLevelUser") { usr.DepartmentCode = "hr"; usr.FullName = "Admin Sample Person"; usr.FirstName = "Admin"; usr.MiddleName = "Sample"; usr.LastName = "Person"; usr.LoginID = "adminLevelUser"; usr.Email = "*****@*****.**"; usr.Extension = "666"; usr.DirectDial = "857-5309"; usr.PersonGUID = Guid.NewGuid(); usr.Department = "Human Resources"; usr.Office = "San Francisco"; usr.OfficeCode = "SF"; usr.Position = "HR Admin Staff"; usr.MapLocation = "x1,y1,x2,y2"; usr.AnniversaryStartDate = Convert.ToDateTime("1/1/1901"); } return usr; }
/// <summary> /// 更新成员 /// </summary> /// <param name="user"></param> /// <returns>更新结果</returns> public bool UpdateUser(CorpUser user) { bool sign = false; try { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token={0}", sAccessToken); string result = string.Empty; result = HTTPHelper.PostRequest(url, DataTypeEnum.json, user.ToJson()); JObject jo = (JObject)JsonConvert.DeserializeObject(result); if ("updated".Equals(jo["errmsg"].ToString())) { sign = true; } else { log.Info(string.Format("CorpCore UpdateUser Failed: {0} ", result)); } } catch (Exception err) { log.Error("CorpCore UpdateUser error!", err); } return(sign); }
/// <summary> /// 在表发生新建、修改和删除的时候触动。注意,千万不要删除base.OnUpdatingRow(e); /// UpdatingRow事件附着在基类该函数中。 /// </summary> /// <param name="e">事件参数</param> protected override void OnUpdatingRow(UpdatingEventArgs e) { base.OnUpdatingRow(e); CorpUser user = new CorpUser(); switch (e.Status) { case UpdateKind.Insert: e.Row["Department"] = "\"1\""; user.ReadFromDataRow(e.Row, WeCorpConst.USER_MODE); fUserList.Add(UpdateKind.Insert, user); break; case UpdateKind.Update: user.ReadFromDataRow(e.Row, WeCorpConst.USER_MODE); fUserList.Add(e.InvokeMethod, user); break; } }
protected override OutputData DoPost(IInputData input) { Tk5TableResolver getResovler = new Tk5TableResolver(@"Weixin\CorpTagDept.xml", this); using (getResovler) { DataSet postDataSet = input.PostObject.Convert <DataSet>(); getResovler.PrepareDataSet(postDataSet); FieldErrorInfoCollection errors = new FieldErrorInfoCollection(); getResovler.CheckFirstConstraints(input, errors); getResovler.CheckLaterConstraints(input, errors); errors.CheckError(); QuoteStringList postList = new QuoteStringList(); DataTable postTable = postDataSet.Tables[getResovler.TableName]; if (postTable != null) { foreach (DataRow postRow in postTable.Rows) { postList.Add(postRow["DeparmentId"].ToString()); } } string tagId = input.QueryString["TagId"]; InternalCorpUserResolver userResolver = new InternalCorpUserResolver(this); using (userResolver) { DataRow row = userResolver.SelectRowWithKeys(input.QueryString["UserId"]); CorpUser user = new CorpUser(); user.ReadFromDataRow(row, WeCorpConst.USER_MODE); user.DepartmentList = postList; row["Department"] = postList; userResolver.SetCommands(AdapterCommand.Update); user.Update(); userResolver.UpdateDatabase(); return(OutputData.CreateToolkitObject(userResolver.CreateKeyData())); } } }
/// <summary> /// Gets the user's information by login ID after object is constructed /// </summary> public void CreateUserSession() { //So, again, like throughout this //trash heap, basically Im trying to quickly //emulate the same behavior that I had implemented //previously in the corp AD environment. //Because the whole thing lived inside of the corp intranet, //basically we had the luxury of just setting needed items //into a session to be used through the application and not //worry too too much about security restrictions...so thats whats here this.ID = UserHandler.ReturnLogInID(); var fsu = new FakeUserService(); var objUsr = fsu.GetUserByLogin(ID); this.UserObject = objUsr; //Finally set it into a session state... HttpContext.Current.Session["currentUser"] = this; }
public void Add(UpdateKind kind, CorpUser user) { var list = GetList(kind); list.Add(user); }