示例#1
0
        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);
        }