public IQueryable <PostImageViewModel> GetAllPostImageViewModels(HttpServerUtilityBase server, HttpRequestBase request, int page, int pageSize) { try { var di = new DirectoryInfo(server.MapPath("/_PostImages")); var list = new List <PostImageViewModel>(); var index = 0; var min = (page - 1) * pageSize; var max = min + pageSize; foreach (var file in di.GetFiles()) { if (index < min) { index++; continue; } var pivm = new PostImageViewModel(); pivm.FileName = file.Name; var url = file.FullName.Replace(request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty).Replace('\\', '/'); url = url.TrimStart('_'); pivm.Url = "/" + url; var image = System.Drawing.Image.FromFile(file.FullName); pivm.Width = image.Width; pivm.Height = image.Height; image.Dispose(); list.Add(pivm); index++; if (index >= max) { break; } } return(list.AsQueryable()); } catch (Exception ex) { Log.Error(ex.Message, ex); return((new List <PostImageViewModel>()).AsQueryable()); } }
public async Task <ActionResult> EditImage(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Post post = await db.Posts.FindAsync(id); if (post == null) { return(HttpNotFound()); } var model = new PostImageViewModel { Id = post.Id }; return(View(model)); }
public async Task <ActionResult> EditImage(PostImageViewModel model) { if (ModelState.IsValid) { string fileName = $"{DateTime.Now.Ticks}_{Path.GetFileName(model.ImageFile.FileName)}"; model.ImageFile.SaveAs(Path.Combine(Server.MapPath("~/Uploads/PostImages"), fileName)); Post post = await db.Posts.FindAsync(model.Id); post.ImagePath = fileName; db.Entry(post).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Edit", new { id = model.Id })); } return(View(model)); }
public HttpResponseMessage Create(HttpRequestMessage request, PostImageViewModel postImageVm) { return(CreateHttpResponse(request, () => { if (ModelState.IsValid) { PostImage postImageDb = new PostImage(); postImageDb.UpdatePostImage(postImageVm); _postImageService.Add(postImageDb); _postImageService.SaveChange(); return request.CreateResponse(HttpStatusCode.OK, postImageVm); } else { return request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } })); }
public static void UpdatePostImage(this PostImage postImage, PostImageViewModel postImageVm) { postImage.Path = postImageVm.Path; postImage.PostId = postImageVm.PostId; postImage.Caption = postImageVm.Caption; }