Пример #1
0
        public async Task <ApiResponse> Handle(AddLanguageCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                LanguageDetail obj = new LanguageDetail();
                _mapper.Map(request, obj);
                obj.CreatedById  = request.CreatedById;
                obj.CreatedDate  = request.CreatedDate;
                obj.IsDeleted    = false;
                obj.LanguageName = request.LanguageName;
                await _dbContext.LanguageDetail.AddAsync(obj);

                await _dbContext.SaveChangesAsync();

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
        public async Task WriteWhatIsNewFile(LanguageType langType)
        {
            const string versionSearchUrl     = "https://api.assistantapps.com/Version/Search";
            BaseExternalApiRepository apiRepo = new BaseExternalApiRepository();

            LanguageDetail language = LanguageHelper.GetLanguageDetail(langType);
            string         path     = $"{AppFile.DataWhatIsNewFolder}/{language.LanguageAppFolder}.json";

            VersionSearchViewModel searchVm = new VersionSearchViewModel
            {
                AppGuid      = Guid.Parse("dfe0dbc7-8df4-47fb-a5a5-49af1937c4e2"),
                LanguageCode = language.LanguageAppFolder,
                Page         = 1,
                Platforms    = new List <PlatformType> {
                    PlatformType.Android, PlatformType.iOS
                },
            };
            ResultWithValue <string> whatIsNewResult = await apiRepo.Post(versionSearchUrl, JsonConvert.SerializeObject(searchVm));

            if (whatIsNewResult.HasFailed)
            {
                return;
            }

            try
            {
                ResultWithPagination <VersionViewModel> versionItem = JsonConvert.DeserializeObject <ResultWithPagination <VersionViewModel> >(whatIsNewResult.Value);
                Console.WriteLine($"Writing WhatIsNew Data to {AppFile.DataWhatIsNewFolder} in {language.LanguageGameFolder}");
                _appDataSysRepo.WriteBackToJsonFile(versionItem.Value, path);
            }
            catch
            {
                Console.WriteLine($"FAILED writing WhatIsNew Data to {AppFile.DataWhatIsNewFolder} in {language.LanguageGameFolder}");
            }
        }
Пример #3
0
        private static async Task <List <string> > LangUpToDateAudit(bool persist = false)
        {
            const string  translationExportUrl = "https://api.assistantapps.com/TranslationExport/{0}/{1}";
            const string  appGuid       = "dfe0dbc7-8df4-47fb-a5a5-49af1937c4e2";
            List <string> consoleOutput = new List <string>();

            BaseExternalApiRepository apiRepo = new BaseExternalApiRepository();
            ResultWithValue <List <LanguageViewModel> > langResult = await apiRepo.Get <List <LanguageViewModel> >("https://api.assistantapps.com/Language");

            if (langResult.HasFailed)
            {
                consoleOutput.Add("Could not get Server Languages");
                return(consoleOutput);
            }

            FileSystemRepository appLangRepo = new FileSystemRepository(AppLangDirectory);

            foreach (LanguageType langType in AvailableLangs)
            {
                LanguageDetail language = LanguageHelper.GetLanguageDetail(langType);

                string languageFile = $"language.{language.LanguageAppFolder}.json";
                Dictionary <string, dynamic> langJson = appLangRepo.LoadJsonDict <dynamic>(languageFile);
                langJson.TryGetValue("hashCode", out dynamic localHashCode);

                LanguageViewModel langViewModel = langResult.Value.FirstOrDefault(l => l.LanguageCode.Equals(language.LanguageAppFolder));
                if (langViewModel == null)
                {
                    continue;
                }

                ResultWithValue <Dictionary <string, string> > languageContent = await apiRepo.Get <Dictionary <string, string> >(translationExportUrl.Replace("{0}", appGuid).Replace("{1}", langViewModel.Guid.ToString()));

                if (languageContent.HasFailed)
                {
                    continue;
                }
                languageContent.Value.TryGetValue("hashCode", out string serverHashCode);

                bool hashCodeMatches = serverHashCode != null && localHashCode != null && localHashCode.Equals(serverHashCode);
                if (hashCodeMatches)
                {
                    continue;
                }

                if (persist)
                {
                    appLangRepo.WriteBackToJsonFile(languageContent.Value, languageFile);
                }

                consoleOutput.Add($"{languageFile} Language Hashcode Audit has failed");
            }

            return(consoleOutput);
        }
Пример #4
0
        public LanguageDetailInput Add(LanguageDetailInput input)
        {
            LanguageDetail entity = mapper.Map <LanguageDetail>(input);

            entity.CreatedBy    = GetCurrentUserLogin();
            entity.CreatedDate  = DateTime.Now;
            entity.ModifiedDate = DateTime.Now;
            entity.ModifiedBy   = GetCurrentUserLogin();
            languageDetailRepository.Add(entity);
            return(mapper.Map <LanguageDetailInput>(entity));
        }
Пример #5
0
        public bool Delete(EntityId <int> idModel)
        {
            LanguageDetail entity = GetById(idModel);

            if (entity == null)
            {
                return(false);
            }
            entity.DeletedDate = DateTime.Now;
            entity.DeletedBy   = GetCurrentUserLogin();
            languageDetailRepository.Update(entity);
            return(true);
        }
Пример #6
0
        public bool Update(LanguageDetailInput input)
        {
            LanguageDetail entity = GetById(input);

            if (entity == null)
            {
                return(false);
            }
            mapper.Map(input, entity);
            entity.ModifiedDate = DateTime.Now;
            entity.ModifiedBy   = GetCurrentUserLogin();
            languageDetailRepository.Update(entity);
            return(true);
        }
Пример #7
0
        public void GenerateAppFiles(LanguageDetail language, Dictionary <string, InventoryDescription> itemNames, Dictionary <string, List <ILocalised> > lookup)
        {
            WriteAppFile(AppFile.Customisation, _outputFileSysRepo.LoadListJsonFile <CustomisationLocalised>(OutputFile.Customization), language, itemNames);

            WriteAppFile(AppFile.Ammo, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Ammo), lookup, language, itemNames);
            WriteAppFile(AppFile.Blocks, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Blocks), lookup, language, itemNames);
            WriteAppFile(AppFile.Bucket, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Bucket), lookup, language, itemNames);
            WriteAppFile(AppFile.Building, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Building), lookup, language, itemNames);
            WriteAppFile(AppFile.CharObject, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.CharObject), lookup, language, itemNames);
            WriteAppFile(AppFile.Component, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Component), lookup, language, itemNames);
            WriteAppFile(AppFile.Construction, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Construction), lookup, language, itemNames);
            WriteAppFile(AppFile.Consumable, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Consumable), lookup, language, itemNames);
            WriteAppFile(AppFile.ConsumableShared, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.ConsumableShared), lookup, language, itemNames);
            WriteAppFile(AppFile.Containers, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Containers), lookup, language, itemNames);
            WriteAppFile(AppFile.Craftbot, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Craftbot), lookup, language, itemNames);
            WriteAppFile(AppFile.Decor, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Decor), lookup, language, itemNames);
            WriteAppFile(AppFile.Fitting, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Fitting), lookup, language, itemNames);
            WriteAppFile(AppFile.Fuel, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Fuel), lookup, language, itemNames);
            WriteAppFile(AppFile.Harvest, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Harvest), lookup, language, itemNames);
            WriteAppFile(AppFile.Industrial, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Industrial), lookup, language, itemNames);
            WriteAppFile(AppFile.Interactive, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Interactive), lookup, language, itemNames);
            WriteAppFile(AppFile.InteractiveShared, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.InteractiveShared), lookup, language, itemNames);
            WriteAppFile(AppFile.InteractiveUpgradable, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.InteractiveUpgradable), lookup, language, itemNames);
            WriteAppFile(AppFile.InteractiveContainer, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.InteractiveContainer), lookup, language, itemNames);
            WriteAppFile(AppFile.Light, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Light), lookup, language, itemNames);
            WriteAppFile(AppFile.ManMade, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.ManMade), lookup, language, itemNames);
            WriteAppFile(AppFile.Outfit, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Outfit), lookup, language, itemNames);
            WriteAppFile(AppFile.PackingCrate, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.PackingCrate), lookup, language, itemNames);
            WriteAppFile(AppFile.Plant, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Plant), lookup, language, itemNames);
            WriteAppFile(AppFile.Power, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Power), lookup, language, itemNames);
            WriteAppFile(AppFile.Resources, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Resources), lookup, language, itemNames);
            WriteAppFile(AppFile.Robot, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Robot), lookup, language, itemNames);
            WriteAppFile(AppFile.Scrap, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Scrap), lookup, language, itemNames);
            WriteAppFile(AppFile.Spaceship, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Spaceship), lookup, language, itemNames);
            WriteAppFile(AppFile.Survival, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Survival), lookup, language, itemNames);
            WriteAppFile(AppFile.Tool, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Tool), lookup, language, itemNames);
            WriteAppFile(AppFile.Vehicle, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Vehicle), lookup, language, itemNames);
            WriteAppFile(AppFile.Warehouse, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Warehouse), lookup, language, itemNames);

            WriteAppFile(AppFile.Other, _outputFileSysRepo.LoadListJsonFile <GameItemLocalised>(OutputFile.Other), lookup, language, itemNames);

            WriteAppFile(AppFile.CookBotRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.CookBotRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.CraftBotRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.CraftBotRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.DispenserRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.DispenserRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.DressBotRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.DressBotRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.HideOutRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.HideOutRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.RefineryRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.RefineryRecipes), lookup, language, itemNames);
            WriteAppFile(AppFile.WorkbenchRecipes, _outputFileSysRepo.LoadListJsonFile <RecipeLocalised>(OutputFile.WorkbenchRecipes), lookup, language, itemNames);
        }
