Exemple #1
0
        public ActionResult Sell(ListItemRequest request)
        {
            if (ModelState.IsValid)
            {
                var auction = Mapper.DynamicMap <Auction>(request);

                if (request.Image != null)
                {
                    string imageUrl, thumbnailUrl;

                    new ImageRepository(Server.MapPath(AuctionImagesFolder), Url.Content(AuctionImagesFolder))
                    .SaveImage(request.Image.FileName, request.Image.InputStream,
                               out imageUrl, out thumbnailUrl);

                    auction.ImageUrl     = imageUrl;
                    auction.ThumbnailUrl = thumbnailUrl;
                }

                _repository.Add(auction);
                _repository.SaveChanges();

                TempData.SuccessMessage("Congratulations, your item has been listed for auction!");

                return(RedirectToAction("Details", "Auctions", new { id = auction.Id }));
            }

            TempData.ErrorMessage("Error listing item - please make sure that you've filled in everything correctly! ");

            return(View("Sell", request));
        }
Exemple #2
0
        public static async Task <StockXApiResult <ListItemResponse> > MakeListing(this StockXAccount stockAuth, string RefUrl, string skuUuid, int Amount, string ExpiresDate)
        {
            using (var httpClient = stockAuth.GetHttpClient())
            {
                using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://stockx.com/api/portfolio?a=ask"))
                {
                    request.Headers.TryAddWithoutValidation("authority", "stockx.com");
                    request.Headers.TryAddWithoutValidation("origin", "https://stockx.com");
                    request.Headers.TryAddWithoutValidation("authorization", "Bearer " + stockAuth.Token);
                    request.Headers.TryAddWithoutValidation("content-type", "application/json");
                    request.Headers.TryAddWithoutValidation("appos", "web");
                    request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
                    request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36");
                    request.Headers.TryAddWithoutValidation("dnt", "1");
                    request.Headers.TryAddWithoutValidation("appversion", "0.1");
                    request.Headers.TryAddWithoutValidation("accept", "*/*");
                    request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-origin");
                    request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
                    request.Headers.TryAddWithoutValidation("referer", RefUrl.Replace("//stockx.com/", "//stockx.com/sell/"));

                    request.Headers.TryAddWithoutValidation("accept-encoding", "gzip, deflate, br");
                    request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");
                    var NewListing = new ListItemRequest()
                    {
                        Action        = "ask",
                        PortfolioItem = new ListItemRequestPortfolioItem()
                        {
                            LocalAmount   = Amount,
                            ExpiresAt     = ExpiresDate,
                            SkuUuid       = skuUuid,
                            LocalCurrency = stockAuth.Currency,
                            Meta          = new ListItemRequestMeta
                            {
                                DiscountCode = "",
                            }
                        }
                    };
                    var PostJson = JsonConvert.SerializeObject(NewListing);
                    request.Content = new StringContent(PostJson);
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                    var response = await httpClient.SendAsync(request);

                    var txt = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode > 399)
                    {
                        return(new StockXApiResult <ListItemResponse>()
                        {
                            Code = response.StatusCode,
                            ResultText = txt
                        });
                    }

                    var settings = new JsonSerializerSettings
                    {
                        NullValueHandling     = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
                    return(new StockXApiResult <ListItemResponse>()
                    {
                        RO = JsonConvert.DeserializeObject <ListItemResponse>(txt, settings),
                        Code = response.StatusCode,
                        ResultText = txt
                    });
                }
            }
        }