/// <summary> /// Function to edit release. /// </summary> /// <param name="calendarId">The calendar id</param> /// <returns>Edit view</returns> public ActionResult Edit(string calendarId) { ReleaseCalendarPresenter presenter = new ReleaseCalendarPresenter(); presenter.IsEdit = "true"; if (!string.IsNullOrEmpty(calendarId)) { presenter.ReleaseCalendar = this.releaseService.LoadById(Convert.ToInt32(calendarId, CultureInfo.CurrentCulture)); presenter.OldProjectId = presenter.ReleaseCalendar.ProjectID; presenter.ActualStartDate = presenter.ReleaseCalendar.StartDate.ToString("M/d/yyyy h:mm tt"); presenter.IsEditable = LookupService.IsReleaseEditable(presenter.ReleaseCalendar.Status); if (presenter.IsEditable != true || presenter.ReleaseCalendar.Status != 1) { return this.Redirect(RetrieveItemAddress(Url.ViewReleaseAction(), presenter.ReleaseCalendar.ReleaseCalendarID)); } this.AssignValuesToPresenter(presenter); presenter.ProjectsExcludePipeline.ForEach(p => { p.ProjectName = p.ProjectFullName; }); var historyListItems = this.releaseService.RetrieveHistory(Convert.ToInt32(calendarId, CultureInfo.CurrentCulture)); if (historyListItems != null && historyListItems.Count > 0) { AssignHistoryItems(presenter, historyListItems); } presenter.AssignArtifacts(this.lookupService.RetrieveReleaseArtifactList(presenter.ReleaseCalendar.ReleaseCalendarID, SessionData.Instance.UserInfo.Developer.DeveloperID)); AssignReleaseArtifactList(presenter); AssignProjectArtifactList(presenter); presenter.IsSendNotification = presenter.ReleaseCalendar.Environment == (byte)ReleaseType.Production ? true : false; presenter.SelectedReleaseStatus = presenter.ReleaseCalendar.Status; presenter.OldEndDate = presenter.ReleaseCalendar.EndDate.Value.ToString("M/d/yyyy h:mm tt"); this.AddBreadcrumbItem(Resources.ReleaseCalendar, RetrieveCalendarAddress(Url.ReleaseCalendarAction(), presenter.ReleaseCalendar.StartDate)); this.AddBreadcrumbItem(Resources.DayView, RetrieveCalendarAddress(Url.DayViewAction(), presenter.ReleaseCalendar.StartDate)); this.AddBreadcrumbItem(Resources.ViewRelease, RetrieveItemAddress(Url.ViewReleaseAction(), presenter.ReleaseCalendar.ReleaseCalendarID)); this.AddBreadcrumbItem(Resources.EditRelease, Url.EditReleaseAction()); } if (presenter.ReleaseCalendar == null) { return this.Redirect(Url.AddReleaseAction()); } return this.View("InsertOrUpdate", presenter); }
/// <summary> /// Assigns the project release type counts. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="isMonthView">if set to <c>true</c> [is month view].</param> private void AssignProjectReleaseTypeCounts(ReleaseCalendarPresenter presenter, bool isMonthView) { IList<int> selectedIds = presenter.SelectedProjects.Count > 0 ? presenter.SelectedProjects.Select(selectedProject => selectedProject.ProjectID).ToList() : null; IList<ReleaseCountListItem> releaseCounts = null; if (isMonthView) { releaseCounts = this.releaseService.RetrieveReleaseCountForMonth(presenter.SelectedDate, null, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID); } else { var startDate = presenter.SelectedDate.Date; var endDate = startDate.AddDays(1).AddMinutes(-1); releaseCounts = this.releaseService.RetrieveReleaseCount(null, selectedIds, startDate, endDate, SessionData.Instance.UserInfo.Developer.DeveloperID); } UpdateCounts(presenter, releaseCounts); }
/// <summary> /// Function to add new release. /// </summary> /// <param name="date">Current date details.</param> /// <param name="projectId">Current project Id.</param> /// <returns>Add view</returns> public ActionResult Add(string date, int? projectId) { DateTime dateTime = ConvertToDateTime(date); this.AddBreadcrumbItem(Resources.ReleaseCalendar, RetrieveCalendarAddress(Url.ReleaseCalendarAction(), dateTime)); this.AddBreadcrumbItem(Resources.DayView, RetrieveCalendarAddress(Url.DayViewAction(), dateTime)); this.AddBreadcrumbItem(Resources.AddRelease, Url.AddReleaseAction()); var applicationSettings = DependencyInjectionContainer.Instance.Container.Resolve<ApplicationSettings>(); ReleaseCalendarPresenter presenter = new ReleaseCalendarPresenter() { ReleaseCalendar = new ReleaseCalendar() }; presenter.ReleaseCalendar.StartDate = dateTime.Date.Add(applicationSettings.DefaultReleaseStartTime); presenter.ReleaseCalendar.EndDate = presenter.ReleaseCalendar.StartDate.Add(applicationSettings.DefaultEndTimeDuration); presenter.ReleaseCalendar.ProjectID = projectId.HasValue ? projectId.Value : presenter.ReleaseCalendar.ProjectID; this.AssignValuesToPresenter(presenter); var timeZone = presenter.TimeZoneList.FirstOrDefault(t => t.TimeZoneID == SessionData.Instance.UserInfo.Developer.TimeZoneID); presenter.ReleaseCalendar.TimeZoneID = timeZone != null ? timeZone.TimeZoneID : presenter.ReleaseCalendar.TimeZoneID; presenter.ProjectsExcludePipeline.ForEach(p => { p.ProjectName = p.ProjectFullName; }); var result = this.lookupService.RetrieveReleaseArtifactList(null, SessionData.Instance.UserInfo.Developer.DeveloperID); result.Where(item => item.ArtifactType.Value == ArtifactType.Release).ToList().ForEach(item => item.IsSelected = true); presenter.AssignArtifacts(result); AssignReleaseArtifactList(presenter); AssignProjectArtifactList(presenter); return this.View("InsertOrUpdate", presenter); }
/// <summary> /// Assigns the type of the selected release. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> private static void AssignSelectedReleaseType(ReleaseCalendarPresenter releaseCalendarPresenter) { bool isNothingSelected = !releaseCalendarPresenter.ProjectReleaseTypes.Any(item => item.IsSelected.Equals("true", StringComparison.OrdinalIgnoreCase)); if (isNothingSelected) { releaseCalendarPresenter.ProjectReleaseTypes[0].IsSelected = "true"; } else { bool isAllSelected = releaseCalendarPresenter.ProjectReleaseTypes.Where(releaseType => releaseType.Id == 0).Select(releaseType => releaseType.IsSelected.Equals("true", StringComparison.OrdinalIgnoreCase) ? true : false).FirstOrDefault(); if (isAllSelected) { releaseCalendarPresenter.ProjectReleaseTypes.Where(releaseType => releaseType.Id != 0).Select(releaseType => releaseType.IsSelected = "false").ToList(); } } }
/// <summary> /// Updates the counts. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> /// <param name="releaseCounts">The release counts.</param> private static void UpdateCounts(ReleaseCalendarPresenter releaseCalendarPresenter, IList<ReleaseCountListItem> releaseCounts) { if (releaseCounts != null) { releaseCalendarPresenter.ProjectReleaseTypes.ForEach(item => item.TotalCount = 0); releaseCounts.SelectMany(releaseCount => releaseCalendarPresenter.ProjectReleaseTypes.Where(releaseType => releaseType.Id == Convert.ToInt32(releaseCount.Enviornment, CultureInfo.CurrentCulture) && releaseCount.ReleaseCalendarCount.HasValue) .Select(releaseType => releaseType.TotalCount = releaseType.TotalCount + releaseCount.ReleaseCalendarCount.Value).ToList()).ToList(); var totalCount = releaseCalendarPresenter.ProjectReleaseTypes.Where(releaseType => releaseType.Id != 0).Sum(item => item.TotalCount); releaseCalendarPresenter.ProjectReleaseTypes.Where(releaseType => releaseType.Id == 0).ToList().ForEach(releaseType => releaseType.TotalCount = totalCount); } }
public ActionResult RetrievePreviousReleases(ReleaseCalendarPresenter releaseCalendarPresenter) { if (releaseCalendarPresenter == null) { return null; } if (releaseCalendarPresenter.ReleaseCalendar.StartDate != null && !releaseCalendarPresenter.ReleaseCalendar.StartDate.IsValidDatabaseDate()) { releaseCalendarPresenter.ValidationErrors.Add(StartDate, Resources.StartDateInvalidErrorMessage); } if (releaseCalendarPresenter.HasValidationError == true) { return new JsonResult { Data = releaseCalendarPresenter, MaxJsonLength = int.MaxValue }; } var release = this.RetreivePreviousReleaseList(releaseCalendarPresenter); var result = release.OrderBy(u => u.StartDate).Select(e => e.BuildNumber).ToList(); return new JsonResult { Data = result, MaxJsonLength = int.MaxValue }; }
/// <summary> /// Decodes the HTML text. /// </summary> /// <param name="presenter">The presenter.</param> private static void DecodeRawText(ReleaseCalendarPresenter presenter) { presenter.ReleaseCalendar.ReleaseItems = !string.IsNullOrEmpty(presenter.ReleaseCalendar.ReleaseItems) && !string.IsNullOrWhiteSpace(HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.ReleaseItems))) ? HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.ReleaseItems)) : null; presenter.ReleaseCalendar.Risk = !string.IsNullOrEmpty(presenter.ReleaseCalendar.Risk) && !string.IsNullOrWhiteSpace(HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.Risk))) ? HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.Risk)) : null; presenter.ReleaseCalendar.Comments = !string.IsNullOrEmpty(presenter.ReleaseCalendar.Comments) && !string.IsNullOrWhiteSpace(HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.Comments))) ? HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(presenter.ReleaseCalendar.Comments)) : null; }
/// <summary> /// Assigns the count value. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> /// <param name="releaseTypes">The release types.</param> /// <param name="selectedIds">The selected ids.</param> private void AssignCountValue(ReleaseCalendarPresenter releaseCalendarPresenter, IList<byte> releaseTypes, IList<int> selectedIds) { int previousMonthReleaseCount = 0; int nextMonthReleaseCount = 0; DateTime previousMonthDate = releaseCalendarPresenter.SelectedDate.RetrievePreviousMonthStartDate(); IList<ReleaseCountListItem> releaseCounts = this.releaseService.RetrieveReleaseCountForMonth(previousMonthDate, releaseTypes, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID); releaseCounts.Where(releaseCount => releaseCount.ReleaseCalendarCount.HasValue).Select(releaseCount => previousMonthReleaseCount = previousMonthReleaseCount + releaseCount.ReleaseCalendarCount.Value).ToList(); releaseCalendarPresenter.PreviousMonthReleaseCount = previousMonthReleaseCount; DateTime nextMonthDate = releaseCalendarPresenter.SelectedDate.RetrieveNextMonthStartDate(); IList<ReleaseCountListItem> nextMonthReleaseCounts = this.releaseService.RetrieveReleaseCountForMonth(nextMonthDate, releaseTypes, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID); nextMonthReleaseCounts.Where(releaseCount => releaseCount.ReleaseCalendarCount.HasValue).Select(releaseCount => nextMonthReleaseCount = nextMonthReleaseCount + releaseCount.ReleaseCalendarCount.Value).ToList(); releaseCalendarPresenter.NextMonthReleaseCount = nextMonthReleaseCount; }
/// <summary> /// Initializes the month view presenter. /// </summary> /// <param name="dateTime">The date time.</param> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> private void InitializeMonthViewPresenter(DateTime dateTime, ReleaseCalendarPresenter releaseCalendarPresenter) { this.AssignCountValue(releaseCalendarPresenter, null, null); releaseCalendarPresenter.AssignReleases(this.releaseService.RetrieveListForMonth(dateTime, null, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); IList<Release> releases = new List<Release>(); Dictionary<DateTime, IList<ReleaseListItem>> dictionary = new Dictionary<DateTime, IList<ReleaseListItem>>(); releaseCalendarPresenter.Releases.ForEach(item => AssignValuesToDictionary(dictionary, item)); AssignReleases(releases, dictionary); releaseCalendarPresenter.AssignMonthViewReleases(releases); releaseCalendarPresenter.TotalReleases = releaseCalendarPresenter.Releases.Count; this.AssignProjectReleaseTypes(releaseCalendarPresenter, true); releaseCalendarPresenter.AssignSelectedProjects(releaseCalendarPresenter.MasterProjects); }
/// <summary> /// Refreshes the day view. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> /// <param name="releaseTypes">The release types.</param> /// <param name="selectedIds">The selected ids.</param> /// <returns> /// List of counts /// </returns> private IList<ReleaseCountListItem> RefreshDayView(ReleaseCalendarPresenter releaseCalendarPresenter, IList<byte> releaseTypes, IList<int> selectedIds) { releaseCalendarPresenter.AssignReleases(this.releaseService.RetrieveListForDate(releaseCalendarPresenter.SelectedDate, releaseTypes, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID, true)); releaseCalendarPresenter.Releases.Select(release => { return ValidateDates(release, releaseCalendarPresenter.SelectedDate); }).ToList(); releaseCalendarPresenter.TotalReleases = releaseCalendarPresenter.Releases.Count; IList<ReleaseCountListItem> releaseCounts = null; if (!string.IsNullOrEmpty(releaseCalendarPresenter.IsSearchByProject) && releaseCalendarPresenter.IsSearchByProject.Equals("true", StringComparison.OrdinalIgnoreCase)) { releaseCalendarPresenter.ProjectReleaseTypes.Clear(); this.AssignProjectReleaseTypes(releaseCalendarPresenter, false); } else { var startDate = releaseCalendarPresenter.SelectedDate.Date; var endDate = startDate.AddDays(1).AddMinutes(-1); releaseCounts = this.releaseService.RetrieveReleaseCount(null, selectedIds, startDate, endDate, SessionData.Instance.UserInfo.Developer.DeveloperID); } releaseCalendarPresenter.IsSearchByProject = string.Empty; return releaseCounts; }
/// <summary> /// Refreshes the month view. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> /// <param name="releaseTypes">The release types.</param> /// <param name="selectedIds">The selected ids.</param> /// <returns> /// List of counts /// </returns> private IList<ReleaseCountListItem> RefreshMonthView(ReleaseCalendarPresenter releaseCalendarPresenter, IList<byte> releaseTypes, IList<int> selectedIds) { this.AssignCountValue(releaseCalendarPresenter, releaseTypes, selectedIds); releaseCalendarPresenter.AssignReleases(this.releaseService.RetrieveListForMonth(releaseCalendarPresenter.SelectedDate, releaseTypes, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID)); IList<Release> releases = new List<Release>(); Dictionary<DateTime, IList<ReleaseListItem>> dictionary = new Dictionary<DateTime, IList<ReleaseListItem>>(); releaseCalendarPresenter.Releases.ForEach(release => release.EndDate = release.StartDate.Value.AddHours(1)); releaseCalendarPresenter.Releases.ForEach(item => AssignValuesToDictionary(dictionary, item)); AssignReleases(releases, dictionary); releaseCalendarPresenter.AssignMonthViewReleases(releases); releaseCalendarPresenter.TotalReleases = releaseCalendarPresenter.MonthViewReleases.Count; IList<ReleaseCountListItem> releaseCounts = null; if (!string.IsNullOrEmpty(releaseCalendarPresenter.IsSearchByProject) && releaseCalendarPresenter.IsSearchByProject.Equals("true", StringComparison.OrdinalIgnoreCase)) { releaseCalendarPresenter.ProjectReleaseTypes.Clear(); this.AssignProjectReleaseTypes(releaseCalendarPresenter, true); } else { releaseCounts = this.releaseService.RetrieveReleaseCountForMonth(releaseCalendarPresenter.SelectedDate, null, selectedIds, SessionData.Instance.UserInfo.Developer.DeveloperID); } releaseCalendarPresenter.IsSearchByProject = string.Empty; return releaseCounts; }
/// <summary> /// Refreshes the calendar. /// </summary> /// <param name="releaseCalendarPresenter">The release calendar presenter.</param> /// <param name="isMonthView">if set to <c>true</c> [is month view].</param> private void RefreshCalendar(ReleaseCalendarPresenter releaseCalendarPresenter, bool isMonthView) { releaseCalendarPresenter.ReleaseCalendar = new ReleaseCalendar(); AssignSelectedReleaseType(releaseCalendarPresenter); this.AssignValuesToPresenter(releaseCalendarPresenter); if (!string.IsNullOrEmpty(releaseCalendarPresenter.SelectedProjectIds)) { List<string> ids = releaseCalendarPresenter.SelectedProjectIds.Split(',').ToList(); releaseCalendarPresenter.AssignSelectedProjects(releaseCalendarPresenter.MasterProjects.Where(project => ids.Contains(project.ProjectID.ToString(CultureInfo.CurrentCulture))).ToList()); } IList<byte> releaseTypes = releaseCalendarPresenter.ProjectReleaseTypes.Where(environment => environment.Id != 0 && !string.IsNullOrEmpty(environment.IsSelected) && environment.IsSelected.Equals("true", StringComparison.OrdinalIgnoreCase)).Select(environment => Convert.ToByte(environment.Id)).ToList(); releaseTypes = releaseTypes.Count == 0 ? null : releaseTypes; IList<int> selectedIds = releaseCalendarPresenter.SelectedProjects.Count > 0 ? releaseCalendarPresenter.SelectedProjects.Select(selectedProject => selectedProject.ProjectID).ToList() : null; IList<ReleaseCountListItem> releaseCounts = null; if (isMonthView) { releaseCounts = this.RefreshMonthView(releaseCalendarPresenter, releaseTypes, selectedIds); } else { releaseCounts = this.RefreshDayView(releaseCalendarPresenter, releaseTypes, selectedIds); } UpdateCounts(releaseCalendarPresenter, releaseCounts); }
/// <summary> /// Function to assign values to presenter. /// </summary> /// <param name="presenter">Presenter information</param> private void AssignValuesToPresenter(ReleaseCalendarPresenter presenter) { presenter.AssignReleaseStatusList(this.lookupService.RetrieveReleaseCalendarStatusList(presenter.ReleaseCalendar.Status > 0 ? presenter.ReleaseCalendar.Status : default(byte?), SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignReleaseTypes(this.lookupService.RetrieveReleaseTypes(SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignTimeZones(this.lookupService.RetrieveTimeZones()); var projectId = presenter.ReleaseCalendar.ProjectID > 0 ? presenter.ReleaseCalendar.ProjectID : default(int?); presenter.AssignProjectsExcludePipeline(this.lookupService.RetrieveProjectsExcludePipeline(null, projectId, false, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignMasterProjects(this.lookupService.RetrieveProjects(null, projectId, false, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); }
/// <summary> /// Initializes the presenter. /// </summary> /// <param name="dateTime">The date time.</param> /// <param name="isMonthView">if set to <c>true</c> [is month view].</param> /// <returns> /// Instance of Release Calendar /// </returns> private ReleaseCalendarPresenter InitializePresenter(DateTime dateTime, bool isMonthView) { ReleaseCalendarPresenter releaseCalendarPresenter = new ReleaseCalendarPresenter() { ReleaseCalendar = new ReleaseCalendar() }; this.AssignValuesToPresenter(releaseCalendarPresenter); releaseCalendarPresenter.SelectedDate = dateTime; if (isMonthView) { this.InitializeMonthViewPresenter(dateTime, releaseCalendarPresenter); } else { releaseCalendarPresenter.AssignReleases(this.releaseService.RetrieveListForDate(dateTime, null, null, SessionData.Instance.UserInfo.Developer.DeveloperID, true)); releaseCalendarPresenter.Releases.Select(release => { return ValidateDates(release, dateTime); }).ToList(); releaseCalendarPresenter.TotalReleases = releaseCalendarPresenter.Releases.Count; this.AssignProjectReleaseTypes(releaseCalendarPresenter, isMonthView); releaseCalendarPresenter.AssignSelectedProjects(releaseCalendarPresenter.MasterProjects); } return releaseCalendarPresenter; }
/// <summary> /// Function to view release. /// </summary> /// <param name="calendarId">The calendar id</param> /// <param name="projectId">The project identifier.</param> /// <param name="includeInactive">The include inactive.</param> /// <returns> /// View page /// </returns> public ActionResult ViewRelease(string calendarId, string projectId, string includeInactive) { ReleaseListItem releaseListItem = null; if (!string.IsNullOrEmpty(calendarId)) { releaseListItem = this.releaseService.RetrieveById(Convert.ToInt32(calendarId, CultureInfo.CurrentCulture), SessionData.Instance.UserInfo.Developer.DeveloperID); } else if (string.IsNullOrEmpty(calendarId) && !string.IsNullOrEmpty(projectId)) { releaseListItem = this.projectService.RetrieveReleases(projectId, DateTime.Today, SessionData.Instance.UserInfo.Developer.DeveloperID); } if (releaseListItem == null) { return this.Redirect(Url.ReleaseCalendarAction()); } else { var statusList = this.lookupService.RetrieveReleaseCalendarStatusList(releaseListItem.Status, SessionData.Instance.UserInfo.Developer.DeveloperID); releaseListItem.StatusTitle = statusList.Where(item => item.ID == releaseListItem.Status).First().Name; if (!string.IsNullOrEmpty(projectId) && !string.IsNullOrEmpty(includeInactive)) { this.AddBreadcrumbItem(Resources.ManageProject, Url.ProjectsAction()); this.AddBreadcrumbItem(Resources.ProjectDashboard, RetrieveProjectDashboardAddress(Url.ProjectDashboardAction(), projectId, includeInactive)); } else { this.AddBreadcrumbItem(Resources.ReleaseCalendar, RetrieveCalendarAddress(Url.ReleaseCalendarAction(), releaseListItem.StartDate.Value)); this.AddBreadcrumbItem(Resources.DayView, RetrieveCalendarAddress(Url.DayViewAction(), releaseListItem.StartDate.Value)); } this.AddBreadcrumbItem(Resources.ViewRelease, Url.ViewReleaseAction()); var presenter = new ReleaseCalendarPresenter() { ReleaseListItem = releaseListItem }; presenter.IsEditable = LookupService.IsReleaseEditable(presenter.ReleaseListItem.Status); if (presenter.ReleaseListItem.Status == (byte)ReleaseStatus.Planned) { var currentTime = DateTimeHelper.RetrieveCurrentDateTime(); if (currentTime < presenter.ReleaseListItem.StartDate.Value) { presenter.RemainingTime = presenter.ReleaseListItem.StartDate.Value.Subtract(currentTime); } } var historyListItems = this.releaseService.RetrieveHistory(releaseListItem.ReleaseCalendarID); if (historyListItems != null && historyListItems.Count > 0) { AssignHistoryItems(presenter, historyListItems); } var project = this.projectService.RetrieveById(releaseListItem.ProjectID, SessionData.Instance.UserInfo.Developer.DeveloperID); presenter.ProjectName = project.Name; presenter.ProjectShortName = project.ShortName; this.AssignArtifactList(presenter); return this.View(presenter); } }
/// <summary> /// Function to retrieve previous release. /// </summary> /// <param name="releaseCalendarPresenter">The releaseCalendar id.</param> /// <returns>release item list.</returns> private IList<ReleaseListItem> RetreivePreviousReleaseList(ReleaseCalendarPresenter releaseCalendarPresenter) { var release = this.releaseService.RetrievePreviousReleases(releaseCalendarPresenter.ReleaseCalendar.ProjectID, releaseCalendarPresenter.ReleaseCalendar.Environment, releaseCalendarPresenter.ReleaseCalendar.StartDate, releaseCalendarPresenter.ReleaseCalendar.TimeZoneID.HasValue ? releaseCalendarPresenter.ReleaseCalendar.TimeZoneID.Value : 0, SessionData.Instance.UserInfo.Developer.DeveloperID); return release; }
public ActionResult DayInfo(ReleaseCalendarPresenter releaseCalendarPresenter) { if (releaseCalendarPresenter == null) { return null; } this.AddBreadcrumbItem(Resources.ReleaseCalendar, RetrieveCalendarAddress(Url.ReleaseCalendarAction(), releaseCalendarPresenter.SelectedDate)); this.AddBreadcrumbItem(Resources.DayView, Url.DayViewAction()); this.RefreshCalendar(releaseCalendarPresenter, false); return this.View("DayInfo", releaseCalendarPresenter); }
/// <summary> /// Assigns the artifact list. /// </summary> /// <param name="presenter">The presenter.</param> private void AssignArtifactList(ReleaseCalendarPresenter presenter) { presenter.AssignArtifacts(this.lookupService.RetrieveReleaseArtifactList(presenter.ReleaseListItem.ReleaseCalendarID, SessionData.Instance.UserInfo.Developer.DeveloperID).Where(g => g.IsSelected == true).ToList()); AssignViewReleaseArtifactList(presenter); AssignViewProjectArtifactList(presenter); }
public ActionResult RetrieveReleaseItems(ReleaseCalendarPresenter releaseCalendarPresenter, string build) { if (releaseCalendarPresenter == null) { return null; } if (releaseCalendarPresenter.ReleaseCalendar.StartDate != null && !releaseCalendarPresenter.ReleaseCalendar.StartDate.IsValidDatabaseDate()) { releaseCalendarPresenter.ValidationErrors.Add(StartDate, Resources.StartDateInvalidErrorMessage); } if (releaseCalendarPresenter.HasValidationError == true) { return new JsonResult { Data = releaseCalendarPresenter, MaxJsonLength = int.MaxValue }; } var value = build; var release = this.RetreivePreviousReleaseList(releaseCalendarPresenter); var selectedRelease = release.Where(e => e.BuildNumber == value).FirstOrDefault(); if (selectedRelease != null) { var result = release.Where(r => r.StartDate <= selectedRelease.StartDate).Select(e => e.ReleaseItems).ToList(); return new JsonResult { Data = string.Join(System.Environment.NewLine, result.ToArray()), MaxJsonLength = int.MaxValue }; } return null; }
public ActionResult Index(ReleaseCalendarPresenter releaseCalendarPresenter) { if (releaseCalendarPresenter == null) { return null; } this.AddBreadcrumbItem(Resources.ReleaseCalendar, Url.ReleaseCalendarAction()); this.RefreshCalendar(releaseCalendarPresenter, true); return this.View(releaseCalendarPresenter); }
private static void ValidateCalendarDetails(ReleaseCalendarPresenter presenter) { DecodeRawText(presenter); var startDate = Convert.ToDateTime(presenter.ActualStartDate); var oldEndDate = Convert.ToDateTime(presenter.OldEndDate); if (presenter.ReleaseCalendar.ProjectID == default(int)) { presenter.ValidationErrors.Add(ProjectID, Resources.SelectProjectErrorMessage); } if (Convert.ToInt32(presenter.ReleaseCalendar.TimeZoneID, CultureInfo.CurrentCulture) == default(int)) { presenter.ValidationErrors.Add(TimeZone, Resources.TimeZoneValidationMessage); } if (presenter.ReleaseCalendar.Environment == default(byte)) { presenter.ValidationErrors.Add(Environment, Resources.SelectReleaseTypeErrorMessage); } if (presenter.ReleaseCalendar.Status == default(byte) && presenter.IsEdit.Equals("true")) { presenter.ValidationErrors.Add(Status, Resources.SelectStatusErrorMessage); } if (!presenter.ReleaseCalendar.StartDate.IsValidDatabaseDate()) { presenter.ValidationErrors.Add(StartDate, Resources.StartDateInvalidErrorMessage); } else if (presenter.ReleaseCalendar.StartDate != startDate && presenter.ReleaseCalendar.StartDate < System.DateTime.Now) { presenter.ValidationErrors.Add(StartDate, Resources.InvalidStartDateErrorMessage); } if (!presenter.ReleaseCalendar.EndDate.HasValue) { presenter.ValidationErrors.Add(EndDate, Resources.EndDateErrorMessage); } else if (presenter.ReleaseCalendar.StartDate != null && presenter.ReleaseCalendar.EndDate != null && presenter.ReleaseCalendar.StartDate >= presenter.ReleaseCalendar.EndDate) { presenter.ValidationErrors.Add(EndDate, Resources.EndDateInvalidErrorMessage); } if (string.IsNullOrWhiteSpace(presenter.ReleaseCalendar.BuildNumber)) { presenter.ValidationErrors.Add(BuildNumber, Resources.ProvideBuildErrorMessage); } if (string.IsNullOrEmpty(presenter.ReleaseCalendar.ReleaseItems)) { presenter.ValidationErrors.Add(ReleaseItems, Resources.ProvideReleaseItemsErrorMessage); } if (string.Equals(presenter.IsEdit, "true")) { if (string.IsNullOrWhiteSpace(presenter.ReleaseCalendar.Comments) && (presenter.SelectedReleaseStatus != presenter.ReleaseCalendar.Status || startDate != presenter.ReleaseCalendar.StartDate || oldEndDate != presenter.ReleaseCalendar.EndDate)) { presenter.ValidationErrors.Add(ReleaseFeedback, Resources.ProvideReleaseFeedbackErrorMessage); } } }
public ActionResult SubmitDetails(ReleaseCalendarPresenter presenter) { if (presenter != null) { presenter.Artifacts.Clear(); var list = presenter.ReleaseArtifactList.SelectMany(p => p.Items).ToList() .Union(presenter.ProjectArtifactList.SelectMany(p => p.Items).ToList()).ToList(); presenter.AssignArtifacts(list); DecodeRawText(presenter); presenter.ReleaseCalendar.SendNotificationStatus = presenter.IsSendNotification ? SendNotificationValue : DoNotSendNotificationValue; if (presenter.IsEdit.Equals("false")) { presenter.ReleaseCalendar.EndDate = presenter.ReleaseCalendar.EndDate.HasValue ? presenter.ReleaseCalendar.EndDate : presenter.ReleaseCalendar.StartDate.AddMinutes(30); presenter.ReleaseCalendar.Status = (byte)ReleaseStatus.Planned; this.releaseService.InsertOrUpdate(presenter.ReleaseCalendar, presenter.Artifacts, null, SessionData.Instance.UserInfo.Developer.DeveloperID, presenter.OldProjectId); } else { this.releaseService.InsertOrUpdate(presenter.ReleaseCalendar, presenter.Artifacts, null, SessionData.Instance.UserInfo.Developer.DeveloperID, presenter.OldProjectId); } } return this.Json(string.Empty); }
/// <summary> /// Function to assign history items. /// </summary> /// <param name="presenter">Presenter details</param> /// <param name="historyListItems">Item details</param> private static void AssignHistoryItems(ReleaseCalendarPresenter presenter, IDictionary<string, IEnumerable<HistoryListItem>> historyListItems) { if (historyListItems.ContainsKey(RiskKeyValue)) { presenter.AssignRiskHistoryList(historyListItems[RiskKeyValue].ToList()); } if (historyListItems.ContainsKey(ReleaseItemsKeyValue)) { presenter.AssignReleaseItemsHistoryList(historyListItems[ReleaseItemsKeyValue].ToList()); } if (historyListItems.ContainsKey(CommentsKeyValue)) { presenter.AssignCommentsHistoryList(historyListItems[CommentsKeyValue].ToList()); } if (historyListItems.ContainsKey(StartDateKeyValue)) { var list = historyListItems[StartDateKeyValue].ToList(); var newList = new List<HistoryListItem>(); list.ForEach(l => Map(l, newList)); presenter.AssignStartDateHistoryList(newList); } }
public ActionResult ValidateErrorDetails(ReleaseCalendarPresenter presenter) { ModelState.Clear(); if (presenter != null) { ValidateCalendarDetails(presenter); presenter.ValidationErrors.Append(this.releaseService.Validate(presenter.ReleaseCalendar)); } return new JsonResult { Data = presenter, MaxJsonLength = int.MaxValue }; }
/// <summary> /// Assigns the project artifact list. /// </summary> /// <param name="presenter">The presenter.</param> private static void AssignViewProjectArtifactList(ReleaseCalendarPresenter presenter) { int nodeIndex = 0; var groupedList = presenter.Artifacts.OrderBy(a => a.Squence) .Where(a => a.ArtifactType == ArtifactType.Project) .GroupBy(u => u.FunctionalArea) .Select(grp => new ArtifactFillListItem { FunctionalArea = grp.Key, Items = grp.ToList() }) .ToList(); groupedList.ForEach(g => { g.NodeIndex = nodeIndex; nodeIndex++; g.IsSelected = g.Items.All(i => i.IsSelected.Value); }); presenter.AssignProjectArtifactList(groupedList); }
/// <summary> /// Assigns the environments. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="isMonthView">if set to <c>true</c> [is month view].</param> private void AssignProjectReleaseTypes(ReleaseCalendarPresenter presenter, bool isMonthView) { IList<ProjectReleaseType> environments = new List<ProjectReleaseType>(); environments.Add(new ProjectReleaseType { Id = 0, Name = "All", IsSelected = "true" }); presenter.ReleaseTypeList.Select(releaseType => { var environment = new ProjectReleaseType { Id = releaseType.ID, Name = releaseType.Name, IsSelected = "false" }; if (environment.Name == Internal) { environment.ShortName = InternalShort; } else if (environment.Name == UAT) { environment.ShortName = UATShort; } else if (environment.Name == Production) { environment.ShortName = ProductionShort; } else if (environment.Name == Beta) { environment.ShortName = BetaShort; } environments.Add(environment); return true; }).ToList(); presenter.AssignProjectReleaseTypes(environments); this.AssignProjectReleaseTypeCounts(presenter, isMonthView); }