Esempio n. 1
0
        public async Task <List <SiteSocialAccount> > GetFacebookSiteAccountsAsync()
        {
            List <SiteSocialAccount> accounts = new List <SiteSocialAccount>();

            await UnitOfWorkManager.RunWithoutTransaction(null, () =>
            {
                return(Task.Run(() =>
                                accounts = _siteSocialAccountRepo.FindAll().Where(t => t.FacebookPageId != null).ToList()
                                ));
            });

            return(accounts);
        }
Esempio n. 2
0
        private async Task <SocialAccount> GetSoicalAccount(string pageId)
        {
            SiteSocialAccount siteSocialAccount = null;
            await UnitOfWorkManager.RunWithoutTransaction(null, async() =>
            {
                siteSocialAccount = await _siteSocialAccountRepo.FindAll().Where(t => t.FacebookPageId == pageId).FirstOrDefaultAsync();
            });

            if (siteSocialAccount == null)
            {
                return(null);
            }

            SocialAccount socialAccount = null;
            await UnitOfWorkManager.RunWithoutTransaction(siteSocialAccount.SiteId, async() =>
            {
                socialAccount = await _socialAccountService.GetAccountAsync(SocialUserSource.Facebook, pageId);
            });

            if (socialAccount == null)
            {
                return(null);
            }

            return(socialAccount);
        }
Esempio n. 3
0
        public async Task InsertSocialAccountInGeneralDb(SocialUserSource source, string originalId)
        {
            int?siteIdOrNull = CurrentUnitOfWork.GetSiteId();

            if (siteIdOrNull == null)
            {
                throw new InvalidOperationException("site id must have value.");
            }

            int siteId = siteIdOrNull.Value;

            if (source == SocialUserSource.Facebook)
            {
                await UnitOfWorkManager.RunWithNewTransaction(null, async() =>
                {
                    if (!_siteSocialAccountRepo.FindAll().Any(t => t.SiteId == siteId && t.FacebookPageId == originalId))
                    {
                        await _siteSocialAccountRepo.InsertAsync(new SiteSocialAccount {
                            SiteId = siteId, FacebookPageId = originalId
                        });
                    }
                });
            }

            if (source == SocialUserSource.Twitter)
            {
                await UnitOfWorkManager.RunWithNewTransaction(null, async() =>
                {
                    if (!_siteSocialAccountRepo.FindAll().Any(t => t.SiteId == siteId && t.TwitterUserId == originalId))
                    {
                        await _siteSocialAccountRepo.InsertAsync(new SiteSocialAccount {
                            SiteId = siteId, TwitterUserId = originalId
                        });
                    }
                });
            }
        }