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; } } } }
//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); }
/// <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); }