public async static Task <Product> CreateProductIfNotExists(string id)
        {
            var     getRequest = new ProductGetRequest(id);
            Product getProduct = null;

            try
            {
                var getResponse = await TestHarness.client().Execute(getRequest);

                getProduct = getResponse.Result <Product>();
            }
            catch (PayPalHttp.HttpException httpEx)
                when(httpEx.GetError() != null && httpEx.GetError().Name == "RESOURCE_NOT_FOUND")
                {
                    getProduct = null;
                }
            if (getProduct == null)
            {
                var request = new ProductsCreateRequest();
                request.Prefer("return=representation");
                request.RequestBody(buildRequestBody(id));
                var createResponse = await TestHarness.client().Execute(request);

                getProduct = createResponse.Result <Product>();
            }
            return(getProduct);
        }
        public async Task <int> Create(ProductsCreateRequest req)
        {
            var product = new Product()
            {
                Price               = req.Price,
                OriginalPrice       = req.OriginalPrice,
                Stock               = req.Stock,
                ViewCount           = 0,
                DateCreated         = DateTime.Now,
                ProductTranslations = new List <ProductTranslation>()
                {
                    new ProductTranslation()
                    {
                        Name           = req.Name,
                        Description    = req.Description,
                        Details        = req.Details,
                        SeoDescription = req.SeoDescription,
                        SeoAlias       = req.SeoAlias,
                        SeoTitle       = req.SeoTitle,
                        LanguageId     = req.LanguageId
                    }
                }
            };

            _context.Products.Add(product);
            return(await _context.SaveChangesAsync());
        }
        public async static Task <HttpResponse> CreateProduct(string id = null)
        {
            var request = new ProductsCreateRequest();

            request.Prefer("return=representation");
            request.RequestBody(buildRequestBody(id));
            return(await TestHarness.client().Execute(request));
        }