Example #1
0
        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}&amp;AuditID={1}&amp;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
            });
        }
Example #5
0
 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;
 }
Example #6
0
 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);
 }
Example #7
0
        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());
            }
        }
Example #8
0
        /// <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());
            }
        }
Example #11
0
        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));
 }