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 DeleteUpload(int sourceId) { SourceTag st = CurrentUserModel.GetSourceTag(sourceId); CurrentUserModel.DeleteSourceTag(st); return(RedirectToAction("Index", new { id = st.ProjectId })); }
public void MergeTo(SourceTag st) { st.Name = Name; st.LastRevision = LastRevision; st.Url = Url; st.Status = Status; }
public void RetrievePower(SourceTag st, int pw = 10) { if (powerDistribution[(int)st].DrawPower(pw)) { ReservePower(pw); } }
public ActionResult UpdateSource(int sourceTagId) { CurrentUserModel.CleanSources(sourceTagId); SourceTag st = CurrentUserModel.GetSourceTag(sourceTagId); BuildService.Build(CurrentUserModel.CurrentApplication.Id, st.ProjectId); return(RedirectToAction("Index", new { id = st.ProjectId })); }
public void SetSourceTagStatus(int appId, int sourceId, string status) { BuildService.CheckClient(); using (UserModel m = UserModel.GetAdmin(appId)) { SourceTag stag = m.GetSourceTag(sourceId); m.SetSourceTagStatus(stag, status); } }
public SourceTagAddinInfo(SourceTag stag) { Id = stag.Id; AddinVersion = stag.AddinVersion; AddinId = stag.AddinId; AppVersion = stag.TargetAppVersion; Platforms = stag.Platforms; DevStatus = stag.DevStatus; }
public SourceTagInfo(SourceTag st) { Id = st.Id; Name = st.Name; LastRevision = st.LastRevision; Url = st.Url; Status = st.Status; DevStatus = st.DevStatus; }
public void TransferPower(SourceTag st, int pw = 10) { if (powerReserve - pw >= lifeSupport) { if (powerDistribution[(int)st].StorePower(pw)) { AvailablePower -= pw; } } }
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 ActionResult SetDevStatus(int id, int stagId, int value) { CurrentUserModel.ValidateProject(id); SourceTag stag = CurrentUserModel.GetSourceTag(stagId); if (stag.ProjectId != id) { throw new InvalidOperationException("Invalid source tag"); } stag.DevStatus = (DevStatus)value; CurrentUserModel.UpdateSourceTag(stag); return(Content("OK")); }
public void SetSourceTagBuildData(int appId, int stagId, SourceTagAddinInfo[] addins) { BuildService.CheckClient(); SourceTagAddinInfo addin = addins [0]; using (UserModel m = UserModel.GetAdmin(appId)) { SourceTag st = m.GetSourceTag(stagId); st.AddinVersion = addin.AddinVersion; st.AddinId = addin.AddinId; st.TargetAppVersion = addin.AppVersion; st.Platforms = addin.Platforms; // string.Join (" ", addin.Platforms); st.Status = SourceTagStatus.Built; st.BuildDate = DateTime.Now; m.UpdateSourceTag(st); } }
public static Release PublishRelease(UserModel m, SourceTag source, bool activate) { Release rel = m.GetPublishedRelease(source); if (rel != null) { m.DeleteRelease(rel); } Project p = m.GetProject(source.ProjectId); rel = new Release(); rel.ProjectId = source.ProjectId; rel.Status = p.HasFlag(ProjectFlag.AllowDirectPublish) || activate ? ReleaseStatus.PendingPublish : ReleaseStatus.PendingReview; rel.DevStatus = source.DevStatus; rel.LastChangeTime = DateTime.Now; rel.Platforms = source.Platforms; rel.TargetAppVersion = source.TargetAppVersion; rel.Version = source.AddinVersion; rel.SourceTagId = source.Id; string mpack = rel.GetFilePath(rel.PlatformsList [0]); AddinInfo ainfo = UserModel.ReadAddinInfo(mpack); rel.AddinId = Mono.Addins.Addin.GetIdName(ainfo.Id); rel.AddinName = ainfo.Name; rel.AddinDescription = ainfo.Description; m.CreateRelease(rel); if (rel.Status == ReleaseStatus.PendingPublish) { BuildService.UpdateRepositories(false); } return(rel); }
public ActionResult SourceTagPackage(int id, string platform) { SourceTag stag = CurrentUserModel.GetSourceTag(id); return(File(stag.GetFilePath(platform), "application/x-mpack", stag.AddinId + "-" + stag.AddinVersion + ".mpack")); }
public ActionResult BuildLog(int id) { SourceTag stag = CurrentUserModel.GetSourceTag(id); return(File(stag.LogFile, "text/html")); }
public PowerSource(SourceTag sourceTag, int maxPower = 50, int currentPower = 0) { this.maxPower = maxPower; this.currentPower = currentPower; this.sourceTag = sourceTag; }