public async Task <IHttpActionResult> UploadFactoryPhotoFile(int id) { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { return(Content(HttpStatusCode.UnsupportedMediaType, HttpResponseFormat.UnsupportedMediaType())); } try { // Check factory is existing FactoryModel factoryModel = new FactoryModel(); var existingFactory = factoryModel.GetByIdForInternal(id); //FileHelper fileHelper = new FileHelper(); BlobStorageHelper storageHelper = new BlobStorageHelper(Global._systemStorageName, Global._systemStorageKey, Global._imageStorageContainer); string root = Path.GetTempPath(); var provider = new MultipartFormDataStreamProvider(root); // Read the form data. string fileAbsoluteUri = ""; await Request.Content.ReadAsMultipartAsync(provider); char[] trimChar = { '\"' }; //FileData foreach (MultipartFileData fileData in provider.FileData) { string formColumnName = fileData.Headers.ContentDisposition.Name.ToLower().Trim(trimChar); string fileExtenionName = fileData.Headers.ContentDisposition.FileName.Split('.')[1].ToLower().Trim(trimChar); if (formColumnName.Equals("image")) { //string formColumnName = fileData.Headers.ContentDisposition.Name; //string fileExtenionName = fileData.Headers.ContentDisposition.FileName.Replace("\"", "").Split('.')[1]; string fileExtension = Path.GetExtension(fileData.Headers.ContentDisposition.FileName.Replace("\"", "").ToLower()); if (fileExtension.Equals(".jpg", StringComparison.InvariantCultureIgnoreCase) || fileExtension.Equals(".jpeg", StringComparison.InvariantCultureIgnoreCase) || fileExtension.Equals(".png", StringComparison.InvariantCultureIgnoreCase)) { ImageHelper imageHelper = new ImageHelper(); string uploadFilePath = String.Format("company-{0}/Factory/{1}", existingFactory.CompanyId, id); fileAbsoluteUri = imageHelper.PublishImage(fileData.LocalFileName, storageHelper, uploadFilePath, Global._factoryPhotoWidthHeight, Global._imageBgColor, Global._imageFormat); //string uploadFilePath = String.Format("company-{0}/Factory/{1}-default-{2}{3}", existingFactory.CompanyId, id, (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds, fileExtension); //fileAbsoluteUri = storageHelper.SaveFiletoStorage(fileData.LocalFileName, uploadFilePath); } else { return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.Error("Unsupport File Type."))); } } } if (fileAbsoluteUri.Equals("")) { return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.Error("File is empty"))); } //Edit factory logo path factoryModel.UpdatePhotoURL(id, fileAbsoluteUri); return(Content(HttpStatusCode.OK, new { imageURL = fileAbsoluteUri })); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (Exception ex) { string logAPI = "[Put] " + Request.RequestUri.ToString(); StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex); Global._appLogger.Error(logAPI + logMessage); return(Content(HttpStatusCode.InternalServerError, ex)); } }
public async Task <IHttpActionResult> UploadLogoFile(int id) { string logAPI = "[Put] " + Request.RequestUri.ToString(); // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { return(Content(HttpStatusCode.UnsupportedMediaType, HttpResponseFormat.UnsupportedMediaType())); } CompanyModel companyModel = new CompanyModel(); //FileHelper fileHelper = new FileHelper(); BlobStorageHelper storageHelper = new BlobStorageHelper(Global._systemStorageName, Global._systemStorageKey, Global._imageStorageContainer); string root = Path.GetTempPath(); var provider = new MultipartFormDataStreamProvider(root); try { CompanyModel.Format_Detail company = companyModel.GetById(id); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (Exception ex) { StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex); Global._appLogger.Error(logAPI + logMessage); return(Content(HttpStatusCode.InternalServerError, ex)); } try { // Read the form data. string LogoAbsoluteUri = "", IconAbsoluteUri = ""; await Request.Content.ReadAsMultipartAsync(provider); //FileData foreach (MultipartFileData fileData in provider.FileData) { string fileExtension = Path.GetExtension(fileData.Headers.ContentDisposition.FileName.Replace("\"", "").ToLower()); if (fileExtension.Equals(".jpg", StringComparison.InvariantCultureIgnoreCase) || fileExtension.Equals(".jpeg", StringComparison.InvariantCultureIgnoreCase) || fileExtension.Equals(".png", StringComparison.InvariantCultureIgnoreCase)) { ImageHelper imageHelper = new ImageHelper(); string uploadFilePath = String.Format("company-{0}", id); LogoAbsoluteUri = imageHelper.PublishImage(fileData.LocalFileName, storageHelper, uploadFilePath, Global._companyLogoWidthHeight, Global._imageBgColor, Global._imageFormat); IconAbsoluteUri = imageHelper.PublishImage(fileData.LocalFileName, storageHelper, uploadFilePath, Global._companyIconWidthHeight, Global._imageBgColor, Global._imageFormat); } else { return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.Error("Unsupport File Type."))); } } if (LogoAbsoluteUri.Equals("")) { return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.Error("File is empty or wrong extension name."))); } //Edit company logo path companyModel.UpdateLogoURL(id, LogoAbsoluteUri, IconAbsoluteUri); //RedisCacheHelper.DeleteCompanyCache(id); return(Content(HttpStatusCode.OK, HttpResponseFormat.Success(LogoAbsoluteUri))); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (System.Exception ex) { StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex); Global._appLogger.Error(logAPI + logMessage); return(Content(HttpStatusCode.InternalServerError, ex)); } }