// GET: Releases/Prepare //[FrameworkAuthorization] public ActionResult Prepare(string version) { if (version == null) { ViewBag.Message = "Invalid version number. Nothing to display."; return(View()); } ReleasePrepared releasePrepared = new ReleasePrepared { StakeholdersHeadline = GetStakeholdersHeadline() }; using (var service = DomainLocator.GetRepositoryService()) { //ToDo: Change to ReadReleaseVersions() and then Read() one Release var releases = service.Object.ReadReleases(); foreach (var releaseBO in releases) { if (releaseBO.Version != version) { continue; } var converter = new Converter(); releasePrepared.Release = converter.Convert(releaseBO); foreach (var releaseUnit in releasePrepared.Release.UnitList) { foreach (var headline in releasePrepared.StakeholdersHeadline) { if (releaseUnit.StakeholderList.Count(x => x.Name == headline.Name) > 0) { continue; } releaseUnit.StakeholderList.Add(headline); } } } } //Create SelectList var participatingStakeholdersUnits = (from releaseUnit in releasePrepared.Release.UnitList from stakeholder in releaseUnit.StakeholderList where stakeholder.IsParticipating select string.Format("{0}~{1}~", releaseUnit.Name, stakeholder.Name)).ToList(); releasePrepared.ReleaseElementOptions = new SelectList(participatingStakeholdersUnits, "Select release unit and team"); return(View(releasePrepared)); }
//[FrameworkAuthorization] //[ValidateAntiForgeryToken] public ActionResult Prepare(ReleasePrepared releasePrepared, string action) { releasePrepared.StakeholdersHeadline = GetStakeholdersHeadline(); switch (action) { case "addreleaseelement": //ToDo: Add list of Release Elements in Domain.Release and add Release Elements here var releaseElement = new ReleaseElement { SelectListPrefix = releasePrepared.ReleaseElementOption, Content = releasePrepared.NewReleaseElement }; //ToDo: catch NullReferenceExeption releasePrepared.Release.UnitList.FirstOrDefault( x => x.Name == releasePrepared.ReleaseElementOption.Split('~')[0]). ReleaseElementsList.Add(releaseElement); //Create SelectList anew var participatingStakeholdersUnits = (from releaseUnit in releasePrepared.Release.UnitList from stakeholder in releaseUnit.StakeholderList where stakeholder.IsParticipating select string.Format("{0}~{1}~", releaseUnit.Name, stakeholder.Name)).ToList(); releasePrepared.ReleaseElementOptions = new SelectList(participatingStakeholdersUnits, "Select release unit and team"); break; case "save": if (ModelState.IsValid) { using (var service = DomainLocator.GetRepositoryService()) { var converter = new Converter(); service.Object.CreateRelease(converter.Convert(releasePrepared.Release)); return(RedirectToAction("Index")); } } break; case "confirmprepare": //ToDo: Add field Status in ??? and set Status here break; } return(View(releasePrepared)); }