Example #1
0
 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);
     }
 }
Example #2
0
        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);
            }
        }
Example #3
0
        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++;
                }
            }
        }
Example #4
0
        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
                }
                    );
            }
        }
Example #5
0
        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);
        }