public async Task <bool> UpdateStatus(int id, CampaignAccountContentStatus status, string username)
        {
            var CampaignAccountContent = await _CampaignAccountContentRepository.GetByIdAsync(id);

            if (CampaignAccountContent == null)
            {
                return(false);
            }
            ;
            var campaignaccount = await _campaignAccountRepository.GetByIdAsync(CampaignAccountContent.CampaignAccountId);

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


            CampaignAccountContent.Status       = status;
            CampaignAccountContent.UserModified = username;
            CampaignAccountContent.DateModified = DateTime.Now;
            await _CampaignAccountContentRepository.UpdateAsync(CampaignAccountContent);

            if (status == CampaignAccountContentStatus.DaDuyet)
            {
                campaignaccount.RefContent   = CampaignAccountContent.Content;
                campaignaccount.UserModified = username;
                campaignaccount.DateModified = DateTime.Now;

                campaignaccount.IsApprovedContent = true;

                await _campaignAccountRepository.UpdateAsync(campaignaccount);
            }

            var notifType = status == CampaignAccountContentStatus.DaDuyet ? NotificationType.AgencyApproveCampaignContent : NotificationType.AgencyDeclineCampaignContent;
            var campaign  = await _campaignRepository.GetByIdAsync(campaignaccount.CampaignId);

            await _notificationRepository.AddAsync(new Notification()
            {
                Type        = notifType,
                DataId      = campaignaccount.CampaignId,
                Data        = string.Empty,
                DateCreated = DateTime.Now,
                EntityType  = EntityType.Account,
                EntityId    = campaignaccount.AccountId,
                Message     = notifType.GetMessageText(username, campaign.Title.ToString()),
                Status      = NotificationStatus.Created
            });

            return(true);
        }
 public CampaignAccountContentByCampaignIdSpecification(int campaignid, CampaignAccountContentStatus status)
     : base(i => i.CampaignAccount.CampaignId == campaignid && i.Status == status)
 {
     AddInclude(m => m.CampaignAccount);
 }
 public CampaignAccountContentByCampaignAccountIdSpecification(int campaignAccountId, CampaignAccountContentStatus status)
     : base(i => i.CampaignAccountId == campaignAccountId && i.Status == status)
 {
 }