public static CorpUser GetUser(string userId) { TkDebug.AssertArgumentNullOrEmpty(userId, "userId", null); string url = string.Format(ObjectUtil.SysCulture, WeCorpConst.GET_USER, CorpAccessToken.GetTokenWithSecret(WeixinSettings.Current.CorpUserManagerSecret), userId); CorpUser user = WeUtil.GetFromUri(url, new CorpUser()); return(user); }
private static void ReadDb() { EmptyDbDataSource source = new EmptyDbDataSource(); TableResolver resolver = new TableResolver("WE_CORP_USER", source); resolver.Select(); foreach (DataRow row in resolver.HostTable.Rows) { CorpUser user = new CorpUser("1", "user", new int[] { 1 }); user.ReadFromDataRow(row, "CorpUser"); Console.WriteLine(user); } }
private static void Synchronize() { var luser = CorpDepartment.GetAllUsers(1, true); Dictionary<string, bool> userId = new Dictionary<string, bool>(); foreach (var lu in luser.UserList) userId.Add(lu.Id, false); Dictionary<string, CorpUser> DbId = new Dictionary<string, CorpUser>(); EmptyDbDataSource source = new EmptyDbDataSource(); TableResolver resolver = new TableResolver("WE_CORP_USER", source); resolver.Select(); foreach (DataRow db in resolver.HostTable.Rows) { CorpUser user = new CorpUser("1", "user", new int[] { 1 }); bool isDelete = db["ValidFlag"].Value<bool>(); user.ReadFromDataRow(db, "CorpUser"); if (isDelete == true) { user.Delete(); } else { user.Enable = true; DbId.Add(user.Id, user); } } foreach (var v in DbId) if (userId.ContainsKey(v.Key)) { userId[v.Key] = true; v.Value.Update(); } else { userId.Add(v.Key, true); v.Value.Create(); } var remainder = from u in userId where !u.Value select u.Key; foreach (var rd in remainder) { CorpUser user = new CorpUser(rd, "user", new int[] { 1 }); user.Delete(); } }
/// <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()); } } }
public void Add(UpdateKind kind, CorpUser user) { var list = GetList(kind); list.Add(user); }
public static void UpSync() { var luser = CorpDepartment.GetAllUsers(1, true); Dictionary<string, bool> userId = new Dictionary<string, bool>(); foreach (var lu in luser.UserList) userId.Add(lu.Id, false); Dictionary<string, Tuple<CorpUser, DataRow>> DbId = new Dictionary<string, Tuple<CorpUser, DataRow>>(); EmptyDbDataSource source = new EmptyDbDataSource(); TableResolver resolver = new TableResolver("WE_CORP_USER", source); resolver.SetCommands(AdapterCommand.Update); resolver.Select(); foreach (DataRow db in resolver.HostTable.Rows) { CorpUser user = new CorpUser("1", "user", new int[] { 1 }); bool isDelete = db["ValidFlag"].Value<bool>(); user.ReadFromDataRow(db, "CorpUser"); if (!isDelete) { user.Enable = true; Tuple<CorpUser, DataRow> tup = new Tuple<CorpUser, DataRow>(user, db); DbId.Add(user.Id, tup); } } foreach (var v in DbId) if (userId.ContainsKey(v.Key)) { var userStatus = CorpUser.GetUser(v.Key).Status; bool changed = false; if (userStatus == UserStatus.Attention) { if (v.Value.Item2["AttentionFlag"].Value<int>() != ATTEN) { v.Value.Item2["AttentionFlag"] = ATTEN; changed = true; } } else if (v.Value.Item2["AttentionFlag"].Value<int>() == ATTEN) { v.Value.Item2["AttentionFlag"] = NOATTEN; changed = true; } if (changed) resolver.UpdateDatabase(); userId[v.Key] = true; var result = v.Value.Item1.Update(); if (result.IsError) Console.WriteLine("Update Error : User:{0}, {1}", v.Value.Item1.Name, result); } else { userId.Add(v.Key, true); var result = v.Value.Item1.Create(); if (result.IsError) Console.WriteLine("Create Error : User:{0}, {1}", v.Value.Item1.Name, result); } var remainder = from u in userId where !u.Value select u.Key; foreach (var rd in remainder) { CorpUser user = new CorpUser(rd, "user", new int[] { 1 }); var result = user.Delete(); if (result.IsError) Console.WriteLine("Delete Error : User:{0}, {1}", rd, result); } }