Exemplo n.º 1
0
        private async Task AddExtUser(User user, UserDomainsEnum userDomainEnum, string externalUserId)
        {
            var userDomainsTable = MobileService.GetTable <UserDomain>();
            var userDomains      = await userDomainsTable.ToCollectionAsync();

            var domain = userDomains.SingleOrDefault(d => d.DomainKey == (int)userDomainEnum);

            if (domain != null)
            {
                var externalUserstable = MobileService.GetTable <ExternalUser>();
                var externalUsers      = await externalUserstable.ToCollectionAsync();

                var extUsers = externalUsers.Where(eu => eu.UserId == user.Id && eu.UserDomainId == domain.Id);
                if (extUsers.SingleOrDefault() == null)
                {
                    ExternalUser extUser = new ExternalUser()
                    {
                        Id             = Guid.NewGuid().ToString(),
                        UserId         = user.Id,
                        ExternalUserId = externalUserId,
                        UserDomainId   = domain.Id
                    };
                    await externalUserstable.InsertAsync(extUser);
                }
            }
        }
Exemplo n.º 2
0
        public async Task <bool> Insert(User user, UserDomainsEnum userDomainEnum, string externalUserId)
        {
            return(await this.ExecuteAuthenticated(async() =>
            {
                var usersTable = await MobileService.GetTable <User>().ToCollectionAsync();

                var existingUser = usersTable.Where(u => u.Email == user.Email);
                if (existingUser.SingleOrDefault() == null)
                {
                    await MobileService.GetTable <User>().InsertAsync(user);
                }
                else
                {
                    user = existingUser.Single();
                }
                await AddExtUser(user, userDomainEnum, externalUserId);
                await AddUserGroup(user);
                return true;
            }));
        }
Exemplo n.º 3
0
        public async Task <string> GetUserInternalId(string externalUserId, UserDomainsEnum currentUserDomain)
        {
            return(await this.ExecuteAuthenticated(async() =>
            {
                try
                {
                    var domainsTable = MobileService.GetTable <UserDomain>();
                    var domains = await domainsTable.ToCollectionAsync();
                    var currentDomain = domains.Single(d => d.DomainKey == (int)currentUserDomain);
                    var extUsers = await MobileService.GetTable <ExternalUser>().ToListAsync();
                    var currentExtUser =
                        extUsers.Single(u => u.ExternalUserId == externalUserId && u.UserDomainId == currentDomain.Id);

                    return currentExtUser.UserId;
                }
                catch (Exception ex)
                {
                }
                return "";
            }));
        }