Example #1
0
        public void WhenCallingBuilds_ShouldReturnBuilds()
        {
            // arrange
            const string result         = "result";
            const string status         = "status";
            const int    definitionId   = 11;
            const string buildNumber    = "1.2.3.4";
            const string definitionName = "The Hill's CI";

            IBuildsFactory fakeBuildsFactory = new FakeBuildsFactory(1, new List <Build>
            {
                new Build(status, result, buildNumber, DateTime.Today, new Definition(definitionId, definitionName), new RequestedFor("Hank Hill", "http://image.shack.usa/hankhill"))
            });

            BuildController controller = new Privateer().Object <BuildController>(fakeBuildsFactory, new MemoryCache(new MemoryCacheOptions()));

            // act
            OkObjectResult okObjectResult = (OkObjectResult)controller.Builds("StricklandPropane-CI");

            // assert
            okObjectResult.StatusCode.Should().Be(200);
            Builds  builds  = (Builds)okObjectResult.Value;
            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(builds));

            jObject["count"].Value <int>().Should().Be(1);
            jObject["builds"].Should().HaveCount(1);

            jObject["builds"][0]["status"].Value <string>().Should().Be(status);
            jObject["builds"][0]["result"].Value <string>().Should().Be(result);
            jObject["builds"][0]["buildNumber"].Value <string>().Should().Be(buildNumber);

            jObject["builds"][0]["definition"]["id"].Value <int>().Should().Be(definitionId);
            jObject["builds"][0]["definition"]["name"].Value <string>().Should().Be(definitionName);
        }
Example #2
0
            public override void Build()
            {
                var files = GetFilesWithoutDirectories(Config.FullSearchPath);

                for (int i = 0; i < files.Count; i++)
                {
                    var item = files[i];
                    if (EditorUtility.DisplayCancelableProgressBar(string.Format("Packing... [{0}/{1}]", i, files.Count), item, i * 1f / files.Count))
                    {
                        EditorUtility.ClearProgressBar();
                        break;
                    }
                    Tuple <string, string> bundleName = GetABNamePath(DLCItem, item);
                    if (!IsContainInPackedAssets(item))
                    {
                        AssetBundleBuild build = new AssetBundleBuild();
                        build.assetBundleName = bundleName.Item1;
                        build.assetNames      = new string[] { item };
                        Builds.Add(build);
                        AddToPackedAssets(item);
                    }
                    AddToAllAssets(item, bundleName);
                    AddToAllBundles(bundleName);
                }
            }
Example #3
0
        public async Task ReconcileIntegrationTest()
        {
            var project = await _client.GetAsync(Project.ProjectById(_config.Project));

            var buildPipeline = await _client.GetAsync(Builds.BuildDefinition(project.Id, "2"))
                                .ConfigureAwait(false);

            await ManagePermissions
            .ForBuildPipeline(_client, project.Id, buildPipeline.Id, buildPipeline.Path)
            .Permissions(Build.DeleteBuilds)
            .SetToAsync(PermissionId.Allow);

            var rule = new NobodyCanDeleteBuilds(_client);

            (await rule.EvaluateAsync(project, buildPipeline))
            .ShouldBe(false);

            await rule.ReconcileAsync(project.Id, buildPipeline.Id);

            await Policy
            .Handle <Exception>()
            .WaitAndRetryAsync(Constants.NumRetries, t => TimeSpan.FromSeconds(t))
            .ExecuteAsync(async() =>
            {
                (await rule.EvaluateAsync(project, buildPipeline)).ShouldBe(true);
            });
        }
