Beispiel #1
0
 private static string GetContactForType(List<Contact> contacts, ContactTypeEnum contactType)
 {
     foreach (var contact in contacts)
     {
         if (contact.Type == contactType)
             return contact.Number;
     }
     return null;
 }
Beispiel #2
0
        public static List<IContact> GetContacts(IDalSession session,
            int assetManagerId, int remisierId, int remisierEmployeeId, string accountNumber, string contactName,
            bool contactActive, bool contactInactive, ContactTypeEnum? contactTypeEnum, bool emailStatusYes, bool emailStatusNo,
            bool? hasLogin, bool? passwordSent, bool? isLoginActive, bool accountActive, bool accountInactive, string bsN_KvK)
        {
            Hashtable parameters = new Hashtable();
            StringBuilder sb = new StringBuilder();

            string className = (contactTypeEnum == ContactTypeEnum.Person ? "ContactPerson" :
                               (contactTypeEnum == ContactTypeEnum.Company ? "Company" : "Contact"));

            sb.AppendFormat(@"SELECT C.Key FROM {0} C
                              LEFT OUTER JOIN C.Login L WHERE 1=1", className);

            if (assetManagerId != 0)
            {
                parameters.Add("AssetManagerId", assetManagerId);
                sb.Append(" AND C.AssetManager.Key = :AssetManagerId");
            }

            string accountHolderWhereHql = "";

            if (remisierId != 0)
            {
                parameters.Add("RemisierId", remisierId);
                accountHolderWhereHql += " AND AccH.GiroAccount.RemisierEmployee.Remisier.Key = :RemisierId";
            }

            if (remisierEmployeeId != 0)
            {
                parameters.Add("RemisierEmployeeId", remisierEmployeeId);
                accountHolderWhereHql += " AND AccH.GiroAccount.RemisierEmployee.Key = :RemisierEmployeeId";
            }

            if (!string.IsNullOrEmpty(accountNumber))
            {
                parameters.Add("AccountNumber", accountNumber + "%");
                accountHolderWhereHql += " AND AccH.GiroAccount.Number LIKE :AccountNumber";
            }

            AccountStati? accountStatus = null;
            if (accountActive && !accountInactive)
                accountStatus = AccountStati.Active;
            else if (!accountActive && accountInactive)
                accountStatus = AccountStati.Inactive;

            if (accountStatus != null)
            {
                parameters.Add("AccountStatus", (int)accountStatus);
                accountHolderWhereHql += " AND AccH.GiroAccount.Status = :AccountStatus";
            }

            if (accountHolderWhereHql != "")
            {
                if (assetManagerId != 0)
                    accountHolderWhereHql += " AND AccH.GiroAccount.AccountOwner.Key = :AssetManagerId";

                sb.AppendFormat(" AND C.Key IN (SELECT AccH.Contact.Key FROM AccountHolder AccH WHERE 1=1 {0})", accountHolderWhereHql);
            }

            if (!string.IsNullOrEmpty(contactName))
            {
                parameters.Add("ContactName", "%" + contactName + "%");
                sb.Append(" AND C.CurrentNAW.Name LIKE :ContactName");
            }

            sb.Append(" AND C.IsActive ");
            if (contactActive && !contactInactive)
                sb.Append("= true");
            else if (!contactActive && contactInactive)
                sb.Append("= false");
            else if (!contactActive && !contactInactive)
                sb.Append("IS NULL");
            else
                sb.Append("IS NOT NULL");

            if (!string.IsNullOrEmpty(bsN_KvK))
            {
                parameters.Add("BsN_KvK", "%" + bsN_KvK + "%");
                sb.Append(@" AND (C.Key IN (SELECT CP.Key FROM ContactPerson CP WHERE CP.BurgerServiceNummer LIKE :BsN_KvK) OR
                                  C.Key IN (SELECT CC.Key FROM ContactCompany CC WHERE CC.KvKNumber LIKE :BsN_KvK))");
            }

            string hasEmail = "(C.ContactDetails.Email IS NOT NULL AND C.ContactDetails.Email != '')";
            if (!emailStatusYes)
                sb.Append(" AND NOT " + hasEmail);
            if (!emailStatusNo)
                sb.Append(" AND " + hasEmail);

            if (hasLogin != null)
                sb.AppendFormat(" AND L IS {0} NULL", (bool)hasLogin ? "NOT" : "");
            if (passwordSent != null)
                sb.AppendFormat(" AND L.PasswordSent = {0}", passwordSent.ToString().ToLower());
            if (isLoginActive != null)
                sb.AppendFormat(" AND L.IsActive = {0}", isLoginActive.ToString().ToLower());

            string hql = string.Format("FROM {0} CX WHERE CX.Key IN ({1})", className, sb);

            return session.GetTypedListByHQL<IContact>(hql, parameters);
        }
Beispiel #3
0
        public static List<IContact> GetContacts(IDalSession session, IAssetManager assetManager, string accountNumber, string contactName,
            bool contactActive, bool contactInactive, ContactTypeEnum? contactTypeEnum, bool emailStatusYes, bool emailStatusNo,
            bool? hasLogin, bool? passwordSent, bool? isLoginActive, bool accountActive, bool accountInactive, string bsN_KvK)
        {
            int assetManagerId = assetManager != null ? assetManager.Key : 0;

            return GetContacts(session, assetManagerId, 0, 0, accountNumber, contactName, contactActive, contactInactive, contactTypeEnum,
                               emailStatusYes, emailStatusNo, hasLogin, passwordSent, isLoginActive, accountActive, accountInactive, bsN_KvK);
        }
Beispiel #4
0
 public static IList GetContacts(IDalSession session, IAssetManager assetManager, string accountNumber, string contactName,
     bool contactActive, bool contactInactive, ContactTypeEnum? contactTypeEnum)
 {
     return GetContacts(session, assetManager, accountNumber, contactName, contactActive, contactInactive, contactTypeEnum,
                        true, true, null, null, null, true, true, null);
 }
Beispiel #5
0
        public async Task <UserGetFullApiModel> RegistrationAsync(string login, string password, ContactTypeEnum contactType,
                                                                  UserProfileAddApiModel userProfile)
        {
            var contact = login.ToLower();
            var hash    = AppHelper.Current.GetCryptoHash(password);

            User user = await CreateDefaultUserEntityAsync(contact, hash, contactType);

            UserProfileHelper.Current.SetUserProfileDefaultDataForRegistration(ref userProfile);

            user.SetId();
            user.UserProfileId  = user.Id;
            user.UserProfile    = _dataMapper.Parse <UserProfileAddApiModel, UserProfile>(userProfile);
            user.UserProfile.Id = user.Id;

            await _userRepository.AddAsync(user);

            user.UserRoles = (await _userRoleRepository.AddRolesAsync(user.Id, RoleHelper.Current.User.Id)).ToList();

            var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user);

            return(userModel);
        }
