public ActionResult Create(ReleaseUpdateModel releaseEdits) { var release = Core.Repo.CreateRelease( releaseEdits.Name, releaseEdits.ReleaseManager, DateTime.Parse(releaseEdits.ReleaseDate, CultureInfo.CurrentCulture)); Core.Repo.SaveRelease(release); foreach (ReleaseComponentViewModel component in releaseEdits.Components) { if (component.Included) { var newVersion = Core.Repo.CreateVersion( releaseEdits.Name, component.Name, long.Parse(component.StartRevision, CultureInfo.InvariantCulture), ParseRevisionText(component.EndRevision)); newVersion.SelectedRevision = ParseRevisionText(component.SelectedRevision); Core.Repo.SaveVersion(newVersion); } } return RedirectToRoute("Release", new { releaseName = releaseEdits.Name, action = "Edit" }); }
public ActionResult Save(ReleaseUpdateModel releaseEdits) { IRelease release = Core.Repo.GetRelease(releaseEdits.Name); release.Name = releaseEdits.Name; release.ReleaseDate = DateTime.Parse(releaseEdits.ReleaseDate, CultureInfo.CurrentCulture); release.ReleaseManager = releaseEdits.ReleaseManager; Core.Repo.SaveRelease(release); IList<IVersionWork> versions = Core.Repo.GetVersionsInRelease(release.Name); foreach(ReleaseComponentViewModel component in releaseEdits.Components) { var version = versions.FirstOrDefault(v => v.Component.Name == component.Name); if (version != null && component.Included) // update { version.StartRevision = long.Parse(component.StartRevision, CultureInfo.InvariantCulture); version.EndRevision = ParseRevisionText(component.EndRevision); version.SelectedRevision = ParseRevisionText(component.SelectedRevision); Core.Repo.SaveVersion(version.VersionData()); } else if (version != null && !component.Included) //delete { Core.Repo.DeleteVersion(version.VersionData()); } else if (version == null && component.Included) { var newVersion = Core.Repo.CreateVersion( release.Name, component.Name, long.Parse(component.StartRevision, CultureInfo.InvariantCulture), ParseRevisionText(component.EndRevision)); Core.Repo.SaveVersion(newVersion); } } return RedirectToAction("Edit"); }