public void ProcessSignup() { _client.Send(HeadServerToClientMessage.AckSignUpReq); while (_client.Available == 0) { Thread.Sleep(50); } var request_data = _client.Receive <UserEntry>(); // FIX ME SignupError result = _auth.TrySignUp(IPAddress.Loopback, request_data); SignupResult to_send = null; if (result == SignupError.AllOk) { to_send = new SignupResult( HeadServerToClientMessage.AckSignUp, result); } else { to_send = new SignupResult( HeadServerToClientMessage.DenySignUp, result); } _client.Send(to_send); _client.Close(); return; }
public async Task <SignupResult> RegisterUserAsync(SignupForm model) { var newUser = new IdentityUser { LockoutEnabled = true, UserName = model.UserName }; var emailAttr = new EmailAddressAttribute(); if (emailAttr.IsValid(model.UserName)) { newUser.Email = model.UserName; } var result = await _userManager.CreateAsync(newUser, model.Password); var signupResult = new SignupResult { IsSuccess = result.Succeeded }; if (!result.Succeeded) { signupResult.Errors = result.Errors.Select(x => x.Description).ToList(); } else { signupResult.Id = newUser.Id; } return(signupResult); }
private async void signupBtn_ClickAsync(object sender, EventArgs e) { User user = new User(); user.firstName = nameBox.Text; user.secondName = surnameBox.Text; user.login = loginBox.Text; user.coachCode = coachCodeBox.Text; foreach (Control item in Controls) { item.Enabled = false; } Cursor = Cursors.WaitCursor; SignupResult result = await db.Signup(user, pswdBox.Text); Cursor = Cursors.Default; foreach (Control item in Controls) { item.Enabled = true; } switch (result) { case SignupResult.AlreadyExists: MessageBox.Show("Пользователь с таким логином уже существует"); break; case SignupResult.CoachCodeWrong: MessageBox.Show("Неверный код тренера"); break; case SignupResult.DataIncomplete: MessageBox.Show("Заполните все необходимые поля"); break; case SignupResult.DbError: MessageBox.Show("Ошибка базы данных"); break; case SignupResult.Ok: Close(); break; } }
public async Task <SignupResult> Add(SignupInput signupInput) { SignupResult signupResult = new SignupResult() { Status = OperationStatus.NoError, Errors = new List <Error>(), ResourceId = "" }; if (signupInput == null) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.EmptyEntry, DetailError = "No Signu up Info Provided.", MembershipName = string.Empty }); return(signupResult); } else { if (!string.IsNullOrWhiteSpace(signupInput.Email)) { // Todo: // Email rule check - at least have @ and . } if (!string.IsNullOrWhiteSpace(signupInput.Email) && signupInput.Email.ToLowerInvariant().Contains("@yahoo.com")) { // Not support yahoo signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Email is not supported.", MembershipName = "Email" }); return(signupResult); } } var result = await this._iSignup.Add(signupInput); return(result); }
public async Task <SignupResult> Add(SignupInput signupInput) { SignupResult signupResult = new SignupResult() { Status = OperationStatus.NoError, Errors = new List <Error>(), ResourceId = "" }; if (signupInput == null) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.EmptyEntry, DetailError = "No Signu up Info Provided.", MembershipName = string.Empty }); return(signupResult); } if (string.IsNullOrWhiteSpace(signupInput.FirstName)) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "First Name is Required", MembershipName = "FirstName" }); } if (string.IsNullOrWhiteSpace(signupInput.LastName)) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Last Name is Required", MembershipName = "LastName" }); } if (string.IsNullOrWhiteSpace(signupInput.Email)) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Email is Required", MembershipName = "Email" }); } if (signupInput.FunEventId <= 0) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Event is Required", MembershipName = "FunEventId" }); } if (!string.IsNullOrWhiteSpace(signupInput.FirstName) && signupInput.FirstName.Length > 10) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "First Name is more than 10 letters", MembershipName = "FirstName" }); } if (!string.IsNullOrWhiteSpace(signupInput.LastName) && signupInput.LastName.Length > 10) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Last Name is more than 10 letters", MembershipName = "LastName" }); } if (!string.IsNullOrWhiteSpace(signupInput.Email) && signupInput.Email.Length > 30) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Email is more than 30 letters", MembershipName = "Email" }); } if (!string.IsNullOrWhiteSpace(signupInput.Comments) && signupInput.Comments.Length > 100) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Comments is more than 30 letters", MembershipName = "Comments" }); } if (signupResult.Status != OperationStatus.NoError) { return(signupResult); } try { using (HomeworkEntities context = new HomeworkEntities()) { using (var dbContextTransaction = context.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { string queryEvent = "SELECT FunEventId FROM FunEvents WITH (UPDLOCK) WHERE FunEventId = {0}"; var existingEvent = await context.Database.SqlQuery <int>(queryEvent, signupInput.FunEventId).SingleOrDefaultAsync(); if (existingEvent == 0) { signupResult.Status = OperationStatus.ErrorsWhenAdding; signupResult.Errors.Add(new Error { ErrorType = ErrorType.DataInvalid, DetailError = "Event is not Existing", MembershipName = "FunEventId" }); return(signupResult); } string query = "SELECT FunEventId, Email FROM Signups WITH (UPDLOCK) WHERE FunEventId = {0} AND Email = {1}"; object[] parameters = { signupInput.FunEventId, signupInput.Email }; var existingItem = await context.Database.SqlQuery <Row>(query, parameters).SingleOrDefaultAsync(); if (existingItem != null) { signupResult.Status = OperationStatus.DuplicatedWhenAdding; signupResult.ResourceId = string.Format("{0}###{1}", existingItem.Email, existingItem.FunEventId); return(signupResult); } Signup signup = new Signup(); signup.FirstName = signupInput.FirstName; signup.LastName = signupInput.LastName; signup.Email = signupInput.Email; signup.FunEventId = signupInput.FunEventId; signup.Comments = signupInput.Comments; signup.CreatedDatetime = DateTime.Now; context.Signups.Add(signup); try { await context.SaveChangesAsync(); dbContextTransaction.Commit(); signupResult.Status = OperationStatus.Added; signupResult.ResourceId = string.Format("{0}###{1}", signupInput.Email, signupInput.FunEventId); } catch (Exception ex) { dbContextTransaction.Rollback(); signupResult = new SignupResult() { Errors = new List <Error> { }, Status = OperationStatus.DBError }; } } } } catch (Exception ex) { // Permission issue.. throw ex; } return(signupResult); }