public ResLogin QuickSignUp(ReqQuickSignUp req) { var res = Call <ResLogin, ReqQuickSignUp>(req, MethodBase.GetCurrentMethod().Name); this.SessionId = res.SessionId; HttpContext.Current.Session["Member"] = res.Member; return(res); }
public ResLogin QuickSignUp(ReqQuickSignUp req) { if (string.IsNullOrWhiteSpace(req.Email) || !req.Email.IsEmail()) { throw new APIException("Email address is invalid", ErrorTypes.ValidationError); } if ((req.Password ?? "").Length < 6) { throw new APIException("Password length cannot be less than six"); } if (req.Password != req.PasswordAgain) { throw new APIException("Passwords do not match", ErrorTypes.ValidationError); } if (!string.IsNullOrWhiteSpace(Session.MemberId)) { throw new APIException("You are already a member", ErrorTypes.ValidationError, ErrorCodes.ExistingMemberCannotSignUp); } Member member = Provider.Database.Read <Member>("Email={0} AND ClientId = {1}", req.Email, this.ApiClient.ClientId); if (member != null) { throw new APIException("The email address is registered. Please login before proceeding.", ErrorTypes.ValidationError, ErrorCodes.ExistingMemberCannotSignUp); } member = new Member { FirstName = req.FirstName, LastName = req.LastName, Email = req.Email, Password = Utility.MD5(req.Password), MemberType = MemberTypes.Individual, State = MemberStates.WaitingEmailConfirmation, LastLoginDate = Provider.Database.Now, ClientId = this.ApiClient.ClientId, StaffMemberId = Provider.Api.GetNextIdleStaffMemberId(Departments.Marketing) }; member.Save(); member.SendConfirmationCode(); var res = new ResLogin { Member = new MemberInfo() }; member.CopyPropertiesWithSameName(res.Member); this.Session.MemberId = member.Id; this.Session.LoginDate = Provider.Database.Now; this.Session.LastAccess = Provider.Database.Now; this.Session.Save(); res.SessionId = this.Session.Id; return(res); }