コード例 #1
0
        public async Task <IActionResult> LikeUser(int id, int recipientId)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var like = await _repo.GetLike(id, recipientId);

            if (like != null)
            {
                return(BadRequest("You already like this user"));
            }

            if (await _repo.GetUser(recipientId) == null)
            {
                return(NotFound());
            }

            like = new Like {
                LikerId = id,
                LikeeId = recipientId
            };
            _repo.Add <Like>(like);

            if (await _repo.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to like user"));
        }
コード例 #2
0
        public async Task <IActionResult> CreateMessage(int userId,
                                                        MessageForCreationDto messageForCreationDto)
        {
            var sender = await _repo.GetUser(userId);


            if (sender.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            messageForCreationDto.SenderId = userId;

            var recipient = await _repo.GetUser(messageForCreationDto.RecipientId);

            if (recipient == null)
            {
                return(BadRequest("Could not find user"));
            }

            var message = _mapper.Map <Message>(messageForCreationDto);

            _repo.Add(message);

            if (await _repo.SaveAll())
            {
                var messageToReturn = _mapper.Map <MessageToReturnDto>(message);
                return(CreatedAtRoute("GetMessage",
                                      new { userId, id = message.Id }, messageToReturn));
            }

            throw new Exception("Creating the message failed on save");
        }
コード例 #3
0
        public async Task Add(Translation value)
        {
            await ValidateTranslation(value);

            await _repository.Add(value);

            _cache.Clear(value.LanguageKey, value.ProjectKey);
        }
コード例 #4
0
 public ActionResult Create(TranslationViewmodel translationViewmodel)
 {
     if (ModelState.IsValid)
     {
         var model = MapViewmodelToModel(translationViewmodel);
         db.Add(model);
         return(RedirectToAction("Details", new { id = model.Id }));
     }
     return(View());
 }
コード例 #5
0
 public string addTranslation(string text)
 {
     foreach (Language l in Enum.GetValues(typeof(Language)))
     {
         Translation tr = new Translation {
             Language = l.ToString(), Term = text, Translated = text
         };
         _repo.Add(tr);
     }
     return(text);
 }
コード例 #6
0
        public async Task <TranslateResult> Handle(TranslateQuery request, CancellationToken cancellationToken)
        {
            var result = await _translateSvc.Translate(request.Query,
                                                       request.SourceLanguage ?? _settings.Value.DefaultLanguageInput,
                                                       request.TargetLanguage ?? _settings.Value.DefaultLanguageOutput);

            var translation = new Translation
            {
                From         = request.Query,
                To           = result.TranslatedText,
                FromLanguage = result.FromLanguage.ToUpper(),
                ToLanguage   = result.ToLanguage.ToUpper(),
                TimeStamp    = DateTime.UtcNow,
                UserId       = _identitySvc.GetUserId()
            };

            _translateRepo.Add(translation);
            await _uow.SaveEntitiesAsync();

            return(result);
        }
コード例 #7
0
        public void Import(string XmlContent)
        {
            XDocument  docTranslation = XDocument.Load(XmlReader.Create(new StringReader(XmlContent)));
            XNamespace xn             = XNamespace.Xml;
            XElement   xTranslations  = docTranslation.Element("Translations");

            //**getting language name
            string LanguageName = (xTranslations.Attribute(xn + "lang") ?? new XAttribute("xml:lang", "en-us")).Value;


            Language language = _repLanguage.GetSingle(x => x.LanguageCode == LanguageName);

            //Language.FindSingleBy.LanguageCode(LanguageName);
            if (language == null)
            {
                language = Default;
            }

            IEnumerable <XElement> KeysList = docTranslation.Elements("Translations").Elements("Translation");

            List <Translation> Translated = (from tempKeys in KeysList
                                             select new Translation
            {
                Key = tempKeys.Attribute("key").Value,
                LanguageId = language.Id,
                Classification = tempKeys.Attribute("classification").Value,
                Value = tempKeys.Element("value").Value.ToString(),
                PageUrl = tempKeys.Element("page").Attribute("location").Value,
                GroupName = tempKeys.Element("groupname").Value.ToString()
            }).ToList();

            ///*** saving from xml file to database
            foreach (var trans in Translated)
            {
                try
                {
                    Translation tempTrans = _repTranslation.GetSingle(x => x.Key == trans.Key && x.LanguageId == trans.LanguageId);
                    if (tempTrans != null)
                    {
                        tempTrans.Classification = trans.Classification;
                        tempTrans.Value          = trans.Value;
                        tempTrans.PageUrl        = trans.PageUrl;
                        tempTrans.GroupName      = trans.GroupName;

                        _repTranslation.Update(tempTrans);
                        _repTranslation.Save();
                        //tempTrans.Update();
                    }
                    else
                    {
                        _repTranslation.Add(trans);
                        _repTranslation.Save();
                        //trans.Insert();
                    }
                    //end if
                }
                catch
                {
                }
            }
            //end foreach
        }
コード例 #8
0
        public async Task <IActionResult> GetTranslation([FromBody] SearchRequest searchRequest)
        {
            var translation_fro_db = _translationRepository.GetTranslation(searchRequest.TextRequest);

            if (translation_fro_db != null)
            {
                Translation translationFromDatabase = new Translation()
                {
                    EnglishText = translation_fro_db.EnglishText
                };

                return(Ok(translationFromDatabase));
            }


            var client  = new RestClient("https://simple-elegant-translation-service.p.rapidapi.com/translate");
            var request = new RestRequest(Method.POST);

            request.AddHeader("x-rapidapi-host", "simple-elegant-translation-service.p.rapidapi.com");
            request.AddHeader("x-rapidapi-key", "5807bfc0f7mshdb2779da1949d0cp12623fjsnf96ac77d14d4");
            request.AddHeader("content-type", "application/json");
            request.AddHeader("accept", "application/json");

            request.AddParameter("application/json", "{ \"text\":" + "\"" + searchRequest.TextRequest + "\"}", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var english_text = response.Content.ToString();

                english_text = english_text.Remove(0, 85).ToString();

                do
                {
                    english_text = english_text.Remove(0, 1);
                }while (english_text[1] != '3');

                english_text = english_text.Remove(0, 20).ToString();
                english_text = english_text.Remove(english_text.Length - 4, 4).ToString();

                var source_language = response.Content.ToString();

                source_language = source_language.Remove(0, 35).ToString();

                do
                {
                    source_language = source_language.Remove(source_language.Length - 1, 1);
                }while (source_language[source_language.Length - 1] != '2');

                source_language = source_language.Remove(source_language.Length - 5, 5);

                var destination_language = response.Content.ToString();

                destination_language = destination_language.Remove(0, 75).ToString();

                do
                {
                    destination_language = destination_language.Remove(destination_language.Length - 1, 1);
                }while (destination_language[destination_language.Length - 1] != '3');

                destination_language = destination_language.Remove(destination_language.Length - 4, 4);

                TranslationResult tr = new TranslationResult()
                {
                    FirstLanguageText = searchRequest.TextRequest,
                    EnglishText       = english_text,
                    From = source_language,
                    To   = destination_language,
                    Time = DateTime.Now
                };

                _translationRepository.Add(tr);

                await _translationRepository.SaveAsync();

                Translation translationToReturn = new Translation()
                {
                    EnglishText = tr.EnglishText
                };

                SaveToXml();

                return(Ok(translationToReturn));
            }
            else
            {
                return(BadRequest("Server je preopterecen pokusajte malo kasnije"));
            }
        }