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 = "参数错误" } }); }
public UploadAsyncResponse Post(UploadImageAsyncRequest request) { UploadAsyncResponse res = new UploadAsyncResponse(); Log.Info("Inside ImageAsyncUpload"); IUploadImageRequest req = null; if (request.ImageInfo.FileCategory == EbFileCategory.Dp) { req = new UploadDpRequest(); } else if (request.ImageInfo.FileCategory == EbFileCategory.Images) { req = new UploadImageRequest(); } else if (request.ImageInfo.FileCategory == EbFileCategory.SolLogo) { req = new UploadLogoRequest(); } else if (request.ImageInfo.FileCategory == EbFileCategory.LocationFile) { req = new UploadLocRequest(); } try { string context = string.IsNullOrEmpty(request.ImageInfo.Context) ? StaticFileConstants.CONTEXT_DEFAULT : request.ImageInfo.Context; req.Byte = request.ImageByte; req.FileCategory = request.ImageInfo.FileCategory; req.SolutionId = request.SolutionId; req.SolnId = request.SolnId; req.UserId = (req is UploadDpRequest) ? request.UserIntId : request.UserId; req.UserAuthId = request.UserAuthId; req.BToken = (!String.IsNullOrEmpty(this.Request.Authorization)) ? this.Request.Authorization.Replace("Bearer", string.Empty).Trim() : String.Empty; req.RToken = (!String.IsNullOrEmpty(this.Request.Headers["rToken"])) ? this.Request.Headers["rToken"] : String.Empty; req.SubscriptionId = (!String.IsNullOrEmpty(this.Request.Headers[TokenConstants.SSE_SUBSCRIP_ID])) ? this.Request.Headers[TokenConstants.SSE_SUBSCRIP_ID] : String.Empty; req.ImageRefId = GetFileRefId(request.UserId, request.ImageInfo.FileName, request.ImageInfo.FileType, request.ImageInfo.MetaDataDictionary.ToJson(), request.ImageInfo.FileCategory, request.ImageInfo.Context); this.MessageProducer3.Publish(req); res.FileRefId = req.ImageRefId; } catch (Exception e) { Log.Info("Exception:" + e.ToString()); res.FileRefId = 0; res.ResponseStatus.Message = e.Message; } return(res); }
/// <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)); } }
public EbMqResponse Post(UploadLogoRequest request) { this.ServerEventClient.BearerToken = request.BToken; this.ServerEventClient.RefreshToken = request.RToken; this.ServerEventClient.RefreshTokenUri = Environment.GetEnvironmentVariable(EnvironmentConstants.EB_GET_ACCESS_TOKEN_URL); try { //if (this.EbConnectionFactory.ImageManipulate != null && request.Byte.Length > 307200) //{ // int qlty = (int)(20480000 / request.Byte.Length); // qlty = qlty < 7 ? 7 : qlty; // string Clodinaryurl = this.EbConnectionFactory.ImageManipulate.Resize // (request.Byte, request.ImageRefId.ToString(), qlty); // if (!string.IsNullOrEmpty(Clodinaryurl)) // { // using (var client = new HttpClient()) // { // var response = client.GetAsync(Clodinaryurl).Result; // if (response.IsSuccessStatusCode) // { // var responseContent = response.Content; // request.ImgManpSerConId = this.EbConnectionFactory.ImageManipulate.InfraConId; // request.Byte = responseContent.ReadAsByteArrayAsync().Result; // } // } // } //} string filestore_sid = this.InfraConnectionFactory.FilesDB.UploadFile(request.ImageRefId.ToString(), request.Byte, request.FileCategory, request.InfraConID); string sql = @"INSERT INTO eb_files_ref_variations (eb_files_ref_id, filestore_sid, length, imagequality_id, is_image, img_manp_ser_con_id, filedb_con_id) VALUES (:refid, :filestoreid, :length, :imagequality_id, :is_image, :imgmanpserid, :filedb_con_id) RETURNING id; UPDATE eb_solutions SET logorefid = :refid WHERE isolution_id = :solnid;"; DbParameter[] parameters = { this.InfraConnectionFactory.DataDB.GetNewParameter("refid", EbDbTypes.Int32, request.ImageRefId), this.InfraConnectionFactory.DataDB.GetNewParameter("filestoreid", EbDbTypes.String, filestore_sid), this.InfraConnectionFactory.DataDB.GetNewParameter("length", EbDbTypes.Int64, request.Byte.Length), this.InfraConnectionFactory.DataDB.GetNewParameter("imagequality_id", EbDbTypes.Int32, (int)request.ImgQuality), this.InfraConnectionFactory.DataDB.GetNewParameter("filedb_con_id", EbDbTypes.Int32, request.InfraConID), this.InfraConnectionFactory.DataDB.GetNewParameter("imgmanpserid", EbDbTypes.Int32, request.ImgManpSerConId), this.InfraConnectionFactory.DataDB.GetNewParameter("is_image", EbDbTypes.Boolean, true), this.InfraConnectionFactory.DataDB.GetNewParameter("solnid", EbDbTypes.String, request.SolutionId) }; var iCount = this.InfraConnectionFactory.DataDB.DoQuery(sql, parameters); if (iCount.Rows.Capacity > 0) { this.ServerEventClient.Post <NotifyResponse>(new NotifyUserIdRequest { Msg = request.ImageRefId, Selector = StaticFileConstants.UPLOADSUCCESS, ToUserAuthId = request.UserAuthId, }); } } catch (Exception e) { if (request.ImgQuality == ImageQuality.original) { this.ServerEventClient.Post <NotifyResponse>(new NotifyUserIdRequest { Msg = request.ImageRefId, Selector = StaticFileConstants.UPLOADFAILURE, ToUserAuthId = request.UserAuthId, }); } Log.Error("UploadImage:" + e.ToString()); MqResponse.IsError = true; MqResponse.ErrorString = e.ToString(); } return(MqResponse); }