コード例 #1
0
ファイル: Program.cs プロジェクト: chandrapavan/CodeChallenge
        public static async Task <CategoryResponse> GetCategoriesAsync(string token)
        {
            var url = WebApiUrl.GetConnectionStringForCategories(token);
            var categoryResponse = await RestSharpImp.CallApiGenericGetMethod(new CategoryRequestResponseInfo(), url);

            return(categoryResponse);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: chandrapavan/CodeChallenge
        public static async Task <List <Subscribers> > GetSubscribersAsync(string token)
        {
            var url = WebApiUrl.GetConnectionStringForSubscribers(token);
            var subscribersResponse = await RestSharpImp.CallApiGenericGetMethod(new SubscribersRequestResponseInfo(), url);

            return(subscribersResponse.data.Select(x => new Subscribers {
                Id = x.id, MagazineIds = x.magazineIds
            }).ToList());
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: chandrapavan/CodeChallenge
        public static async Task <AnswerResponse> PostAnswerToAPIAsync(List <string> Ids, string token)
        {
            var url           = WebApiUrl.GetConnectionStringForAnswer(token);
            var answerRequest = new AnswerRequest()
            {
                subscribers = Ids
            };
            var payload  = new AnswerRequestResponseInfo(answerRequest);
            var response = await RestSharpImp.CallApiGenericPostMethod(payload, url);

            return(response);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: chandrapavan/CodeChallenge
        public static async Task MyAsyncFunc()
        {
            var url           = WebApiUrl.GetConnectionStringForToken();
            var tokenResponse = await RestSharpImp.CallApiGenericGetMethod(new TokenRequestResponseInfo(), url);

            if (!tokenResponse.Success)
            {
                return;
            }
            var token = tokenResponse.Token;
            var magazineIdsByCategories = GetMagazineIdsByCategoriesAsync(await GetCategoriesAsync(token), token);              // we get categories with associated magazine lists
            var Ids            = GetIdsSubscribedEachCategory(await GetSubscribersAsync(token), await magazineIdsByCategories); // Ids of customers who subscribed for atleast one magazine of each category
            var answerResponse = await PostAnswerToAPIAsync(Ids, token);                                                        // sends the response to api

            PrintPropertiesOfAnswerObject(answerResponse);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: chandrapavan/CodeChallenge
        public static async Task <List <MagazineIdsByCategory> > GetMagazineIdsByCategoriesAsync(CategoryResponse categories, string token)
        {
            var magazineIdsByCategories = new List <MagazineIdsByCategory>();

            foreach (var category in categories.Data)
            {
                var url = WebApiUrl.GetConnectionStringForMagazines(token, category);
                var magazineResponse = await RestSharpImp.CallApiGenericGetMethod(new MagazineRequestResponseInfo(), url);

                var magazineIdByCategory = magazineResponse.Data.GroupBy(x => x.Category).
                                           Select(x => new MagazineIdsByCategory
                {
                    Name = x.Key,
                    Ids  = x.Select(z => z.Id).ToList()
                }).FirstOrDefault();

                magazineIdsByCategories.Add(magazineIdByCategory);
            }
            return(magazineIdsByCategories);
        }