Пример #8
0
        public void UpdateLanguage(string code, string key, string value)
        {
            ListResult <LanguageDetailDto> langsInCache = GetLanguageInCache();
            LanguageDetail langDetail = languageDetailRepository.GetFirstByCondition(x => x.LanguageCode == code && x.LanguageKey == key);

            if (langDetail != null)
            {
                langDetail.LanguageValue = value;
                langDetail.UpdateToken   = Guid.NewGuid();
                langDetail.ModifiedDate  = DateTime.Now;
                langDetail.ModifiedBy    = GetCurrentUserLogin();
                languageDetailRepository.Update(langDetail);
                unitOfWork.SaveChanges();
                LanguageDetailDto langDetailDto = mapper.Map <LanguageDetailDto>(langDetail);
                AddLanguageToCache(langDetailDto);
            }
        }
Пример #9
0
        public string GetlangByKey(string key)
        {
            // fix key
            if (!key.StartsWith("LBL_"))
            {
                key = "LBL_" + key.ToUpper();
            }
            else
            {
                key = key.ToUpper();
            }

            string langCode  = CultureInfo.CurrentCulture.Name;
            string langValue = "[" + key + "]";
            ListResult <LanguageDetailDto> langsInCache = GetLanguageInCache();
            LanguageDetailDto langDetailDto             = langsInCache.GetFirstByCondition(x => x.LanguageCode == langCode && x.LanguageKey == key);

            if (langDetailDto == null)
            {
                string[] allLangCodes = languageRepository.GetAll().Select(x => x.LangCode).ToArray();
                foreach (string code in allLangCodes)
                {
                    LanguageDetail langDetail = new LanguageDetail()
                    {
                        LanguageCode  = code,
                        LanguageKey   = key,
                        LanguageValue = langValue,
                        CreatedBy     = GetCurrentUserLogin(),
                        CreatedDate   = DateTime.Now,
                        ModifiedDate  = DateTime.Now
                    };
                    langDetail = languageDetailRepository.Add(langDetail);

                    if (code.Equals(langCode))
                    {
                        langDetailDto = mapper.Map <LanguageDetailDto>(langDetail);
                    }
                }

                unitOfWork.SaveChanges();
                AddLanguageToCache(langDetailDto);
            }
            return(langDetailDto.LanguageValue);
        }
