public async Task <TagsCommandResponse> Handle(CreateTagsCommand request, CancellationToken cancellationToken)
        {
            TagsCommandResponse response = new TagsCommandResponse()
            {
                IsSuccessful = false
            };

            TaxTags _taxTag = new TaxTags();

            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                _taxTag.IsPublished = true;
                _taxTag.CreatedBy   = "";
                _taxTag.CreatedDate = DateTime.Now;
                _taxTag.UpdatedBy   = "";
                _taxTag.UpdatedDate = DateTime.Now;
                _taxTag.ParentTagId = null;
                if (request.TagType == "Tag")
                {
                    _taxTag.ParentTagId = request.TagGroup;
                    foreach (var country in request.RelatedCountyIds)
                    {
                        TaxTagRelatedCountries objRelatedCountries = new TaxTagRelatedCountries();
                        objRelatedCountries.CountryId = country;
                        _taxTag.TaxTagRelatedCountries.Add(objRelatedCountries);
                    }
                }
                foreach (var langName in request.LanguageName)
                {
                    var taxTagsContent = new TaxTagContents();
                    taxTagsContent.DisplayName = langName.Name.Trim();
                    taxTagsContent.LanguageId  = langName.LanguageId;
                    _taxTag.TaxTagContents.Add(taxTagsContent);
                }
                _taxTagsRepository.Add(_taxTag);
                await _taxTagsRepository.UnitOfWork
                .SaveEntitiesAsync();

                response.IsSuccessful = true;
                scope.Complete();
            }
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                foreach (var content in _taxTag.TaxTagContents)
                {
                    var eventSourcing = new TagGroupCommandEvent()
                    {
                        EventType         = ServiceBusEventType.Create,
                        Discriminator     = Constants.TaxTagsDiscriminator,
                        TagId             = _taxTag.TaxTagId,
                        ParentTagId       = _taxTag.ParentTagId,
                        IsPublished       = _taxTag.IsPublished,
                        CreatedBy         = _taxTag.CreatedBy,
                        CreatedDate       = _taxTag.CreatedDate,
                        UpdatedBy         = _taxTag.UpdatedBy,
                        UpdatedDate       = _taxTag.UpdatedDate,
                        RelatedCountryIds = (from rc in _taxTag.TaxTagRelatedCountries where rc != null select rc.CountryId).ToList(),
                        TagContentId      = content.TaxTagContentId,
                        LanguageId        = content.LanguageId,
                        DisplayName       = content.DisplayName,
                        PartitionKey      = ""
                    };
                    await _Eventcontext.PublishThroughEventBusAsync(eventSourcing);
                }
                scope.Complete();
            }
            return(response);
        }
