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")); }
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"); }
public async Task Add(Translation value) { await ValidateTranslation(value); await _repository.Add(value); _cache.Clear(value.LanguageKey, value.ProjectKey); }
public ActionResult Create(TranslationViewmodel translationViewmodel) { if (ModelState.IsValid) { var model = MapViewmodelToModel(translationViewmodel); db.Add(model); return(RedirectToAction("Details", new { id = model.Id })); } return(View()); }
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); }
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); }
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 }
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")); } }