public async Task <IActionResult> PostLanguage(string app, [FromBody] AddLanguageDto request)
        {
            var command = request.ToCommand();

            var response = await InvokeCommandAsync(command);

            return(CreatedAtAction(nameof(GetLanguages), new { app }, response));
        }
Exemple #2
0
        private async Task AddLanguageAsync(string code)
        {
            var createRequest = new AddLanguageDto
            {
                Language = code
            };

            await _.Apps.PostLanguageAsync(appName, createRequest);
        }
        private async Task SynchronizeLanguagesAsync(AppModel model, SyncOptions options, ISession session)
        {
            var current = await session.Apps.GetLanguagesAsync(session.App);

            if (options.Delete)
            {
                foreach (var language in current.Items)
                {
                    if (model.Languages.ContainsKey(language.Iso2Code))
                    {
                        continue;
                    }

                    await log.DoSafeAsync($"Language '{language.Iso2Code}' deleting", async() =>
                    {
                        await session.Apps.DeleteLanguageAsync(session.App, language.Iso2Code);
                    });
                }
            }

            foreach (var(isoCode, _) in model.Languages)
            {
                var existing = current.Items.FirstOrDefault(x => x.Iso2Code == isoCode);

                if (existing != null)
                {
                    continue;
                }

                await log.DoSafeAsync($"Language '{isoCode}' creating", async() =>
                {
                    var request = new AddLanguageDto {
                        Language = isoCode
                    };

                    current = await session.Apps.PostLanguageAsync(session.App, request);
                });
            }

            foreach (var(isoCode, value) in model.Languages)
            {
                var existing = current.Items.FirstOrDefault(x => x.Iso2Code == isoCode);

                if (existing == null || value.JsonEquals(existing))
                {
                    continue;
                }

                await log.DoSafeAsync($"Language '{isoCode}' updating", async() =>
                {
                    var request = value;

                    await session.Apps.PutLanguageAsync(session.App, isoCode, request);
                });
            }
        }
Exemple #4
0
 public async Task <ResultDto> AddLanguage([FromBody, MyValidation] AddLanguageDto entity)
 {
     _languageStringService.AddLanguage(entity.AbbName, entity.FullName);
     return(ResultDto.Create(entity));
 }