public async Task <IActionResult> UpdateListing([FromBody] UpdateListingRequest updateListingRequest) { try { var id = HttpContext.User.FindFirst(ClaimTypes.Email).Value; var user = await _userManager.FindByEmailAsync(id); if (user != null) { if (user.Id != updateListingRequest.OwnerId) { return(StatusCode((int)HttpStatusCode.InternalServerError, "you are not the owner of that listing")); } var allListings = await _listingCommand.UpdateListing(updateListingRequest, user.Id); return(Ok(allListings)); } else { _logger.LogError($"error user does not exis"); return(StatusCode((int)HttpStatusCode.InternalServerError, "error user does not exist")); } } catch (Exception ex) { _logger.LogError($"error while getting all lists for user: {ex}"); return(StatusCode((int)HttpStatusCode.InternalServerError, "error while getting alllists for user")); } }
public async Task <UserListingDto> UpdateListing(UpdateListingRequest updateListingRequest, string userId) { try { var listing = new UserListings { UserListingId = updateListingRequest.UserListingId, CountryName = updateListingRequest.ListingCountry, ProvinceName = updateListingRequest.ListingProvince, CityName = updateListingRequest.ListingCity, ListingName = updateListingRequest.ListingType, ListingDescription = updateListingRequest.ListingDescription, ListingTitle = updateListingRequest.ListingTitle, Address = updateListingRequest.Address, Email = updateListingRequest.Email, PhoneNumber = updateListingRequest.PhoneNumber, FullName = updateListingRequest.FullName, OwnerId = updateListingRequest.OwnerId, LastUpdatedDate = DateTime.Now, CityRefId = EnumHelper.GetCityEnumInt(updateListingRequest.ListingCity), CountryRefId = EnumHelper.GetCountryEnumInt(updateListingRequest.ListingCountry), ProvinceRefId = EnumHelper.GetProvinceEnumInt(updateListingRequest.ListingProvince), ListingTypeRefId = EnumHelper.GetListingEnumInt(updateListingRequest.ListingType), }; var addListing = await _listingRepository.Update(listing, userId); var newListing = new UserListingDto { Address = addListing.Address, City = EnumHelper.GetCityEnumString((int)addListing.CityRefId), Country = EnumHelper.GetCountryEnumString((int)addListing.CountryRefId), Province = EnumHelper.GetProvinceEnumString((int)addListing.ProvinceRefId), Email = addListing.Email, FullName = addListing.FullName, LastUpdatedDate = addListing.LastUpdatedDate, ListingDate = addListing.ListingDate, ListingDescription = addListing.ListingDescription, ListingTitle = addListing.ListingTitle, PhoneNumber = addListing.PhoneNumber, ListingType = EnumHelper.GetListingEnumString((int)addListing.ListingTypeRefId), UserListingId = addListing.UserListingId, OwnerId = addListing.OwnerId }; return(newListing); } catch (Exception ex) { throw ex.InnerException; } }
public async Task <IActionResult> UpdateListing([FromBody] UpdateListingRequest request) { int userId = int.Parse(User.Claims.FirstOrDefault(x => x.Type.Equals("UserId")).Value); if (!await _listingService.UserOwnsListing(userId, request.Id)) { return(BadRequest(new { error = "You do not have sufficient permissions or the listing does not exist" })); } await _listingService.UpdateListing(request); return(Ok()); }
public async Task UpdateListing(UpdateListingRequest request) { await _listingRepository.UpdateSearchTags(request.Id, request.SearchTags); _listingRepository.UpdateListing(request.Id, request.Title, request.About, request.Price); List <SearchTagType> searchTags = await _listingRepository.GetRelatedSearchTagsForListing(request.Id); await _elastic.UpdateAsync <ElasticListing>(request.Id, u => u.Index("listings") .Doc(new ElasticListing { Title = request.Title, About = request.About, Price = request.Price, Tags = ElasticListing.SearchTagTypesToElasticTags(searchTags) })); }