private async Task InsertKeyPhrases(KeyPhrasesRequest keyPhrasesReq, string MSCognitiveServicesAccessToken) { PTI.CognitiveServicesClient.CognitiveServicesClient objCSClient = new PTI.CognitiveServicesClient.CognitiveServicesClient(MSCognitiveServicesAccessToken); int totalPages = (int)Math.Ceiling((decimal)keyPhrasesReq.documents.Count() / (decimal)1000); for (int iPage = 0; iPage < totalPages; iPage++) { var reqBatch = keyPhrasesReq.documents.Skip(iPage * 1000).Take(1000); var tmpreq = new PTI.CognitiveServicesClient.MSCognitiveServices.KeyPhrases.KeyPhrasesRequest(); tmpreq.documents = reqBatch.ToArray(); var keyPhrasesResponse = await objCSClient.GetKeyPhrases(tmpreq); using (MoodDetector.DataAccess.MoodDetectorContext ctx = new MoodDetector.DataAccess.MoodDetectorContext()) { ctx.Configuration.AutoDetectChangesEnabled = false; foreach (var singleKeyPhraseRecord in keyPhrasesResponse.documents) { if (singleKeyPhraseRecord.keyPhrases != null && singleKeyPhraseRecord.keyPhrases.Count() > 0) { var userPost = ctx.FacebookUserPosts.Where(p => p.PostId == singleKeyPhraseRecord.id).FirstOrDefault(); foreach (var singleKeyPhrase in singleKeyPhraseRecord.keyPhrases) { if (!String.IsNullOrWhiteSpace(singleKeyPhrase)) { var objNewKeyPhraseRecord = new DataAccess.FacebookUserPostKeyPhras(); objNewKeyPhraseRecord.FacebookUserPostId = userPost.FacebookUserPostId; objNewKeyPhraseRecord.KeyPhrases = singleKeyPhrase; ctx.FacebookUserPostKeyPhrases.Add(objNewKeyPhraseRecord); } else { //TODO: Add Log to this cases } } } } ctx.SaveChanges(); } } }