コード例 #1
0
ファイル: CustomerWriter.cs プロジェクト: ADAPT/ISOv4Plugin
 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
ファイル: ContactMapper.cs プロジェクト: kiquenet/B4F
        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
ファイル: ContactMapper.cs プロジェクト: kiquenet/B4F
        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
ファイル: ContactMapper.cs プロジェクト: kiquenet/B4F
 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);
        }
コード例 #8
0
        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);
            }
        }
コード例 #11
0
 public bool ValidateUniqueContact(ContactTypeEnum type, string value, int?userId = null)
 {
     return(m_uniqueContactValidator.Validate(type, value, userId));
 }
コード例 #12
0
        public bool ValidateContact(ContactTypeEnum type, string value)
        {
            var contactTypeEnumModel = Mapper.Map <ContactTypeEnumModel>(type);

            return(ValidateContact(contactTypeEnumModel, value));
        }
コード例 #13
0
 public IList <UserContactEntity> GetUserContactsWithLoaGreaterThan(string contactValue, ContactTypeEnum contactTypeEnum, LevelOfAssuranceEnum levelOfAssurance)
 {
     return(m_userContactRepository.GetActualVersionOfUserContactWithLoaGreaterThan(contactValue, contactTypeEnum, levelOfAssurance));
 }
コード例 #14
0
 public UserContactEntity GetUserContact(int userId, ContactTypeEnum contactTypeEnum)
 {
     return(m_userContactRepository.GetActualVersionOfUserContact(userId, contactTypeEnum));
 }