public async Task UpdateScreenshotsAsync(Product product, IStatus status) { var requestProductPageTask = await statusController.CreateAsync(status, "Request product page containing screenshots information"); var productPageUri = string.Format(getUpdateUriDelegate.GetUpdateUri(Entity.Screenshots), product.Url); var productPageContent = await networkController.GetResourceAsync(requestProductPageTask, productPageUri); await statusController.CompleteAsync(requestProductPageTask); var extractScreenshotsTask = await statusController.CreateAsync(status, "Exract screenshots from the page"); var extractedProductScreenshots = itemizeScreenshotsDelegates.Itemize(productPageContent); if (extractedProductScreenshots == null) { return; } var productScreenshots = new ProductScreenshots { Id = product.Id, Title = product.Title, Uris = new List <string>(extractedProductScreenshots) }; await statusController.CompleteAsync(extractScreenshotsTask); var updateProductScreenshotsTask = await statusController.CreateAsync(status, "Add product screenshots"); await screenshotsDataController.UpdateAsync(productScreenshots, updateProductScreenshotsTask); await statusController.CompleteAsync(updateProductScreenshotsTask); }
public async Task <bool> AuthorizedAsync(IStatus status) { var getUserDataTask = await statusController.CreateAsync(status, "Get userData.json"); var userDataString = await networkController.GetResourceAsync(getUserDataTask, Uris.Paths.Authentication.UserData); if (string.IsNullOrEmpty(userDataString)) { return(false); } var userData = serializationController.Deserialize <Models.UserData>(userDataString); await statusController.CompleteAsync(getUserDataTask); return(userData.IsLoggedIn); }
public async Task <string> RequestPageAsync( string uri, IDictionary <string, string> parameters, int page, IStatus status) { if (!parameters.Keys.Contains(pageQueryParameter)) { parameters.Add(pageQueryParameter, page.ToString()); } parameters[pageQueryParameter] = page.ToString(); var pageResponse = await networkController.GetResourceAsync(status, uri, parameters); return(pageResponse); }