Example #4
0
 public static void BuildDLCConfig(DLCItem dlc)
 {
     //清除缓存
     PackedAssets_Internal.Clear();
     PackedAssets_Native.Clear();
     PackedAssets_DLC.Clear();
     Builds.Clear();
     Rules.Clear();
     AllDependencies.Clear();
     AllAssets.Clear();
     AllBundles.Clear();
     AllSharedBundles.Clear();
     Consts.Clear();
     //永远提前打包Internal
     if (!dlc.IsInternal)
     {
         BuildDLCConfigInternal(Internal);
     }
     //如果不是NativeDLC则先BuildNativeDLC,防止资源被其他DLC重复打包
     if (!dlc.IsInternal && !dlc.IsNative)
     {
         BuildDLCConfigInternal(Native);
     }
     BuildDLCConfigInternal(dlc);
 }
        internal void RestartTimer(bool refresh = false)
        {
            _buildRefreshTimer.Stop();
            if (refresh)
            {
                Builds.Clear();
                OnPropertyChanged(new PropertyChangedEventArgs(nameof(DisplaySpinner)));
            }

            if (string.IsNullOrWhiteSpace(_configManager.Get <DevOpsServerConfig>().Url))
            {
                return;
            }

            _buildRefreshTimer.Interval = _serverConfig.BuildRefreshTime;
            _buildRefreshTimer.Start();

            // In general, not awaiting an async Method (which returns a Task) will cause any Exception in the method being lost, going nowhere.
            // Awaiting the Task, will throw the exception on the current thread.
            // async void Methods cannot be awaited, BUT an Exception will hit the application completely unhandled, usually causing it to crash.
            // Thus, async void Methods (usually only event handlers) must handle all exceptions themselves.

            // Here, we want to call an async method which does return a Task. However, we do not want to await it.
            // async () => await X() is effectively creating an async void method inline, so any Exception which leaves, would at least crash the application, so we know
            // Since RefreshAllAsync handles it's exceptions, we can do that without crashing the application.

            Task.Run(async() => await RefreshAllAsync().ConfigureAwait(false));
        }
Example #6
0
        public Dictionary <string, string> DataToDict()
        {
            Dictionary <string, string> result = new Dictionary <string, string>
            {
                ["experience"]        = Experience.ToString(),
                ["kills"]             = Kills.ToString(),
                ["leaks"]             = Leaks.ToString(),
                ["builds"]            = Builds.ToString(),
                ["sends"]             = Sends.ToString(),
                ["earned_tangos"]     = EarnedTangos.ToString(),
                ["won_games"]         = WonGames.ToString(),
                ["won_duels"]         = WonDuels.ToString(),
                ["lost_games"]        = LostGames.ToString(),
                ["lost_duels"]        = LostDuels.ToString(),
                ["win_rate"]          = WinRate.ToString(),
                ["duel_win_rate"]     = DuelWinRate.ToString(),
                ["rating"]            = Rating.ToString(),
                ["earned_gold"]       = EarnedGold.ToString(),
                ["gold_per_minute"]   = GoldPerMinute.ToString(),
                ["tangos_per_minute"] = TangosPerMinute.ToString(),
                ["time_played"]       = TimePlayed.ToString()
            };

            // foreach (var data in FractionDatas) {
            //     result[KilledPrefix + data.FractionName] = data.Killed.ToString();
            //     result[PlayedPrefix + data.FractionName] = data.Played.ToString();
            // }
            foreach (var pair in PlayedFractions)
            {
                result[pair.Key] = pair.Value.ToString();
            }
            // foreach (var pair in FractionKills)
            //     result[pair.Key] = pair.Value.ToString();
            return(result);
        }
