コード例 #1
0
ファイル: SocialUserService.cs プロジェクト: shin820/Social
 private SocialUser FindByOriginalId(string originalId, SocialUserSource source)
 {
     return(FindAllWithDeleted()
            .Where(t => t.OriginalId == originalId && t.Source == source)
            .OrderByDescending(t => t.Id)
            .FirstOrDefault());
 }
コード例 #2
0
 public async Task <IList <SocialAccount> > GetAccountsAsync(SocialUserSource source)
 {
     return(await Repository.FindAll().Include(t => t.SocialUser)
            .Where(t => t.SocialUser.Type == SocialUserType.IntegrationAccount &&
                   t.SocialUser.Source == source &&
                   t.IfEnable && t.IsDeleted == false)
            .ToListAsync());
 }
コード例 #3
0
 public SocialAccount FindAccount(int id, SocialUserSource source)
 {
     return(Repository.FindAll().Include(t => t.SocialUser)
            .Where(t => t.Id == id && t.IsDeleted == false &&
                   t.SocialUser.Type == SocialUserType.IntegrationAccount &&
                   t.SocialUser.Source == source)
            .FirstOrDefault());
 }
コード例 #4
0
 public async Task <SocialAccount> GetAccountAsync(SocialUserSource source, string originalId)
 {
     return(await Repository.FindAll().Include(t => t.SocialUser)
            .Where(t => t.SocialUser.OriginalId == originalId &&
                   t.SocialUser.Source == source &&
                   t.SocialUser.Type == SocialUserType.IntegrationAccount &&
                   t.IfEnable && t.IsDeleted == false)
            .FirstOrDefaultAsync());
 }
コード例 #5
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
                        });
                    }
                });
            }
        }
コード例 #6
0
 private bool IsDupliated(SocialUserSource source, string originalId)
 {
     return(Repository.FindAll().Any(t => t.IsDeleted == false && t.SocialUser.OriginalId == originalId && t.SocialUser.Source == source));
 }