public TagInfo GetByName(UserInfo userInfo, string displayName) { displayName = FormatDisplayName(displayName); var tag = _tagDao.GetByName(displayName); return(_converter.ToDataTransferObject(tag)); }
private IList FindFinalTags(IList originalTags, string[] tagDisplayNames) { var newTagDisplayNames = new List <string>(tagDisplayNames); var originalTagsReadyToSubtracted = originalTags.Cast <Tag>().ToList(); var newTagDisplayNamesReadyToCreated = new List <string>(newTagDisplayNames); var finalTags = new List <Tag>(); foreach (var newTagDisplayName in newTagDisplayNames) { if (!String.IsNullOrEmpty(newTagDisplayName)) { foreach (Tag originalTag in originalTags) { if (originalTag.DisplayName.ToLower().Trim().Equals(newTagDisplayName.ToLower().Trim())) { finalTags.Add(originalTag); newTagDisplayNamesReadyToCreated.Remove(newTagDisplayName); originalTagsReadyToSubtracted.Remove(originalTag); } } } } foreach (var originalTag in originalTagsReadyToSubtracted) { SubtractTagUsedCount(originalTag); } IList candidate = null; if (newTagDisplayNamesReadyToCreated != null) { if (newTagDisplayNamesReadyToCreated.Count == 0) { if (newTagDisplayNames != null && newTagDisplayNames.Count > 0) { candidate = _tagDao.GetByName(newTagDisplayNames); } } else { candidate = EnsureTagsCreated(newTagDisplayNamesReadyToCreated.ToArray()); } } if (candidate != null) { foreach (Tag tag in candidate) { if (!finalTags.Contains(tag)) { finalTags.Add(tag); } } } return(finalTags); }