Ejemplo n.º 1
0
        public async Task <Tag> CreateTagAsync(string tagId)
        {
            var existingTags = await CosmosDBRepository.GetItemsFilteredAsync <Tag>(Keys.CosmosDB.TagsCollectionId, x => x.TagName == tagId);

            var existingTag = existingTags.FirstOrDefault();

            Tag newTag = new Tag();

            if (existingTag == default(Tag))
            {
                newTag         = new Tag();
                newTag.TagId   = Guid.NewGuid().ToString();
                newTag.TagName = tagId;
                newTag.id      = newTag.TagId;

                var res = await CosmosDBRepository.CreateItemAsync(Keys.CosmosDB.TagsCollectionId, newTag);

                if (res != null)
                {
                    return(newTag);
                }
            }

            return(existingTag);
        }
Ejemplo n.º 2
0
        public async Task <bool> AddSubscribersToTagAsync(string tagId, List <string> subscriberIds)
        {
            var existingTag = await CreateTagAsync(tagId);

            var newTag = existingTag;
            var guid   = new Guid();

            foreach (var id in subscriberIds)
            {
                // CHECK TO SEE IF SUBSCRIBER ID IS A VALID GUID
                if (Guid.TryParse(id, out guid))
                {
                    if (!newTag.Subscribers.Contains(id))
                    {
                        newTag.Subscribers.Add(id);
                    }
                }
            }

            var res = await CosmosDBRepository.UpdateItemAsync(Keys.CosmosDB.TagsCollectionId, newTag.id.ToString(), newTag);

            if (res == null)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 3
0
        public async Task <bool> RemoveSubscribersFromTagAsync(string tagId, List <string> subscriberIds)
        {
            var existingTag = await CreateTagAsync(tagId);

            var newTag = existingTag;

            foreach (var id in subscriberIds)
            {
                if (newTag.Subscribers.Contains(id))
                {
                    newTag.Subscribers.Remove(id);
                }
            }

            var res = await CosmosDBRepository.UpdateItemAsync(Keys.CosmosDB.TagsCollectionId, newTag.id.ToString(), newTag);

            if (res == null)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
 TagsService()
 {
     CosmosDBRepository.Initialize();
 }