public List <WordTranslationModel> Post(List <WordTranslationImportModel> wordTranslations)
        {
            List <WordTranslationModel> wordTranslationsToReturn = new List <WordTranslationModel>();

            foreach (WordTranslationImportModel wordTranslation in wordTranslations)
            {
                wordTranslation.OriginalWordId = wordService.Exists(wordTranslation.OriginalWord, wordTranslation.LanguageId);

                if (wordTranslation.OriginalWordId == 0)
                {
                    wordTranslation.OriginalWordId = wordService.Add(wordMapper.ToDomainModel(new WordModel()
                    {
                        Value         = wordTranslation.OriginalWord,
                        LanguageId    = wordTranslation.LanguageId,
                        Transcription = wordTranslation.Transcription,
                        Description   = wordTranslation.Description
                    }));
                }

                wordTranslation.TranslationWordId = wordService.Exists(wordTranslation.TranslationWord, TranslationLanguageId);

                if (wordTranslation.TranslationWordId == 0)
                {
                    wordTranslation.TranslationWordId = wordService.Add(wordMapper.ToDomainModel(new WordModel()
                    {
                        Value      = wordTranslation.TranslationWord,
                        LanguageId = TranslationLanguageId
                    }));
                }


                foreach (TagModel tag in wordTranslation.Tags)
                {
                    tag.Id = tagService.Exists(tag.Name);

                    if (tag.Id == 0)
                    {
                        tag.Id = tagService.Add(tagMapper.Map(tag));
                    }
                }

                wordTranslation.OwnerId = UserId;
                int wordTranslationId = wordTranslationService.Add(wordTranslationMapper.Map(wordTranslation, tagMapper.MapRange(wordTranslation.Tags)));

                wordTranslationsToReturn.Add(new WordTranslationModel()
                {
                    Id              = wordTranslationId,
                    OriginalWord    = wordTranslation.OriginalWord,
                    TranslationWord = wordTranslation.TranslationWord
                });
            }

            return(wordTranslationsToReturn);
        }
        public async Task <List <WordTranslationModel> > Post(List <WordTranslationImportModel> wordTranslations)
        {
            List <WordTranslationModel> wordTranslationsToReturn = new List <WordTranslationModel>();

            foreach (WordTranslationImportModel wordTranslation in wordTranslations)
            {
                wordTranslation.OriginalWordId = await wordService.ExistsAsync(wordTranslation.OriginalWord, wordTranslation.LanguageId);

                if (wordTranslation.OriginalWordId == 0)
                {
                    wordTranslation.OriginalWordId = await wordService.AddAsync(new WordModel()
                    {
                        Value         = wordTranslation.OriginalWord,
                        LanguageId    = wordTranslation.LanguageId,
                        Transcription = wordTranslation.Transcription,
                        Description   = wordTranslation.Description
                    });
                }

                wordTranslation.TranslationWordId = await wordService.ExistsAsync(wordTranslation.TranslationWord, TranslationLanguageId);

                if (wordTranslation.TranslationWordId == 0)
                {
                    wordTranslation.TranslationWordId = await wordService.AddAsync(new WordModel()
                    {
                        Value      = wordTranslation.TranslationWord,
                        LanguageId = TranslationLanguageId
                    });
                }


                //foreach (TagModel tag in wordTranslation.Tags)
                //{
                //    tag.Id = tagService.Exists(tag.Name);

                //    if (tag.Id == 0)
                //    {
                //        tag.Id = tagService.Add(tagMapper.Map(tag));
                //    }
                //}

                wordTranslation.OwnerId = UserId;
                int wordTranslationId = wordTranslationService.Add(wordTranslationMapper.Map(wordTranslation /*, tagMapper.MapRange(wordTranslation.Tags)*/));

                wordTranslationsToReturn.Add(new WordTranslationModel()
                {
                    Id              = wordTranslationId,
                    OriginalWord    = wordTranslation.OriginalWord,
                    TranslationWord = wordTranslation.TranslationWord
                });
            }

            return(wordTranslationsToReturn);
        }
        public async Task <List <WordTranslationModel> > Post(List <WordTranslationImportModel> wordTranslations)
        {
            List <WordTranslationModel> wordTranslationsToReturn = new List <WordTranslationModel>();

            foreach (WordTranslationImportModel wordTranslation in wordTranslations)
            {
                wordTranslation.OriginalWordId = await wordService.ExistsAsync(wordTranslation.OriginalWord, wordTranslation.LanguageId);

                if (wordTranslation.OriginalWordId == 0)
                {
                    WordModel modelForAdd = new WordModel()
                    {
                        Value          = wordTranslation.OriginalWord,
                        LanguageId     = wordTranslation.LanguageId,
                        Transcription  = wordTranslation.Transcription,
                        Description    = wordTranslation.Description,
                        Comment        = wordTranslation.Comment,
                        PartOfSpeechId = wordTranslation.PartOfSpeechId
                    };
                    foreach (var i in wordTranslation.Tags)
                    {
                        modelForAdd.Tags.Add(new TagModel()
                        {
                            Id    = null,
                            Value = i.Value
                        });
                    }
                    wordTranslation.OriginalWordId = await editService.AddWord(modelForAdd);
                }

                wordTranslation.TranslationWordId = await wordService.ExistsAsync(wordTranslation.TranslationWord, TranslationLanguageId);

                if (wordTranslation.TranslationWordId == 0)
                {
                    wordTranslation.TranslationWordId = await wordService.AddAsync(new WordModel()
                    {
                        Value      = wordTranslation.TranslationWord,
                        LanguageId = TranslationLanguageId
                    });
                }

                wordTranslation.OwnerId = UserId;
                int wordTranslationId = wordTranslationService.Add(wordTranslationMapper.Map(wordTranslation));

                wordTranslationsToReturn.Add(new WordTranslationModel()
                {
                    Id              = wordTranslationId,
                    OriginalWord    = wordTranslation.OriginalWord,
                    TranslationWord = wordTranslation.TranslationWord
                });
            }

            return(wordTranslationsToReturn);
        }