예제 #2
0
        public async Task <ManipulateTaxGroupCommandResponse> Handle(ManipulateTaxGroupCommand request, CancellationToken cancellationToken)
        {
            ManipulateTaxGroupCommandResponse response = new ManipulateTaxGroupCommandResponse()
            {
                IsSuccessful = false
            };

            List <TaxTags> tagGroups = _tagGroupRepository.GetTagGroups(request.TaxGroupIds);

            if (request.TaxGroupIds.Count != tagGroups.Count)
            {
                throw new RulesException("Invalid", @"TagGroup not found");
            }

            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                if (request.Operation == "Publish")
                {
                    foreach (var taxgroup in tagGroups)
                    {
                        if (taxgroup.ParentTagId == null && request.TagType == "Tag")
                        {
                            throw new RulesException("Invalid", @"Tag not Valid");
                        }
                        taxgroup.IsPublished = true;
                        _tagGroupRepository.Update <TaxTags>(taxgroup);
                    }
                }
                else if (request.Operation == "UnPublish")
                {
                    foreach (var taxgroup in tagGroups)
                    {
                        if (taxgroup.ParentTagId == null && request.TagType == "Tag")
                        {
                            throw new RulesException("Invalid", @"Tag not Valid");
                        }
                        taxgroup.IsPublished = false;
                        _tagGroupRepository.Update <TaxTags>(taxgroup);
                    }
                }
                else if (request.Operation == "Delete")
                {
                    foreach (TaxTags taxgroup in tagGroups)
                    {
                        foreach (var tagGroupContents in taxgroup.TaxTagContents.ToList())
                        {
                            taxgroup.TaxTagContents.Remove(tagGroupContents);
                            _tagGroupRepository.Delete <TaxTagContents>(tagGroupContents);
                        }
                        if (request.TagType == "Tag")
                        {
                            if (taxgroup.ParentTagId == null)
                            {
                                throw new RulesException("Invalid", @"Tag not Valid");
                            }
                            foreach (var country in taxgroup.TaxTagRelatedCountries.ToList())
                            {
                                taxgroup.TaxTagRelatedCountries.Remove(country);
                                _tagGroupRepository.Delete <TaxTagRelatedCountries>(country);
                            }
                        }
                        _tagGroupRepository.DeletetagGroup(taxgroup);
                    }
                }
                else
                {
                    throw new RulesException("Operation", @"The Operation " + request.Operation + " is not valied");
                }
                await _tagGroupRepository.UnitOfWork
                .SaveEntitiesAsync();

                response.IsSuccessful = true;
                scope.Complete();
            }

            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var taxtagDocs = _context.GetAll(Constants.TaxTagsDiscriminator);

                if (request.Operation == "Publish" || request.Operation == "UnPublish")
                {
                    foreach (var tagGrp in tagGroups)
                    {
                        foreach (var doc in taxtagDocs.Where(d => d.GetPropertyValue <int>("TaxTagId") == tagGrp.TaxTagId))
                        {
                            var eventSource = new TagGroupCommandEvent
                            {
                                id                = doc.GetPropertyValue <Guid>("id"),
                                EventType         = ServiceBusEventType.Update,
                                Discriminator     = Constants.TaxTagsDiscriminator,
                                IsPublished       = tagGrp.IsPublished,
                                TagId             = tagGrp.TaxTagId,
                                UpdatedDate       = doc.GetPropertyValue <DateTime>("UpdatedDate"),
                                UpdatedBy         = doc.GetPropertyValue <string>("UpdatedBy"),
                                CreatedDate       = doc.GetPropertyValue <DateTime>("CreatedDate"),
                                CreatedBy         = doc.GetPropertyValue <string>("CreatedBy"),
                                DisplayName       = doc.GetPropertyValue <string>("DisplayName"),
                                LanguageId        = doc.GetPropertyValue <int?>("LanguageId"),
                                ParentTagId       = doc.GetPropertyValue <int?>("ParentTagId"),
                                RelatedCountryIds = doc.GetPropertyValue <List <int> >("RelatedCountryIds"),
                                TagContentId      = doc.GetPropertyValue <int>("TaxTagContentId"),
                                PartitionKey      = doc.GetPropertyValue <int>("LanguageId").ToString()
                            };
                            await _Eventcontext.PublishThroughEventBusAsync(eventSource);
                        }
                    }
                }
                else if (request.Operation == "Delete")
                {
                    foreach (var tagGrp in tagGroups)
                    {
                        foreach (var content in tagGrp.TaxTagContents)
                        {
                            var articleDocs = _context.GetAll(Constants.ArticlesDiscriminator);
                            foreach (var article in articleDocs.Where(ad => ad.GetPropertyValue <int>("LanguageId") == content.LanguageId))
                            {
                                foreach (var relatedTaxTags in article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags"))
                                {
                                    if (relatedTaxTags.TaxTagId == content.TaxTagId)
                                    {
                                        List <RelatedTaxTagsSchema> relatedTaxTagsSchema = new List <RelatedTaxTagsSchema>();
                                        relatedTaxTagsSchema = article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags");

                                        var index = relatedTaxTagsSchema.IndexOf(relatedTaxTagsSchema.Where(i => i.TaxTagId == content.TaxTagId).First());
                                        if (index != -1)
                                        {
                                            relatedTaxTagsSchema.Remove(relatedTaxTagsSchema.Where(i => i.TaxTagId == tagGrp.TaxTagId).First());
                                        }
                                        var eventSourcingRelated = new ArticleCommandEvent()
                                        {
                                            id = article != null?article.GetPropertyValue <Guid>("id") : Guid.NewGuid(),
                                                     EventType             = ServiceBusEventType.Update,
                                                     ArticleId             = article.GetPropertyValue <int>("ArticleId"),
                                                     PublishedDate         = article.GetPropertyValue <string>("PublishedDate"),
                                                     Author                = article.GetPropertyValue <string>("author"),
                                                     ImageId               = article.GetPropertyValue <int>("ImageId"),
                                                     State                 = article.GetPropertyValue <string>("State"),
                                                     Type                  = article.GetPropertyValue <int>("Type"),
                                                     SubType               = article.GetPropertyValue <int>("SubType"),
                                                     ResourcePosition      = article.GetPropertyValue <int>("ResourcePosition"),
                                                     Disclaimer            = article.GetPropertyValue <DisclamersSchema>("Disclaimer"),
                                                     ResourceGroup         = article.GetPropertyValue <ResourceGroupsSchema>("ResourceGroup"),
                                                     IsPublished           = article.GetPropertyValue <bool>("IsPublished"),
                                                     CreatedDate           = article.GetPropertyValue <string>("CreatedDate"),
                                                     CreatedBy             = article.GetPropertyValue <string>("CreatedBy"),
                                                     UpdatedDate           = article.GetPropertyValue <string>("UpdatedDate"),
                                                     UpdatedBy             = article.GetPropertyValue <string>("UpdatedBy"),
                                                     NotificationSentDate  = article.GetPropertyValue <string>("NotificationSentDate"),
                                                     Provinces             = article.GetPropertyValue <ProvinceSchema>("Provisions"),
                                                     ArticleContentId      = article.GetPropertyValue <int>("ArticleContentId"),
                                                     LanguageId            = article.GetPropertyValue <int>("LanguageId"),
                                                     Title                 = article.GetPropertyValue <string>("Title"),
                                                     TitleInEnglishDefault = article.GetPropertyValue <string>("TitleInEnglishDefault"),
                                                     TeaserText            = article.GetPropertyValue <string>("TeaserText"),
                                                     Content               = article.GetPropertyValue <string>("Content"),
                                                     RelatedContacts       = article.GetPropertyValue <List <RelatedEntityId> >("RelatedContacts"),
                                                     RelatedCountries      = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountries"),
                                                     RelatedCountryGroups  = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountryGroups"),
                                                     RelatedTaxTags        = relatedTaxTagsSchema,
                                                     RelatedArticles       = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedArticles"),
                                                     RelatedResources      = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedResources"),
                                                     Discriminator         = article.GetPropertyValue <string>("Discriminator"),
                                                     PartitionKey          = ""
                                        };
                                        await _Eventcontext.PublishThroughEventBusAsync(eventSourcingRelated);
                                    }
                                }
                            }
                        }
                        foreach (var doc in taxtagDocs.Where(d => d.GetPropertyValue <int>("TaxTagId") == tagGrp.TaxTagId))
                        {
                            var eventSrc = new TagGroupCommandEvent
                            {
                                id            = doc.GetPropertyValue <Guid>("id"),
                                EventType     = ServiceBusEventType.Delete,
                                Discriminator = Constants.TaxTagsDiscriminator,
                                PartitionKey  = ""
                            };
                            await _Eventcontext.PublishThroughEventBusAsync(eventSrc);
                        }
                    }
                }
                scope.Complete();
            }
            return(response);
        }
