public async Task OnGetAsync() { var username = UserManager.GetUserName(User); ProgrammaticFilter programmaticFilter = ProgrammaticFilteringService.getProgrammaticFilter(username); url = Constants.EmbedUrl + programmaticFilter.EmbedId; var domoHttpClient = new DomoHttpClient(); var accessToken = await domoHttpClient.GetAccessTokenAsync(programmaticFilter.ClientId, programmaticFilter.ClientSecret); embedToken = await domoHttpClient.GetEmbedToken(accessToken, programmaticFilter.EmbedId, programmaticFilter.Filter); }
public async Task OnGetAsync() { var qTimeFilter = HttpContext.Request.Query["tf"].ToString(); var qAnyDayFilter = HttpContext.Request.Query["ad"].ToString(); var qFromDateFilter = HttpContext.Request.Query["sfd"].ToString(); var qToDateFilter = HttpContext.Request.Query["std"].ToString(); var qCampaignFilter = HttpContext.Request.Query["cp"].ToString(); var qCallTypeFilter = HttpContext.Request.Query["ct"].ToString(); var qSkillFilter = HttpContext.Request.Query["s"].ToString(); var qAgentGroupFilter = HttpContext.Request.Query["ag"].ToString(); var qAgentFilter = HttpContext.Request.Query["a"].ToString(); var qCampaignTypeFilter = HttpContext.Request.Query["cpt"].ToString(); var timeFrameFilter = ""; var anyDayFilter = ""; var dateRangeFilter = ""; var campaignFilter = ""; var callTypeFilter = ""; var skillFilter = ""; var agentGroupFilter = ""; var agentFilter = ""; var campaignTypeFilter = ""; StringBuilder sbFilters = new StringBuilder(); StringBuilder sbSplitFilter = new StringBuilder(); var filters = ""; var user = await _userManager.FindByNameAsync(User.Identity.Name); var clientDashboard = _applicationUserDataAccessLayer.GetClientDashboardByClientIdAndDashboardType(user.ClientId, "executive"); //var username = UserManager.GetUserName(User); //ProgrammaticFilter programmaticFilter = ProgrammaticFilteringService.getProgrammaticFilter(username); //programmaticFilter.EmbedId = "eg1Nj"; url = Constants.EmbedUrl + clientDashboard.DashboardEmbedId; var domoHttpClient = new DomoHttpClient(); if (qTimeFilter != "") { DateTime date = DateTime.UtcNow.Date; if (qTimeFilter == "today") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\": \"EQUALS\",\"values\": [\"" + date.ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "yesterday") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\": \"EQUALS\",\"values\": [\"" + date.AddDays(-1).Date.ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "last7days") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + date.AddDays(-7).ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + date.ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "last30days") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + date.AddDays(-30).ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + date.ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "week") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + date.AddDays(-1 * (int)(DateTime.Today.DayOfWeek)).ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + date.ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "month") { DateTime firstDayOfMonth = new DateTime(date.Year, date.Month, 1); timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + firstDayOfMonth.ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + firstDayOfMonth.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "previousweek") { timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + date.AddDays(-(int)DateTime.Now.DayOfWeek - 6).ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + date.AddDays(-(int)DateTime.Now.DayOfWeek).ToString("yyyy-MM-dd") + "\"]}"; } else if (qTimeFilter == "previousmonth") { DateTime firstDayOfLastMonth = new DateTime(date.Year, date.AddMonths(-1).Month, 1); timeFrameFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + firstDayOfLastMonth.ToString("yyyy-MM-dd") + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + firstDayOfLastMonth.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + "\"]}"; } } if (qAnyDayFilter != "") { anyDayFilter = "[{\"column\":\"TimeStamp\",\"operator\": \"EQUALS\",\"values\": [\"" + qAnyDayFilter + "\"]}"; } if (qFromDateFilter != "" && qToDateFilter != "") { dateRangeFilter = "[{\"column\":\"TimeStamp\",\"operator\":\"GREAT_THAN_EQUALS_TO\",\"values\":[\"" + qFromDateFilter + "\"]},{\"column\":\"TimeStamp\",\"operator\":\"LESS_THAN_EQUALS_TO\",\"values\":[\"" + qToDateFilter + "\"]}"; } if (qCampaignFilter != "null" && qCampaignFilter != "") { string[] campaigns = qCampaignFilter.Split(","); foreach (var item in campaigns) { sbSplitFilter.Append("\"" + item + "\","); } campaignFilter = "{\"column\":\"Campaign\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qCallTypeFilter != "null" && qCallTypeFilter != "") { sbSplitFilter.Clear(); string[] callTypes = qCallTypeFilter.Split(","); foreach (var item in callTypes) { sbSplitFilter.Append("\"" + item + "\","); } callTypeFilter = "{\"column\":\"CALL_TYPE\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qSkillFilter != "null" && qSkillFilter != "") { sbSplitFilter.Clear(); string[] skills = qSkillFilter.Split(","); foreach (var item in skills) { sbSplitFilter.Append("\"" + item + "\","); } skillFilter = "{\"column\":\"Skill\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qAgentGroupFilter != "null" && qAgentGroupFilter != "") { string[] agentGroups = qAgentGroupFilter.Split(","); foreach (var item in agentGroups) { sbSplitFilter.Append("\"" + item + "\","); } agentGroupFilter = "{\"column\":\"AGENT_GROUP\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qAgentFilter != "null" && qAgentFilter != "") { string[] agents = qAgentFilter.Split(","); foreach (var item in agents) { sbSplitFilter.Append("\"" + item + "\","); } agentFilter = "{\"column\":\"Agent\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qCampaignTypeFilter != "null" && qCampaignTypeFilter != "") { string[] campaignTypes = qCampaignTypeFilter.Split(","); foreach (var item in campaignTypes) { sbSplitFilter.Append("\"" + item + "\","); } campaignTypeFilter = "{\"column\":\"CAMPAIGN_TYPE\",\"operator\": \"IN\",\"values\": [" + sbSplitFilter.ToString().Remove(sbSplitFilter.Length - 1, 1) + "]}"; } if (qTimeFilter != "" && qAnyDayFilter == "" && qFromDateFilter == "" && qToDateFilter == "") { sbFilters.Append(timeFrameFilter + ","); } if (qAnyDayFilter != "") { sbFilters.Append(anyDayFilter + ","); } if (qFromDateFilter != "" && qToDateFilter != "") { sbFilters.Append(dateRangeFilter + ","); } if (qCampaignFilter != "null" && qCampaignFilter != "") { sbFilters.Append(campaignFilter + ","); } if (qCallTypeFilter != "" && qCallTypeFilter != "null") { sbFilters.Append(callTypeFilter + ","); } if (qSkillFilter != "" && qSkillFilter != "null") { sbFilters.Append(skillFilter + ","); } if (qAgentGroupFilter != "" && qAgentGroupFilter != "null") { sbFilters.Append(agentGroupFilter + ","); } if (qAgentFilter != "" && qAgentFilter != "null") { sbFilters.Append(agentFilter + ","); } if (qCampaignTypeFilter != "" && qCampaignTypeFilter != "null") { sbFilters.Append(campaignTypeFilter + ","); } if (sbFilters.Length > 0) { filters = sbFilters.ToString().Remove(sbFilters.Length - 1, 1) + "]"; } //programmaticFilter.Filter = filters; var accessToken = await domoHttpClient.GetAccessTokenAsync(clientDashboard.DomoClientID, clientDashboard.DomoClientSecretID); embedToken = await domoHttpClient.GetEmbedToken(accessToken, clientDashboard.DashboardEmbedId, filters); }