/// <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); }
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 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 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); }