Ejemplo n.º 1
0
        public async Task <IAccount> FindByEmailAsync(string email)
        {
            var account = await _accountRepository.FindByEmailAsync(email);

            if (account != null)
            {
                account.User = await _userRepository.FindByAccountIdAsync(account.Id);

                if (account.AccountRoles == null || account.AccountRoles.Count() == 0)
                {
                    var accountRoles = await _accountRoleRepository.FindByAccountIdAsync(account.Id);

                    account.AccountRoles = accountRoles.ToList();
                    if (account.AccountRoles != null && account.AccountRoles.Count > 0)
                    {
                        if (account.AccountRoles[0].Role == null)
                        {
                            foreach (var accountRole in account.AccountRoles)
                            {
                                accountRole.Account = account;
                                accountRole.Role    = await _roleRepository.FindByIdAsync(accountRole.RoleId);
                            }
                        }
                    }
                }
            }

            return(account);
        }