예제 #3
0
        public async Task <UpdateTagGroupsCommandResponse> Handle(UpdateTagsCommand request, CancellationToken cancellationToken)
        {
            UpdateTagGroupsCommandResponse response = new UpdateTagGroupsCommandResponse()
            {
                IsSuccessful = false
            };
            List <int> objTagGroups = new List <int>();

            objTagGroups.Add(request.TagGroupsId);
            var taxGroup        = _taxTagsRepository.GetTagGroups(objTagGroups)[0];
            var contentToDelete = new List <int>();
            var articleDocs     = _context.GetAll(Constants.ArticlesDiscriminator);
            var taxTagDocs      = _context.GetAll(Constants.TaxTagsDiscriminator);

            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                //List<Languages> languages = _taxTagsRepository.GetAllLanguages();
                if (request.TagType == "Tag")
                {
                    if (taxGroup.ParentTagId == null)
                    {
                        throw new RulesException("Invalid", @"Tag not Valid");
                    }
                    taxGroup.ParentTagId = request.TagGroup;
                    foreach (var country in request.RelatedCountyIds)
                    {
                        var taxCountries = taxGroup.TaxTagRelatedCountries.Where(s => s.CountryId == country).FirstOrDefault();
                        if (taxCountries == null)
                        {
                            TaxTagRelatedCountries objRelatedCountries = new TaxTagRelatedCountries();
                            objRelatedCountries.CountryId = country;
                            taxGroup.TaxTagRelatedCountries.Add(objRelatedCountries);
                        }
                        else
                        {
                            taxCountries.CountryId = country;
                            _taxTagsRepository.Update(taxCountries);
                        }
                    }
                }
                foreach (var content in request.LanguageName)
                {
                    var taxGroupContents = taxGroup.TaxTagContents.Where(s => s.LanguageId == content.LanguageId).FirstOrDefault();
                    if (taxGroupContents == null)
                    {
                        TaxTagContents objtaxGroupContents = new TaxTagContents();
                        objtaxGroupContents.DisplayName = content.Name;
                        objtaxGroupContents.LanguageId  = content.LanguageId;
                        taxGroup.TaxTagContents.Add(objtaxGroupContents);
                    }
                    else
                    {
                        taxGroupContents.DisplayName = content.Name;
                        _taxTagsRepository.Update(taxGroupContents);
                    }
                }
                //  List<TaxTagContents> ResourceGroupContents = taxGroup.TaxTagContents.Where(s => s.TaxTagId == request.TagGroupsId).ToList();
                foreach (var resourceContent in taxGroup.TaxTagContents.ToList())
                {
                    if (request.LanguageName.Where(s => s.LanguageId == resourceContent.LanguageId).Count() == 0)
                    {
                        contentToDelete.Add((int)resourceContent.LanguageId);
                        taxGroup.TaxTagContents.Remove(resourceContent);
                        _taxTagsRepository.Delete(resourceContent);
                    }
                }
                foreach (var resourceCountries in taxGroup.TaxTagRelatedCountries.ToList())
                {
                    if (request.RelatedCountyIds.Where(s => s == resourceCountries.CountryId).Count() == 0)
                    {
                        taxGroup.TaxTagRelatedCountries.Remove(resourceCountries);
                        _taxTagsRepository.Delete(resourceCountries);
                    }
                }
                taxGroup.UpdatedBy   = "";
                taxGroup.UpdatedDate = DateTime.Now;
                await _taxTagsRepository.UnitOfWork
                .SaveEntitiesAsync();

                response.IsSuccessful = true;
                scope.Complete();
            }
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var taggroupDocs = _context.GetAll(Constants.TaxTagsDiscriminator);
                foreach (var content in taxGroup.TaxTagContents)
                {
                    foreach (var article in articleDocs.Where(ad => ad.GetPropertyValue <int>("LanguageId") == content.LanguageId))
                    {
                        foreach (var relatedTaxTags in article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags"))
                        {
                            if (relatedTaxTags.TaxTagId == content.TaxTagId)
                            {
                                List <RelatedTaxTagsSchema> relatedTaxTagsSchema = new List <RelatedTaxTagsSchema>();
                                relatedTaxTagsSchema = article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags");

                                var index = relatedTaxTagsSchema.IndexOf(relatedTaxTagsSchema.Where(i => i.TaxTagId == content.TaxTagId).First());
                                if (index != -1)
                                {
                                    relatedTaxTagsSchema[index] = new RelatedTaxTagsSchema {
                                        TaxTagId = int.Parse(content.TaxTagId.ToString()), DisplayName = content.DisplayName
                                    }
                                }
                                ;
                                var eventSourcingRelated = new ArticleCommandEvent()
                                {
                                    id = article != null?article.GetPropertyValue <Guid>("id") : Guid.NewGuid(),
                                             EventType             = ServiceBusEventType.Update,
                                             ArticleId             = article.GetPropertyValue <int>("ArticleId"),
                                             PublishedDate         = article.GetPropertyValue <string>("PublishedDate"),
                                             Author                = article.GetPropertyValue <string>("author"),
                                             ImageId               = article.GetPropertyValue <int>("ImageId"),
                                             State                 = article.GetPropertyValue <string>("State"),
                                             Type                  = article.GetPropertyValue <int>("Type"),
                                             SubType               = article.GetPropertyValue <int>("SubType"),
                                             ResourcePosition      = article.GetPropertyValue <int>("ResourcePosition"),
                                             Disclaimer            = article.GetPropertyValue <DisclamersSchema>("Disclaimer"),
                                             ResourceGroup         = article.GetPropertyValue <ResourceGroupsSchema>("ResourceGroup"),
                                             IsPublished           = article.GetPropertyValue <bool>("IsPublished"),
                                             CreatedDate           = article.GetPropertyValue <string>("CreatedDate"),
                                             CreatedBy             = article.GetPropertyValue <string>("CreatedBy"),
                                             UpdatedDate           = article.GetPropertyValue <string>("UpdatedDate"),
                                             UpdatedBy             = article.GetPropertyValue <string>("UpdatedBy"),
                                             NotificationSentDate  = article.GetPropertyValue <string>("NotificationSentDate"),
                                             Provinces             = article.GetPropertyValue <ProvinceSchema>("Provisions"),
                                             ArticleContentId      = article.GetPropertyValue <int>("ArticleContentId"),
                                             LanguageId            = article.GetPropertyValue <int>("LanguageId"),
                                             Title                 = article.GetPropertyValue <string>("Title"),
                                             TitleInEnglishDefault = article.GetPropertyValue <string>("TitleInEnglishDefault"),
                                             TeaserText            = article.GetPropertyValue <string>("TeaserText"),
                                             Content               = article.GetPropertyValue <string>("Content"),
                                             RelatedContacts       = article.GetPropertyValue <List <RelatedEntityId> >("RelatedContacts"),
                                             RelatedCountries      = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountries"),
                                             RelatedCountryGroups  = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountryGroups"),
                                             RelatedTaxTags        = relatedTaxTagsSchema,
                                             RelatedArticles       = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedArticles"),
                                             RelatedResources      = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedResources"),
                                             Discriminator         = article.GetPropertyValue <string>("Discriminator"),
                                             PartitionKey          = ""
                                };
                                await _Eventcontext.PublishThroughEventBusAsync(eventSourcingRelated);
                            }
                        }
                    }
                    var doc = taggroupDocs.FirstOrDefault(d => d.GetPropertyValue <int>("TaxTagId") == taxGroup.TaxTagId &&
                                                          d.GetPropertyValue <int?>("LanguageId") == content.LanguageId);
                    var eventSourcing = new TagGroupCommandEvent()
                    {
                        id = doc != null?doc.GetPropertyValue <Guid>("id") : Guid.NewGuid(),
                                 EventType         = doc != null ? ServiceBusEventType.Update : ServiceBusEventType.Create,
                                 Discriminator     = Constants.TaxTagsDiscriminator,
                                 TagId             = taxGroup.TaxTagId,
                                 ParentTagId       = taxGroup.ParentTagId,
                                 IsPublished       = taxGroup.IsPublished,
                                 CreatedBy         = taxGroup.CreatedBy,
                                 CreatedDate       = taxGroup.CreatedDate,
                                 UpdatedBy         = taxGroup.UpdatedBy,
                                 UpdatedDate       = taxGroup.UpdatedDate,
                                 RelatedCountryIds = (from rc in taxGroup.TaxTagRelatedCountries where rc != null select rc.CountryId).ToList(),
                                 TagContentId      = content.TaxTagContentId,
                                 LanguageId        = content.LanguageId,
                                 DisplayName       = content.DisplayName,
                                 PartitionKey      = ""
                    };
                    await _Eventcontext.PublishThroughEventBusAsync(eventSourcing);
                }
                foreach (int i in contentToDelete)
                {
                    foreach (var article in articleDocs.Where(ad => ad.GetPropertyValue <int>("LanguageId") == i))
                    {
                        foreach (var RelatedTaxTags in article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags"))
                        {
                            if (RelatedTaxTags.TaxTagId == taxGroup.TaxTagId)
                            {
                                var DisplayNameInEnglish = taxTagDocs.Where(ad => ad.GetPropertyValue <int>("TaxTagId") == taxGroup.TaxTagId && ad.GetPropertyValue <int>("LanguageId") == 37).Select(ads => ads.GetPropertyValue <string>("DisplayName")).FirstOrDefault();
                                List <RelatedTaxTagsSchema> relatedTaxTagsSchema = new List <RelatedTaxTagsSchema>();
                                relatedTaxTagsSchema = article.GetPropertyValue <List <RelatedTaxTagsSchema> >("RelatedTaxTags");

                                var index = relatedTaxTagsSchema.IndexOf(relatedTaxTagsSchema.Where(ras => ras.TaxTagId == taxGroup.TaxTagId).First());
                                if (index != -1)
                                {
                                    if (DisplayNameInEnglish == "")
                                    {
                                        relatedTaxTagsSchema.Remove(relatedTaxTagsSchema.Where(rtt => rtt.TaxTagId == taxGroup.TaxTagId).First());
                                    }
                                    else
                                    {
                                        relatedTaxTagsSchema[index] = new RelatedTaxTagsSchema {
                                            TaxTagId = taxGroup.TaxTagId, DisplayName = (DisplayNameInEnglish == null ? "" : DisplayNameInEnglish)
                                        }
                                    }
                                }
                                ;
                                var eventSourcingRelated = new ArticleCommandEvent()
                                {
                                    id = article != null?article.GetPropertyValue <Guid>("id") : Guid.NewGuid(),
                                             EventType             = ServiceBusEventType.Update,
                                             ArticleId             = article.GetPropertyValue <int>("ArticleId"),
                                             PublishedDate         = article.GetPropertyValue <string>("PublishedDate"),
                                             Author                = article.GetPropertyValue <string>("author"),
                                             ImageId               = article.GetPropertyValue <int>("ImageId"),
                                             State                 = article.GetPropertyValue <string>("State"),
                                             Type                  = article.GetPropertyValue <int>("Type"),
                                             SubType               = article.GetPropertyValue <int>("SubType"),
                                             ResourcePosition      = article.GetPropertyValue <int>("ResourcePosition"),
                                             Disclaimer            = article.GetPropertyValue <DisclamersSchema>("Disclaimer"),
                                             ResourceGroup         = article.GetPropertyValue <ResourceGroupsSchema>("ResourceGroup"),
                                             IsPublished           = article.GetPropertyValue <bool>("IsPublished"),
                                             CreatedDate           = article.GetPropertyValue <string>("CreatedDate"),
                                             CreatedBy             = article.GetPropertyValue <string>("CreatedBy"),
                                             UpdatedDate           = article.GetPropertyValue <string>("UpdatedDate"),
                                             UpdatedBy             = article.GetPropertyValue <string>("UpdatedBy"),
                                             NotificationSentDate  = article.GetPropertyValue <string>("NotificationSentDate"),
                                             Provinces             = article.GetPropertyValue <ProvinceSchema>("Provisions"),
                                             ArticleContentId      = article.GetPropertyValue <int>("ArticleContentId"),
                                             LanguageId            = article.GetPropertyValue <int>("LanguageId"),
                                             Title                 = article.GetPropertyValue <string>("Title"),
                                             TitleInEnglishDefault = article.GetPropertyValue <string>("TitleInEnglishDefault"),
                                             TeaserText            = article.GetPropertyValue <string>("TeaserText"),
                                             Content               = article.GetPropertyValue <string>("Content"),
                                             RelatedContacts       = article.GetPropertyValue <List <RelatedEntityId> >("RelatedContacts"),
                                             RelatedCountries      = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountries"),
                                             RelatedCountryGroups  = article.GetPropertyValue <List <RelatedEntityId> >("RelatedCountryGroups"),
                                             RelatedTaxTags        = relatedTaxTagsSchema,
                                             RelatedArticles       = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedArticles"),
                                             RelatedResources      = article.GetPropertyValue <List <RelatedArticlesSchema> >("RelatedResources"),
                                             Discriminator         = article.GetPropertyValue <string>("Discriminator"),
                                             PartitionKey          = ""
                                };
                                await _Eventcontext.PublishThroughEventBusAsync(eventSourcingRelated);
                            }
                        }
                    }
                    var deleteEvt = new TagGroupCommandEvent()
                    {
                        id = taggroupDocs.FirstOrDefault(d => d.GetPropertyValue <int>("TagId") == taxGroup.TaxTagId &&
                                                         d.GetPropertyValue <int?>("LanguageId") == i).GetPropertyValue <Guid>("id"),
                        EventType     = ServiceBusEventType.Delete,
                        Discriminator = Constants.TaxTagsDiscriminator,
                        PartitionKey  = ""
                    };
                    await _Eventcontext.PublishThroughEventBusAsync(deleteEvt);
                }
                scope.Complete();
            }
            return(response);
        }
    }