Beispiel #1
0
        private void MessageConsumer_BuildReceived(object sender, BasicDeliverEventArgs evn)
        {
            _logger.LogInformation("message build received");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Received Build message");
            var message         = Encoding.UTF8.GetString(evn.Body);
            var projectForBuild = JsonConvert.DeserializeObject <ProjectForBuildDTO>(message);
            var projectName     = $"project_{projectForBuild.ProjectId}";

            Console.WriteLine($"{projectName} = =========  {projectForBuild.TimeStamp}");
            Console.WriteLine($"language ==> {projectForBuild.Language.ToString()}");
            Console.ForegroundColor = ConsoleColor.White;
            try
            {
                var buildResult = _worker.Build(projectForBuild.UriForProjectDownload, projectName, projectForBuild.Language, out var artifactArchiveUri);

                var resultDTO = new BuildResultDTO()
                {
                    ProjectId               = projectForBuild.ProjectId,
                    WasBuildSucceeded       = buildResult.IsSuccess,
                    UriForArtifactsDownload = artifactArchiveUri,
                    Message = buildResult.Message,
                    BuildId = projectForBuild.BuildId
                };

                var jsonMessage = JsonConvert.SerializeObject(resultDTO);
                SendBuildMessage(jsonMessage);
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Build error");
            }
            _messageConsumerScopeBuild.MessageConsumer.SetAcknowledge(evn.DeliveryTag, true);
        }
Beispiel #2
0
        public ActionResult Action(ResolutionEnum ScreenRez, Guid CPUs, Guid GPUs)
        {
            if (CPUs != null & GPUs != null)
            {
                ResolutionDTO resolution = (ResolutionDTO)ScreenRez;

                BuildResultDTO resultDTO = Service.Action(CPUs, GPUs, ResolutionDTO.res1080);

                BuildResult buildResult = Mapper.Map <BuildResultDTO, BuildResult>(resultDTO);

                return(PartialView(buildResult));
            }

            return(PartialView());
        }
Beispiel #3
0
        public BuildResultDTO Action(Guid cpu, Guid gpu, ResolutionDTO resolution)
        {
            try
            {
                if (cpu != null & gpu != null)
                {
                    BuildResultDTO buildResult = new BuildResultDTO
                    {
                        BuildGames = new List <BuildGameDTO>()
                    };
                    float CPUbench      = CPUs.FindById(cpu).AverageBench / 100f;
                    float GPUbench      = GPUs.FindById(gpu).AverageBench / 100f;
                    float ScreenRezConf =
                        (resolution == ResolutionDTO.res1080) ? 1 : ((resolution == ResolutionDTO.res1440) ? 0.75f : 0.5f);
                    float fp = 120 * CPUbench * GPUbench * ScreenRezConf;

                    foreach (Game game in Games.Get().ToList())
                    {
                        float fps = fp / (game.AverangeRequirements / 100f);
                        buildResult.BuildGames.Add(
                            new BuildGameDTO {
                            GameDTO = mapper.Map <Game, GameDTO>(game), FPS = (int)fps
                        });
                    }

                    buildResult.Build = new BuildEntityDTO
                    {
                        //Doubtfully
                        CPU = mapper.Map <CPU, CPUdto>(CPUs.FindById(cpu)),
                        GPU = mapper.Map <GPU, GPUdto>(GPUs.FindById(gpu))
                    };

                    return(buildResult);
                }
                //doubtfully
                return(null);
            }
            catch (Exception ex)
            {
                throw ex;
                return(null);
                //ex.Message;
            }
        }
Beispiel #4
0
        public async Task <BuildDTO> CreateFinishBuildResult(BuildResultDTO result, DateTime finished)
        {
            var build = await _context.Builds
                        .FirstOrDefaultAsync(item => item.Id == result.BuildId);

            build.BuildFinished = finished;
            if (result.WasBuildSucceeded)
            {
                build.BuildStatus             = BuildStatus.Successfull;
                build.BuildMessage            = string.IsNullOrWhiteSpace(result.Message) ? "Build finished successfully" : result.Message;
                build.UriForArtifactsDownload = result.UriForArtifactsDownload.ToString();
            }
            else
            {
                build.BuildStatus  = BuildStatus.Failed;
                build.BuildMessage = "Build failed with message: " + result.Message;
            }
            _context.Builds.Update(build);
            await _context.SaveChangesAsync();

            return(_mapper.Map <BuildDTO>(build));
        }
