Ejemplo n.º 1
0
        //[TestMethod]
        public void UpdateMemberTest(string userId)
        {
            var accessToken = AccessTokenContainer.GetToken(_corpId, base._corpSecret);

            var memberUpdateRequest = new MemberUpdateRequest()
            {
                userid       = userId,
                english_name = "new english name",
                department   = new long[] { 2 },
                gender       = "1",
                email        = "*****@*****.**"
            };

            var result = MailListApi.UpdateMember(accessToken, memberUpdateRequest);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.errcode == ReturnCode_Work.请求成功);

            //校验更新成功
            var newMemberData = MailListApi.GetMember(accessToken, userId);

            Assert.AreEqual(memberUpdateRequest.english_name, newMemberData.english_name);
            Assert.AreEqual(memberUpdateRequest.email, newMemberData.email);

            Console.WriteLine("new user info:" + newMemberData.ToJson());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// MemberUpdate updates the member configuration
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
 /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
 /// <param name="cancellationToken">An optional token for canceling the call.</param>
 /// <returns>The response received from the server.</returns>
 public MemberUpdateResponse MemberUpdate(MemberUpdateRequest request, Grpc.Core.Metadata headers = null,
                                          DateTime?deadline = null,
                                          CancellationToken cancellationToken = default)
 {
     return(CallEtcd((connection) => connection.clusterClient
                     .MemberUpdate(request, headers, deadline, cancellationToken)));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 更新用户包括状态
 /// </summary>
 /// <param name="Model"></param>
 /// <returns></returns>
 public WorkJsonResult WX_UpdateUser(JH_Auth_User Model)
 {
     try
     {
         WorkJsonResult Ret = new WorkJsonResult();
         if (Qyinfo.IsUseWX == "Y")
         {
             long[] Branch            = { new JH_Auth_BranchB().GetEntity(d => d.DeptCode == Model.BranchCode).WXBMCode.Value };
             MemberUpdateRequest User = new MemberUpdateRequest();
             User.userid     = Model.UserName;
             User.name       = Model.UserRealName;
             User.mobile     = Model.mobphone;
             User.department = Branch;
             User.gender     = Model.Sex == "男" ? "1" : "2";
             User.enable     = Model.IsUse == "Y" ? 1 : 0;
             Ret             = MailListApi.UpdateMember(GetToken(), User);
         }
         return(Ret);
     }
     catch (Exception ex)
     {
         WorkJsonResult Ret = new WorkJsonResult();
         new QJY.API.JH_Auth_LogB().Insert(new QJY.Data.JH_Auth_Log()
         {
             CRDate = DateTime.Now, LogContent = Model.UserName + "更新错误:" + ex.ToString()
         });
         return(Ret);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// MemberUpdateAsync updates the member configuration in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberUpdateResponse> MemberUpdateAsync(MemberUpdateRequest request, Grpc.Core.Metadata headers = null)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();
            bool success    = false;
            int  retryCount = 0;

            while (!success)
            {
                try
                {
                    response = await _balancer.GetConnection().clusterClient.MemberUpdateAsync(request, headers);

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw ex;
                    }
                }
            }
            return(response);
        }
Ejemplo n.º 5
0
        public MemberUpdateResponse MemberUpdate(MemberUpdateRequest request)
        {
            var req = request.ToProto();
            var rsp = client.MemberUpdate(req);

            return(rsp.FromProto());
        }
Ejemplo n.º 6
0
        /// <summary>
        /// MemberUpdate updates the member configuration
        /// </summary>
        /// <param name="request">The request to send to the server.</param>
        /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
        /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
        /// <param name="cancellationToken">An optional token for canceling the call.</param>
        /// <returns>The response received from the server.</returns>
        public MemberUpdateResponse MemberUpdate(MemberUpdateRequest request, Grpc.Core.Metadata headers = null,
                                                 DateTime?deadline = null,
                                                 CancellationToken cancellationToken = default)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();
            bool success    = false;
            int  retryCount = 0;

            while (!success)
            {
                try
                {
                    response = _balancer.GetConnection().clusterClient
                               .MemberUpdate(request, headers, deadline, cancellationToken);
                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw;
                    }
                }
            }

            return(response);
        }
