public async Task <ActionResult <TextResource> > Create(string org, string app, [FromBody] TextResource textResource) { try { if (!LanguageHelper.IsTwoLetters(textResource.Language)) { return(BadRequest("The language must be a two letter ISO language name.")); } var existingTextResource = await _textRepository.Get(org, app, textResource.Language); if (existingTextResource != null) { return(Conflict("Text resource allready exists.")); } var createdObjected = await _textRepository.Create(org, app, textResource); return(Ok(createdObjected)); } catch (Exception e) { _logger.LogError($"Unable to create text resource for {org}/{app}: {e.Message}"); return(StatusCode(500, $"Unable to create text resource for {org}/{app}")); } }
/// <summary> /// Select an existing entry in the collection /// </summary> /// <typeparam name="T">The type of the object in the document</typeparam> /// <param name="id">The Int64 ID of the document</param> /// <returns>The object entry saved in the document</returns> public T Get <T>(long id) where T : class { var text = textRepository.Get(tag, id); return(text == null ? null : TextConverter.ToObject <T>(text)); }
public MichtavaResult Update(Text Text) { if (this.GetById(Text.Id) == null) { return(new MichtavaFailure("הטקסט לא נמצא במערכת")); } if (TextRepository.Get(s => s.Name == Text.Name).Count() > 1) { return(new MichtavaFailure()); } if (TextRepository.Get(s => s.Name == Text.Name).Count() == 1 && TextRepository.Get(s => s.Name == Text.Name).FirstOrDefault().Id != Text.Id) { return(new MichtavaFailure("כבר קיים טקסט במערכת עם אותו השם")); } if (TextRepository.Get(s => s.Name == Text.Name).Count() == 0) { this.TextRepository.Update(Text); this.TextRepository.SaveChanges(); return(new MichtavaSuccess("טקסט עודכן בהצלחה")); } else { return(new MichtavaFailure("טעות לא צפויה התרחשה")); } }
public async Task <ActionResult> GetMessageBoxInstanceList(int instanceOwnerPartyId, [FromQuery] string state, [FromQuery] string language) { string[] allowedStates = { "active", "archived", "deleted" }; string[] acceptedLanguages = { "en", "nb", "nn" }; string languageId = "nb"; if (string.IsNullOrEmpty(state)) { return(BadRequest($"State is empty. Please provide on of: {string.Join(", ", allowedStates)}")); } state = state.ToLower(); if (!allowedStates.Contains(state)) { return(BadRequest($"Invalid instance state. Please provide on of: {string.Join(", ", allowedStates)}")); } if (language != null && acceptedLanguages.Contains(language.ToLower())) { languageId = language; } List <Instance> allInstances = await _instanceRepository.GetInstancesInStateOfInstanceOwner(instanceOwnerPartyId, state); if (allInstances.Count <= 0) { return(Ok(new List <MessageBoxInstance>())); } // removing properties only used for active messageBoxInstances if (!state.Equals("active")) { allInstances.ForEach(i => i.DueBefore = null); } List <MessageBoxInstance> authorizedInstances = await _authorizationHelper.AuthorizeMesseageBoxInstances(HttpContext.User, allInstances); List <string> appIds = authorizedInstances.Select(i => InstanceHelper.GetAppId(i)).Distinct().ToList(); List <TextResource> texts = await _textRepository.Get(appIds, languageId); InstanceHelper.ReplaceTextKeys(authorizedInstances, texts, languageId); return(Ok(authorizedInstances)); }
public async Task <ActionResult <TextResource> > Create(string org, string app, [FromBody] TextResource textResource) { if (!LanguageHelper.IsTwoLetters(textResource.Language)) { return(BadRequest("The language must be a two letter ISO language name.")); } var existingTextResource = await _textRepository.Get(org, app, textResource.Language); if (existingTextResource != null) { return(Conflict("Text resource allready exists.")); } var createdObjected = await _textRepository.Create(org, app, textResource); return(Ok(createdObjected)); }
public bool Save(ITextRepository textRepository, string filepath) { try { using (System.IO.StreamWriter file = new System.IO.StreamWriter(filepath)) { foreach (var myText in textRepository.Get()) { file.WriteLine(myText.Name); } } return(true); } catch (Exception) { return(false); } }
public async Task <ActionResult <TextResource> > Get(string org, string app, string language) { try { if (!LanguageHelper.IsTwoLetters(language)) { return(BadRequest("The language must be a two letter ISO language name.")); } TextResource textResource = await _textRepository.Get(org, app, language); if (textResource == null) { return(NotFound()); } return(Ok(textResource)); } catch (Exception e) { _logger.LogError($"Unable to get text resource for {org}/{app}: {e.Message}"); return(StatusCode(500, $"Unable to get text resource for {org}/{app}")); } }
public ActionResult <IEnumerable <TextListView> > GetTexts() { var texts = _repository.Get(); return(Ok(texts)); }
public async Task <ActionResult> SearchMessageBoxInstances( [FromQuery(Name = "instanceOwner.partyId")] int instanceOwnerPartyId, [FromQuery] string appId, [FromQuery] bool includeActive, [FromQuery] bool includeArchived, [FromQuery] bool includeDeleted, [FromQuery] string lastChanged, [FromQuery] string created, [FromQuery] string searchString, [FromQuery] string archiveReference, [FromQuery] string language) { string[] acceptedLanguages = { "en", "nb", "nn" }; string languageId = "nb"; if (language != null && acceptedLanguages.Contains(language.ToLower())) { languageId = language.ToLower(); } Dictionary <string, StringValues> queryParams = QueryHelpers.ParseQuery(Request.QueryString.Value); if (!string.IsNullOrEmpty(archiveReference)) { if ((includeActive == includeArchived) && (includeActive == includeDeleted)) { includeActive = false; includeDeleted = true; includeArchived = true; } else if (includeActive && !includeArchived && !includeDeleted) { return(Ok(new List <MessageBoxInstance>())); } else if (includeActive && (includeArchived || includeDeleted)) { includeActive = false; } } GetStatusFromQueryParams(includeActive, includeArchived, includeDeleted, queryParams); queryParams.Add("sortBy", "desc:lastChanged"); if (!string.IsNullOrEmpty(searchString)) { StringValues applicationIds = await MatchStringToAppTitle(searchString); if (!applicationIds.Any() || (!string.IsNullOrEmpty(appId) && !applicationIds.Contains(appId))) { return(Ok(new List <MessageBoxInstance>())); } else if (string.IsNullOrEmpty(appId)) { queryParams.Add("appId", applicationIds); } queryParams.Remove(nameof(searchString)); } InstanceQueryResponse queryResponse = await _instanceRepository.GetInstancesFromQuery(queryParams, string.Empty, 100); if (queryResponse?.Exception != null) { if (queryResponse.Exception.StartsWith("Unknown query parameter")) { return(BadRequest(queryResponse.Exception)); } return(StatusCode(500, queryResponse.Exception)); } if (queryResponse == null || queryResponse.Count <= 0) { return(Ok(new List <MessageBoxInstance>())); } List <Instance> allInstances = queryResponse.Instances; allInstances.RemoveAll(i => i.VisibleAfter > DateTime.UtcNow); allInstances.ForEach(i => { if (i.Status.IsArchived || i.Status.IsSoftDeleted) { i.DueBefore = null; } }); List <MessageBoxInstance> authorizedInstances = await _authorizationHelper.AuthorizeMesseageBoxInstances(HttpContext.User, allInstances); List <string> appIds = authorizedInstances.Select(i => InstanceHelper.GetAppId(i)).Distinct().ToList(); List <TextResource> texts = await _textRepository.Get(appIds, languageId); InstanceHelper.ReplaceTextKeys(authorizedInstances, texts, languageId); return(Ok(authorizedInstances)); }