Esempio n. 1
0
 public Task <ApiResponse <AdvertDto> > UpdateAdvertAsync(UpdateAdvertDto advert)
 {
     if (advert == null)
     {
         throw new ArgumentNullException(nameof(advert));
     }
     return(PutAsync <UpdateAdvertDto, ApiResponse <AdvertDto> >(_advertOptions.UpdateAdvertUrl, advert));
 }
Esempio n. 2
0
        public async Task Update([FromBody] UpdateAdvertDto dto)
        {
            var userId = User.GetUserId();

            dto.UserId = userId;

            await _advertService.UpdateAsync(dto, User.IsInRole("Admin"));
        }
Esempio n. 3
0
        public async Task <ServiceResponse <string> > UpdateAdvert(UpdateAdvertDto advert)
        {
            ServiceResponse <string> serviceResponse = new ServiceResponse <string>();

            try
            {
                Advert entity = _context.Adverts.Include(ae => ae.AdvertEquipments).FirstOrDefault(a => a.Id == advert.Id);
                entity.CarProductionDate     = advert.CarProductionDate;
                entity.Condition             = (Models.ConditionState)advert.Condition;
                entity.Title                 = advert.Title;
                entity.Description           = advert.Description;
                entity.Displacement          = advert.Displacement;
                entity.DriveType             = (Models.DriveTypes)advert.DriveType;
                entity.FirstRegistrationDate = advert.FirstRegistrationDate;
                entity.Fuel             = (Models.FuelType)advert.Fuel;
                entity.GenerationId     = advert.GenerationId;
                entity.HasBeenCrashed   = advert.HasBeenCrashed;
                entity.Horsepower       = advert.Horsepower;
                entity.Location         = advert.Location;
                entity.Mileage          = advert.Mileage;
                entity.PlateNumber      = advert.PlateNumber;
                entity.Price            = advert.Price;
                entity.State            = (Models.States)advert.State;
                entity.TransmissionType = (Models.TransmissionTypes)advert.TransmissionType;
                entity.VIN         = advert.VIN;
                entity.PhoneNumber = advert.PhoneNumber;

                var aeEntity = _context.AdvertEquipment.Where(a => a.AdvertId == entity.Id).ToList();
                _context.AdvertEquipment.RemoveRange(aeEntity);
                if (entity.AdvertEquipments == null)
                {
                    entity.AdvertEquipments = new List <AdvertEquipment>();
                }
                foreach (var ae in advert.AdvertEquipments)
                {
                    entity.AdvertEquipments.Add(_mapper.Map <AdvertEquipment>(ae));
                }
                var photoEntity = _context.Photos.Where(a => a.AdvertId == entity.Id).ToList();
                _context.AdvertEquipment.RemoveRange(aeEntity);
                if (entity.Photos == null)
                {
                    entity.Photos = new List <Photo>();
                }
                foreach (var photo in advert.Photos)
                {
                    entity.Photos.Add(_mapper.Map <Photo>(photo));
                }
                _context.SaveChanges();
                serviceResponse.Data = "wykonano";
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
            }
            return(serviceResponse);
        }
Esempio n. 4
0
        public async Task <IActionResult> UpdateAdvert(UpdateAdvertDto advert)
        {
            ServiceResponse <string> response = await _advertService.UpdateAdvert(advert);

            if (response.Data == null)
            {
                return(NotFound(response));
            }
            return(Ok(response));
        }