Example #7
0
        private void RemoveBuild(object obj)
        {
            _mainViewModel.RemoveBuild(SelectedBuild !.Build);
            Builds.Remove(SelectedBuild);

            SelectedBuild = null;
        }
        public bool IsProductDependency(
            string sourceRepositoryName,
            string sourceBranchName,
            string targetRepositoryName,
            string targetBranchName)
        {
            // Take latest target builds ordered by DateProduced
            var latestTargetBuildsQuery = Builds
                                          .Where(b =>
                                                 (b.GitHubRepository == targetRepositoryName && b.GitHubBranch == targetBranchName) ||
                                                 (b.AzureDevOpsRepository == targetRepositoryName && b.AzureDevOpsBranch == targetBranchName))
                                          .OrderByDescending(b => b.DateProduced);

            // For each build return its Id and HasProductDependencies flag saying
            // if there are any build dependencies in this build that come from source
            // and have IsProduct flag set.
            var buildDependenciesQuery = latestTargetBuildsQuery
                                         .Select(b => new
            {
                Id = b.Id,
                HasProductDependencies = BuildDependencies
                                         .Any(d =>
                                              ((d.DependentBuild.GitHubRepository == sourceRepositoryName &&
                                                d.DependentBuild.GitHubBranch == sourceBranchName) ||
                                               (d.DependentBuild.AzureDevOpsRepository == sourceRepositoryName &&
                                                d.DependentBuild.AzureDevOpsBranch == sourceBranchName)) &&
                                              d.Build == b &&
                                              d.IsProduct)
            });

            // Take the most recent build. Can be null if there are no target builds yet.
            var latestBuild = buildDependenciesQuery.FirstOrDefault();

            return(latestBuild?.HasProductDependencies ?? false);
        }
Example #9
0
        private async void CopyClicked(object sender, MouseButtonEventArgs e)
        {
            if (isButtonBeingPressed)
            {
                return;
            }
            isButtonBeingPressed = true;
            await Task.Delay(Opt.buttonDelay);

            isButtonBeingPressed = false;
            ImageButton imageButton = (ImageButton)sender;
            Build       build       = Builds.GetBuild(imageButton.uniqueBuildId);

            if (comboBoxes[build.uniqueBuildId].Text == "Vassal 7.0.3+")
            {
                CopyForVassalClicked(build);
            }
            else if (comboBoxes[build.uniqueBuildId].Text == "Facebook")
            {
                CopyForFacebookClicked(build);
            }
            else if (comboBoxes[build.uniqueBuildId].Text == "Reddit")
            {
                CopyForRedditClicked(build);
            }
            else if (comboBoxes[build.uniqueBuildId].Text == "BBCode")
            {
                CopyForBBCodeClicked(build);
            }
            else if (comboBoxes[build.uniqueBuildId].Text == "Text")
            {
                CopyForTextClicked(build);
            }
        }
Example #10
0
            public override void Build()
            {
                var files = GetFilesWithoutDirectories(Data.FullSearchPath);

                for (int i = 0; i < files.Count; i++)
                {
                    var item = files[i];
                    if (EditorUtility.DisplayCancelableProgressBar(string.Format("Packing... [{0}/{1}]", i, files.Count), item, i * 1f / files.Count))
                    {
                        EditorUtility.ClearProgressBar();
                        break;
                    }
                    string bundleName = GetABNameWithDirectoryAndFile(Data.FinalDirectory, item);
                    if (!IsContainInPackedAssets(item))
                    {
                        AssetBundleBuild build = new AssetBundleBuild();
                        build.assetBundleName = bundleName;
                        build.assetNames      = new string[] { item };
                        Builds.Add(build);
                        AddToPackedAssets(item);
                    }
                    if (!AllAssets.ContainsKey(item))
                    {
                        AllAssets.Add(item, bundleName);
                    }
                }
            }
