private static void AppendAsteriskIfNeeded(TagDropdownDataModel tag, TagOptionModel option) { if (tag.Options.Any(o => o.Value != option.Value && o.Name.Equals(option.Name, StringComparison.InvariantCultureIgnoreCase))) { option.Name = $"{option.Name}*"; AppendAsteriskIfNeeded(tag, option); } }
private static void DisableTagOption(TagDropdownDataModel tag, string tagOptionValue) { var option = tag.Options.Find(item => item.Value.Equals(tagOptionValue, StringComparison.InvariantCultureIgnoreCase)); if (option != null) { option.IsEnabled = false; AppendAsteriskIfNeeded(tag, option); } }
public static void InitTagOptions( this TagDropdownDataModel tag, IEnumerable <IMatchableEntity> entities, out int syncCount, out int removalCount) { syncCount = 0; removalCount = 0; var entitiesList = entities.ToList(); foreach (var entity in entitiesList) { var tagOption = tag.Options.FirstOrDefault(o => o.Value.Equals(entity.EntityId, StringComparison.InvariantCultureIgnoreCase)); if (tagOption != null && tagOption.IsEnabled && tagOption.Name.Equals(entity.EntityName)) { continue; } ProcessTagOption(tag, entity.EntityId, entity.EntityName); syncCount++; } foreach (var option in tag.Options) { if (entitiesList.All(item => !item.EntityId.Equals(option.Value, StringComparison.InvariantCultureIgnoreCase))) { if (option.IsEnabled) { removalCount++; } DisableTagOption(tag, option.Value); } } // At least one option should be enabled. // So lets enable the first one that in fact should be default option. if (tag.Options.All(o => !o.IsEnabled)) { var firstOption = tag.Options.FirstOrDefault(); if (firstOption != null) { firstOption.IsEnabled = true; syncCount++; } } }
private static void ProcessTagOption(TagDropdownDataModel tag, string tagOptionValue, string tagOptionName) { var option = tag.Options.Find(item => item.Value.Equals(tagOptionValue, StringComparison.InvariantCultureIgnoreCase)); if (option != null) { option.IsEnabled = true; option.Name = tagOptionName; } else { tag.Options.Add( new TagOptionModel { IsEnabled = true, Name = tagOptionName, Value = tagOptionValue } ); } }
public async Task <TagDropdownDetailsModel> CreateDropdownTag(string externalToken, TagDropdownDataModel tag, CancellationToken token = default(CancellationToken)) { _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(TokenType.Token, externalToken); var requestContent = JsonConvert.SerializeObject(tag); var request = new StringContent(requestContent, Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync("V4/Business/Configuration/Tag/Dropdown", request, token); var result = await HandleHttpResponseMessage <TagDropdownDetailsModel>(response); return(result); }