Beispiel #1
0
        public async Task <IHttpActionResult> AddToDictionary(string token, string value, [FromUri] string[] translations)
        {
            var resultWithData = await UserService.GetUserIdByTokenAsync(token);

            if (!resultWithData.Success)
            {
                return(BadRequest());
            }

            var userId = resultWithData.ResultData;

            if (String.IsNullOrEmpty(userId))
            {
                return(BadRequest());
            }

            var resultWithDataSourceLanguage = _languageService.GetIdByCode("en");
            var resultWithDataTargetLanguage = _languageService.GetIdByCode("ru");

            if (!resultWithDataSourceLanguage.Success || !resultWithDataTargetLanguage.Success)
            {
                return(InternalServerError());
            }

            // Create dictionary if not exists.
            var resultWithDataDictionary = await _dictionaryService.CreateForPluginAsync(
                userId,
                ConfigurationHelper.DictionaryNameForPluginRuEn,
                ConfigurationHelper.DictionaryDescriptionForPluginRuEn,
                resultWithDataSourceLanguage.ResultData,
                resultWithDataTargetLanguage.ResultData
                );

            if (!resultWithDataDictionary.Success)
            {
                return(InternalServerError());
            }

            translations = translations ?? new string[0];

            var validTranslations = translations
                                    .Where(t => !String.IsNullOrEmpty(t))
                                    .ToList();

            dynamic translation = new ExpandoObject();

            translation.DictionaryId = resultWithDataDictionary.ResultData;
            translation.Value        = value;
            translation.Translations = validTranslations;

            var result = await _translationService.CreateAsync(translation);

            if (!result.Success)
            {
                return(InternalServerError());
            }

            return(Ok(new { success = true }));
        }
        public async Task <ActionResult> Create(CreateTranslationViewModel model, string[] translations)
        {
            string userId       = User.Identity.GetUserId();
            var    dictionaries = GetDictionaries(userId)
                                  .Select(d => new {
                Id    = d.Id,
                Name  = $"{ d.Name } ({ d.SourceLanguage.Code }-{ d.TargetLanguage.Code })",
                Group = "Мои словари",
            })
                                  .ToList();

            ViewBag.DictionaryId = new SelectList(dictionaries, "Id", "Name", "Group", model.DictionaryId);

            if (!ModelState.IsValid)
            {
                ViewBag.Result = "Error";
                return(PartialView("_Create", model));
            }

            var validTranslations = translations
                                    .Where(t => !String.IsNullOrEmpty(t))
                                    .ToList();

            dynamic translation = new ExpandoObject();

            translation.DictionaryId = model.DictionaryId;
            translation.Value        = model.Value;
            translation.Translations = validTranslations;

            var result = await _translationService.CreateAsync(translation);

            if (!result.Success)
            {
                ViewBag.Result = "Error";
                return(PartialView("_Create", model));
            }

            ViewBag.Result = "Success";
            return(PartialView("_Create"));
        }