/// <summary>
        /// 降权 目前对于降权会清空表,所以要注意权限
        /// </summary>
        public void SetOperate(SetAssociateOperateRequest request)
        {
            //var userid = 0;
            //var associateId = 0;
            //var authUserId = 0;

            using (var ts = new TransactionScope())
            {
                using (var db = GetYintaiHZhouContext())
                {
                    var associate          = db.IMS_Associate;
                    var entity             = associate.FirstOrDefault(v => v.Id == request.AssociateId);
                    var associatesalecodes = db.IMS_AssociateSaleCode;

                    if (entity == null)
                    {
                        throw new OpcException(String.Format("合伙人ID:({0})未找到。", request.AssociateId));
                    }

                    //if (entity.UserId != userid)
                    //{
                    //    throw new OpcException(String.Format("合伙人ID:({0})的UserId{1}与提供的UserId{2}不一致。", associateId, entity.UserId, userid));
                    //}

                    entity.OperateRight = request.OperateRight.AsId();

                    associatesalecodes.Where(v => v.AssociateId == request.AssociateId).Delete();

                    db.SaveChanges();
                }

                ts.Complete();
            }
        }
        /// <summary>
        /// 降权
        /// </summary>
        /// <param name="request"></param>
        public ExectueResult SetDemotion(SetAssociateOperateRequest request)
        {
            const UserOperatorRight operateRight = UserOperatorRight.GiftCard | UserOperatorRight.SystemProduct;

            request.OperateRight = operateRight;

            _repository.SetOperate(request);

            return(new OkExectueResult());
        }
        public IHttpActionResult PutDemotion(int id, [FromBody] SetAssociateOperateRequest request, [UserProfile] UserProfile userProfile)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (request == null)
            {
                request = new SetAssociateOperateRequest();
            }
            IHttpActionResult httpActionResult;
            var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult);

            if (!result)
            {
                return(httpActionResult);
            }

            request.AssociateId = id;
            var s = _service.GetDto(id);

            if (s == null)
            {
                return(BadRequest(String.Format("合伙人Id:({0})未找到", id)));
            }

            var r = CheckRole4Store(userProfile, s.Data.StoreId);

            if (!r.Result)
            {
                BadRequest(r.Error);
            }

            var exectueResult = _service.SetDemotion(request);

            return(RetrunHttpActionResult(exectueResult));
        }