Пример #10
0
        public async Task <ApiResponse> Handle(EditLanguageCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                LanguageDetail obj = await _dbContext.LanguageDetail.FirstOrDefaultAsync(x => x.LanguageId == request.LanguageId);

                obj.ModifiedById = request.ModifiedById;
                obj.ModifiedDate = request.ModifiedDate;
                _mapper.Map(request, obj);
                await _dbContext.SaveChangesAsync();

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
Пример #11
0
        private static void AddItemToLanguagePacks()
        {
            Console.WriteLine("New Key");
            string newKey = Console.ReadLine();

            Console.WriteLine("New Value");
            string newValue = Console.ReadLine();

            if (string.IsNullOrEmpty(newKey))
            {
                return;
            }

            FileSystemRepository appLangRepo      = new FileSystemRepository(AppLangDirectory);
            List <string>        completedFolders = new List <string>();

            foreach (LanguageType langType in AvailableLangs)
            {
                LanguageDetail language = LanguageHelper.GetLanguageDetail(langType);
                if (completedFolders.Contains(language.LanguageAppFolder))
                {
                    continue;
                }

                string languageFile = $"language.{language.LanguageAppFolder}.json";
                Dictionary <string, dynamic> langJson = appLangRepo.LoadJsonDict <dynamic>(languageFile);
                if (langJson.ContainsKey(newKey))
                {
                    continue;
                }

                langJson.Add(newKey, newValue);
                appLangRepo.WriteBackToJsonFile(langJson, languageFile);

                completedFolders.Add(language.LanguageAppFolder);
            }
        }
Пример #12
0
        private void WriteAppFile(string outputFileName, IEnumerable <GameItemLocalised> localisedData, Dictionary <string, List <ILocalised> > lookup, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames)
        {
            List <AppGameItemLang> appBlock          = new List <AppGameItemLang>();
            List <AppGameItemBase> appBlockBaseItems = new List <AppGameItemBase>();

            foreach (GameItemLocalised blockLocalised in localisedData)
            {
                if (GuidExclusion.All.Any(a => a.Equals(blockLocalised.ItemId)))
                {
                    continue;
                }

                GameItemLocalised relocalised = (language.LanguageType == LanguageType.English)
                    ? blockLocalised
                    : blockLocalised.ReLocalise(itemNames);

                GameItemFeatures defaultFeatures = new GameItemFeatures {
                    Uuid = blockLocalised.ItemId, Features = null
                };
                GameItemFeatures gameItemFeatures = FeaturesList.Features.FirstOrDefault(u => u.Uuid.Equals(blockLocalised.ItemId, StringComparison.InvariantCultureIgnoreCase)) ?? defaultFeatures;
                Upgrade          gameItemUpgrades = UpgradeList.Upgrades.FirstOrDefault(u => u.Uuid.Equals(blockLocalised.ItemId, StringComparison.InvariantCultureIgnoreCase));

                if (gameItemUpgrades != null && lookup.ContainsKey(gameItemUpgrades.TargetUuid))
                {
                    List <ILocalised> list = lookup[gameItemUpgrades.TargetUuid];
                    if (list != null && list.Count > 0)
                    {
                        if (list[0] is GameItemLocalised)
                        {
                            gameItemUpgrades.TargetId = list[0].AppId;
                        }
                        else
                        {
                            gameItemUpgrades = null;
                        }
                    }
                }

                AppGameItem full = AppFileBlockMapper.ToAppFile(relocalised, gameItemFeatures.Features, gameItemUpgrades);
                appBlock.Add(full.ToLang());
                string image = GetItemImage(full.AppId);
                appBlockBaseItems.Add(full.ToBase(image));
            }

            _appFileSysRepo.WriteBackToJsonFile(appBlockBaseItems, outputFileName);
            _appFileSysRepo.WriteBackToJsonFile(appBlock, GetJsonLang(language.LanguageAppFolder, outputFileName));
        }
Пример #13
0
        private void WriteAppFile(string outputFileName, IEnumerable <CustomisationLocalised> localisedData, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames)
        {
            List <AppGameItemLang> appBlock          = new List <AppGameItemLang>();
            List <AppGameItemBase> appBlockBaseItems = new List <AppGameItemBase>();

            foreach (CustomisationLocalised blockLocalised in localisedData)
            {
                foreach (CustomisationItemLocalised blockLoc in blockLocalised.Items)
                {
                    if (GuidExclusion.All.Any(a => a.Equals(blockLoc.ItemId.Replace("_male", string.Empty).Replace("_female", string.Empty))))
                    {
                        continue;
                    }

                    CustomisationItemLocalised relocalised = (language.LanguageType == LanguageType.English)
                        ? blockLoc
                        : blockLoc.ReLocaliseItem(itemNames);

                    AppGameItem full = AppFileBlockMapper.ToAppFile(relocalised, blockLocalised.Category);
                    if (!_appImagesRepo.FileExists("items", full.AppId))
                    {
                        continue;
                    }

                    appBlock.Add(full.ToLang());
                    string image = GetItemImage(full.AppId);
                    appBlockBaseItems.Add(full.ToBase(image));
                }
            }

            _appFileSysRepo.WriteBackToJsonFile(appBlockBaseItems, outputFileName);
            _appFileSysRepo.WriteBackToJsonFile(appBlock, GetJsonLang(language.LanguageAppFolder, outputFileName));
        }
Пример #14
0
        private void WriteAppFile(string outputFileName, IEnumerable <RecipeLocalised> localisedData, Dictionary <string, List <ILocalised> > lookup, LanguageDetail language, Dictionary <string, InventoryDescription> itemNames)
        {
            List <AppRecipeLang> appRecipe          = new List <AppRecipeLang>();
            List <AppRecipeBase> appRecipeBaseItems = new List <AppRecipeBase>();

            foreach (RecipeLocalised recipeLocalised in localisedData)
            {
                if (GuidExclusion.All.Any(a => a.Equals(recipeLocalised.ItemId)))
                {
                    continue;
                }

                RecipeLocalised relocalised = (language.LanguageType == LanguageType.English)
                    ? recipeLocalised
                    : recipeLocalised.ReLocalise(itemNames);

                AppRecipe full = AppFileReciperMapper.ToAppFile(relocalised, lookup);
                appRecipe.Add(full.ToLang());

                string image = GetItemImage(full.AppId);
                appRecipeBaseItems.Add(full.ToBase(image));
            }

            _appFileSysRepo.WriteBackToJsonFile(appRecipeBaseItems, outputFileName);
            _appFileSysRepo.WriteBackToJsonFile(appRecipe, GetJsonLang(language.LanguageAppFolder, outputFileName));
        }
Пример #15
0
        private static async Task <int> Main(string[] args)
        {
            FileSystemRepository shapeSetsFileSysRepo        = new FileSystemRepository(ShapeSetsDirectory);
            FileSystemRepository legacyShapeSetsFileSysRepo  = new FileSystemRepository(LegacyShapeSetsDirectory);
            FileSystemRepository survivalCraftingFileSysRepo = new FileSystemRepository(SurvivalCraftingDirectory);
            FileSystemRepository characterFileSysRepo        = new FileSystemRepository(CharacterDirectory);
            FileSystemRepository legacyLanguageFileSysRepo   = new FileSystemRepository(LegacyLanguageDirectory);
            FileSystemRepository survivalLanguageFileSysRepo = new FileSystemRepository(SurvivalLanguageDirectory);
            FileSystemRepository attackFileSysRepo           = new FileSystemRepository(AttackDataDirectory);

            FileSystemRepository outputFileSysRepo = new FileSystemRepository(OutputDirectory);
            FileSystemRepository inputFileSysRepo  = new FileSystemRepository(InputDirectory);
            FileSystemRepository appFilesSysRepo   = new FileSystemRepository(AppJsonFilesDirectory);
            FileSystemRepository appImagesRepo     = new FileSystemRepository(AppImagesDirectory);
            FileSystemRepository appDataSysRepo    = new FileSystemRepository(AppDataDirectory);
            FileSystemRepository appLangSysRepo    = new FileSystemRepository(AppLangDirectory);

            LanguageDetail language = new LanguageDetail(LanguageType.English, "English", "en");

            Console.WriteLine("Hit Enter");
            Console.ReadLine();
            int langCount = 0;

            Console.WriteLine("Please select an option");
            foreach (LanguageType langType in AvailableLangs)
            {
                if (langType == LanguageType.NotSpecified)
                {
                    continue;
                }
                langCount++;
                Console.WriteLine($"{langCount}. Localise Files to {langType}");
            }
            Console.WriteLine($"{AvailableLangs.Length}. Generate All Files for All Languages");

            string langInput = Console.ReadLine();

            if (!int.TryParse(langInput, out int langNumberInput))
            {
                return(0);
            }
            if (langNumberInput < 0 || langNumberInput > AvailableLangs.Length)
            {
                return(0);
            }

            if (langNumberInput != 0 && langNumberInput < AvailableLangs.Length)
            {
                LanguageType selectedLangType = AvailableLangs[langNumberInput];
                language = LanguageHelper.GetLanguageDetail(selectedLangType);
            }

            FileHandlers.GameFilesReader gameFilesReader = new FileHandlers.GameFilesReader(outputFileSysRepo,
                                                                                            shapeSetsFileSysRepo, legacyShapeSetsFileSysRepo,
                                                                                            survivalCraftingFileSysRepo, characterFileSysRepo,
                                                                                            legacyLanguageFileSysRepo, survivalLanguageFileSysRepo);

            if (langNumberInput != 0 && langNumberInput == AvailableLangs.Length)
            {
                List <string> completedFolders = new List <string>();
                foreach (LanguageType langType in AvailableLangs)
                {
                    language = LanguageHelper.GetLanguageDetail(langType);
                    if (completedFolders.Contains(language.LanguageAppFolder))
                    {
                        continue;
                    }

                    GenerateAppFiles(gameFilesReader, outputFileSysRepo, appFilesSysRepo, appImagesRepo, language);
                    completedFolders.Add(language.LanguageAppFolder);
                }

                return(0);
            }

            while (true)
            {
                Console.WriteLine("Please select an option:");
                Console.WriteLine("0. Exit");
                Console.WriteLine("1. Generate Intermediate Files");
                Console.WriteLine($"2. Create App Files in {language.LanguageGameFolder}");
                Console.WriteLine("3. Cut images from sprite map");
                Console.WriteLine("4. Generate App Data files");
                Console.WriteLine("5. Write server data to app files");
                Console.WriteLine("6. Add item to Language Pack");

                string input = Console.ReadLine();
                if (!int.TryParse(input, out int numberInput))
                {
                    return(0);
                }

                DataFileHandler dataFileHandler = new DataFileHandler(inputFileSysRepo, appDataSysRepo, attackFileSysRepo, appLangSysRepo);

                switch (numberInput)
                {
                case 1:
                    gameFilesReader.GenerateIntermediate();
                    break;

                case 2:
                    GenerateAppFiles(gameFilesReader, outputFileSysRepo, appFilesSysRepo, appImagesRepo, language);
                    break;

                case 3:
                    Dictionary <string, List <ILocalised> > keyValueOfGameItems = gameFilesReader.GetKeyValueOfAllItems(includeOtherItems: true);

                    ImageCutter imageCutter = new ImageCutter(DataGuiDirectory, SurvivalGuiDirectory, OutputDirectory);
                    imageCutter.CutOutImages(keyValueOfGameItems);
                    break;

                case 4:
                    List <GameItemLocalised> gameItemsList = gameFilesReader.GetAllLocalisedGameItems(includeOtherItems: true);
                    dataFileHandler.GenerateDataFiles(gameItemsList);
                    break;

                case 5:
                    await WriteServerDataToAppFiles(dataFileHandler);

                    break;

                case 6:
                    AddItemToLanguagePacks();
                    break;

                default:
                    return(0);
                }
                Console.WriteLine("- - - - - - - - - - - -");
            }
        }
Пример #16
0
        public LanguageDetailInput GetInputById(EntityId <int> idModel)
        {
            LanguageDetail entity = GetById(idModel);

            return(mapper.Map <LanguageDetailInput>(entity));
        }
Пример #17
0
        private static void GenerateAppFiles(FileHandlers.GameFilesReader gameFilesReader, FileSystemRepository outputFileSysRepo, FileSystemRepository appFilesSysRepo, FileSystemRepository appImagesRepo, LanguageDetail language)
        {
            Dictionary <string, List <ILocalised> > lookup = gameFilesReader.GetKeyValueOfGameItems(includeOtherItems: true);
            AppFilesHandler appFilesHandler = new AppFilesHandler(outputFileSysRepo, appFilesSysRepo, appImagesRepo);

            Dictionary <string, InventoryDescription> itemNames = gameFilesReader.LoadItemNames(language.LanguageGameFolder);

            appFilesHandler.GenerateAppFiles(language, itemNames, lookup);
        }