public RestfulResult Portrait(PortraitRequest request, int? authuid, UserModel authUser)
        {
            request.AuthUid = authuid.Value;
            request.AuthUser = authUser;

            switch (request.Method.ToLower())
            {
                case DefineRestfulMethod.Create:
                    var r = new UploadLogoRequest(request) { Files = Request.Files };
                    return new RestfulResult { Data = this._customerService.UploadLogo(r) };
                case DefineRestfulMethod.Destroy:
                    var d = new DestroyLogoRequest(request);
                    return new RestfulResult { Data = this._customerService.DestroyLogo(d) };
            }

            return new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.ClientError, Message = "参数错误" } };
        }
        /// <summary>
        /// 上传头像
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ExecuteResult<CustomerInfoResponse> UploadLogo(UploadLogoRequest request)
        {
            //直接替换掉以前的头像,使用新头像

            if (request.Files.Count == 0)
            {
                return new ExecuteResult<CustomerInfoResponse>(null)
                    {
                        StatusCode = StatusCode.ClientError,
                        Message = "图像文件不能为空"
                    };
            }

            if (request.Files.Count != 1)
            {
                return new ExecuteResult<CustomerInfoResponse>(null)
                {
                    StatusCode = StatusCode.ClientError,
                    Message = "您只能上传一张头像"
                };
            }
            if (!request.Type.HasValue ||
                request.Type.Value == Hangzhou.Contract.DTO.ThumnImageType.Logo)
            {
                var oldResource = _resourceService.Get(request.AuthUid, SourceType.CustomerPortrait);

                var resourceResult = _resourceService.Save(request.Files, request.AuthUid, 0, request.AuthUid,
                                                           SourceType.CustomerPortrait);

                if (resourceResult == null || resourceResult.Count == 0)
                {
                    Logger.Error(String.Format("保存用户LOGO资源文件异常,用户ID={0}", request.AuthUid));
                    return new ExecuteResult<CustomerInfoResponse>(null) { StatusCode = StatusCode.InternalServerError, Message = "保存文件异常" };
                }

                if (resourceResult.Count != 1)
                {
                    Logger.Warn(String.Format("用户上传头像为1张时,返回不止一个资源.用户Id={0},资源Id={1}", request.AuthUid, String.Join(",", resourceResult.Select(v => v.Id).ToArray())));
                }

                //删除旧resource
                foreach (var item in oldResource)
                {
                    _resourceService.Del(item.Id);
                }

                //update
                var userentity = _customerRepository.GetItem(request.AuthUid);
                userentity.Logo = Path.Combine(resourceResult[0].Domain, resourceResult[0].Name);
                userentity.UpdatedDate = DateTime.Now;
                userentity.UpdatedUser = request.AuthUser.Id;
                _customerRepository.Update(userentity);
                return GetUserInfo(new GetUserInfoRequest
                {
                    AuthUid = request.AuthUid,
                    AuthUser = null,
                    Method = null,
                    Token = null,
                    Client_Version = request.Client_Version
                });
            }
            else
            {
                ResourceInfoResponse logoBG =null;
                using (var ts = new TransactionScope())
                {
                    var oldResource = _resourceService.Get(request.AuthUser.Id, SourceType.CustomerThumbBackground).FirstOrDefault();
                    if (oldResource != null)
                        _resourceService.Del(oldResource.Id);
                    var resourceResult = _resourceService.Save(request.Files, request.AuthUser.Id, 0, request.AuthUser.Id,
                                                               SourceType.CustomerThumbBackground);
                    if (resourceResult == null || resourceResult.Count == 0)
                    {
                        Logger.Error(String.Format("保存用户LOGO资源文件异常,用户ID={0}", request.AuthUser.Id));
                        return new ExecuteResult<CustomerInfoResponse>(null) { StatusCode = StatusCode.InternalServerError, Message = "保存文件异常" };
                    }
                    logoBG = new ResourceInfoResponse().FromEntity<ResourceInfoResponse>(resourceResult.First());
                    ts.Complete();
                }
                
                var response = new CustomerInfoResponse()
                {
                    BackgroundLogo_r = logoBG
                };
                return new ExecuteResult<CustomerInfoResponse>(response);
            }
           
        }