public Task <ApiResponse <AdvertDto> > UpdateAdvertAsync(UpdateAdvertDto advert) { if (advert == null) { throw new ArgumentNullException(nameof(advert)); } return(PutAsync <UpdateAdvertDto, ApiResponse <AdvertDto> >(_advertOptions.UpdateAdvertUrl, advert)); }
public async Task Update([FromBody] UpdateAdvertDto dto) { var userId = User.GetUserId(); dto.UserId = userId; await _advertService.UpdateAsync(dto, User.IsInRole("Admin")); }
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); }
public async Task <IActionResult> UpdateAdvert(UpdateAdvertDto advert) { ServiceResponse <string> response = await _advertService.UpdateAdvert(advert); if (response.Data == null) { return(NotFound(response)); } return(Ok(response)); }
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))); }
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(); }
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)); }
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)); }
public async Task UpdateAsync(UpdateAdvertDto dto, bool isAdmin = false) { await $"{_apiOptions.Url}/api/adverts/" .WithOAuthBearerToken(await GetAccessTokenAsync()) .PutJsonAsync(dto); }