public void ValidateUser(User user, InvitationCode invitationCode) { if (!EmailIsUnique(user.Email)) { throw new UserException("El email ya está en uso"); } if (MailIsEmpty(user.Email)) { throw new UserException("El email no puede ser vacío"); } if (!ValidPasswordLenght(user.Password)) { throw new UserException("El largo de la contraseña debe ser mayor o igual que 6"); } if (!IsAlphaNumeric(user.Password)) { throw new UserException("La contraseña debe ser alfanumérica"); } if (!ValidInvitationCode(invitationCode)) { throw new UserException("El codigo de invitación no es correcto"); } if (!IsAlphaNumeric(invitationCode.Code)) { throw new UserException("El codigo de invitación debe ser alfanumérico"); } }
public void RegisterInvitationCodeReturnsCreatedAtRouteTest() { var invitationCode = new InvitationCode() { Code = "AA245GJ5", ParentUser = new User() { Name = "fartolaa", Password = "******", Email = "*****@*****.**", IsAdmin = true } }; var mockInvitationCodeLogic = new Mock <IInvitationCodeLogic>(); mockInvitationCodeLogic.Setup(x => x.GenerateCode(It.IsAny <User>())) .Returns(invitationCode); var controller = new InvitationCodeController(mockInvitationCodeLogic.Object); IHttpActionResult actionResult = controller.PostInvitationCode(invitationCode.ParentUser); var contentResult = Assert.IsType <CreatedAtRouteNegotiatedContentResult <InvitationCode> >(actionResult); Assert.NotNull(contentResult); Assert.Equal(contentResult.Content, invitationCode); }
public InvitationCode GenerateCode(User administator) { if (administator.IsAdmin == false) { throw new InvitationCodeException("Solo administaradores pueden generar codigos"); } var exisitngCodes = UnitOfWork.InvitationCodeRepository.Get(); var newInvitationCode = new InvitationCode() { Code = RandomAlphanumericString(8), ParentUserId = administator.Id }; while (exisitngCodes.IsNotEmpty() && exisitngCodes.Any(c => c.Code == newInvitationCode.Code)) { newInvitationCode.Code = RandomAlphanumericString(8); } UnitOfWork.InvitationCodeRepository.Insert(newInvitationCode); UnitOfWork.Save(); return(newInvitationCode); }
public bool IsValidCode(InvitationCode invitationCode) { return (invitationCode != null && _invitationCodeRepository.Get(invitationCode.Id) != null && !invitationCode.IsUsed); }
public ActionResult Register(string code = "") { InvitationCode invitationCode = new InvitationCode(); //PublicUserModel loginUser = this.GetLoginUser(); //if (loginUser != null && loginUser.UserID > 0) //{ // return Redirect("/Home"); //} List <Regions> regionList = ncBase.CurrentEntities.Regions.Where(r => r.Layer == 1).ToList(); ViewData["RegionList"] = regionList; if (ConfigUtility.GetBoolValue("InvitationRegister") || !string.IsNullOrEmpty(code)) { invitationCode = ncBase.CurrentEntities.InvitationCode.Where(o => o.Code == code && o.IsUsed == false) .FirstOrDefault(); if (invitationCode.IsNull()) { return(RedirectToAction("InvitationRegister", "User")); } } return(View(invitationCode)); }
public void InsertSingleInvitationCodeTest() { var userData = GetUserList(); var userSet = new Mock <DbSet <User> >().SetupData(userData); var invitationCodeData = GetInvitationCodeList(); var invitationCodeSet = new Mock <DbSet <InvitationCode> >().SetupData(invitationCodeData); var context = new Mock <Context>(); context.Setup(ctx => ctx.Set <User>()).Returns(userSet.Object); context.Setup(ctx => ctx.Set <InvitationCode>()).Returns(invitationCodeSet.Object); var unitOfWork = new UnitOfWork(context.Object); var invitationCode = new InvitationCode() { Code = "AA245GJ9", IsDeleted = false, ParentUser = new User() { Name = "test1", Password = "******", Email = "*****@*****.**", IsAdmin = false, IsDeleted = false, }, }; unitOfWork.InvitationCodeRepository.Insert(invitationCode); var result = unitOfWork.InvitationCodeRepository.GetAll(); Assert.True(result.IsNotEmpty()); }
public InvitationCode Generate(string emailAdress) { _invitationCodeRepository.DbContext.BeginTransaction(); InvitationCode ic = Generate(emailAdress, null, Guid.NewGuid().ToString()); _invitationCodeRepository.DbContext.CommitTransaction(); return(ic); }
private bool CheckFields() { if (InvitationCode.Equals(string.Empty)) { throw new Exception("Please fill in the field"); } return(true); }
public InvitationRevokedEvent(InvitationId invitationId, GroupId groupId, InvitationCode invitationCode, ExpirationTime expirationTime, UsageCounter usageCounter) { InvitationId = invitationId; GroupId = groupId; InvitationCode = invitationCode; ExpirationTime = expirationTime; UsageCounter = usageCounter; }
public async Task HandleAsync(JoinGroupCommand command) { var invitationCode = InvitationCode.From(command.Code); var invitation = await _invitationRepository.GetAsync(invitationCode) ?? throw new InvalidInvitationCodeException(command.Code); var group = await _groupRepository.GetAsync(invitation.GroupId) ?? throw new GroupNotFoundException(invitation.GroupId); invitation.Use(UserId.From(command.UserId), group, _clock); }
public void InactivateInvitationCode(string invitationCode) { using (var context = new IgorMarkivMessengerDBEntities()) { InvitationCode invitation = context.InvitationCode.Where(inv => inv.code == invitationCode).FirstOrDefault(); invitation.used = true; context.SaveChanges(); } }
public bool IsValidCode(string invitationCode) { IDictionary <string, object> propertyValues = new Dictionary <string, object> { { "Code", invitationCode } }; InvitationCode ic = _invitationCodeRepository.FindOne(propertyValues); return(IsValidCode(ic)); }
public async Task <IActionResult> OnPostAsync(Guid?id) { if (!ModelState.IsValid) { return(Page()); } Organization = await _context.Organizations.Include(o => o.Users).FirstOrDefaultAsync(m => m.Id == id); var existingUser = await _userManager.FindByEmailAsync(Input.Email); if (existingUser != null) { if (!Organization.Users.Any(u => u.UserId == existingUser.Id)) { Organization.Users.Add(new OrganizationUser { OrganizationId = Organization.Id, UserId = existingUser.Id, OrganizationRole = Input.Role }); await _context.SaveChangesAsync(); } else { return(RedirectToPage("./Details", new { Id = Organization.Id })); } } else { var invitationCode = new InvitationCode { Code = Guid.NewGuid(), CreateDate = DateTime.UtcNow, Email = Input.Email, InitialRole = Input.Role, Organization = Organization }; _context.InvitationCodes.Add(invitationCode); await _context.SaveChangesAsync(); var callbackUrl = Url.Page( "/Account/Register", pageHandler: null, values: new { area = "Identity", code = invitationCode.Code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync( Input.Email, $"Приглашение в {Organization.Name}", $"Зарегистрируйтесь, перейдя по <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>ссылке</a>."); } return(RedirectToPage("./Details", new { Id = Organization.Id })); }
private static void Build(EntityTypeBuilder <Invitation> invitation) { invitation.ToTable("Invitations"); invitation.HasKey(x => x.Id) .HasName("PK_Invitations"); invitation.Property(x => x.Id) .HasConversion(x => x.Value, x => InvitationId.From(x)) .ValueGeneratedNever() .HasColumnName("InvitationId") .IsRequired(); invitation.Property(x => x.GroupId).IsRequired(); invitation.HasOne <Group>() .WithMany() .HasForeignKey(x => x.GroupId) .HasConstraintName("FK_Invitations_Groups") .IsRequired(); invitation.OwnsOne <ExpirationTimeContainer>( "_expirationTime", b => { b.Property <ExpirationTimeType>("_type") .HasConversion <string>() .IsRequired().HasColumnName("ExpirationTimeType"); b.Property <DateTimeOffset>("_start").IsRequired().HasColumnName("ExpirationStart"); b.Property <TimeSpan?>("_period").IsRequired(false).HasColumnName("ExpirationPeriod"); b.Ignore(x => x.ExpirationTime); } ); invitation.Ignore(x => x.ExpirationTime); invitation.OwnsOne <UsageCounterContainer>( "_usageCounter", b => { b.Property <UsageCounterType>("_type") .HasConversion <string>() .IsRequired().HasColumnName("UsageCounterType"); b.Property <int?>("_value").IsRequired(false).HasColumnName("UsageCounter"); b.Ignore(x => x.UsageCounter); } ); invitation.Ignore(x => x.UsageCounter); invitation.HasIndex(x => x.InvitationCode) .IsUnique(); invitation.Property(x => x.InvitationCode) .HasConversion(x => x.Value, x => InvitationCode.From(x)) .HasMaxLength(8) .IsRequired(); }
public InvitationCodeAddOrUpdateResponseDto AddOrUpdate(InvitationCodeAddOrUpdateRequestDto request) { var entity = _repository.GetAll() .FirstOrDefault(x => x.Id == request.Id && x.IsDeleted == false); if (entity == null) { _repository.Add(entity = new InvitationCode()); } entity.Code = request.Code; _uow.SaveChanges(); return(new InvitationCodeAddOrUpdateResponseDto(entity)); }
public void CreateInvitationCodes() { InvitationCodeRepository icr = new InvitationCodeRepository(); icr.DbContext.BeginTransaction(); for (int i = 0; i < 1000; i++) { InvitationCode ic = new InvitationCode(); ic.Code = Guid.NewGuid().ToString(); icr.SaveOrUpdate(ic); } icr.DbContext.CommitTransaction(); }
public bool Remove(int id) { InvitationCode invitationCode = db.InvitationCodes.FirstOrDefault(c => c.Id == id); if (invitationCode != null) { db.InvitationCodes.Remove(invitationCode); db.SaveChanges(); return(true); } else { return(false); } }
public void RegisterUserTest(string name, string email, string password, string ic) { InvitationCode invitationCode = new InvitationCode(); invitationCode.Code = ic; // Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(un => un.InvitationCodeRepository.Get(It.IsAny <Expression <Func <InvitationCode, bool> > >(), null, It.IsAny <string>())) .Returns(new List <InvitationCode>() { invitationCode }); mockUnitOfWork.Setup(un => un.UserRepository.Insert(It.IsAny <User>())); mockUnitOfWork.Setup(un => un.InvitationCodeRepository.Delete(It.IsAny <InvitationCode>())); mockUnitOfWork.Setup(un => un.Save()); IUserLogic userLogic = new UserLogic(mockUnitOfWork.Object); User user = new User() { Name = name, Email = email, Password = password }; try { var response = userLogic.RegisterUser(user, invitationCode); //Assert mockUnitOfWork.Verify(un => un.UserRepository.Insert(It.IsAny <User>()), Times.Exactly(1)); mockUnitOfWork.Verify(un => un.Save(), Times.Exactly(1)); Assert.True(response); } catch (UserException ue) { //For debug purposes var exceptionMessage = ue.Message; // If test gets to this assert then it failed Assert.True(false); } catch (Exception ex) { //For debug purposes var exceptionMessage = ex.Message; Assert.True(false); } }
public JsonResult CheckInvitation(string code) { if (!string.IsNullOrEmpty(code)) { InvitationCode invitationCode = ncBase.CurrentEntities.InvitationCode.Where(o => o.Code == code && o.IsUsed == false) .FirstOrDefault(); if (invitationCode.IsNoNull()) { return(Json(new { exists = 1 })); } return(Json(new { exists = 0 })); } return(Json(new { exists = 0 })); }
public bool RegisterUser(User user, InvitationCode invitationCode) { try { ValidateUser(user, invitationCode); UnitOfWork.UserRepository.Insert(user); var invitationCodeFromDb = UnitOfWork.InvitationCodeRepository.Get(i => i.Code == invitationCode.Code).SingleOrDefault(); UnitOfWork.InvitationCodeRepository.Delete(invitationCodeFromDb); UnitOfWork.Save(); return(true); } catch (Exception e) { throw new UserException(e.Message); } }
public void RegisterValidationsTest1(string name, string email, string password, string ic) { //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(un => un.InvitationCodeRepository.Insert(It.IsAny <InvitationCode>())); mockUnitOfWork.Setup(un => un.UserRepository.Get(null, null, null)); IUserLogic userLogic = new UserLogic(mockUnitOfWork.Object); var invitationCode = new InvitationCode() { Code = ic }; mockUnitOfWork.Object.InvitationCodeRepository.Insert(invitationCode); var user = new User() { Name = name, Email = email, Password = password }; bool throwUserException = false; try { userLogic.ValidateUser(user, invitationCode); // If test gets to this assert then it failed throwUserException = false; } catch (UserException ue) { //For debug purposes var exceptionMessage = ue.Message; // If test gets to this assert then its correct throwUserException = true; } catch (Exception ex) { //For debug purposes var exceptionMessage = ex.Message; throwUserException = false; } Assert.True(throwUserException); }
public InvitationCode Generate(string emailAdress, BasicUser invitedBy, string registrationCode) { if (_invitationValidatorService.MailExists(emailAdress)) { throw new MailAlreadyExistsException(); } //Create a new RegistrationCode InvitationCode ic = new InvitationCode { EmailAddress = emailAdress.Trim().ToLower(), Code = registrationCode.Trim(), InvitedBy = invitedBy }; _invitationCodeRepository.SaveOrUpdate(ic); return(ic); }
public ActionResult AddInvitationCode(FormCollection form) { string tels = form["tel"]; string names = form["name"]; if (!string.IsNullOrEmpty(tels)) { string[] arrs = tels.Split(','); string[] arrnames = !string.IsNullOrEmpty(names)?names.Split(','): null; for (int i = 0; i < arrs.LongLength; i++) { try { InvitationCode invitationCode = new InvitationCode(); invitationCode.Code = StringUtility.GetSubfix(); invitationCode.BindTel = arrs[i]; invitationCode.Invitee = (arrnames.IsNoNull() && arrnames.Length > i ? arrnames[i] : ""); invitationCode.IsUsed = false; invitationCode.UsedTime = Convert.ToDateTime("1900-1-1"); invitationCode.CreateTime = DateTime.Now; invitationCode.VipType = 2; ncBase.CurrentEntities.AddToInvitationCode(invitationCode); ncBase.CurrentEntities.SaveChanges(); } catch (Exception) { InvitationCode invitationCode = new InvitationCode(); invitationCode.Code = StringUtility.GetSubfix(); invitationCode.BindTel = arrs[i]; invitationCode.Invitee = (arrnames.IsNoNull() && arrnames.Length > i ? arrnames[i] : ""); invitationCode.IsUsed = false; invitationCode.UsedTime = Convert.ToDateTime("1900-1-1"); invitationCode.CreateTime = DateTime.Now; invitationCode.VipType = 2; ncBase.CurrentEntities.AddToInvitationCode(invitationCode); ncBase.CurrentEntities.SaveChanges(); } } } return(RedirectToAction("InvitationCodeList")); }
public InvitationCode Create(int teamId, string code) { InvitationCode duplicationCode = db.InvitationCodes.FirstOrDefault(c => c.Code == code); if (code != "" && duplicationCode == null) { Team team = db.Teams.FirstOrDefault(t => t.Id == teamId); InvitationCode invitationCode = new InvitationCode { Team = team, Code = code }; db.InvitationCodes.Add(invitationCode); db.SaveChanges(); return(invitationCode); } else { return(null); } }
public ActionResult Index(string emailAdress) { if (ModelState.IsValid) { try { InvitationCode invitationCode = _invitationCodeGeneratorService.Generate(emailAdress); _messageSenderService.SendWithTemplate("InvitationRequest", null, invitationCode.Code, invitationCode.EmailAddress); TempData["message"] = "We have just send you an invitation code to your email address. You can enter it here to start creating your closet!"; return(RedirectToAction("Index", "Home")); } catch (MailAlreadyExistsException) { ModelState.AddModelError("emailAdress", "Email address already used."); } } return(View()); }
public void RegisterValidationsTest2(string name, string email, string password, string ic) { InvitationCode invitationCode = new InvitationCode(); invitationCode.Code = ic; //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(un => un.InvitationCodeRepository.Get(It.IsAny <Expression <Func <InvitationCode, bool> > >(), null, "")) .Returns(new List <InvitationCode>() { invitationCode }); mockUnitOfWork.Setup(un => un.UserRepository.Get(null, null, null)); IUserLogic userLogic = new UserLogic(mockUnitOfWork.Object); User user = new User(); user.Name = name; user.Email = email; user.Password = password; try { userLogic.ValidateUser(user, invitationCode); // If test gets to this assert then its correct Assert.True(true); } catch (UserException ue) { //For debug purposes var exceptionMessage = ue.Message; // If test gets to this assert then it failed Assert.True(false); } catch (Exception ex) { //For debug purposes var exceptionMessage = ex.Message; Assert.True(false); } }
public ActionResult AddNewUser(string tel) { InvitationCode invitationCode = ncBase.CurrentEntities.InvitationCode.Where(o => o.BindTel == tel && o.IsUsed == false).FirstOrDefault(); if (invitationCode.IsNull()) { invitationCode = new InvitationCode(); invitationCode.Code = StringUtility.GetSubfix(); invitationCode.BindTel = tel; invitationCode.Invitee = ""; invitationCode.IsUsed = false; invitationCode.UsedTime = Convert.ToDateTime("1900-1-1"); invitationCode.CreateTime = DateTime.Now; invitationCode.VipType = 2; ncBase.CurrentEntities.AddToInvitationCode(invitationCode); ncBase.CurrentEntities.SaveChanges(); } ViewBag.Code = invitationCode.Code; return(View()); }
public ActionResult SendInvitationCode(int codeId) { string smsContent = "现诚邀{0}注册使用“房产盒子”_免费房产网络营销软件,邀请码:{1} ,访问 http://fcHeZi.com 开通使用。"; InvitationCode invitationCode = ncBase.CurrentEntities.InvitationCode.Where(o => o.CodeId == codeId).FirstOrDefault(); if (invitationCode.IsNoNull() && !string.IsNullOrEmpty(invitationCode.BindTel)) { SendResult sendResult = smsApi.SendSms(invitationCode.BindTel, string.Format(smsContent, invitationCode.Invitee, invitationCode.Code), (Purpose)8, "【房产盒子】"); if (sendResult.Status == Status.Success) { invitationCode.IsSend = true; ncBase.CurrentEntities.SaveChanges(); return(Content("1")); } } return(Content("0")); }
public async Task <VMInvitation> CreateAsync() { DateTimeOffset?expiration = null; if (Config.Invitations?.Expiry.HasValue ?? false) { expiration = DateTimeOffset.Now + Config.Invitations.Expiry.Value; } var invitation = new InvitationCode { Expiration = expiration }; await DbContext.AddAsync(invitation); await DbContext.SaveChangesAsync(); return(await ReadAsync(invitation.Id)); }
public JsonResult UserUpdatePwd(PublicUserModel user, string code) { InvitationCode invitationEntity = new InvitationCode(); #region 表单验证 if (string.IsNullOrEmpty(user.Tel)) { return(Json(new { status = 1, msg = "手机号不能为空" })); } if (string.IsNullOrEmpty(code) || Session["Phone_Code" + user.Tel] == null || (code != "" && Session["Phone_Code" + user.Tel] != null && code != Session["Phone_Code" + user.Tel].ToString())) { return(Json(new { status = 1, msg = "验证码错误" })); } if (string.IsNullOrEmpty(user.Password) || (user.Password != null && user.Password.Length < 6)) { return(Json(new { status = 1, msg = "密码至少6位数" })); } #endregion UserBll userBll = new UserBll(); PublicUserModel checkUser = userBll.getUserByTel(user.Tel); if (checkUser != null && checkUser.UserID > 0) { int row = userBll.UpdateUserPassword(checkUser.UserID, user.Password); if (row > 0) { return(Json(new { status = 0, msg = "修改成功" })); } else { return(Json(new { status = 1, msg = "修改失败" })); } } return(Json(new { status = 1, msg = "帐号不存在" })); }