private static CRPMTimeActivity CreateActivity(ProcessTranscript graph, ContactMaint contMaint, TransScriptDetail transScriptDetail, CRPMTimeActivity activityData, string meetingText = null) { int minsConsumed = 0; if (string.IsNullOrEmpty(meetingText)) { activityData.Body = GetTranscriptInfo(transScriptDetail, graph, out minsConsumed); } else { activityData.Body = meetingText; } activityData.TrackTime = true; activityData.IsBillable = false; activityData.Summary = transScriptDetail.Title; activityData.Subject = transScriptDetail.Title; activityData.TimeSpent = minsConsumed == 0 ? 1 : minsConsumed; activityData = contMaint.Activities.Update(activityData); activityData.ProjectID = 0; activityData = contMaint.Activities.Update(activityData); contMaint.Persist(); return(activityData); }
public static string GetTranscriptInfo(TransScriptDetail detail, ProcessTranscript graph, out int minutesConsumed) { minutesConsumed = 0; StringBuilder sb = new StringBuilder(); FirefliesConfig firefliesConfig = graph.config.Select(); string userid = string.Empty; if (firefliesConfig != null && (!string.IsNullOrEmpty(firefliesConfig.APIEndPoint) && !string.IsNullOrEmpty(firefliesConfig.Apikey))) { var variables = new { id = detail.Id }; var flAuthTranRqu = new GraphQLRequest { Query = @"query ($id: String!) { transcript (id: $id){ id title user{ minutes_consumed } sentences { index text raw_text start_time end_time speaker_id } } } ", Variables = variables }; var graphQLClient = new GraphQLClient(firefliesConfig.APIEndPoint); graphQLClient.DefaultRequestHeaders.Add("Authorization", String.Format("Bearer {0}", firefliesConfig.Apikey)); var graphQLTranResponse = graphQLClient.PostAsync(flAuthTranRqu).Result; var transcript = graphQLTranResponse.GetDataFieldAs <Transcript>("transcript"); var sentences = transcript.sentences; foreach (Sentence sentence in sentences) { sb.Append("- Speaker(" + sentence.speaker_id + "):"); sb.Append(sentence.text + "." + "<br>"); } minutesConsumed = transcript.user.minutes_consumed; } return(sb.ToString()); }
private static string CreateMTActivity(ProcessTranscript graph, ContactMaint contMaint, string emailContact, TransScriptDetail transScriptDetail) { contMaint.Clear(); contMaint.Contact.Current = PXSelect <Contact, Where <Contact.eMail, Equal <Required <Contact.eMail> > > > .Select(contMaint, emailContact); var activityData = contMaint.Activities.Insert(); activityData.Type = "MT"; activityData = CreateActivity(graph, contMaint, transScriptDetail, activityData); return(activityData.Body); }
protected virtual IEnumerable tranScriptDetail() { int i = 0; foreach (var row in transcriptdetail.Cache.Cached) { i++; yield return(row); } if (i == 0) { FirefliesConfig firefliesConfig = config.Select(); string userid = string.Empty; if (firefliesConfig != null && (!string.IsNullOrEmpty(firefliesConfig.APIEndPoint) && !string.IsNullOrEmpty(firefliesConfig.Apikey))) { var flAuthRequest = new GraphQLRequest { Query = @" { user { user_id email recent_transcript } } " }; var graphQLClient = new GraphQLClient(firefliesConfig.APIEndPoint); graphQLClient.DefaultRequestHeaders.Add("Authorization", String.Format("Bearer {0}", firefliesConfig.Apikey)); var graphQLResponse = graphQLClient.PostAsync(flAuthRequest).Result; if (graphQLResponse.Errors == null) { var oUser = graphQLResponse.GetDataFieldAs <User>("user"); if (!string.IsNullOrEmpty(oUser.user_id)) { var variables = new { login = oUser.user_id }; var flAuthTranRqu = new GraphQLRequest { Query = @"query ($login: String!) { transcripts (user_id: $login){ id title date transcript_url participants } } ", Variables = variables }; var graphQLTranResponse = graphQLClient.PostAsync(flAuthTranRqu).Result; var transcripts = graphQLTranResponse.GetDataFieldAs <Transcript[]>("transcripts"); foreach (Transcript transcript in transcripts) { var sentences = transcript.sentences; string participants = String.Join(",", transcript.participants); TransScriptDetail row = new TransScriptDetail(); row.Id = transcript.id; row.Title = transcript.title; row.Date = Epoch2UTCNow(transcript.date); row.Transcripturl = transcript.transcript_url; row.Participants = participants; transcriptdetail.Cache.Insert(row); yield return(row); } } } } } }