Exemple #1
0
        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"));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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"));
        }