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;
}
]]>