e.Trim().ToLower()).ToArray(); return string.Join(",",((ResultField[])Model.Headers).Where(e => !string.IsNullOrEmpty(e.Tag) && fields.Contains(e.Identifier.ToLower())).Select(e => e.Tag).Distinct().ToArray()); } string SelectedInsightsFields() { string[] fields = ((string)Model.Fields).Split(',').Select(e => e.Trim().ToLower()).ToArray(); string strQuery = string.Join(",",((ResultField[])Model.Headers).Where(e => !string.IsNullOrEmpty(e.Tag) && !defaultFields().Contains(e.Tag) && fields.Contains(e.Identifier.ToLower())).Select(e => e.Tag).Distinct().ToArray()); return strQuery.Length > 0 ? ",insights.metric(" + strQuery + ")" : ""; } string SelectedDefaultFields() { string[] fields = ((string)Model.Fields).Split(',').Select(e => e.Trim().ToLower()).ToArray(); string strQuery = string.Join(",",((ResultField[])Model.Headers).Where(e => !string.IsNullOrEmpty(e.Tag) && defaultFields().Contains(e.Tag) && fields.Contains(e.Identifier.ToLower())).Select(e => e.Tag).Distinct().ToArray()); return strQuery.Length > 0 ? "," + strQuery : ""; } string[] defaultFields(){ return new string[] { "permalink_url","id","created_time","message","from", "from{name,name_with_location_descriptor,fan_count,insights.metric(page_follows)}", "attachments","full_picture","picture","shares", "comments.filter(stream).limit(0).summary(true)", "likes.limit(0).summary(true)", "reactions.limit(0).summary(true)", "reactions.type(LOVE).limit(0).summary(total_count).as(reactions_love)", "reactions.type(WOW).limit(0).summary(total_count).as(reactions_wow)", "reactions.type(HAHA).limit(0).summary(total_count).as(reactions_haha)", "reactions.type(SAD).limit(0).summary(total_count).as(reactions_sad)", "reactions.type(ANGRY).limit(0).summary(total_count).as(reactions_angry)" }; } string FetchIdsBatch() { string[] lines = ((string)Model.Id).Trim().Split('\n').Select(e => e.Trim()).Where(e => !string.IsNullOrEmpty(e)).ToArray(); return string.Join(",",lines.Select(e => e).ToArray()); } string DatePagination() { DateTime dateLbound = Model.DateInterval.StartDate.AddDays(Model.PageCursor.PageSize * Model.PageCursor.Page); DateTime dateUbound = dateLbound.AddDays(Model.PageCursor.PageSize); DateTime dateHandleFullPage = Model.DateInterval.EndDate.AddDays(0) < dateUbound ? Model.DateInterval.EndDate.AddDays(1) : dateUbound; DateTime dateHandleToday = dateHandleFullPage < DateTime.Now.AddDays(1) ? dateHandleFullPage.AddDays(0) : DateTime.Now.AddDays(1); return "&since=" + dateLbound.ToString("yyyy-MM-dd") + "&until=" + dateHandleToday.ToString("yyyy-MM-dd"); } string PeriodParameters() { string stringReturn = ""; if(Model.DateInterval.StartDate != null && Model.DateInterval.EndDate != null && Model.PageCursor.Page == 0) stringReturn = "&since=" + ((DateTime)Model.DateInterval.StartDate).UnixTimeStampUtc() + "&until=" + ((DateTime)Model.DateInterval.EndDate.AddDays(1)).UnixTimeStampUtc(); return stringReturn; } string bool2dim() { return (Model.Id.Split('\n').Length > 1 ? "$.*" : "$"); } string ExtractPageId() { if(!Model.Id.Contains("_")) return Model.Id; Regex regex = new Regex(@"^\d+"); Match match = regex.Match(Model.Id); return match.Value; } string GetSelectValueInfo() { string url = !string.IsNullOrEmpty(Model.Inp2) ? "(" + Model.Inp2 + ")" : string.Empty; return Model.Inp1 + " " + url; } ]]>