private void Update(CreateReleaseModel release) { var oldRelease = RavenSession.Load<Release>(release.Id); var project = RavenSession.Load<Project>(release.ProjectId); oldRelease.Description = release.Description; oldRelease.Title = release.Title; oldRelease.Version = release.Version; oldRelease.Issues.Clear(); var issues = new List<Issue>(); if (release.SolvedIssues != null) { issues.AddRange(project.Issues.Where(x => release.SolvedIssues.Contains(x.Id)).ToList()); foreach (var issue in issues) { issue.Solved = true; } oldRelease.Issues = issues; } RavenSession.SaveChanges(); }
public JsonResult Create(CreateReleaseModel release) { var project = RavenSession.Load<Project>(release.ProjectId); if (!string.IsNullOrEmpty(release.Id)) { Update(release); return Json(new { Success = true, Release = release }); } var issues = new List<Issue>(); if (release.SolvedIssues != null) { issues.AddRange(project.Issues.Where(x => release.SolvedIssues.Contains(x.Id)).ToList()); foreach (var issue in issues) { issue.Solved = true; } } var newRelease = new Release { Created = DateTime.Now, Description = release.Description, Issues = issues, ProjectId = release.ProjectId, Title = release.Title, Version = release.Version }; var eventAction = new EventAction() { Action = Action.Release, Created = DateTime.Now, ProjectId = release.ProjectId, Title = release.Version, ProjectName = project.Name, Url = string.Format("/{0}/{1}/releases/{2}", release.ProjectId, project.Slug, release.Id), User = new EventActionUser(CurrentUser) }; RavenSession.Store(eventAction); RavenSession.Store(newRelease); RavenSession.SaveChanges(); return Json(new { Success = true, Release = newRelease }); }