Exemple #1
0
        /// <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;
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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;
            }
        }
Exemple #5
0
        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()));
                }
            }
        }
Exemple #6
0
        /// <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);
        }