public virtual ActionResult RegisterWithOrganization(Guid?registrationToken) { if (registrationToken == null) { return(View(MVC.Account.Views.InvalidOrgRegistrationTokenView)); } // Retrieve the organization based on the token var org = _serviceFactory.GetService <OrganizationByRegistrationTokenQuery>() .Execute(new OrganizationByRegistrationTokenQueryParams { RegistrationToken = (Guid)registrationToken }); if (org == null) { return(View(MVC.Account.Views.InvalidOrgRegistrationTokenView)); } var model = new OrganizationRegistrationViewModel { RegistrationToken = (Guid)registrationToken, MinPasswordLength = Membership.MinRequiredPasswordLength, OrganizationName = org.Name }; if (org.EmailDomains.Count > 0) { model.RestrictedEmailDomain = org.EmailDomains.First().Domain; } return(View(model)); }
public virtual ActionResult RegisterWithOrganization(OrganizationRegistrationViewModel model) { if (ModelState.IsValid) { MembershipCreateStatus createStatus; // Attempt to register the user try { createStatus = MembershipService.CreateUser(new CreateUserMembershipParams { Email = model.Email, Password = model.Password, OrganizationRegistrationToken = model.RegistrationToken, FullName = model.FullName }); if (createStatus == MembershipCreateStatus.Success) { FormsService.SignIn(model.Email, false /* createPersistentCookie */); return(RedirectToAction(MVC.Home.Index())); } else { ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); } } catch (InvalidEmailDomainForOrganizationException) { ModelState.AddModelError("", "The entered email address is not allowed for this organization"); } } // If we got this far, something failed, redisplay form // Retrieve the organization based on the token var org = _serviceFactory.GetService <OrganizationByRegistrationTokenQuery>() .Execute(new OrganizationByRegistrationTokenQueryParams { RegistrationToken = model.RegistrationToken }); if (org.EmailDomains.Count > 0) { model.RestrictedEmailDomain = org.EmailDomains.First().Domain; } model.MinPasswordLength = Membership.MinRequiredPasswordLength; return(View(model)); }
public void RegisterOrganizationController_SetupService_CreatedItem() { var registerServiceMock = new Mock <IOrganizationRegistrationService>(); var organizationToCreate = new OrganizationRegistrationViewModel { Name = "Helpful", Description = "Volunteers organization", AdministratorLogin = "******", City = "Lviv", Country = "Ukraine", Street = "Pasichna", House = "24a", NameError = string.Empty, UserError = string.Empty }; registerServiceMock.Setup(o => o.RegisterOrganization(organizationToCreate)). Returns(new OrganizationRegistrationViewModel { Name = "Helpful", Description = "Volunteers organization", AdministratorLogin = "******", City = "Lviv", Country = "Ukraine", Street = "Pasichna", House = "24a", NameError = string.Empty, UserError = string.Empty }); var controller = new OrganizationRegistrationController(registerServiceMock.Object); var result = controller.RegisterNewOrganization(organizationToCreate); Assert.NotNull(result); }
public OrganizationRegistrationViewModel RegisterNewOrganization([FromBody] OrganizationRegistrationViewModel item) { return(_orgRegisterService.RegisterOrganization(item)); }
/// <summary> /// Registers new organization /// </summary> /// <param name="item"> Item to register </param> /// <returns>Registered item</returns> public OrganizationRegistrationViewModel RegisterOrganization(OrganizationRegistrationViewModel item) { var checkOrganization = _unitOfWork.OrganizationRepository.Read().Where(o => o.Name == item.Name).FirstOrDefault(); if (checkOrganization == null) { var user = _unitOfWork.UsersRepository.GetUser(item.AdministratorLogin); if (user != null) { var role = _unitOfWork.RoleRepository.Read().Where(r => r.Name == "admin").FirstOrDefault(); var checkMembership = _unitOfWork.MembershipRepository.Read().Where(m => (m.UserId == user.Id) && (m.RoleId == role.Id)).FirstOrDefault(); if (checkMembership == null) { var organization = new Organization { Name = item.Name, Description = item.Description }; _unitOfWork.OrganizationRepository.Create(organization); _unitOfWork.SaveChanges(); var membership = new Membership { UserId = user.Id, OrgId = organization.Id, RoleId = role.Id }; _unitOfWork.MembershipRepository.Create(membership); _unitOfWork.SaveChanges(); var address = new Address { City = item.City, Street = item.Street, Country = item.Country, Building = item.House }; _unitOfWork.AddressRepository.Create(address); _unitOfWork.SaveChanges(); var orgAddres = new OrgAddress { OrgId = organization.Id, AddressId = address.Id }; _unitOfWork.OrganizationAddressRepository.Create(orgAddres); _unitOfWork.SaveChanges(); organization.OrgAddresses.Add(orgAddres); _unitOfWork.SaveChanges(); var result = new OrganizationRegistrationViewModel { Name = organization.Name, AdministratorLogin = item.AdministratorLogin, City = address.City, Country = address.Country, Street = address.Street, Description = organization.Description, House = address.Building }; return(result); } else { item.UserError = "Цей користувач вже адмініструє організацію"; return(item); } } item.UserError = "Користувача з таким логіном не зареєстровано"; return(item); } item.NameError = "Організація з такою назвою вже існує"; return(item); }
/// <summary> /// Registers new organization /// </summary> /// <param name="item"> Item to register </param> /// <returns>Registered item</returns> public OrganizationRegistrationViewModel RegisterOrganization(OrganizationRegistrationViewModel item) { var checkOrganization = _unitOfWork.OrganizationRepository.Read().Where(o => o.Name == item.Name).FirstOrDefault(); if (checkOrganization == null) { var user = _unitOfWork.UsersRepository.GetUser(item.AdministratorLogin); if (user != null) { var role = _unitOfWork.RoleRepository.Read().Where(r => r.Name == "admin").FirstOrDefault(); var checkMembership = _unitOfWork.MembershipRepository.Read().Where(m => (m.UserId == user.Id) && (m.RoleId == role.Id)).FirstOrDefault(); if (checkMembership == null) { var t = _imgManageService.UploadImageAsync(Convert.FromBase64String(item.LogoBase64Code), item.LogoImageExtension); Task.WhenAll(t); var organization = new Organization { Name = item.Name, Description = item.Description, LogoUrl = t.Result }; _unitOfWork.OrganizationRepository.Create(organization); var membership = new Membership { UserId = user.Id, OrgId = organization.Id, RoleId = role.Id }; _unitOfWork.MembershipRepository.Create(membership); var address = new Address { City = item.City, Street = item.Street, Country = item.Country, Building = item.House }; _unitOfWork.AddressRepository.Create(address); var orgAddres = new OrgAddress { OrgId = organization.Id, AddressId = address.Id }; _unitOfWork.OrganizationAddressRepository.Create(orgAddres); organization.OrgAddresses.Add(orgAddres); var interval = new AutoImportIntervals { OrgId = organization.Id, Interval = Constants.DefaultImportInterval, LastUpdateDate = DateTime.Now }; _unitOfWork.ImportIntervalRepository.Create(interval); _unitOfWork.SaveChanges(); var result = new OrganizationRegistrationViewModel { Name = organization.Name, AdministratorLogin = item.AdministratorLogin, City = address.City, Country = address.Country, Street = address.Street, Description = organization.Description, House = address.Building }; return(result); } else { item.UserError = "Цей користувач вже адмініструє організацію"; return(item); } } item.UserError = "Користувача з таким логіном не зареєстровано"; return(item); } item.NameError = "Організація з такою назвою вже існує"; return(item); }