Example #11
0
        /// <summary>
        /// 活的构建的数据
        /// </summary>
        /// <param name="manifestPath"></param>
        /// <returns></returns>
        private static List <AssetBundleBuild> GenerateAssetBundleBuildData(DLCItem dlc)
        {
            if (dlc.IsInternal)
            {
                PackedAssets_Internal.Clear();
            }
            else if (dlc.IsNative)
            {
                PackedAssets_Native.Clear();
            }
            PackedAssets_DLC.Clear();
            Builds.Clear();
            Rules.Clear();
            AllDependencies.Clear();
            AllAssets.Clear();
            AllBundles.Clear();
            AllSharedBundles.Clear();

            //建立其他文件
            List <BuildRuleConfig> tempBuildDatas = dlc.BuildRuleData;

            if (tempBuildDatas == null && tempBuildDatas.Count == 0)
            {
                CLog.Error("没有配置相关的AssetBundle信息");
                return(null);
            }

            foreach (var item in tempBuildDatas)
            {
                BuildRule buildRule = null;
                if (item.BuildRuleType == BuildRuleType.Directroy)
                {
                    buildRule = new BuildAssetsWithDirectroy(dlc, item);
                }
                else if (item.BuildRuleType == BuildRuleType.FullPath)
                {
                    buildRule = new BuildAssetsWithPath(dlc, item);
                }
                else if (item.BuildRuleType == BuildRuleType.File)
                {
                    buildRule = new BuildAssetsWithFile(dlc, item);
                }
                Rules.Add(buildRule);
            }

            //搜集依赖的资源
            foreach (var item in Rules)
            {
                CollectDependencies(item.Config.FullSearchPath);
            }
            //打包共享的资源
            BuildSharedAssets(dlc);

            foreach (var item in Rules)
            {
                item.Build();
            }
            EditorUtility.ClearProgressBar();
            return(Builds);
        }
