public GameSetting GetGameSetting(string gameName, string publisherName, string developerName, string platformFolder, string gameRootFolder, List <DisableIntroductionAction> disablingIntroductionActions, IllustrationPlatformEnum platformType, string illustrationUrl)
        {
            //Determine if illustration is valid
            var action  = new ValidateIllustrationAction(platformType, illustrationUrl);
            var isValid = action.Execute();

            //Determine illustration Code
            var illustration     = IllustrationPlatformEnum.Unknown;
            var illustrationCode = string.Empty;

            if (isValid)
            {
                var extractIllustrationCodeAction = new ExtractIllustrationCodeAction(platformType, illustrationUrl);
                illustrationCode = extractIllustrationCodeAction.Execute();
                illustration     = platformType;
            }

            //Determine rootValidationRule
            var generateRootValidationRulesAction = new GenerateRootValidationRulesAction(_fileSystemDal);
            var validationRules = generateRootValidationRulesAction.Execute(Path.Combine(platformFolder, gameRootFolder)).ToList();

            //Create new game settings
            var generateNewGameSetting = new GenerateNewGameSettingAction(_gameSettingsRepository);

            return(generateNewGameSetting.Execute(gameName, publisherName, developerName, platformFolder,
                                                  gameRootFolder, disablingIntroductionActions, validationRules, illustration, illustrationCode));
        }
        public void ExtractBattleNet_UnvalidPattern()
        {
            const string illustrationUrl = "https://bnetcmsus-a.akamaihd.net/cms/page_me0dia/BZ5PE09UZVHF1506441173647.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.BattleNet;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);

            action.Execute();
        }
        public void ExtractOrigin_UnvalidPattern()
        {
            const string illustrationUrl = "https://originassets.akamaized.net/origin-com-store-final-ass00ets-prod/193632/231.0x326.0/1047228_LB_231x326_en_US_%5E_2017-05-26-22-43-31_4a0f2ef46a1183b885840fb8d0a7b7cc795b4a9f.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Origin;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);

            action.Execute();
        }
        public void ExtractUplay_UnvalidPattern()
        {
            const string illustrationUrl = "http://store.ubi.com/dw/image/v2/ABBS_PRD/on/demandware.static/-/Sites-mastertalog/default/dw266cd145/images/large/584543894e01656a168b4567.jpg?sw=192&sh=245&sm=fit";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Uplay;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);

            action.Execute();
        }
        public void ExtractGog_UnvalidPattern()
        {
            const string illustrationUrl =
                "https://images-1.gogog.com/b509eebef606ff5cebde31c74e31b01352e9c347e60afaefacff8924b1111b42_product_quartet_250_2x.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Gog;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);

            action.Execute();
        }
        public void ExtractSteam_UnvalidPattern()
        {
            const string illustrationUrl =
                "http://cdn.edgecast.steamstatic.com/steam/aPPpps/110800/header.jpg?t=1482775022";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Steam;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);

            action.Execute();
        }
Ejemplo n.º 7
0
        public void ExtractUplay_ValidPattern()
        {
            const string illustrationUrl = "dw266cd145-584543894e01656a168b4567";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Uplay;

            var action = new ConstructIllustrationAction(platformType, illustrationUrl);
            var url    = action.Execute();

            #region Validate
            Assert.AreEqual("http://store.ubi.com/dw/image/v2/ABBS_PRD/on/demandware.static/-/Sites-masterCatalog/default/dw266cd145/images/large/584543894e01656a168b4567.jpg", url);
            #endregion
        }
Ejemplo n.º 8
0
        public void ValidateOrigin_ValidPattern()
        {
            const string illustrationUrl = "https://originassets.akamaized.net/origin-com-store-final-assets-prod/193632/231.0x326.0/1047228_LB_231x326_en_US_%5E_2017-05-26-22-43-31_4a0f2ef46a1183b885840fb8d0a7b7cc795b4a9f.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Origin;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(true, result);
            #endregion
        }
Ejemplo n.º 9
0
        public void ValidateGog_ValidPattern()
        {
            const string illustrationUrl = "https://images-1.gog.com/b509eebef606ff5cebde31c74e31b01352e9c347e60afaefacff8924b1111b42_product_quartet_250_2x.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Gog;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(true, result);
            #endregion
        }
Ejemplo n.º 10
0
        public void ValidateGog_HasNotValue()
        {
            const string illustrationUrl = "https://images-1.gog.com/_product_quartet_250_2x.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Gog;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(false, result);
            #endregion
        }
Ejemplo n.º 11
0
        public void ValidateSteam_NullIsNotValid()
        {
            const string illustrationUrl = null;
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Steam;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(false, result);
            #endregion
        }
Ejemplo n.º 12
0
        public void ValidateSteam_InvalidPattern_HasNotValue()
        {
            const string illustrationUrl = "http://cdn.edgecast.steamstatic.com/steam/apps//header.jpg?t=1482775022";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Steam;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(false, result);
            #endregion
        }
Ejemplo n.º 13
0
        public void ValidateOrigin_HasNotValue()
        {
            const string illustrationUrl = "https://originassets.akamaized.net/origin-com-store-final-assets-prod/193632/231.0x326.0/1047228_LB_231x326_en_US_%5E_2017-05-26-22-43-.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Origin;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(false, result);
            #endregion
        }
Ejemplo n.º 14
0
        public void ValidateBattleNet_ValidPattern()
        {
            const string illustrationUrl = "https://bnetcmsus-a.akamaihd.net/cms/page_media/BZ5PE09UZVHF1506441173647.jpg";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.BattleNet;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(true, result);
            #endregion
        }
