public SendInviteFormParams(string serial)
            {
                try
                {
                    this.Serial = new Guid(serial);
                }
                catch
                {
                    this.Serial = Guid.Empty;
                }

                InviteSerial theSerial = InviteBO.Instance.GetInviteSerial(Serial);

                if (theSerial != null)
                {
                    if (theSerial.UserID == UserBO.Instance.GetCurrentUserID())
                    {
                        if (theSerial.Status == InviteSerialStatus.Unused || theSerial.Status == InviteSerialStatus.Unused)
                        {
                            InviteEmail email = new InviteEmail(null, Serial, User.Current.Username, User.CurrentID);
                            this.EmailContent  = email.Content;
                            this.EmailTitle    = email.Subject;
                            this.IsValidSerial = true;
                        }
                    }
                }
            }
Exemple #2
0
        //public void UpdateInviteSerialEmailAndStatus(int userID, InviteSerialCollection serials)
        //{
        //    InviteDao.Instance.UpdateInviteSerialEmailAndStatus(userID, serials);
        //}

        public bool SendInviteByEmail(AuthUser operatorUser, Guid serial, string email)
        {
            if (AllSettings.Current.EmailSettings.EnableSendEmail == false)
            {
                ThrowError(new EmailDisabledError());
                return(false);
            }

            if (string.IsNullOrEmpty(email))
            {
                ThrowError(new EmptyEmailError("email"));
            }

            else if (!ValidateUtil.IsEmail(email) == false)
            {
                ThrowError(new EmailFormatError("email", email));
            }

            InviteSerial inviteSerial = this.GetInviteSerial(serial);

            if (inviteSerial == null ||
                inviteSerial.Status == InviteSerialStatus.Expires ||
                inviteSerial.Status == InviteSerialStatus.Used ||
                inviteSerial.UserID != operatorUser.UserID
                )
            {
                ThrowError(new InviteSerialError("serial", serial.ToString()));
            }

            if (HasUnCatchedError)
            {
                return(false);
            }

            InviteEmail emailSender = new InviteEmail(
                email
                , inviteSerial.Serial
                , operatorUser.Username
                , operatorUser.UserID);

            emailSender.Send();


            if (!HasUnCatchedError)
            {
                inviteSerial.ToEmail = email;
                inviteSerial.Status  = InviteSerialStatus.Unused;

                InviteSerialCollection serials = new InviteSerialCollection();
                serials.Add(inviteSerial);

                InviteDao.Instance.UpdateInviteSerialEmailAndStatus(operatorUser.UserID, serials);

                return(true);
            }

            return(false);
        }
Exemple #3
0
        /// <summary>
        /// 用户注册时验证邀请码
        /// </summary>
        /// <param name="serial">邀请码</param>
        /// <param name="invitationUser">如果邀请码有限的话,输出邀请人</param>
        /// <returns></returns>
        public ErrorInfo ValidateInvideCode(string serial, out User invitationUser)
        {
            invitationUser = null;
            if (string.IsNullOrEmpty(serial))
            {
                return(new EmptyInviteSerialError("serial"));
            }

            InvitationSettings settings = AllSettings.Current.InvitationSettings;

            if (settings.InviteMode == InviteMode.Close)
            {
                return(new CustomError("serial", "邀请/推广功能并未开放"));
            }
            else if (settings.InviteMode == InviteMode.InviteSerialRequire ||
                     settings.InviteMode == InviteMode.InviteSerialOptional)//邀请码模式
            {
                Guid         serialGuid   = Guid.Empty;
                InviteSerial inviteSerial = null;
                try
                {
                    serialGuid = new Guid(serial);
                }
                catch
                {
                    return(new InviteSerialError("serial", serial));
                }

                inviteSerial = InviteBO.Instance.GetInviteSerial(serialGuid);

                if (inviteSerial == null)
                {
                    return(new InviteSerialError("serial", string.Empty));
                }

                if (inviteSerial.ExpiresDate < DateTimeUtil.Now)
                {
                    return(new InviteExpiredError());
                }

                switch (inviteSerial.Status)
                {
                case InviteSerialStatus.Used:
                {
                    return(new InviteUsedError());
                }

                case InviteSerialStatus.Expires:
                {
                    return(new InviteExpiredError());
                }

                default:
                {
                    invitationUser = UserBO.Instance.GetUser(inviteSerial.UserID);
                    ////如果邀请人本身就是未受邀请的用户的话
                    //if (invitationUser.Roles.IsInRole(Role.InviteLessUsers)) invitationUser = null;
                    break;
                }
                }
            }
            else  //固定连接模式
            {
                //string inviteUsername;

                invitationUser = FixInviteCodeToUser(serial);

                if (invitationUser == null)
                {
                    return(new InviteSerialError("serial", serial));
                }
            }
            return(null);
        }