Пример #1
0
        public ICollection <EstateImage> ProcessImageFileData(ICollection <IFormFile> images)
        {
            var processedImages = new List <EstateImage>();

            foreach (var uploadedImage in images)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    uploadedImage.OpenReadStream().CopyTo(ms);

                    Image image = Image.FromStream(ms);

                    EstateImage imageEntity = new EstateImage
                    {
                        Name        = uploadedImage.Name,
                        Data        = ms.ToArray(),
                        Width       = image.Width,
                        Height      = image.Height,
                        ContentType = uploadedImage.ContentType
                    };

                    processedImages.Add(imageEntity);
                }
            }

            return(processedImages);
        }
Пример #2
0
        public async Task <IActionResult> Create([Bind("EstateId,EstateTypeId,SubEstateType,Region,StatusId,CityId,Price,CreateDuration,Area,BedRooms,BathRooms,Floors,Address,ShortDescription,Description,Tags,Facilities")] Estate estate, IEnumerable <IFormFile> images)
        {
            var userId = _userService.GetUserIdByUserName(User.Identity.Name);

            estate.UserId     = userId;
            estate.IsDeleted  = false;
            estate.CreateDate = DateTime.Now;

            if (ModelState.IsValid)
            {
                _context.Add(estate);
                await _context.SaveChangesAsync();

                if (images.Any())
                {
                    foreach (var files in images)
                    {
                        var fileName = Path.GetFileName(files.FileName);
                        var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\EstateImages", fileName);
                        await using (var fileSteam = new FileStream(filePath, FileMode.Create))
                        {
                            await files.CopyToAsync(fileSteam);
                        }
                        EstateImage estateImage = new EstateImage()
                        {
                            EstateId = estate.EstateId,
                            Image    = fileName
                        };

                        await _context.EstateImages.AddAsync(estateImage);
                    }
                }


                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewData["CityId"]       = new SelectList(_context.Cities, "CityId", "CityName", estate.CityId);
            ViewData["EstateTypeId"] = new SelectList(_context.EstateTypes, "EstateTypeId", "Type", estate.EstateTypeId);
            // ViewData["SubCities"] = new SelectList(_context.EstateTypes, "EstateTypeId", "Type", estate.EstateTypeId);
            // ViewData["EstateTypeId"] = new SelectList(_context.EstateTypes, "EstateTypeId", "Type", estate.EstateTypeId);

            return(View(estate));
        }
Пример #3
0
        public async Task <IActionResult> Edit(int id, [Bind("EstateId,EstateTypeId,SubEstateType,Region,StatusId,CityId,Price,CreateDuration,Area,BedRooms,BathRooms,Floors,Address,ShortDescription,Description,Tags,Facilities")] Estate estate, IEnumerable <IFormFile> images)
        {
            int userId = _userService.GetUserIdByUserName(User.Identity.Name);

            var pics = _context.EstateImages
                       .Where(e => e.EstateId == estate.EstateId)
                       .ToList();

            estate.UserId     = userId;
            estate.CreateDate = DateTime.Now;
            estate.IsDeleted  = false;
            if (id != estate.EstateId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                if (!images.Any())
                {
                    estate.EstateImages = pics;
                }

                if (images.Any())
                {
                    string imagePath = "";
                    foreach (var names in pics)
                    {
                        imagePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\EstateImages",
                                                 names.Image);

                        if (System.IO.File.Exists(imagePath))
                        {
                            System.IO.File.Delete(imagePath);

                            _context.EstateImages.Remove(names);
                        }
                    }


                    foreach (var file in images)
                    {
                        if (file.Length > 0)
                        {
                            var fileName = Path.GetFileName(file.FileName);
                            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\EstateImages", fileName);
                            await using (var fileSteam = new FileStream(filePath, FileMode.Create))
                            {
                                await file.CopyToAsync(fileSteam);
                            }


                            EstateImage estateImage = new EstateImage()
                            {
                                EstateId = id,
                                Image    = fileName
                            };
                            _context.EstateImages.Update(estateImage);
                            await _context.SaveChangesAsync();
                        }
                    }
                }

                try
                {
                    _context.Update(estate);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EstateExists(estate.EstateId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CityId"]       = new SelectList(_context.Cities, "CityId", "CityName", estate.CityId);
            ViewData["EstateTypeId"] = new SelectList(_context.EstateTypes, "EstateTypeId", "Type", estate.EstateTypeId);
            ViewData["UserId"]       = new SelectList(_context.Users, "UserId", "Email", estate.UserId);
            return(View(estate));
        }