示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }
示例#7
0
        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);
            }
        }