Beispiel #6
0
        private async Task <User> CreateDefaultUserEntityAsync(string contact, string password, ContactTypeEnum contactType)
        {
            if (contactType == ContactTypeEnum.Email)
            {
                if (await _userRepository.AnyAsync(x => x.Email.ToLower() == contact.ToLower()))
                {
                    throw new ArgumentException($"User already exist");
                }

                User user = new User()
                {
                    Email            = contact,
                    Password         = password,
                    IsEmailConfirmed = true,
                };

                return(user);
            }
            else if (contactType == ContactTypeEnum.Phone)
            {
                if (await _userRepository.AnyAsync(x => x.Phone == contact))
                {
                    throw new ArgumentException($"User already exist");
                }

                User user = new User()
                {
                    Phone            = contact,
                    Password         = password,
                    IsPhoneConfirmed = true,
                };

                return(user);
            }
            else
            {
                throw new Exception("Unsupported contact_type");
            }
        }
Beispiel #7
0
        public async Task <UserGetFullApiModel> AuthenticationAsync(string login, string password, ContactTypeEnum contactType)
        {
            var contact = login.ToLower();
            var hash    = AppHelper.Current.GetCryptoHash(password);

            User user = null;

            switch (contactType)
            {
            case ContactTypeEnum.Email:
                user = await _userRepository.FirstOrDefaultAsync(x => x.Email == contact && x.Password == hash);

                break;

            case ContactTypeEnum.Phone:
                user = await _userRepository.FirstOrDefaultAsync(x => x.Phone == contact && x.Password == hash);

                break;
            }

            if (user == null)
            {
                throw new ArgumentException($"Login or password is not valid");
            }

            var userModel = _dataMapper.Parse <User, UserGetFullApiModel>(user);

            return(userModel);
        }
        public string FormatContact(string value, ContactTypeEnum contactType)
        {
            var contactTypeEnumModel = Mapper.Map <ContactTypeEnumModel>(contactType);

            return(FormatContact(value, contactTypeEnumModel));
        }
