Пример #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;
 }
Пример #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);
        }
Пример #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);
        }
Пример #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);
 }
Пример #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);
        }
Пример #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");
            }
        }
Пример #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));
        }
Пример #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");
            }
        }
Пример #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));
 }