Ejemplo n.º 7
0
        public IHttpActionResult UpdateMember([FromBody] MemberUpdateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var member = MemberUnitOfWork.MemberSvc.GetByLoginProviderKeyAndManagerId(DataAccessValue, request.ProviderKey);
                if (member == null)
                {
                    return(ReturnResponse(HttpStatusCode.NotFound,
                                          MemberManagerMessages.Error.MEMBER_NOT_FOUND));
                }

                member = request.ToMemberVm(member);

                var resp = MemberUnitOfWork.MemberSvc.UpdateMember(DataAccessId, member);

                if (resp.IsSuccess)
                {
                    return(Ok(new MemberResponse(resp.member)));
                }
                else
                {
                    return(Conflict(resp.Message));
                }
            }
            catch
            {
                // Log to Elmah
                return(InternalServerError(new Exception("Opps.. Seems like there is some issue with the request. please contact the support team.")));
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 /// MemberUpdateAsync updates the member configuration in async
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
 /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
 /// <param name="cancellationToken">An optional token for canceling the call.</param>
 /// <returns>The response received from the server.</returns>
 public async Task <MemberUpdateResponse> MemberUpdateAsync(MemberUpdateRequest request,
                                                            Grpc.Core.Metadata headers          = null, DateTime?deadline = null,
                                                            CancellationToken cancellationToken = default)
 {
     return(await CallEtcdAsync(async (connection) => await connection.clusterClient
                                .MemberUpdateAsync(request, headers, deadline, cancellationToken)));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// MemberUpdate updates the member configuration
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MemberUpdateResponse MemberUpdate(MemberUpdateRequest request, Metadata headers = null)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();

            response = _balancer.GetConnection().clusterClient.MemberUpdate(request, headers);

            return(response);
        }
Ejemplo n.º 10
0
        public WorkJsonResult UpdateMember(UpdateMemberDto dto)
        {
            //dto.AccessToken = GetAccessToken(QyConfig.CorpID, QyConfig.CorpSecret);
            MemberUpdateRequest req = EmitMapperHelper.ObjectMapper <UpdateMemberDto, MemberUpdateRequest>(dto);
            var result = MailListApi.UpdateMember(dto.AccessToken, req);

            return(result);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// MemberUpdateAsync updates the member configuration in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberUpdateResponse> MemberUpdateAsync(MemberUpdateRequest request, Metadata headers = null)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();

            response = await _balancer.GetConnection().clusterClient.MemberUpdateAsync(request, headers);

            return(response);
        }
Ejemplo n.º 12
0
        public static MemberUpdateRequest ToProto(this Entity.MemberUpdateRequest request)
        {
            var tmp = new MemberUpdateRequest()
            {
                ID = request.ID,
            };

            tmp.PeerURLs.AddRange(request.PeerURLs);
            return(tmp);
        }
Ejemplo n.º 13
0
        public MemberInfo UpdateMember([FromBody] MemberUpdateRequest updateRequest)
        {
            ModelValidator.Validate(updateRequest);
            var updatedMember = memberService.UpdateMember(updateRequest);

            return(new MemberInfo
            {
                ID = updatedMember.ID,
                Name = updatedMember.Name,
                Email = updatedMember.Email,
                OptionalEmail = updatedMember.OptionalEmail,
                MobileNumber = updatedMember.MobileNumber,
                Gender = updatedMember.Gender,
                DateOfBirth = updatedMember.DateOfBirth
            });
        }
Ejemplo n.º 14
0
        //[TestMethod]
        public void UpdateMemberTest(string userId)
        {
            var accessToken = AccessTokenContainer.GetToken(_corpId, base._corpSecret);

            var memberUpdateRequest = new MemberUpdateRequest()
            {
                userid       = userId,
                english_name = "new english name",
                department   = new long[] { 2 },
                gender       = "1",
                email        = "*****@*****.**"
            };

            var result = MailListApi.UpdateMember(accessToken, memberUpdateRequest);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.errcode == ReturnCode_Work.请求成功);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// MemberUpdate updates the member configuration
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MemberUpdateResponse MemberUpdate(MemberUpdateRequest request)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();

            try
            {
                response = _clusterClient.MemberUpdate(request, _headers);
            }
            catch (RpcException ex)
            {
                ResetConnection(ex);
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
Ejemplo n.º 16
0
        public static WorkJsonResult UpdateMember(string accessTokenOrAppKey, MemberUpdateRequest memberUpdateRequest, int timeOut = Config.TIME_OUT)
        {
            return(ApiHandlerWapper.TryCommonApi(accessToken =>
            {
                var url = Config.ApiWorkHost + "/cgi-bin/user/update?access_token={0}";

                JsonSetting jsonSetting = new JsonSetting(true);
                return Senparc.Weixin.CommonAPIs.CommonJsonSend.Send <WorkJsonResult>(accessToken, url, memberUpdateRequest, CommonJsonSendType.POST, timeOut, jsonSetting: jsonSetting);
            }, accessTokenOrAppKey));


            /*
             *  返回结果:
             *  {
             *     "errcode": 0,
             *     "errmsg": "updated"
             *  }
             */
        }
Ejemplo n.º 17
0
        /// <summary>
        /// MemberUpdateAsync updates the member configuration in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberUpdateResponse> MemberUpdateAsync(MemberUpdateRequest request)
        {
            MemberUpdateResponse response = new MemberUpdateResponse();

            try
            {
                response = await _clusterClient.MemberUpdateAsync(request, _headers);
            }
            catch (RpcException ex)
            {
                ResetConnection(ex);
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
Ejemplo n.º 18
0
        public bool UpdateUser(WorkUser user)
        {
            if (env.IsDevelopment())
            {
                return(true);
            }
            var entity = new MemberUpdateRequest
            {
                userid     = user.UserID,
                name       = user.Name,
                mobile     = user.Mobile,
                department = new long[] { Convert.ToInt64(user.DepartmentIds) },
                gender     = user.Gender.ToString(),
                enable     = 1,
            };
            var reObj = MailListApi.UpdateMember(workSetting.Value.ContactsAccessTokenKey, entity);

            return(reObj.errcode == ReturnCode_Work.请求成功);
        }
Ejemplo n.º 19
0
        public async Task <IActionResult> UpdateAsync(string id, [FromBody] MemberUpdateRequest request)
        {
            if (request == null)
            {
                return(Fail(WebResource.UpdateRequestIsEmpty));
            }
            if (id.IsEmpty() && request.MemberId.IsEmpty())
            {
                return(Fail(WebResource.IdIsEmpty));
            }
            if (request.MemberId.IsEmpty())
            {
                request.MemberId = id.ToGuid();
            }
            await MemberService.UpdateAsync(request);

            MemberDto byIdAsync = await MemberService.GetByIdAsync(request.MemberId);

            return(Success(byIdAsync));
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Updates an existing member, but not including its password and its email
        /// </summary>
        /// <param name="updateRequest"></param>
        /// <returns></returns>
        public Member UpdateMember(MemberUpdateRequest updateRequest)
        {
            var existingMember = memberRepository.GetById(updateRequest.ID);

            if (existingMember == null)
            {
                throw new UserNotFoundException();
            }

            var member = new Member
            {
                ID            = updateRequest.ID,
                Name          = updateRequest.Name,
                OptionalEmail = updateRequest.OptionalEmail,
                MobileNumber  = updateRequest.MobileNumber,
                Gender        = updateRequest.Gender,
                DateOfBirth   = updateRequest.DateOfBirth
            };

            return(memberRepository.Update(member));
        }
Ejemplo n.º 21
0
        public ActionResult UploadUser()
        {
            try
            {
                //同步部门
                GetDepartmentListResult result = MailListApi.GetDepartmentList(WeixinWorkService.GetToken());
                var departments = dbContext.SysDepartment.OrderByDescending(c => c.DepartmentName).ToList();
                foreach (var item in departments)
                {
                    if (item.DepartmentId == Guid.Parse("2379788E-45F0-417B-A103-0B6440A9D55D"))
                    {
                        continue;
                    }

                    var            parentId = Convert.ToInt64(departments.Where(c => c.DepartmentId == item.ParentId).FirstOrDefault().WeixinWorkId);
                    DepartmentList qyDep    = result.department.Where(c => c.id == item.WeixinWorkId).FirstOrDefault();
                    if (qyDep == null)
                    {
                        var createResult = MailListApi.CreateDepartment(WeixinWorkService.GetToken(), item.DepartmentName, parentId == 0 ? 1 : parentId, 1000 - (item.OrderNo.HasValue ? item.OrderNo.Value : 0));
                        item.WeixinWorkId = createResult.id;
                    }
                    else
                    {
                        MailListApi.UpdateDepartment(WeixinWorkService.GetToken(), qyDep.id, item.DepartmentName, parentId == 0 ? 1 : parentId, 1000 - (item.OrderNo.HasValue ? item.OrderNo.Value : 0));
                    }
                    dbContext.SaveChanges();
                }
                //同步用户
                var users = dbContext.SysUser.Where(c => c.UserCode != "admin").ToList();
                foreach (var userItem in users)
                {
                    long[] longArr = new long[1];
                    longArr[0] = Convert.ToInt64(dbContext.SysDepartment.Where(c => c.DepartmentId == userItem.DepartmentId).FirstOrDefault().WeixinWorkId);
                    try
                    {
                        var memberResult = MailListApi.GetMember(WeixinWorkService.GetToken(), userItem.UserCode);
                        if (memberResult.errcode == Senparc.Weixin.ReturnCode_Work.UserID不存在)
                        {
                            MemberCreateRequest request = new MemberCreateRequest();
                            request.email      = userItem.Email;
                            request.department = longArr;
                            request.enable     = 1;
                            request.mobile     = userItem.Mobile;
                            request.name       = userItem.UserName;
                            request.userid     = userItem.UserCode;
                            MailListApi.CreateMember(WeixinWorkService.GetToken(), request);
                        }
                        else
                        {
                            MemberUpdateRequest updateRequest = new MemberUpdateRequest();
                            updateRequest.department = longArr;
                            updateRequest.email      = userItem.Email;
                            updateRequest.enable     = 1;
                            updateRequest.mobile     = userItem.Mobile;
                            updateRequest.name       = userItem.UserName;
                            updateRequest.userid     = userItem.UserCode;
                            MailListApi.UpdateMember(WeixinWorkService.GetToken(), updateRequest);
                        }
                    }
                    catch { }
                }
                return(Json(new { Code = 0, Msg = "同步成功!" }));
            }
            catch (Exception ex)
            {
                LogHelper.SaveLog(ex);
                return(Json(new { Code = 1, Msg = "服务器异常,请联系管理员!" }));
            }
        }