public ActionResult DeleteConfirmed(int id) { FacilityImage facilityImage = db.FacilityImages.Find(id); db.FacilityImages.Remove(facilityImage); db.SaveChanges(); System.IO.File.Delete(HttpContext.Server.MapPath("~/Images/" + facilityImage.Image)); return(RedirectToAction("Index")); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FacilityImage facilityImage = db.FacilityImages.Find(id); if (facilityImage == null) { return(HttpNotFound()); } return(View(facilityImage)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FacilityImage facilityImage = db.FacilityImages.Find(id); if (facilityImage == null) { return(HttpNotFound()); } ViewBag.FacilityId = new SelectList(db.Facilities, "Id", "Name", facilityImage.FacilityId); return(View(facilityImage)); }
public ActionResult Edit([Bind(Include = "Id,FacilityId,Image")] FacilityImage facilityImage) { HttpPostedFileBase file = Request.Files["Image"]; if (file != null && file.ContentLength > 0) { facilityImage.Image = file.FileName; } ModelState.Clear(); TryValidateModel(facilityImage); if (ModelState.IsValid) { file.SaveAs(HttpContext.Server.MapPath("~/Images/" + facilityImage.Image)); db.Entry(facilityImage).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FacilityId = new SelectList(db.Facilities, "Id", "Name", facilityImage.FacilityId); return(View(facilityImage)); }
public async Task <ActionResult <FacilityImage> > UploadImages(int facilityId, IFormFile[] files) { var user = await context.Users.Where(u => u.UserId == GetUserIdFromClaim(User)).Include(u => u.Facilities).FirstOrDefaultAsync(); if (user == null) { return(BadRequest("Incorrect user id")); } var facility = await context.Facilities.Where(f => f.FacilityId.Equals(facilityId)).Include(f => f.Owner).Include(f => f.FacilityImages).FirstOrDefaultAsync(); if (facility == null) { return(NotFound("Facility not found")); } if (facility.Owner.UserId != user.UserId) { return(BadRequest("User isn't owner of that facility")); } int imageCount = facility.FacilityImages.Count(); long size = facility.FacilityImages.Count(); // Check directory string dirPath = Path.Combine("wwwroot", "Images", "Facility" + facilityId); string subPath = Path.Combine(Directory.GetCurrentDirectory(), dirPath); string dbPath = Path.Combine("Files", "Images", "Facility" + facilityId); //Forst parameter in Startup.cs bool exists = Directory.Exists(subPath); if (!exists) { Directory.CreateDirectory(subPath); } List <FacilityImage> images = new List <FacilityImage>(); foreach (var file in files) { if (!(file.Length > 0 && file.ContentType.Contains("image"))) { return(BadRequest("Incorrect image type")); } } foreach (var file in files) { var localPath = Path.Combine(subPath, "image_" + imageCount + "_" + file.FileName); var finalDbPath = Path.Combine(dbPath, "image_" + imageCount + "_" + file.FileName); imageCount++; using (var stream = System.IO.File.Create(localPath)) { await file.CopyToAsync(stream); finalDbPath = finalDbPath.Replace("\\", "/"); var image = new FacilityImage() { FacilityId = facilityId, ImageUrl = finalDbPath }; //TODO images.Add(image); } } if (images.Count > 0) { await context.FacilityImages.AddRangeAsync(images); await context.SaveChangesAsync(); return(Ok(images)); } return(BadRequest("No images found")); }