/// <summary> /// Add image to album /// </summary> /// <param name="request"></param> /// <returns></returns> public PostEditResponseModel CreateImage(CreateImageRequestModel request) { if (AllowApi) if (!CheckApi(new Guid(request.ApiKey))) return new PostEditResponseModel() { Code = "-2", Message = "Not allow this function for this API key. Please check again" }; using (var tx = new TransactionScope()) { try { var imageId = Guid.NewGuid(); var pos = request.ImageName.LastIndexOf('.'); var fileextention = pos == -1 ? ".jpg" : request.ImageName.Substring(pos).ToLower(); var filenameLarge = "large-" + imageId + fileextention; var filename = imageId.ToString() + fileextention; var filenameMedium = "medium-" + imageId.ToString() + fileextention; var uploadOrigin = CommonLib.UploadFile(request.ImageFile, filename, CommonLib.TypePath.Post); var upload = CommonLib.UploadAndResizeImage(request.ImageFile, filenameLarge, 1000, CommonLib.TypePath.Post); var upLoadMedium = CommonLib.UploadAndResizeImage(request.ImageFile, filenameMedium, 500, CommonLib.TypePath.Post); if (!upload || !upLoadMedium || !uploadOrigin) { tx.Dispose(); return new PostEditResponseModel { Code = "-1", Message = "Upload image fail. Please check again" }; // Upload image fail } // Insert new image var imageData = new Image() { ImageId = imageId, ImageTitle = request.ImageTitle, AlbumId = new Guid(request.AlbumId), ImageLarge = filenameLarge, ImageMedium = filenameMedium, ImageOriginal = filename, DeviceInfo = request.DeviceInfo, LocationInfo = request.LocationInfo, ImageCreateDate = DateTime.UtcNow, ImageType = request.ImageType, Status = 1, ImageTags = request.ImageTags, ImageStory = request.ImageStory }; DataContext.Images.Add(imageData); var result = DataContext.SaveChanges(); tx.Complete(); return new PostEditResponseModel() { Code = "1", Message = request.ToString() }; } catch (Exception exception) { tx.Dispose(); return new PostEditResponseModel() { Code = "-1", Message = exception.Message }; } } }
public JsonResult UploadImage(List<HttpPostedFileBase> imageFiles, string albumId) { string errorMessage; try { if (imageFiles.Count > 0) { var img = PostRepository.GetSingleAlbum(albumId); if (img.Code == "1") { if ((img.Album.Images.Count + imageFiles.Count) > 100) errorMessage = "Album không được nhiều hơn 100 ảnh. Vui lòng kiểm tra lại"; else { foreach (var file in imageFiles) { if (file.ContentType.Contains("image")) { var mem = new MemoryStream(); file.InputStream.CopyTo(mem); var image = new CreateImageRequestModel() { AlbumId = albumId, ImageFile = Convert.ToBase64String(mem.ToArray()), ImageName = file.FileName, ImageType = file.ContentType, DeviceInfo = "web", ImageTags = img.Album.Tags, ImageTitle = img.Album.AlbumTitle }; PostRepository.CreateImage(image); } } return Json(new { Result = true }); } } else errorMessage = "Có lỗi! Bạn vui lòng kiểm tra lại"; } else errorMessage = "Bạn phải chọn ít nhất 1 ảnh"; } catch (Exception exception) { errorMessage = exception.Message; } return Json(new { Result = false, Message = errorMessage}); }