Esempio n. 1
0
        public ProjectData GetProjectData(DateTime fromDate, DateTime toDate)
        {
            var searchFilters = new SearchFilters(BooleanOperation.And);

            //MUST be live
            searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
            var filters = new List <SearchFilters> {
                searchFilters
            };

            var searcher = new OurSearcher(null, "project", filters: filters, maxResults: 20000);
            var results  = searcher.Search("projectSearcher");
            var projects = results.SearchResults.TotalItemCount;
            var projectsUpdatedDateRange = 0;
            var projectsCreatedDateRange = 0;
            var totalDownloads           = 0;

            foreach (var project in results.SearchResults)
            {
                var downloads = project.Fields["downloads"];
                int downloadCount;
                if (int.TryParse(downloads, out downloadCount))
                {
                    totalDownloads = totalDownloads + downloadCount;
                }

                var updated = project.Fields["updateDate"].Substring(0, 8);
                int updatedDate;
                if (int.TryParse(updated, out updatedDate) && updatedDate > int.Parse(fromDate.ToString("yyyyMMdd")) && updatedDate < int.Parse(toDate.ToString("yyyyMMdd")))
                {
                    projectsUpdatedDateRange++;
                }

                var created = project.Fields["createDate"].Substring(0, 8);
                int createdDate;
                if (int.TryParse(created, out createdDate) && createdDate > int.Parse(fromDate.ToString("yyyyMMdd")) && createdDate < int.Parse(toDate.ToString("yyyyMMdd")))
                {
                    projectsCreatedDateRange++;
                }
            }

            var compatReport = new VersionCompatibilityService(DatabaseContext);
            var compatibilityReportsCount         = compatReport.GetAllCompatibilityReportsCount();
            var compatibilityReportsCountPastYear = compatReport.GetAllCompatibilityReportsCountByDateRange(fromDate, toDate);
            var projectData = new ProjectData
            {
                AllCompatibilityReports          = compatibilityReportsCount,
                AllProjects                      = projects,
                AllProjectDownloads              = totalDownloads,
                AllCompatibilityReportsDateRange = compatibilityReportsCountPastYear,
                AllProjectsUpdatedDateRange      = projectsUpdatedDateRange,
                AllProjectsCreatedDateRange      = projectsCreatedDateRange
            };

            return(projectData);
        }
Esempio n. 2
0
        private List <PackageCompatibility> GetPackageCompatibility(IPublishedContent content)
        {
            var service = new VersionCompatibilityService(DatabaseContext);
            var report  = service.GetCompatibilityReport(content.Id);

            if (report == null || !report.Any())
            {
                return(null);
            }

            return(report
                   .Select(x => new PackageCompatibility
            {
                Percentage = x.Percentage,
                Version = x.Version
            })
                   .ToList());
        }
Esempio n. 3
0
        public ActionResult CompatibilityReport(int projectId, int fileId)
        {
            var compatReport = new VersionCompatibilityService(DatabaseContext);

            var currentMember = Members.IsLoggedIn() ? Members.GetCurrentMember() : null;

            var project = Umbraco.TypedContent(projectId);

            return(PartialView("~/Views/Partials/Projects/CompatibilityReport.cshtml",
                               new VersionCompatibilityReportModel
            {
                VersionCompatibilities = compatReport.GetCompatibilityReport(projectId),
                CurrentMemberIsLoggedIn = currentMember != null,
                FileId = fileId,
                ProjectId = projectId,
                AllVersions = UVersion.GetAllVersions(),
                WorksOnUaaS = project.GetPropertyValue <bool>("worksOnUaaS")
            }));
        }
        public IEnumerable <VersionCompatibility> UpdateCompatibility(JObject model)
        {
            var projectId = model.Value <int>("projectId");
            var fileId    = model.Value <int>("fileId");
            var report    = model["report"].ToObject <Dictionary <string, bool> >();

            var cs      = Services.ContentService;
            var project = cs.GetById(projectId);

            if (project == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var versionCompatService = new VersionCompatibilityService(DatabaseContext);

            versionCompatService.UpdateCompatibility(projectId, fileId, Members.GetCurrentMemberId(), report);

            return(versionCompatService.GetCompatibilityReport(projectId));
        }