/// <summary> /// Function to retrieve index page. /// </summary> /// <returns>Index page</returns> public ActionResult Index() { this.AddBreadcrumbItem(Resources.ProjectCompliance, Url.ProjectComplianceAction()); ProjectCompliancePresenter presenter = new ProjectCompliancePresenter(); this.AssignValues(presenter); presenter.AssignSelectedReleaseTypes(presenter.ReleaseTypeList.Where(r => r.ID == (byte)ReleaseType.UAT).ToList()); presenter.AssignSelectedArtifactsList(presenter.ArtifactStatusList); return this.View(presenter); }
public ActionResult Index(ProjectCompliancePresenter presenter) { this.AddBreadcrumbItem(Resources.ProjectCompliance, Url.ProjectComplianceAction()); if (presenter == null) { return null; } this.AssignValues(presenter); IList<int> selectedArtifactsList = null; IList<int> selectedReleaseTypeList = null; if (!string.IsNullOrEmpty(presenter.SelectedArtifactStatusIds)) { selectedArtifactsList = presenter.SelectedArtifactStatusIds.Split(',').Select(s => Convert.ToInt32(s, CultureInfo.CurrentCulture)).ToList(); presenter.AssignSelectedArtifactsList(presenter.ArtifactStatusList.Where(artifact => selectedArtifactsList.Contains(artifact.ID)).ToList()); } if (!string.IsNullOrEmpty(presenter.SelectedReleaseTypeIds)) { selectedReleaseTypeList = presenter.SelectedReleaseTypeIds.Split(',').Select(s => Convert.ToInt32(s, CultureInfo.CurrentCulture)).ToList(); presenter.AssignSelectedReleaseTypes(presenter.ReleaseTypeList.Where(releaseType => selectedReleaseTypeList.Contains(releaseType.ID)).ToList()); } var artifactList = this.projectArtifactService.RetrieveList(presenter.SelectedProjectId, selectedReleaseTypeList, selectedArtifactsList, SessionData.Instance.UserInfo.Developer.DeveloperID); (from artifact in artifactList from artifactStatus in presenter.ArtifactStatusList where artifact.Status == artifactStatus.ID select MapProcessComplianceStatusTitle(artifactStatus, artifact)).ToList(); AssignProjectArtifactList(presenter, artifactList); AssignReleaseArtifactList(presenter, artifactList); return this.View(presenter); }
/// <summary> /// Decodes the raw text. /// </summary> /// <param name="presenter">The presenter.</param> private static void DecodeRawText(ProjectCompliancePresenter presenter) { presenter.ProcessComplianceItem.Comment = !string.IsNullOrEmpty(presenter.ProcessComplianceItem.Comment) ? WebUtility.HtmlDecode(presenter.ProcessComplianceItem.Comment) : presenter.ProcessComplianceItem.Comment; }
/// <summary> /// Assigns the values. /// </summary> /// <param name="presenter">The presenter.</param> private void AssignValues(ProjectCompliancePresenter presenter) { presenter.AssignReleaseTypes(this.lookupService.RetrieveReleaseTypes(SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignArtifactStatus(this.lookupService.RetrieveArtifactStatusTypes(SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignProjects(this.lookupService.RetrieveProjects(null, default(int), false, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.Projects.ForEach(p => { p.ProjectName = p.ProjectFullName; }); }
/// <summary> /// Assigns the project artifact list. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="artifactList">The artifact list.</param> private static void AssignProjectArtifactList(ProjectCompliancePresenter presenter, IList<ProcessComplianceListItem> artifactList) { int nodeIndex = 0; var groupedList = artifactList.OrderBy(a => a.Squence) .Where(a => a.ArtifactType == (byte)ArtifactType.Project) .GroupBy(u => u.FunctionalArea) .Select(grp => new ProcessComplianceListItem { FunctionalArea = grp.Key, Items = grp.ToList() }) .ToList(); groupedList.ForEach(g => { g.NodeIndex = nodeIndex; nodeIndex++; }); presenter.AssignProjectArtifactList(groupedList); }
/// <summary> /// Assigns the release artifact list. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="artifactList">The artifact list.</param> private static void AssignReleaseArtifactList(ProjectCompliancePresenter presenter, IList<ProcessComplianceListItem> artifactList) { int nodeIndexRelease = 0; var groupedListRelease = artifactList.OrderBy(a => a.Squence) .Where(a => a.ArtifactType == (byte)ArtifactType.Release) .GroupBy(u => new { buiildNumber = u.BuildFullNumber, releaseType = u.Environment, releaseDate = u.StartDate, calendarId = u.ReleaseCalendarID }) .Select(grp => new ProcessComplianceListItem { BuildNumber = grp.Key.buiildNumber, ReleaseCalendarID = grp.Key.calendarId, Environment = grp.Key.releaseType, StartDate = grp.Key.releaseDate, Items = grp.ToList() }) .OrderByDescending(g => g.StartDate) .ToList(); groupedListRelease.ForEach(g => { g.NodeIndex = nodeIndexRelease; nodeIndexRelease++; }); presenter.AssignReleaseArtifactList(groupedListRelease); (from artifact in presenter.ReleaseArtifactList from releaseType in presenter.ReleaseTypeList where artifact.Environment == releaseType.ID select MapProcessComplianceEnvironmentTitle(releaseType, artifact)).ToList(); }
private static void ValidateDetails(ProjectCompliancePresenter presenter) { if (presenter.ProcessComplianceItem.Status == null) { presenter.ValidationErrors.Add(ArtifactId, @Resources.SelectStatusErrorMessage); } var dateNow = DateTimeHelper.RetrieveCurrentDate(); if (presenter.ProcessComplianceItem.DueDate < dateNow) { presenter.ValidationErrors.Add(DueDate, @Resources.ValidDateErrorMessage); } }
public ActionResult ValidateProjectComplianceDetails(ProjectCompliancePresenter presenter) { ValidateDetails(presenter); return new JsonResult { Data = presenter, MaxJsonLength = int.MaxValue }; }
public ActionResult SubmitDetails(ProjectCompliancePresenter presenter) { if (presenter != null) { DecodeRawText(presenter); this.projectArtifactService.InsertOrUpdate(presenter.ProcessComplianceItem, SessionData.Instance.UserInfo.Developer.DeveloperID); } return new JsonResult { Data = true, MaxJsonLength = int.MaxValue }; }