Beispiel #1
0
        /// <summary>
        /// Get the search report data
        /// </summary>
        /// <param name="searchReportObject">the searchReportObject object</param>
        /// <returns>the ReportData object</returns>
        public ResultMessage <IEnumerable <TblReportDataDto> > GetReportData(SearchReportObject searchReportObject)
        {
            var result = new ResultMessage <IEnumerable <TblReportDataDto> >();

            Dictionary <string, object> dictionary = new Dictionary <string, object> {
                { "createdOn", searchReportObject.CreatedOn }
            };

            if (!string.IsNullOrEmpty(searchReportObject.ExecutionGroup))
            {
                dictionary.Add("executiongroup", searchReportObject.ExecutionGroup);
            }
            else
            {
                dictionary.Add("executiongroup", null);
            }

            dictionary.Add("websiteid", searchReportObject.WebsiteId);
            var entities = this.Table.SqlQuery <TblReportDataDto>("Select * from procsearchreport(@createdOn,@websiteid,@executiongroup);", dictionary).ToList();

            if (!entities.Any())
            {
                result.Messages.Add(new Message(null, "Record not found!"));
            }
            else
            {
                result.Item = entities;
            }

            return(result);
        }
        public IHttpActionResult SearchReport(SearchReportObject searchReportObject)
        {
            var result = new ResultMessage <SearchReportResult>();

            try
            {
                result = this.reportDataService.GetReportData(searchReportObject);
            }
            catch (Exception ex)
            {
                this.LoggerService.LogException(ex);
                result.Messages.Add(new Message(null, ex.Message));
            }

            return(this.CreateCustomResponse(result));
        }
        /// <summary>
        /// Get the search report data
        /// </summary>
        /// <param name="searchReportObject">the searchReportObject object</param>
        /// <returns>the ReportData object</returns>
        public ResultMessage <SearchReportResult> GetReportData(SearchReportObject searchReportObject)
        {
            var result = new ResultMessage <SearchReportResult>();

            int  pageSize = searchReportObject.PageSize <= 0 ? 0 : searchReportObject.PageSize;
            long startAt  = searchReportObject.PageNum <= 0 ? 0 : (searchReportObject.PageNum - 1) * pageSize;

            Dictionary <string, object> dictionary = new Dictionary <string, object>
            {
                {
                    "startdate",
                    searchReportObject.StartDate
                },
                {
                    "enddate",
                    searchReportObject.EndDate
                },
                {
                    "websiteid",
                    searchReportObject.WebsiteId
                },
                {
                    "suiteid",
                    searchReportObject.SuiteId ?? 0
                },
                {
                    "testid",
                    searchReportObject.TestId ?? 0
                },
                {
                    "osname",
                    searchReportObject.OsName.IsBlank() ? null : searchReportObject.OsName
                },
                {
                    "browser",
                    searchReportObject.Browser.IsBlank() ? null : searchReportObject.Browser
                },
                {
                    "teststatus",
                    searchReportObject.TestStatus.HasValue ? (int)searchReportObject.TestStatus : 0
                },
                {
                    "userid",
                    searchReportObject.UserId.HasValue ? (int)searchReportObject.UserId : 0
                },
                {
                    "startat",
                    startAt
                },
                {
                    "pagesize",
                    pageSize
                },
                {
                    "extraData",
                    searchReportObject.ExtraData
                },
                {
                    "executiongroup",
                    searchReportObject.ExecutionGroup.IsBlank() ? null : searchReportObject.ExecutionGroup
                }
            };

            var entities = this.Table.SqlQuery <TblReportDataDto>("Select * from procsearchreportv3(@startdate,@enddate, @websiteid, @suiteid, @testid, @osname, @browser, @teststatus, @userid, @startat, @pagesize, @extraData, @executiongroup);", dictionary).ToList();

            if (!entities.Any())
            {
                result.Messages.Add(new Message(null, "Record not found!"));
            }
            else
            {
                result.Item = new SearchReportResult {
                    Data = entities
                };

                var resultStart = entities.First();

                result.Total = resultStart.Count;

                result.Item.CountPassed = resultStart.CountPassed;
                result.Item.CountFailed = resultStart.CountFailed;

                result.PageSize = pageSize == 0 ? result.Total : pageSize;

                result.StartedAt = startAt;
            }

            return(result);
        }