Example #12
0
 private static bool BuildTgt(Target tgt, Args args)
 {
     try
     {
         Builds[tgt](args.debug);
         return(true);
     }
     catch (Exception e)
     {
         Debug.LogError("ErrorBuildingTarget:" + e);
         if (args.console)
         {
             EditorApplication.Exit(ErrorBuildingTarget);
         }
         return(false);
     }
 }
        protected override async void OnInitialize()
        {
            Project = await _teamServices.GetProjectAsync(ProjectId);

            _definitions = await _teamServices.GetDefinitionsAsync(Project);

            var builds = await _teamServices.GetBuildsAsync(Project);

            Builds.AddRange(builds.OrderByDescending(b => b.QueueTime).Select(b => new BuildViewModel(b)));
        }
        public async Task <bool> PushMetadataAsync()
        {
            try
            {
                Log.LogMessage("Starting build metadata push to the Build Asset Registry...");

                if (!File.Exists(ManifestZipFilePath))
                {
                    Log.LogError($"Required file '{ManifestZipFilePath}' does not exist.");
                }
                else
                {
                    string tmpManifestsPath = null;

                    try
                    {
                        tmpManifestsPath = $"{Path.GetTempPath()}\asset-manifests";

                        if (!Directory.Exists(tmpManifestsPath))
                        {
                            Directory.Delete(tmpManifestsPath, true);
                        }

                        Directory.CreateDirectory(tmpManifestsPath);

                        ZipFile.ExtractToDirectory(ManifestZipFilePath, tmpManifestsPath);

                        List <BuildData> buildsManifestMetadata = GetBuildManifestsMetadata(tmpManifestsPath);

                        BuildData finalBuild = MergeBuildManifests(buildsManifestMetadata);

                        MaestroApi client = (MaestroApi)ApiFactory.GetAuthenticated(MaestroApiEndpoint, BuildAssetRegistryToken);

                        Builds buildAssetRegistryBuilds = new Builds(client);

                        Client.Models.Build recordedBuild = await buildAssetRegistryBuilds.CreateAsync(finalBuild, s_cancellationToken);

                        Log.LogMessage($"Metadata has been pushed. Build id in the Build Asset Registry is '{recordedBuild.Id}'");
                    }
                    finally
                    {
                        if (tmpManifestsPath != null)
                        {
                            Directory.Delete(tmpManifestsPath, true);
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Log.LogErrorFromException(exc, true);
            }

            return(!Log.HasLoggedErrors);
        }
Example #15
0
 private void RemoveBuilds(Build b)
 {
     if (Builds.Any())
     {
         var old = Builds.FirstOrDefault(x => x.Id == b.Id);
         if (old != null)
         {
             Builds.Remove(old);
         }
     }
 }
        public async Task LoadAsync()
        {
            // 35
            var lookup = await _lookupBuildsService.GetBuildsAsync();

            Builds.Clear();

            foreach (var item in lookup)
            {
                Builds.Add(item);
            }
        }
Example #17
0
        public static LoadSaveResult LoadBuildData(string bstr)
        {
#if !DEBUG
            try
#endif
            {
                // upgrade:
                bstr = bstr.Replace("\"b_hp\"", "\"hp\"");
                bstr = bstr.Replace("\"b_atk\"", "\"atk\"");
                bstr = bstr.Replace("\"b_def\"", "\"def\"");
                bstr = bstr.Replace("\"b_spd\"", "\"spd\"");
                bstr = bstr.Replace("\"b_crate\"", "\"critical_rate\"");
                bstr = bstr.Replace("\"b_cdmg\"", "\"critical_damage\"");
                bstr = bstr.Replace("\"b_acc\"", "\"accuracy\"");
                bstr = bstr.Replace("\"b_res\"", "\"res\"");

                var bs = JsonConvert.DeserializeObject <List <Build> >(bstr);
                foreach (var b in bs.OrderBy(b => b.Priority))
                {
                    Builds.Add(b);
                }
                foreach (var b in Builds.Where(b => b.Type == BuildType.Link))
                {
                    b.LinkBuild = Program.Builds.FirstOrDefault(bu => bu.ID == b.LinkId);
                }
            }
#if !DEBUG
            catch (Exception e) {
                File.WriteAllText("error_build.txt", e.ToString());
                throw new InvalidOperationException("Error occurred loading Build JSON.\r\n" + e.GetType() + "\r\nInformation is saved to error_build.txt");
            }
#endif

            if (Program.Builds.Count > 0 && (Program.Data?.Monsters == null))
            {
                // backup, just in case
                string destFile = Path.Combine("", string.Format("{0}.backup{1}", "builds", ".json"));
                int    num      = 2;
                while (File.Exists(destFile))
                {
                    destFile = Path.Combine("", string.Format("{0}.backup{1}{2}", "builds", num, ".json"));
                    num++;
                }

                File.Copy("builds.json", destFile);
                return(LoadSaveResult.Failure);
            }

            SanitizeBuilds();

            return(LoadSaveResult.Success);
        }
Example #18
0
        private void AffectURI(Uri baseAddress)
        {
            _baseAddress = baseAddress.AbsoluteUri;
            _builds      = BaseObjectApi <Builds> .CreateObject(this);

            _TestResults = BaseObjectApi <Test> .CreateObject(this);

            _VersionControl = BaseObjectApi <Versioncontrol> .CreateObject(this);

            _wit = BaseObjectApi <Wit> .CreateObject(this);

            _getComments = BaseObjectApi <GetComments> .CreateObject(this);
        }
Example #19
0
        private async Task <int> LoadBuildsAsync()
        {
            try
            {
                var _builds = new Builds();
                return(await _builds.ListAllAsync());
            }
            catch (Exception ex)
            {
                await SaveLoadHistory(Methods.Builds, -1, false, ex.Message);

                throw ex;
            }
        }
Example #20
0
 public static void BuyAll()
 {
     for (int i = 0; i < Info.store.Length; i++)
     {
         if (Builds.wantedChampions.Contains(Info.store[i].name))
         {
             Champion[] champs          = Array.FindAll(Board.board, x => x.name == Info.store[i].name && Info.store[i].level == 1);
             Champion[] emptyBenchSlots = Array.FindAll(Board.board, x => x.name == ChampionName.None);
             if (champs.Length > 1)   //join
             {
                 ClickBuy(i);
                 Join(Info.store[i].name);
             }
             else if (emptyBenchSlots.Length > 0)     // default
             {
                 for (int j = 0; j < 9; j++)
                 {
                     if (Board.board[i].name == ChampionName.None)
                     {
                         Board.board[i] = Champions.allChampionsFindByName(Info.store[i].name);
                     }
                 }
                 ClickBuy(i);
             }
             else     // no space
             {
                 if (!Builds.buildFound)
                 {
                     Builds.RemoveBuilds();
                 }
                 else
                 {
                     continue;
                 }
                 if (Builds.wantedChampions.Contains(Info.store[i].name))
                 {
                     for (int j = 0; j < 9; j++)
                     {
                         if (Board.board[i].name == ChampionName.None)
                         {
                             Board.board[i] = Champions.allChampionsFindByName(Info.store[i].name);
                         }
                     }
                     ClickBuy(i);
                 }
             }
         }
     }
 }
Example #21
0
        public void WhenCallingBuildsByDefinition_ShouldCacheAndReturnBuilds()
        {
            const string projectName          = "StricklandPropane-CI";
            const string result               = "result";
            const string status               = "status";
            const int    hanksDefinitionId    = 11;
            const string hanksBuildNumber     = "1.2.3.4";
            const string hanksDefinitionName  = "The Hill's CI";
            const int    peggysDefinitionId   = 12;
            const string peggysBuildNumber    = "1.0.0.1";
            const string peggysDefinitionName = "Peggy's Quilting Seminar CI";

            IBuildsFactory fakeBuildsFactory = new FakeBuildsFactory(2, new List <Build>
            {
                new Build(status, result, hanksBuildNumber, DateTime.Today, new Definition(hanksDefinitionId, hanksDefinitionName), new RequestedFor("Hank Hill", "http://image.shack.usa/hankhill")),
                new Build(status, result, peggysBuildNumber, DateTime.Today, new Definition(peggysDefinitionId, peggysDefinitionName), new RequestedFor("Peggy Hill", "http://image.shack.usa/peggyhill"))
            });

            MemoryCache     memoryCache = new MemoryCache(new MemoryCacheOptions());
            BuildController controller  = new Privateer().Object <BuildController>(fakeBuildsFactory, memoryCache);

            // act
            OkObjectResult okObjectResult = (OkObjectResult)controller.BuildsByDefinition(projectName, new List <int> {
                hanksDefinitionId, peggysDefinitionId
            });

            // assert
            okObjectResult.StatusCode.Should().Be(200);
            Builds  builds  = (Builds)okObjectResult.Value;
            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(builds));

            jObject["count"].Value <int>().Should().Be(2);
            jObject["builds"].Should().HaveCount(2);

            jObject["builds"][0]["status"].Value <string>().Should().Be(status);
            jObject["builds"][0]["result"].Value <string>().Should().Be(result);
            jObject["builds"][0]["buildNumber"].Value <string>().Should().Be(hanksBuildNumber);
            jObject["builds"][0]["definition"]["id"].Value <int>().Should().Be(hanksDefinitionId);
            jObject["builds"][0]["definition"]["name"].Value <string>().Should().Be(hanksDefinitionName);

            jObject["builds"][1]["status"].Value <string>().Should().Be(status);
            jObject["builds"][1]["result"].Value <string>().Should().Be(result);
            jObject["builds"][1]["buildNumber"].Value <string>().Should().Be(peggysBuildNumber);
            jObject["builds"][1]["definition"]["id"].Value <int>().Should().Be(peggysDefinitionId);
            jObject["builds"][1]["definition"]["name"].Value <string>().Should().Be(peggysDefinitionName);

            memoryCache.TryGetValue($"{projectName}-{hanksDefinitionId}-{peggysDefinitionId}", out Builds cachedBuilds);
            cachedBuilds.Should().Be(builds);
        }
        public void Calculate()
        {
            Results.Add(new BuildStabilityMetric
            {
                Date               = Date,
                FailureRate        = CalculateFailureRateFor(Builds),
                RecoveryTime       = CalculateAverageRecoveryTimeInHoursFor(Intervals),
                RecoveryTimeStdDev = Calculator.ConvertMillisecondsToHours(
                    Calculator.CalculateStandardDeviation(Intervals)),
                IgnoredTestCount = Builds.Sum(build => build.IgnoredTestCount)
            });

            Intervals.Clear();
            Builds.Clear();
        }
Example #23
0
        private async void DownClicked(object sender, MouseButtonEventArgs e)
        {
            if (isButtonBeingPressed)
            {
                return;
            }
            isButtonBeingPressed = true;
            await Task.Delay(Opt.buttonDelay);

            isButtonBeingPressed = false;
            ImageButton imageButton = (ImageButton)sender;

            Builds.MoveBuildDown(imageButton.uniqueBuildId);
            DisplayContent();
        }
Example #24
0
        protected async Task RunViaBuilds(ITeamCity teamCity, Output output, Builds builds)
        {
            var runningBuilds = await teamCity.GetRunningBuilds();

            var runnintAgentsIds = runningBuilds.Build.Select(x => x.Agent.Id).ToHashSet();

            foreach (var build in builds.Build)
            {
                var info = await teamCity.GetBuild(build.Id);

                var agents = await teamCity.GetCompatibleAgents(info.BuildTypeId);

                RequestForBuild(output, info, agents, runnintAgentsIds);
            }
        }
Example #25
0
        private async void AddUpgradeClicked(object sender, MouseButtonEventArgs e)
        {
            if (isButtonBeingPressed)
            {
                return;
            }
            isButtonBeingPressed = true;
            await Task.Delay(Opt.buttonDelay);

            isButtonBeingPressed = false;
            ImageButton     imageButton     = (ImageButton)sender;
            BrowseCardsPage browseCardsPage = (BrowseCardsPage)Pages.pages[PageName.BrowseCards];

            browseCardsPage.AddUpgrade(imageButton.uniquePilotId, Builds.GetBuild(imageButton.uniqueBuildId));
            NavigationService.Navigate(browseCardsPage);
        }
Example #26
0
        private async void AddImperialBuildClicked(object sender, MouseButtonEventArgs e)
        {
            if (isButtonBeingPressed)
            {
                return;
            }
            isButtonBeingPressed = true;
            await Task.Delay(Opt.buttonDelay);

            isButtonBeingPressed = false;

            contentScrollViewer.ScrollToTop();

            Builds.AddBuild(Faction.Imperial);
            DisplayContent();
        }
        private static async Task WriteRecordsAsync(Builds result, IWriter csvWriter, TextWriter writer, DateTime now)
        {
            await Task.Yield();

            _ = Task.Run(() => Console.WriteLine($"Number of builds {result.Count} at {now}"));
            foreach (var build in result.Build)
            {
                csvWriter.NextRecord();
                csvWriter.WriteRecord(new QueuedBuildStatus {
                    NumberOfBuilds = result.Count ?? 0, Timestamp = now.ToString("o"), Id = build.Id?.ToString(), Branch = build.BranchName, Type = build.BuildTypeId
                });
            }
            await csvWriter.FlushAsync();

            await writer.FlushAsync();
        }
Example #28
0
        public void GivenProjectName_ShouldHydrateBuilds()
        {
            // arrange
            const string projectName = "POCs";

            _configuration   = new InMemoryConfiguration().Instance();
            _vstsHttpService = new VstsHttpService(new Uri(_configuration["VstsApi:BaseUrl"]), new FakeHttpMessageHandler(new TestData().Builds(), new Uri(new Uri(_configuration["VstsApi:BaseUrl"]), "/POCs/_apis/build/builds?api-version=5.0-preview.4"), _configuration["VstsApi:PAT"]));
            new Privateer().SetStaticField <VstsHttpService, HttpClient>(_vstsHttpService, "_httpClient", null);

            IBuildsFactory buildsFactory = new BuildsFactory(_vstsHttpService, _configuration);

            // act
            Builds buildsResult = buildsFactory.Create(projectName);

            // assert
            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(buildsResult));

            jObject.Value <int>("count").Should().Be(2);

            JToken jBuilds = jObject["builds"];

            jBuilds.Should().HaveCount(2);
            jBuilds[0].Value <string>("status").Should().Be("inProgress");
            jBuilds[1].Value <string>("status").Should().Be("completed");
            jBuilds[0].Value <string>("result").Should().Be("pending");
            jBuilds[1].Value <string>("result").Should().Be("succeeded");
            jBuilds[0].Value <string>("buildNumber").Should().Be("1.0.0.2");
            jBuilds[1].Value <string>("buildNumber").Should().Be("20180401.7");

            DateTime dateTime1 = DateTime.Parse("2018-05-17T03:56:10.1694968Z");

            jBuilds[0].Value <DateTime>("startTime").AddHours(TimeZoneInfo.Local.GetUtcOffset(dateTime1).TotalHours).Should().Be(dateTime1);

            DateTime dateTime2 = DateTime.Parse("2018-04-01T22:42:00.0890697Z");

            jBuilds[1].Value <DateTime>("startTime").AddHours(TimeZoneInfo.Local.GetUtcOffset(dateTime2).TotalHours).Should().Be(dateTime2);

            JObject jDefinition = jBuilds[0].Value <JObject>("definition");

            jDefinition["id"].Value <int>().Should().Be(3);
            jDefinition["name"].Value <string>().Should().Be("Honest Joe's CI");

            JObject jRequestedFor = jBuilds[0].Value <JObject>("requestedFor");

            jRequestedFor["displayName"].Value <string>().Should().Be("Jim");
            jRequestedFor["imageUrl"].Value <string>().Should().Be("https://iontechdotorg.visualstudio.com/_api/_common/identityImage?id=f9a18dab-76b3-42bc-bb3a-103865994dae");
        }
Example #29
0
        void objope()
        {
            if (MarksAvaiInitCount > MarksAvaiInitMax)
            {
                if (ClearPoint.X != -1)   //オブジェクト削除
                {
                    int id = GetNearistRoad(ClearPoint, false)[0];
                    for (int i = 0; i < Roads.Count; i++)
                    {
                        if (Roads[i].GetObjectID() == id)
                        {
                            Roads.Remove(Roads[i]);
                            break;
                        }
                    }
                }

                foreach (int i in RoadMarkersNumber)   // 道を追加
                {
                    if (RoadMarkersAvailable[i])
                    {
                        List <int> l = GetNearistRoad(RoadMarkers[i], true);
                        if (l.Count != 0)   //Roadが一つ以上ある場合。
                        //-1、つまり、近くにオブジェクトがない場合はコネクトのidはなしでOK!
                        {
                            foreach (BaseRoadClass o in Roads)
                            {
                                if (l.Contains(o.GetObjectID()))
                                {
                                    o.Add(Roads.Count);
                                }
                            }
                            Roads.Add(new BaseRoadClass(Roads.Count, RoadMarkers[i], "Road", l));
                        }
                        RoadMarkersAvailable[i] = false;
                    }
                }

                foreach (KeyValuePair <int, Point> kv in BuildPoint) //建物追加
                {
                    Builds.Add(new BaseBuildClass(Builds.Count, kv.Value, "Build"));
                    BuildPoint = new Dictionary <int, Point>();
                }

                MarksAvaiInitCount = 0;
            }
        }
        public async void QueueBuild()
        {
            var selectedDefinition = _definitions.First();//await _dialogs.ShowSelectionDialogAsync("Queue a new build", "Definitions", _definitions);

            if (selectedDefinition == null)
            {
                return;
            }

            var queuedBuild = await _teamServices.QueueBuildAsync(Project, new BuildRequest
            {
                Definition   = selectedDefinition,
                SourceBranch = "master"
            });

            Builds.Insert(0, new BuildViewModel(queuedBuild));
        }
Example #31
0
 /// <summary>
 /// There are no comments for Builds in the schema.
 /// </summary>
 public void AddToBuilds(Builds builds)
 {
     base.AddObject("Builds", builds);
 }
Example #32
0
 /// <summary>
 /// Create a new Builds object.
 /// </summary>
 /// <param name="buildId">Initial value of BuildId.</param>
 /// <param name="name">Initial value of Name.</param>
 public static Builds CreateBuilds(int buildId, string name)
 {
     Builds builds = new Builds();
     builds.BuildId = buildId;
     builds.Name = name;
     return builds;
 }