public void UpdateSourceTags(int appId, int sourceId, DateTime fetchTime, SourceTagInfo[] sourceTags) { BuildService.CheckClient(); using (UserModel m = UserModel.GetAdmin(appId)) { VcsSource s = m.GetSource(sourceId); s.LastFetchTime = fetchTime; m.UpdateSource(s, false); IEnumerable <SourceTag> currentTags = m.GetVcsSourceTags(sourceId); foreach (SourceTagInfo stInfo in sourceTags) { SourceTag st = currentTags.FirstOrDefault(t => t.Url == stInfo.Url); if (st != null) { stInfo.MergeTo(st); m.UpdateSourceTag(st); } else { st = new SourceTag(); st.SourceId = s.Id; st.ProjectId = s.ProjectId; stInfo.MergeTo(st); m.CreateSourceTag(st); } } foreach (SourceTag st in currentTags) { if (!sourceTags.Any(t => t.Url == st.Url)) { m.DeleteSourceTag(st); } } } }
public ActionResult CreateInitial(int projectId) { ViewData["Creating"] = true; ViewData["CreatingProject"] = true; VcsSource s = new VcsSource(); s.ProjectId = projectId; return(View("Edit", s)); }
public ActionResult Edit(int id, VcsSource source) { try { CurrentUserModel.UpdateSource(source, true); return(RedirectToAction("Index", new { projectId = source.ProjectId })); } catch { return(View()); } }
public ActionResult Create(VcsSource source, bool?initialCreation) { CurrentUserModel.CreateSource(source); if (initialCreation.HasValue && initialCreation.Value) { return(RedirectToAction("Index", "Project", new { id = source.ProjectId })); } else { return(RedirectToAction("Index", new { projectId = source.ProjectId })); } }
public void SetSourceTagBuilt(int appId, int sourceTagId) { BuildService.CheckClient(); using (UserModel m = UserModel.GetAdmin(appId)) { SourceTag st = m.GetSourceTag(sourceTagId); m.SetSourceTagStatus(st, SourceTagStatus.Ready); VcsSource vcs = m.GetVcsSource(st.SourceId); if (vcs.AutoPublish) { Builder.BuildService.PublishRelease(m, st, false); } } }
public SourceInfo(Project p, VcsSource s, SourceTagInfo[] stags) { Id = s.Id; ProjectName = p.Name; ProjectId = p.Id; Type = s.Type; Url = s.Url; Tags = s.Tags; Branches = s.Branches; LastFetchTime = s.LastFetchTime; AutoPublish = s.AutoPublish; Directory = s.Directory; SourceTags = stags; ProjectFlags = p.Flags; }