Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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 });
        }