Пример #1
0
        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"));
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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());
        }
Пример #4
0
        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)
            }));
        }