Beispiel #9
0
        public async Task RecoveryPasswordAsync(string contact, string code, string newPassword, ContactTypeEnum contactType)
        {
            if (contactType == ContactTypeEnum.Email)
            {
                var user = await _userRepository.FirstOrDefaultAsync(p => p.Email == contact);

                if (user == null)
                {
                    throw new ArgumentException($"User is not found");
                }

                await RecoveryPasswordHandlerAsync(user, contact, code, newPassword);
            }
            else if (contactType == ContactTypeEnum.Phone)
            {
                var user = await _userRepository.FirstOrDefaultAsync(p => p.Phone == contact);

                if (user == null)
                {
                    throw new ArgumentException($"User is not found");
                }

                await RecoveryPasswordHandlerAsync(user, contact, code, newPassword);
            }
            else
            {
                throw new Exception("Unsupported contact_type");
            }
        }
Beispiel #10
0
        public IList <UserContactEntity> GetActualVersionOfUserContactWithLoaGreaterThan(string contactValue, ContactTypeEnum contactTypeEnum, LevelOfAssuranceEnum levelOfAssurance)
        {
            LevelOfAssuranceEntity levelOfAssuranceAlias = null;

            try
            {
                var session = GetSession();
                var result  = session.QueryOver <UserContactEntity>()
                              .JoinAlias(x => x.LevelOfAssurance, () => levelOfAssuranceAlias)
                              .Where(x => x.Type == contactTypeEnum && x.Value == contactValue && x.ActiveTo == null &&
                                     levelOfAssuranceAlias.Level > (int)levelOfAssurance)
                              .Future <UserContactEntity>();
                FetchCollections(session);

                return(result.ToList());
            }
            catch (HibernateException ex)
            {
                throw new DatabaseException("Find user contact operation failed", ex);
            }
        }
 public bool ValidateUniqueContact(ContactTypeEnum type, string value, int?userId = null)
 {
     return(m_uniqueContactValidator.Validate(type, value, userId));
 }
        public bool ValidateContact(ContactTypeEnum type, string value)
        {
            var contactTypeEnumModel = Mapper.Map <ContactTypeEnumModel>(type);

            return(ValidateContact(contactTypeEnumModel, value));
        }
 public IList <UserContactEntity> GetUserContactsWithLoaGreaterThan(string contactValue, ContactTypeEnum contactTypeEnum, LevelOfAssuranceEnum levelOfAssurance)
 {
     return(m_userContactRepository.GetActualVersionOfUserContactWithLoaGreaterThan(contactValue, contactTypeEnum, levelOfAssurance));
 }
 public UserContactEntity GetUserContact(int userId, ContactTypeEnum contactTypeEnum)
 {
     return(m_userContactRepository.GetActualVersionOfUserContact(userId, contactTypeEnum));
 }