private DataResult <string> ValidateContact(string contact, ContactTypeEnumModel contactType, UserAction userAction)
        {
            var isValid = m_contactValidatorManager.ValidateContact(contactType, contact);

            if (!isValid)
            {
                return(Error <string>(m_translator.Translate("save-user-contact-failed"),
                                      GetErrorCodeForValidation(contactType, userAction)));
            }

            return(Success(contact));
        }
        private DataResult <bool> ChangeContact(int userId, string newValue, string code, ContactTypeEnum contactType)
        {
            var isValid = m_contactValidatorManager.ValidateContact(contactType, newValue);

            if (!isValid)
            {
                return(Error <bool>(m_translator.Translate("save-contact-failed"),
                                    contactType == ContactTypeEnum.Email
                        ? DataResultErrorCode.EmailNotValid
                        : DataResultErrorCode.PhoneNumberNotValid));
            }

            var formattedValue = FormatContact(contactType, newValue);

            var isUnique = m_contactValidatorManager.ValidateUniqueContact(contactType, formattedValue, userId);

            if (!isUnique)
            {
                return(Error <bool>(m_translator.Translate("save-contact-failed"),
                                    contactType == ContactTypeEnum.Email
                        ? DataResultErrorCode.EmailNotUnique
                        : DataResultErrorCode.PhoneNumberNotUnique));
            }

            try
            {
                var newContact = new UserContactEntity
                {
                    Value                 = formattedValue,
                    Type                  = contactType,
                    ConfirmCode           = code,
                    ConfirmCodeChangeTime = DateTime.UtcNow,
                };

                m_userContactUoW.ChangeContact(userId, newContact);
                return(Success(true));
            }
            catch (DatabaseException e)
            {
                m_logger.LogWarning(e);
                return(Error <bool>(e.Message));
            }
        }