private FilterResult FilterData(UserExperienceService svc, UserExperienceSearchViewModel viewModel, bool isDownload) { var grid = svc.SearchUsers(viewModel.GridConditions, viewModel.FilterConditions, viewModel.FilterOperands); var aaData = grid.Data.Select(d => new string[] { $"{d.SummaryDayHour.ToShortDateString()} {d.SummaryDayHour.ToString("t")}", isDownload ? String.Format("{0} ({1})", d.Search, d.SearchArtifactId) : String.Format(@"<a onclick=""javascript:window.open('/Relativity/Case/History/QueryTextPopup.aspx?AppID={0}&AuditID={1}&AuditEmement=28','HistoryPopup','height=600,width=800,location=no,scrollbars=no,menubar=no,toolbar=no,status=no,resizable=yes');"" href=""#"">{2}</a>", d.CaseArtifactId, d.AuditId, String.Format("{0} ({1})", d.Search, d.SearchArtifactId)), $"{d.User} ({d.UserArtifactId})", $"{d.PercentLongRunning}%", d.IsComplex ? "Complex" : "Simple", d.TotalRunTime.ToString(), d.AverageRunTime.ToString(), d.TotalRuns.ToString(), d.QoSHourID.ToString(), d.IsActiveWeeklySample ? "Yes" : "No" }).ToArray(); return(new FilterResult() { Data = aaData, TotalRecordCount = grid.Count }); }
private FilterResult FilterData(UserExperienceService svc, UserExperienceHoursViewModel viewModel, bool IsDownload) { var grid = svc.WorkspaceSearches(viewModel.GridConditions, viewModel.FilterConditions, viewModel.FilterOperands); var aaData = grid.Data.Select(d => new string[] { //Hour String.Format("{0} {1}", d.SummaryDayHour.ToShortDateString(), d.SummaryDayHour.ToString("t")), //Workspace IsDownload ? d.Workspace : String.Format(SearchLinkFormat, d.WorkspaceId, String.Empty, d.Workspace), //Search IsDownload ? $"{d.Search} ({d.SearchId})" : string.Format(SearchLinkFormat, d.WorkspaceId, $"&Search={d.SearchId}", $"{d.Search} ({d.SearchId})"), d.IsComplex ? "Complex" : "Simple", d.TotalRunTime.ToString(), d.AverageRunTime.ToString(), d.TotalRuns.ToString(), d.IsActiveWeeklySample ? "Yes" : "No" }).ToArray(); return(new FilterResult() { Data = aaData, TotalRecordCount = grid.Count }); }
public HttpResponseMessage GenerateCSV() { //Initialize service and model properties var connectionFactory = new HelperConnectionFactory(ConnectionHelper.Helper()); var sqlRepo = new SqlServerRepository(connectionFactory); var svc = new UserExperienceService(sqlRepo); var qualityIndicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(new ConfigurationRepository(connectionFactory))); var model = PopulateServerModelSettings(); model.GridConditions.StartRow = 1; model.GridConditions.EndRow = int.MaxValue; //Get the data var fetchedData = FetchFileData(svc, model, qualityIndicatorService); //Serialize response var message = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(fetchedData) }; message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/csv"); message.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = $"UserExperienceServers-{DateTime.Now:yyyyMMdd-HHmmss}.csv" }; return(message); }
private FilterResult FilterData(UserExperienceService svc, UserExperienceServerViewModel viewModel, bool isDownload, IQualityIndicatorService qualityIndicatorService) { var grid = svc.ServerWorkspaces(viewModel.GridConditions, viewModel.FilterConditions, viewModel.FilterOperands); var aaData = grid.Data.Select(d => new string[] { $"{d.SummaryDayHour.ToShortDateString()} {d.SummaryDayHour:t}", isDownload ? $"{d.Server} ({d.ServerId})" : string.Format(HoursLinkFormat, d.ServerId, string.Empty, $"{d.Server} ({d.ServerId})"), isDownload ? d.Score.ToString() :$"<span class='{qualityIndicatorService.GetCssClassForScore(d.Score, false)}'>{d.Score}</span>", isDownload ? $"{d.Workspace} ({d.WorkspaceId})" : string.Format(HoursLinkFormat, d.ServerId, $"&Workspace={d.WorkspaceId}", $"{d.Workspace} ({d.WorkspaceId})"), d.TotalLongRunning.ToString(), d.TotalUsers.ToString(), d.TotalSearchAudits.ToString(), d.TotalNonSearchAudits.ToString(), d.TotalAudits.ToString(), d.TotalExecutionTime.ToString(), d.IsActiveWeeklySample ? "Yes" : "No" }).ToArray(); return(new FilterResult() { Data = aaData, TotalRecordCount = grid.Count }); }
public UserController(UserInfoService service, UserManager <IdentityUser> userManager, UserExperienceService userExperienceService, UserLanguageService userLanguageService, UserEducationService userEducationService, UserCertificationService userCertificationService, JobAdvertService jobAdvertService) { _service = service; _userManager = userManager; _userExperienceService = userExperienceService; _userLanguageService = userLanguageService; _userEducationService = userEducationService; _userCertificationService = userCertificationService; _jobAdvertService = jobAdvertService; }
public void SetUp() { this.auditServiceMock = new Mock <IServerAuditService>(); this.poisonWaitRepositoryMock = new Mock <IPoisonWaitRepository>(); this.searchAuditBatchRepositoryMock = new Mock <ISearchAuditBatchRepository>(); this.loggerMock = TestUtilities.GetMockLogger(); this.userExperienceService = new UserExperienceService( this.auditServiceMock.Object, this.poisonWaitRepositoryMock.Object, this.searchAuditBatchRepositoryMock.Object, this.loggerMock.Object); }
private string FetchFileData(UserExperienceService svc, UserExperienceSearchViewModel viewModel) { var filterResult = FilterData(svc, viewModel, true); using (var sw = new System.IO.StringWriter()) { var heaaderArr = new string[] { "Hour", "Search", "User", "Percent Long-Running", "Complex / Simple", "Total Run Time", "Average Run Time", "Total Runs", "QoS Hour ID", "Weekly Sample" }; sw.WriteLine(string.Join(",", heaaderArr)); foreach (var row in filterResult.Data) { sw.WriteCsvSafeLine(row); } return(sw.ToString()); } }
/// <summary> /// Translates a Search view into grid data /// </summary> /// <param name="viewModel"></param> /// <returns></returns> private DataTableResponse FetchSearchGridData(UserExperienceService svc, UserExperienceSearchViewModel viewModel) { var filterData = FilterData(svc, viewModel, false); var dtResponse = new DataTableResponse() { sEcho = string.IsNullOrEmpty(viewModel.GridConditions.sEcho) ? "1" : viewModel.GridConditions.sEcho, aaData = filterData.Data, recordsTotal = filterData.Data.Count(), recordsFiltered = filterData.TotalRecordCount }; return(dtResponse); }
/// <summary> /// Translates a Server view into grid data /// </summary> /// <param name="viewModel"></param> /// <returns></returns> private DataTableResponse FetchServerGridData(UserExperienceService svc, UserExperienceServerViewModel viewModel, IQualityIndicatorService qualityIndicatorService) { var data = FilterData(svc, viewModel, false, qualityIndicatorService); var dtResponse = new DataTableResponse() { sEcho = string.IsNullOrEmpty(viewModel.GridConditions.sEcho) ? "1" : viewModel.GridConditions.sEcho, aaData = data.Data, recordsTotal = data.Data.Count(), recordsFiltered = data.TotalRecordCount }; return(dtResponse); }
private string FetchFileData(UserExperienceService svc, UserExperienceServerViewModel viewModel, IQualityIndicatorService qualityIndicatorService) { var filterResult = FilterData(svc, viewModel, true, qualityIndicatorService); using (var sw = new System.IO.StringWriter()) { var heaaderArr = new string[] { "Hour", "Server", "Score", "Workspace", "Long-Running Queries", "Total Users", "Total Search Audits", "Total Non-Search Audits", "Total Audits", "Total Execution Time", "Weekly Sample" }; sw.WriteLine(string.Join(",", heaaderArr)); foreach (var row in filterResult.Data) { sw.WriteCsvSafeLine(row); } return(sw.ToString()); } }
public HttpResponseMessage Search(int id) { //Initialize service and model properties var connectionFactory = new HelperConnectionFactory(ConnectionHelper.Helper()); var sqlRepo = new SqlServerRepository(connectionFactory); var svc = new UserExperienceService(sqlRepo); var model = PopulateSearchModelSettings(id); var session = (HttpSessionState)GetSession(); session[DataTableSessionConstants.UserExperienceSearchState] = model; //Get the data var dtResponse = FetchSearchGridData(svc, model); //Serialize response var json = dtResponse.ToJson(); var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); return(response); }
public HttpResponseMessage GenerateCSV(int id) { //Initialize service and model properties var connectionFactory = new HelperConnectionFactory(ConnectionHelper.Helper()); var sqlRepo = new SqlServerRepository(connectionFactory); var svc = new UserExperienceService(sqlRepo); var model = PopulateHourModelSettings(id); model.GridConditions.StartRow = 1; model.GridConditions.EndRow = int.MaxValue; //Get the data var fetchedData = FetchFileData(svc, model); //Serialize response HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); message.Content = new StringContent(fetchedData); message.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv"); message.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"); message.Content.Headers.ContentDisposition.FileName = string.Format("UserExperienceHours-{0}.csv", DateTime.Now.ToString("yyyyMMdd-HHmmss")); return(message); }
public UserExperienceHours() : base(true) { _userExperience = new UserExperienceService(this.SqlRepo); _indicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(this.SqlRepo.ConfigurationRepository)); }
public UserExperienceServers() : base(lookingGlassDependency: true) { _userExperience = new UserExperienceService(this.SqlRepo); _indicatorService = new QualityIndicatorService(new QualityIndicatorConfigurationService(this.SqlRepo.ConfigurationRepository)); }