コード例 #1
0
ファイル: Program.cs プロジェクト: ZLLselfRedeem/zllinmitu
        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();
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: ZLLselfRedeem/zllinmitu
        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);
            }
        }