Esempio n. 5
0
        public async Task <IActionResult> UpdateAdvertAsync([FromBody] UpdateAdvertDto advert)
        {
            string id   = User.Claims.Where(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")).FirstOrDefault().Value;
            string role = User.Claims.Where(x => x.Type.Contains("role")).FirstOrDefault().Value;

            if (!advert.UserId.Equals(id) && !role.Equals("Admin"))
            {
                throw new Exception($"{nameof(advert)} Access denied");
            }
            return(ApiResult(await _advertManager.UpdateAsync(advert)));
        }
Esempio n. 6
0
        public async Task UpdateAsync(UpdateAdvertDto dto, bool isAdmin = false)
        {
            Validate(dto);

            var advert = await _unitOfWork.AdvertRepository.GetAsync(dto.Id);

            ThrowIfNotFound(advert);

            if (!isAdmin && advert.UserId != dto.UserId)
            {
                throw new NotPermittedException("Нельзя редактировать чужие обьявления");
            }

            _mapper.Map(dto, advert);

            _unitOfWork.AdvertRepository.Update(advert);

            await _unitOfWork.SaveChangesAsync();
        }
Esempio n. 7
0
        public async Task <IActionResult> Edit(UpdateAdvertDto advert)
        {
            ViewBag.ReCaptchaKey = GetCaptchaKey();

            if (ModelState.IsValid)
            {
                if (!ReCaptchaPassed(
                        Request.Form["g-recaptcha-response"], // that's how you get it from the Request object
                        _configuration.GetSection("GoogleReCaptcha:secret").Value
                        ))
                {
                    ModelState.AddModelError(string.Empty, "You failed the CAPTCHA, stupid robot. Go play some 1x1 on SFs instead.");
                    return(View(advert));
                }

                RemoveEmptyImages(advert);
                await _advertService.UpdateAsync(advert);

                return(RedirectToAction("Get", new { id = advert.Id }));
            }

            return(View(advert));
        }
Esempio n. 8
0
        public async Task <AdvertDto> UpdateAsync(UpdateAdvertDto dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException(nameof(dto));
            }
            if (string.IsNullOrWhiteSpace(dto.Header))
            {
                throw new Exception($"{nameof(dto)} Заполните все данные");
            }
            var _ad = await _advertRepository.GetAsync(dto.Id);

            if (_ad == null)
            {
                throw new Exception($"{nameof(dto)} Такого объявления не существует");
            }
            if (!_ad.UserId.Equals(dto.UserId))
            {
                throw new Exception($"{nameof(dto)} Вы не имеете право изменять это объявление");
            }
            if (dto.Description?.Length > 650)
            {
                throw new Exception($"{nameof(dto)} Описание не более 650 символов");
            }

            _ad.Header = dto.Header;
            if (dto.Description != null)
            {
                _ad.Description = dto.Description;
            }

            if (dto.CategoryId != 0)
            {
                _ad.CategoryId = dto.CategoryId;
            }
            _ad.Price = dto.Price;

            _ad.Location.Country     = dto.Location.Country;
            _ad.Location.Area        = dto.Location.Area;
            _ad.Location.City        = dto.Location.City;
            _ad.Location.Street      = dto.Location.Street;
            _ad.Location.HouseNumber = dto.Location.HouseNumber;

            ICollection <Photo> photos = new List <Photo>();

            if (dto.Photo?.Length > 0)
            {
                if (_ad.Photos?.Count > 0)
                {
                    foreach (Photo ph in _ad.Photos)
                    {
                        photos.Add(new Photo
                        {
                            Id       = ph.Id,
                            Advert   = ph.Advert,
                            AdvertId = ph.AdvertId,
                            Data     = ph.Data
                        });
                    }
                }
                _ad.Photos = _mapper.Map <ICollection <Photo> >(dto.Photo);
                await _advertRepository.UpdateAsync(_ad);
            }

            await _advertRepository.SaveChangesAsync();

            try
            {
                foreach (Photo ph in photos)
                {
                    await _photoRepository.RemoveAsync(ph);
                }
                await _photoRepository.SaveChangesAsync();
            }
            catch (Exception ex) { }
            return(_mapper.Map <AdvertDto>(_ad));
        }
Esempio n. 9
0
 public async Task UpdateAsync(UpdateAdvertDto dto, bool isAdmin = false)
 {
     await $"{_apiOptions.Url}/api/adverts/"
     .WithOAuthBearerToken(await GetAccessTokenAsync())
     .PutJsonAsync(dto);
 }