public void AProductsDetailsWithStoreInfoTest() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; KrogerClient client = new KrogerClient(); ProductsDetailsResponse response = client.ProductsDetailsAsync( new ProductsDetailsRequest() { UPCs = new List <string>() { "0001111087720", "0001111060828", "0001111060826" }, FilterBadProducts = false, StoreId = "00122", DivisionId = "701" } ).Result; response = client.ProductsDetailsAsync( new ProductsDetailsRequest() { UPCs = new List <string>() { "0001111087720", "0001111060828", "0001111060826" }, FilterBadProducts = false, StoreId = "00122", DivisionId = "701" } ).Result; Assert.NotNull(response.Products); Assert.That(response.Products.Any()); }
public async Task KrogerClientGetsRefreshToken() { var krogerConfig = KrogerConfig.FromFile("../../../kroger_secrets.json"); var client = new KrogerClient(krogerConfig); await client.RefreshToken(); }
public void ProductsDetailsTest() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; KrogerClient client = new KrogerClient(); ProductsDetailsResponse response = client.ProductsDetailsAsync( new ProductsDetailsRequest() { UPCs = new List <string>() { "0001111087720", "0001111060828", "0001111060826" }, FilterBadProducts = false } ).Result; response = client.ProductsDetailsAsync( new ProductsDetailsRequest() { UPCs = new List <string>() { "0001111087720", "0001111060828", "0001111060826" }, FilterBadProducts = false } ).Result; }
private async Task <Context> InitializeContextAsync(KrogerClient krogerClient, CancellationToken token) { var userEntity = await _entityRepository.GetOrAddUserAsync(_settings.Email, token); var commandEntity = await _entityRepository.StartCommandAsync(userEntity.Id, token); return(new Context(krogerClient, userEntity, commandEntity, token)); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "KrogerCompare/StoreSearch/")] HttpRequestMessage req, TraceWriter log) { log.Info("C# HTTP trigger function processed a request."); KrogerClient client = Startup.KrogerClient; StoreSearchRequest storeSearchRequest = JsonConvert.DeserializeObject <StoreSearchRequest>(req.Content.ReadAsStringAsync().Result); StoreSearchResponse storeSearchResponse = await client.StoreSearchAsync(storeSearchRequest); return(req.CreateResponse(HttpStatusCode.OK, storeSearchResponse)); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log) { KrogerClient krogerClient = Startup.KrogerClient; StoreInfoProductsDetailsRequest storesProductsRequests = JsonConvert.DeserializeObject <StoreInfoProductsDetailsRequest>(req.Content.ReadAsStringAsync().Result); Task <ProductsDetailsResponse>[] productsDetailsResponses = new Task <ProductsDetailsResponse> [storesProductsRequests.RequestStoreInfos.Length]; for (int a = 0; a < storesProductsRequests.RequestStoreInfos.Length; a++) { StoreIdentifier request = storesProductsRequests.RequestStoreInfos[a]; productsDetailsResponses[a] = krogerClient.ProductsDetailsAsync( new ProductsDetailsRequest() { DivisionId = request.DivisionId, FilterBadProducts = true, StoreId = request.StoreId, UPCs = storesProductsRequests.UPCs }); } await Task.WhenAll(productsDetailsResponses); Dictionary <string, ProductStorePrice> productStorePrices = new Dictionary <string, ProductStorePrice>(); List <StoreIdentifier> noProductsReturned = new List <StoreIdentifier>(); for (int a = 0; a < productsDetailsResponses.Length; a++) { ProductsDetailsResponse result = productsDetailsResponses[a].Result; if (result.TotalCount == 0) { noProductsReturned.Add(storesProductsRequests.RequestStoreInfos[a]); } foreach (ProductDetail product in result.Products) { if (!productStorePrices.ContainsKey(product.UPC)) { productStorePrices[product.UPC] = Startup.Mapper.Map <ProductStorePrice>(product); } productStorePrices[product.UPC].StorePrices.Add(Startup.Mapper.Map <StorePrice>(product)); StoreIdentifier si = new StoreIdentifier() { DivisionId = storesProductsRequests.RequestStoreInfos[a].DivisionId, StoreId = storesProductsRequests.RequestStoreInfos[a].StoreId }; productStorePrices[product.UPC].StorePrices.Last().StoreIdentifier = si; } } return(req.CreateResponse(HttpStatusCode.OK, new { ProductStorePrices = productStorePrices.Values, NoProductsReturned = noProductsReturned })); }
public Context( KrogerClient client, UserEntity user, CommandEntity command, CancellationToken token) { Client = client; User = user; Command = command; Token = token; GetReceipts = new Dictionary <ReceiptId, GetReceiptEntity>(); AlreadyComplete = 0; }
public void SeachAllTest() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; KrogerClient client = new KrogerClient(); var response = client.SearchAllAsync(new SearchAllRequest() { Query = "bananas" }).Result; Assert.NotNull(response); Assert.NotNull(response.Upcs); Assert.That(response.Upcs.Any(x => x.Length > 0)); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log) { KrogerClient krogerClient = Startup.KrogerClient; SearchAllRequest searchAllRequest = JsonConvert.DeserializeObject <SearchAllRequest>(req.Content.ReadAsStringAsync().Result); SearchAllResponse searchAllResponse = krogerClient.SearchAll(searchAllRequest); ProductsDetailsResponse productsDetailsResponse = await krogerClient.ProductsDetailsAsync(new ProductsDetailsRequest() { UPCs = searchAllResponse.Upcs }); return(req.CreateResponse(HttpStatusCode.OK, new { productsDetailsResponse.Products } )); }
static Startup() { ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12; MapperConfiguration mapperConfiguration = new MapperConfiguration(cfg => { cfg.CreateMap <ProductDetail, StorePrice>(); cfg.CreateMap <ProductDetail, ProductStorePrice>(); } ); Mapper = mapperConfiguration.CreateMapper(); KrogerClient = new KrogerClient(); }
public void RestSharpTest() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; KrogerClient client = new KrogerClient(); var r = client.ProductRestSharp(new ProductsDetailsRequest() { UPCs = new List <string>() { "0001111087720", "0001111060828", "0001111060826" }, FilterBadProducts = false }); Assert.NotNull(r.Products); Assert.That(r.Products.Any()); }
public void StoreSearchTest() { System.Net.ServicePointManager.Expect100Continue = false; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; KrogerClient client = new KrogerClient(); var response = client.StoreSearchAsync("kansas city").Result; var response2 = client.StoreSearchAsync("kansas city").Result; Assert.NotNull(response); Assert.NotNull(response2); Assert.NotNull(response.Fuel); Assert.NotNull(response2.Fuel); Assert.NotNull(response.Stores); Assert.NotNull(response2.Stores); Assert.That(response.Fuel.Any(x => x.DivisionNumber != null)); Assert.That(response2.Fuel.Any(x => x.DivisionNumber != null)); Assert.That(response.Stores.Any(x => x.StoreNumber != null)); Assert.That(response2.Stores.Any(x => x.StoreNumber != null)); }
public static async Task Main(string[] args) { try { IConfiguration config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); var appSettings = config.GetSection("AppSettings"); var pathToAppSecrets = appSettings["PathToAppSecrets"]; var sheetId = appSettings["SheetId"]; var sheetName = appSettings["SheetName"]; var pathToGecko = appSettings["PathToGecko"]; var pathToSecrets = appSettings["PathToSecret"]; var pathToLoginScript = appSettings["PathToLoginScript"]; var pathToCheckoutItemScript = appSettings["PathToCheckoutItemScript"]; var pathToKrogerConfig = appSettings["PathToKrogerSecret"]; AppSecrets secrets = Newtonsoft.Json.JsonConvert.DeserializeObject <AppSecrets>(File.ReadAllText(pathToSecrets)); KrogerConfig krogerConfig = KrogerConfig.FromFile(pathToKrogerConfig); KrogerClient krogerClient = new KrogerClient(krogerConfig); GoogleSheetHelper sheetHelper = new GoogleSheetHelper(pathToAppSecrets, "GroceryApp"); var items = await sheetHelper.GetRange(sheetId, $"{sheetName}!A:B"); var groceryItems = GetGroceryItems(items.Values); var kitems = groceryItems.Select(m => m.KrogerItemFromGroceryItem()); await krogerClient.RefreshToken(); krogerConfig.ToFile(pathToKrogerConfig); await krogerClient.Add(kitems.ToList()); Console.WriteLine("All done"); } catch (Exception ex) { Console.WriteLine($"ERROR : {ex.Message}"); } Console.WriteLine("End of script"); Console.ReadLine(); }