Beispiel #5
0
        public void Mapping_MapBuildResultDTOtoBuildResult_PropertesOfEntitesSame()
        {
            //Arrange
            Guid guid      = Guid.NewGuid();
            Guid CPUguid   = Guid.NewGuid();
            Guid GPUguid   = Guid.NewGuid();
            Guid GameGuid1 = Guid.NewGuid();
            Guid GameGuid2 = Guid.NewGuid();

            CPUdto cpudto =
                new CPUdto {
                ProductGuid = CPUguid, AverageBench = 100, ProcessorNumber = "NameCPU"
            };
            GPUdto gpudto =
                new GPUdto {
                ProductGuid = GPUguid, AverageBench = 101, Name = "NameGPU"
            };
            BuildEntityDTO build = new BuildEntityDTO {
                BuildEntityGuid = guid, CPU = cpudto, GPU = gpudto
            };

            GameDTO gameDTO1 =
                new GameDTO {
                GameGuid = GameGuid1, AverangeRequirements = 100, Name = "NameGame1"
            };
            GameDTO gameDTO2 =
                new GameDTO {
                GameGuid = GameGuid2, AverangeRequirements = 50, Name = "NameGame2"
            };
            List <BuildGameDTO> buildGameDTOs = new List <BuildGameDTO>
            {
                new BuildGameDTO {
                    FPS = 100, GameDTO = gameDTO1
                },
                new BuildGameDTO {
                    FPS = 100, GameDTO = gameDTO2
                }
            };

            BuildResultDTO resultDTO = new BuildResultDTO {
                Build = build, BuildGames = buildGameDTOs
            };
            //Act
            var result = mapper.Map <BuildResultDTO, BuildResult>(resultDTO);

            //Assert
            Assert.IsNotNull(
                result.BuildGames.Find(x => x.Game.GameGuid == GameGuid1), "Game guid1 not found");
            Assert.IsNotNull(
                result.BuildGames.Find(x => x.Game.GameGuid == GameGuid2), "Game guid2 not found");

            Assert.IsNotNull(
                result.BuildGames.Find(x => x.Game.Name == gameDTO1.Name), "Game Name1 not found");
            Assert.IsNotNull(
                result.BuildGames.Find(x => x.Game.Name == gameDTO2.Name), "Game Name2 not found");
            Assert.IsNotNull(
                result.BuildGames.Find(
                    x => x.Game.AverangeRequirements == gameDTO1.AverangeRequirements),
                "Game AverangeReq1 not found");
            Assert.IsNotNull(
                result.BuildGames.Find(
                    x => x.Game.AverangeRequirements == gameDTO2.AverangeRequirements),
                "Game AverangeReq2 not found");

            Assert.IsNotNull(result.BuildEntity, "BuildEntity is null");

            Assert.IsNotNull(result.BuildEntity.CPU, "BuildEntity CPU is null");
            Assert.IsNotNull(result.BuildEntity.GPU, "BuildEntity GPU is null");
        }
Beispiel #6
0
        public void Action_OutputPartialView_RightOutput()
        {
            //Arrange
            ResolutionDTO resolution = ResolutionDTO.res1080;
            Guid          guid       = Guid.NewGuid();
            Guid          CPUguid    = Guid.NewGuid();
            Guid          GPUguid    = Guid.NewGuid();
            Guid          GameGuid1  = Guid.NewGuid();
            Guid          GameGuid2  = Guid.NewGuid();

            CPUdto cpudto =
                new CPUdto {
                ProductGuid = CPUguid, AverageBench = 100, ProcessorNumber = "NameCPU"
            };
            GPUdto gpudto =
                new GPUdto {
                ProductGuid = GPUguid, AverageBench = 101, Name = "NameGPU"
            };
            BuildEntityDTO build = new BuildEntityDTO {
                BuildEntityGuid = guid, CPU = cpudto, GPU = gpudto
            };

            GameDTO gameDTO1 =
                new GameDTO {
                GameGuid = GameGuid1, AverangeRequirements = 100, Name = "NameGame1"
            };
            GameDTO gameDTO2 =
                new GameDTO {
                GameGuid = GameGuid2, AverangeRequirements = 50, Name = "NameGame2"
            };
            List <BuildGameDTO> buildGameDTOs = new List <BuildGameDTO>
            {
                new BuildGameDTO {
                    FPS = 100, GameDTO = gameDTO1
                },
                new BuildGameDTO {
                    FPS = 100, GameDTO = gameDTO2
                }
            };

            BuildResultDTO resultDTO = new BuildResultDTO {
                Build = build, BuildGames = buildGameDTOs
            };

            Service.Setup(x => x.Action(CPUguid, GPUguid, resolution)).Returns(resultDTO);

            //Act
            var result =
                Controller.Action((ResolutionEnum)resolution,
                                  CPUguid, GPUguid) as PartialViewResult;
            //Assert
            BuildResult buildResult = (BuildResult)result.Model;

            Assert.IsNotNull(
                buildResult.BuildGames.Find(x => x.Game.GameGuid == GameGuid1), "Game guid1 not found");
            Assert.IsNotNull(
                buildResult.BuildGames.Find(x => x.Game.GameGuid == GameGuid2), "Game guid2 not found");

            Assert.IsNotNull(
                buildResult.BuildGames.Find(x => x.Game.Name == gameDTO1.Name), "Game Name1 not found");
            Assert.IsNotNull(
                buildResult.BuildGames.Find(x => x.Game.Name == gameDTO2.Name), "Game Name2 not found");
            Assert.IsNotNull(
                buildResult.BuildGames.Find(
                    x => x.Game.AverangeRequirements == gameDTO1.AverangeRequirements),
                "Game AverangeReq1 not found");
            Assert.IsNotNull(
                buildResult.BuildGames.Find(
                    x => x.Game.AverangeRequirements == gameDTO2.AverangeRequirements),
                "Game AverangeReq2 not found");

            Assert.IsNotNull(buildResult.BuildEntity, "BuildEntity is null");

            Assert.IsNotNull(buildResult.BuildEntity.CPU, "BuildEntity CPU is null");
            Assert.IsNotNull(buildResult.BuildEntity.GPU, "BuildEntity GPU is null");
        }