示例#1
0
 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);
             }
         }
     }
 }
示例#2
0
        public ActionResult CreateInitial(int projectId)
        {
            ViewData["Creating"]        = true;
            ViewData["CreatingProject"] = true;
            VcsSource s = new VcsSource();

            s.ProjectId = projectId;
            return(View("Edit", s));
        }
示例#3
0
 public ActionResult Edit(int id, VcsSource source)
 {
     try
     {
         CurrentUserModel.UpdateSource(source, true);
         return(RedirectToAction("Index", new { projectId = source.ProjectId }));
     }
     catch
     {
         return(View());
     }
 }
示例#4
0
 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 }));
     }
 }
示例#5
0
 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);
         }
     }
 }
示例#6
0
 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;
 }