Ejemplo n.º 15
0
        public void GenerateUnknow_ValidPattern()
        {
            var illustrationUrl = string.Empty;
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Unknown;

            var action = new ConstructIllustrationAction(platformType, illustrationUrl);
            var url    = action.Execute();

            #region Validate
            Assert.AreEqual(string.Empty, url);
            #endregion
        }
Ejemplo n.º 16
0
        public void ValidateUplay_HasNotValue()
        {
            const string illustrationUrl = "http://store.ubi.com/dw/image/v2/ABBS_PRD/on/demandware.static/-/Sites-masterCatalog/default/dw266cd145/images/large/.jpg?sw=192&sh=245&sm=fit";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Uplay;

            var action = new ValidateIllustrationAction(platformType, illustrationUrl);
            var result = action.Execute();

            #region Validate
            Assert.AreEqual(false, result);
            #endregion
        }
        public void ExtractSteam_ValidPattern()
        {
            const string illustrationUrl =
                "http://cdn.edgecast.steamstatic.com/steam/apps/110800/header.jpg?t=1482775022";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Steam;

            var action = new ExtractIllustrationCodeAction(platformType, illustrationUrl);
            var code   = action.Execute();

            #region Validate
            Assert.AreEqual("110800", code);
            #endregion
        }
Ejemplo n.º 18
0
        public void GenerateSteam_ValidPattern()
        {
            const string illustrationUrl = "110800";
            const IllustrationPlatformEnum platformType = IllustrationPlatformEnum.Steam;

            var action = new ConstructIllustrationAction(platformType, illustrationUrl);
            var url    = action.Execute();

            #region Validate
            var epoch = EpochHandler.GenerateEpochNow() - 60;
            Assert.AreEqual("http://cdn.edgecast.steamstatic.com/steam/apps/110800/header.jpg", url.Split(new [] { "?t=" }, StringSplitOptions.RemoveEmptyEntries).First());
            Assert.IsTrue(epoch < int.Parse(url.Split(new [] { "?t=" }, StringSplitOptions.RemoveEmptyEntries).Last()));
            #endregion
        }
Ejemplo n.º 19
0
 public ExtractIllustrationCodeAction(IllustrationPlatformEnum platformType, string illustrationUrl)
 {
     _platformType    = platformType;
     _illustrationUrl = illustrationUrl;
 }
Ejemplo n.º 20
0
 public ConstructIllustrationAction(IllustrationPlatformEnum platformType, string illustrationUrl)
 {
     _illustrationUrl = illustrationUrl;
     _platformType    = platformType;
 }
 public GameSetting Execute(string gameName, string publisherName, string developerName, string platformFolder, string gameRootFolder, List <DisableIntroductionAction> disablingIntroductionActions, List <RootValidationRule> validationRules, IllustrationPlatformEnum illustrationPlatform, string illustrationId)
 {
     return(_gameSettingsRepository.CreateNewGameSetting(gameName, publisherName, developerName, platformFolder, gameRootFolder, disablingIntroductionActions, validationRules, illustrationPlatform, illustrationId));
 }
 public ValidateIllustrationAction(IllustrationPlatformEnum platformType, string illustrationUrl)
 {
     _illustrationUrl = illustrationUrl;
     _platformType    = platformType;
 }
        public GameSetting CreateNewGameSetting(string gameName, string publisherName, string developerName, string platformFolder, string gameRootFolder, List <DisableIntroductionAction> disablingIntroductionActions, List <RootValidationRule> validationRules, IllustrationPlatformEnum illustrationPlatform, string illustrationId)
        {
            // Input validation
            if (string.IsNullOrWhiteSpace(gameName))
            {
                throw new ArgumentException("gameName");
            }
            if (!_fileSystemDal.DirectoryExists(platformFolder))
            {
                throw new ArgumentException("platformFolder");
            }
            if (!_fileSystemDal.DirectoryExists(Path.Combine(platformFolder, gameRootFolder)))
            {
                throw new ArgumentException("gameRootFolder");
            }

            foreach (var action in disablingIntroductionActions)
            {
                var pathToCheck = Path.Combine(platformFolder.Trim('\\'), gameRootFolder.Trim('\\'), action.InitialName.Trim('\\'));
                switch (action.Type)
                {
                case DisableActionTypeEnum.FileRename:
                    if (!_fileSystemDal.FileExists(pathToCheck))
                    {
                        throw new ArgumentException($"{pathToCheck} don't exists");
                    }
                    break;

                case DisableActionTypeEnum.FolderRename:
                    if (!_fileSystemDal.DirectoryExists(pathToCheck))
                    {
                        throw new ArgumentException($"{pathToCheck} don't exists");
                    }
                    break;

                default:
                    throw new NotImplementedException($"action {action.Type} not supported");
                }
            }

            //Entity creation
            var result = new GameSetting
            {
                Name                     = gameName,
                PublisherName            = publisherName,
                DeveloperName            = developerName,
                IllustrationPlatform     = illustrationPlatform,
                IllustrationId           = illustrationId,
                SettingVersion           = new Version(0, 0, 1, 0),
                PotentialRootFolderNames = new List <string>()
                {
                    gameRootFolder
                },
                DisablingIntroductionActions = disablingIntroductionActions,
                ValidationRules = validationRules
            };

            return(result);
        }
Ejemplo n.º 24
0
        public bool IsIllustrationValid(IllustrationPlatformEnum platformType, string illustrationUrl)
        {
            var action = new ValidateIllustrationAction(platformType, illustrationUrl);

            return(action.Execute());
        }