public async Task <Registration.Models.OutModel> Registration(Registration.Models.InModel inModel, CancellationToken cancellationToken = default)
        {
            RegistrationValidator validator = new RegistrationValidator();
            await validator.ValidateAndThrowAsync(inModel);

            var user = await _dbContext.Users.FirstOrDefaultAsync(x => x.Username == inModel.UserName ||
                                                                  x.Email == inModel.Email, cancellationToken);

            User newUser;

            if (user != null)
            {
                throw new InvalidOperationException($"User with {user.Email} or {user.Username} already exist.");
            }

            byte[] genSalt = Cryptor.GenerateSalt();
            newUser = new User
            {
                Username     = inModel.UserName,
                Email        = inModel.Email,
                PasswordHash = Cryptor.CalculateHashOfPassword(inModel.PasswordHash)
            };
            _dbContext.Users.Add(newUser);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(new Registration.Models.OutModel {
                IdUser = newUser.Id
            });
        }
示例#2
0
        /// <summary>
        /// State is intialised on applicaton start.
        /// Usually I would use Autofac for this - but it wasn't compatible with WCF without the SVC file.
        /// I opted to not use an SVC file because I like to be able to explicitly state my routes to ensure they are REST
        /// </summary>
        public static SiteState Initialise(IConfiguration config, IRepository <User, UserPet> users,
                                           IRepository <Pet, PetMetric> pets, IRepository <Animal, AnimalMetric> animals,
                                           IRepository <Interaction, MetricInteraction> interactions,
                                           IRepository <Metric, MetricInteraction> metrics, IDataProvider <User> userDataProvider,
                                           ISiteRequestProcessor requestProcessor, IContainer userSessionContainer)
        {
            if (IsInitalised)
            {
                throw new Exception("The site state is already initialised");
            }

            //Builder
            var responseBuilder = ResponseBuilder.Initialise(animals, metrics, pets, interactions);

            //GameData
            var gameState = GameDataState.Initialize(config, animals, metrics, interactions, responseBuilder);

            //Validators
            var registrationValidator       = new RegistrationValidator(users);
            var userSessionRequestValidator = new NewUserSessionValidator(users, new Encrypter(config));
            var siteValidator = new SiteRequestRequestValidator(registrationValidator, userSessionRequestValidator);

            IsInitalised = true;
            return(new SiteState(gameState, users, pets, animals, interactions, requestProcessor, siteValidator, config,
                                 responseBuilder, userSessionContainer));
        }
示例#3
0
        public ActionResult Register(UserViewModel model)
        {
            try
            {
                var validator = new RegistrationValidator();
                var result    = validator.Validate(model);

                if (result.IsValid)
                {
                    XmlDal.RegisterNewUser(model);
                    Response.StatusCode = (int)HttpStatusCode.OK;

                    return(new JsonResult
                    {
                        JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                        Data = new[] { "New user " + model.Email + " was successfully registered." }
                    });
                }

                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = GetPrettifiedValidationError(result)
                });
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(new JsonResult
                {
                    Data = Resources.GenericErrorMessage + "\n" + ex.Message
                });
            }
        }
示例#4
0
        public async Task <Registration.OutModel> Registration([FromBody] Registration.InModel inModel)
        {
            RegistrationValidator validationRules = new RegistrationValidator();
            await validationRules.ValidateAndThrowAsync(inModel);

            return(await _iAccessControlService.Registration(inModel));
        }
        public void IsValid_Returns_validCode_when_Required_fields_are_Empty()
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject());

            // Firstname is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_FIRSTNAME_REQUIRED));

            // Lastname is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_LASTNAME_REQUIRED));

            // Password is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_REQUIRED));

            // Retype password is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_REPASSWORD_REQUIRED));

            // Email address is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_EMAIL_REQUIRED));

            // Company is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_COMPANY_REQUIRED));

            // Phone is required
            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_PHONE_REQUIRED));
        }
        public async Task <IActionResult> Registrate([FromForm] RegistrationViewModel model)
        {
            RegistrationValidator validator = new RegistrationValidator(_userManager);
            var results = validator.Validate(model);

            if (!results.IsValid)
            {
                TempData[TextConstants.TempDataErrorText] = ValidatorHelper.GetErrorString(results.Errors);
                return(View("Registration", model));
            }

            List <KeyValuePair <string, ProductRoleEnum> > products = null;

            if (!string.IsNullOrEmpty(model.ProductKey) && !string.IsNullOrEmpty(model.Role))
            {
                products = new List <KeyValuePair <string, ProductRoleEnum> >()
                {
                    new KeyValuePair <string, ProductRoleEnum>(model.ProductKey,
                                                               (ProductRoleEnum)Int32.Parse(model.Role))
                };
            }

            _userManager.AddUser(model.Username, null, null,
                                 HashComputer.ComputePasswordHash(model.Password), false, products);
            await Authenticate(model.Username, true);

            if (!string.IsNullOrEmpty(model.TicketId))
            {
                _ticketManager.RemoveTicket(Guid.Parse(model.TicketId));
            }

            return(RedirectToAction("Index", "Home"));
        }
 public override void Given()
 {
     Logger     = new Logger <CsvHelperService <RegistrationCsvRecordRequest, CsvResponseModel <RegistrationCsvRecordResponse>, RegistrationCsvRecordResponse> >(new NullLoggerFactory());
     DataParser = new RegistrationParser();
     Validator  = new RegistrationValidator();
     Service    = new CsvHelperService <RegistrationCsvRecordRequest, CsvResponseModel <RegistrationCsvRecordResponse>, RegistrationCsvRecordResponse>(Validator, DataParser, Logger);
     FilePath   = Path.Combine(Path.GetDirectoryName(GetCodeBaseAbsolutePath()), _dataFilePath);
 }
示例#8
0
        // Implements Registration of user informations (suivent) / modifying registered user informations (modifier)
        private async void NextModifyBtn_Click(object sender, EventArgs e)
        {
            /* Perform add user registration to db */

            // Get user data to a model
            Adherent newAdh = new Adherent
            {
                Nom        = NameTB.Text,
                Prenom     = PrenomTB.Text,
                Sexe       = SexeCB.SelectedItem.ToString(),
                Cin        = CinTB.Text,
                Tel        = TelTB.Text,
                TelUrgence = TelUrgenceTB.Text,
                Adresse    = AdresseTB.Text,
                Ville      = VilleTB.Text,
                CNE        = (CneTB.Text != "CNE Pour Bénificier d'une réduction étudiant") ? CneTB.Text : null
            };

            // Instanciating validators
            RegistrationValidator validator = new RegistrationValidator();
            ValidationResult      results   = await validator.ValidateAsync(newAdh);

            // User input data is not valid
            if (!results.IsValid)
            {
                // Display Errors to user
                foreach (ValidationFailure failure in results.Errors)
                {
                    UserErrors.Add(failure.ErrorMessage);
                }
                MetroFramework.MetroMessageBox.Show(this,
                                                    string.Join("\n", UserErrors),
                                                    "Données Non Valides",
                                                    MessageBoxButtons.OK,
                                                    MessageBoxIcon.Error);
                // Clear errors for another use and quit
                UserErrors.Clear();
                return;
            }

            // All is valid let's attach adherent informations to the user
            using (ClubDbContext _context = new ClubDbContext())
            {
                var userInDb = await _context.Users.FirstOrDefaultAsync(u => u.Id == currentUser.Id);

                if (userInDb != null)
                {
                    userInDb.Adherent = newAdh;
                }
                await _context.SaveChangesAsync();

                userInDb.AdherentId = userInDb.Adherent.CodeAdh;
                await _context.SaveChangesAsync();
            }

            // call the event to quit this shit
            OnSetRegistration();
        }
 public AdminControllerMethods(AdminQueries _dbQuery, Mailer _mailer, IHttpContextAccessor httpContextAccesssor)
 {
     _httpContextAccesssor = httpContextAccesssor;
     _currentDomain        = _httpContextAccesssor.HttpContext.Request.Host.Value;
     dbQuery       = _dbQuery;
     mailer        = _mailer;
     authenticator = new Auth(_dbQuery);
     validator     = new RegistrationValidator(_dbQuery);
     _tGen         = new TokenGenerator();
 }
示例#10
0
        public int Register(UserDataObject user)
        {
            RegistrationValidator validator = new RegistrationValidator(userData);

            if (!validator.IsValid(user))
            {
                throw new RegistrationException(validator.ErrorCodes);
            }
            user.EncryptedPassword = IGenProtector.Encrypt(user.Password);
            return(userData.Add(user));
        }
示例#11
0
        public void RegistrationValidator_AggregateException()
        {
            //Mock
            var mock = new Mock <IUserRepository>();

            mock.Setup(x => x.GetItemAsync(null)).Returns(Task.FromResult <User>(null));
            //Arrange
            var manager = new RegistrationValidator(mock.Object, _log);

            //Act and Assert
            Assert.ThrowsException <AggregateException>(() => manager.GetValidatorsResult(new User()).Result, "UserLogin property is null. Invalid value.");
        }
示例#12
0
 public LoginPanel(Form form)
     : base(form, OpenXConst, OpenYConst, ClosedXConst, ClosedYConst, TransitionDirectionConst, TransitionAccelerationConst, DestinationOpenConst, DestinationClosedConst)
 {
     InitializeComponent();
     this.loginHandler            = new LoginHandler();
     this.loginValidator          = new LoginValidator();
     this.regHandler              = new RegistrationHandler();
     this.regValidator            = new RegistrationValidator();
     this.regButton.UseSelectable = false;
     this.logButton.UseSelectable = false;
     this.Select();
 }
        public void IsValid_should_return_invalid_email_errorcode_when_invalid_email_ispassed(string email)
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Email = email
            });

            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_EMAIL_INVALID));
        }
        public void IsValid_should_not_return_any_phone_errorcodes_when_phonenumber_isvalid(string phone)
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Phone = phone
            });

            Assert.IsFalse(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_PHONE_INVALID));
        }
示例#15
0
        private static void Step2(List <Vehicle> vehicles)
        {
            // get my list of cars with valid registrations
            var validRegistrationVehicles = vehicles.Where(v => RegistrationValidator.Validate(v.Registration)).ToList();

            var csvBuilder = new VehicleCsvBuilder();

            var csv = csvBuilder.Generate(validRegistrationVehicles);

            File.WriteAllText("Valid Registration Vehicles.csv", csv);

            Console.WriteLine("All CSVs have been generated, and can be found within the 'bin' folder");

            Console.WriteLine($"The total count of vehicles with a valid registration is: {validRegistrationVehicles.Count}");
        }
        public void IsValid_should_return_password_invalid_errorcode_when_password_isabove_10_characters()
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Password   = "******",
                RePassword = "******"
            });

            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_STRENGTH));
        }
        public void Isvalid_should_return_password_donotmatch_errorcode_when_passwords_are_different(string password, string repassword)
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Password   = password,
                RePassword = repassword
            });

            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_DO_NOT_MATCH));
        }
        public void IsValid_should_return_email_registered_errorcode_when_registered_email_ispassed()
        {
            string email      = "*****@*****.**";
            var    mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(email)).Returns(email);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Email = email
            });

            Assert.IsTrue(validator.ErrorCodes.Contains(ErrorCodes.Registration.ERROR_EMAIL_IS_REGISTERED));
        }
示例#19
0
        public void RegistrationValidator_HasItems_Failed()
        {
            //Mock
            var mock = new Mock <IUserRepository>();

            mock.Setup(x => x.GetItemAsync(It.IsAny <Expression <Func <User, bool> > >())).Returns(Task.FromResult(_user));
            //Arrange
            var manager = new RegistrationValidator(mock.Object, _log);
            //Act
            var list = manager.GetValidatorsResult(_user).Result.ToList();

            //Assert
            Assert.IsTrue(manager.ReturnObject != null);
            Assert.IsTrue(list.Any());
        }
示例#20
0
        public void RegistrationValidator_HasItems_Success()
        {
            //Mock
            var mock = new Mock <IUserRepository>();

            mock.Setup(x => x.GetItemAsync(null)).Returns(Task.FromResult <User>(null));
            //Arrange
            var manager = new RegistrationValidator(mock.Object, _log);
            //Act
            var list = manager.GetValidatorsResult(_user).Result.ToList();

            //Assert
            Assert.IsTrue(manager.ReturnObject != null);
            Assert.IsTrue(list.Any());
            Assert.AreEqual(list.FirstOrDefault()?.Invoke().StatusCode, StatusCode.Success);
        }
        public void IsValid_should_not_return_any_password_errorcode_when_password_isvalid()
        {
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(string.Empty)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            validator.IsValid(new UserDataObject
            {
                Password   = "******",
                RePassword = "******"
            });

            Assert.IsFalse(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_STRENGTH));
            Assert.IsFalse(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_DO_NOT_MATCH));
            Assert.IsFalse(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_PASSWORD_REQUIRED));
            Assert.IsFalse(validator.ErrorCodes.Contains(ErrorCodes.Password.ERROR_REPASSWORD_REQUIRED));
        }
        public void IsValid_should_return_true_when_user_information_isvalid()
        {
            UserDataObject user = new UserDataObject
            {
                FirstName  = "Jeethendra",
                LastName   = "dv",
                Password   = "******",
                RePassword = "******",
                Company    = "IMS Group",
                Phone      = "02041170361",
                Email      = "*****@*****.**"
            };
            var mockobject = new Mock <IUserData>();

            mockobject.Setup(x => x.GetEmailAddress(user.Email)).Returns(string.Empty);
            RegistrationValidator validator = new RegistrationValidator(mockobject.Object);

            Assert.IsTrue(validator.IsValid(user));
            Assert.AreEqual(0, validator.ErrorCodes.Count);
        }
 public void ShouldReturnFalse_WithValue_ND05_BFRT()
 {
     Assert.IsFalse(RegistrationValidator.Validate("ND05 BFRT"));
 }
 public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
 {
     var validator = new RegistrationValidator();
     var result = validator.Validate(this);
     return result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] {item.PropertyName}));
 }
示例#25
0
        static void Main(string[] args)
        {
            //2. Zadatak
            Console.WriteLine("Ovo je 2. zadatak.");
            Dataset          newDataset  = new Dataset("csv.txt");
            Analyzer3rdParty newAnalyzer = new Analyzer3rdParty();
            Adapter          newAdapter  = new Adapter(newAnalyzer);

            double[] averageRows = newAdapter.CalculateAveragePerRow(newDataset);
            Console.WriteLine("Prosjek redaka:");
            for (int i = 0; i < averageRows.Length; i++)
            {
                Console.WriteLine(averageRows[i]);
            }
            double[] averageColumns = newAdapter.CalculateAveragePerColumn(newDataset);
            Console.WriteLine("Prosjek stupaca:");
            for (int i = 0; i < averageColumns.Length; i++)
            {
                Console.WriteLine(averageColumns[i]);
            }

            //3. Zadatak
            Console.WriteLine("Ovo je 3. zadatak.");
            List <IRentable> BooksAndMovies = new List <IRentable>();
            Book             bookExample    = new Book("Ana Karenjina");
            Video            videoExample   = new Video("Rat i mir");

            BooksAndMovies.Add(bookExample);
            BooksAndMovies.Add(videoExample);
            RentingConsolePrinter printerExample = new RentingConsolePrinter();

            printerExample.PrintTotalPrice(BooksAndMovies);
            printerExample.DisplayItems(BooksAndMovies);

            //4. Zadatak
            Console.WriteLine("Ovo je 4. zadatak.");
            HotItem newestBook  = new HotItem(new Book("Stranac"));
            HotItem newestVideo = new HotItem(new Video("Parazit"));

            BooksAndMovies.Add(newestBook);
            BooksAndMovies.Add(newestVideo);
            printerExample.PrintTotalPrice(BooksAndMovies);
            printerExample.DisplayItems(BooksAndMovies);

            /* Cijena liste sa samo prva dva elementa bila je 13.98. Dodavanje jos
             * elementa cijena bi trebala biti 27.96. Međutim, dodani asortiman
             * pripada HitItem-ima pa je cijena veća -> 31.94. Također uz naslove
             * stoji naznaka da artikl pripada Trendingu.*/

            //5. Zadatak
            Console.WriteLine("Ovo je 5. zadatak.");
            List <IRentable> flashSale = new List <IRentable>();

            for (int i = 0; i < 4; i++)
            {
                flashSale.Add(new DiscountedItem(BooksAndMovies[i], 20));
            }
            printerExample.PrintTotalPrice(flashSale);
            printerExample.DisplayItems(flashSale);


            //6. zadatak
            Console.WriteLine("Ovo je 6. zadatak.");
            string            myMail        = "*****@*****.**";
            string            myPass        = "******";
            EmailValidator    mailValidator = new EmailValidator();
            PasswordValidator passValidator = new PasswordValidator(8);

            if (mailValidator.IsValidAddress(myMail))
            {
                Console.WriteLine("Vasa eMail adresa" + myMail + "je ispravna.");
            }
            else
            {
                Console.WriteLine("Vasa eMail adresa " + myMail + " nije ispravna.");
            }
            if (passValidator.IsValidPassword(myPass))
            {
                Console.WriteLine("Vasa lozinka je ispravna.");
            }
            else
            {
                Console.WriteLine("Vasa lozinka nije ispravna.");
            }

            //7. Zadatak
            Console.WriteLine("Ovo je 7. zadatak.");
            //UserEntry.ReadUserFromConsole();
            RegistrationValidator finalValidator = new RegistrationValidator();
            UserEntry             entry          = UserEntry.ReadUserFromConsole();

            while (!(finalValidator.IsUserEntryValid(entry)))
            {
                entry = UserEntry.ReadUserFromConsole();
            }
        }
 public void ShouldReturnFalse_WithValue_MD60XBA()
 {
     Assert.IsFalse(RegistrationValidator.Validate("MD60XBA"));
 }
 public void ShouldReturnFalse_WithValue_B640_BBJ()
 {
     Assert.IsFalse(RegistrationValidator.Validate("B640 BBJ"));
 }
 public void ShouldReturnFalse_WithValue_NDJ64_XYZ()
 {
     Assert.IsFalse(RegistrationValidator.Validate("NDJ64 XYZ"));
 }
 public void ShouldReturnFalse_WithValue_NDR_543R()
 {
     Assert.IsFalse(RegistrationValidator.Validate("NDR 543R"));
 }
示例#30
0
        // Implements Registration of user informations (suivent) / modifying registered user informations (modifier)
        private async void NextModifyBtn_Click(object sender, EventArgs e)
        {
            if (ModifyBtn.Text.Equals("Modifier"))
            {
                // Enable form to user
                formEnabled(true);

                // Change UI
                formColors(Color.WhiteSmoke);

                // Change button text
                ModifyBtn.Text = "Sauvegarder";
            }
            else if (ModifyBtn.Text.Equals("Sauvegarder"))
            {
                /* Perform Modify Logic */
                // Get current
                Adherent currentAdherent = adherentBindingSource.Current as Adherent;

                // Instanciating validators
                RegistrationValidator validator = new RegistrationValidator();
                ValidationResult      results   = await validator.ValidateAsync(currentAdherent);

                // User input data is not valid
                if (!results.IsValid)
                {
                    // Display Errors to user
                    foreach (ValidationFailure failure in results.Errors)
                    {
                        UserErrors.Add(failure.ErrorMessage);
                    }
                    MetroFramework.MetroMessageBox.Show(this,
                                                        string.Join("\n", UserErrors),
                                                        "Données Non Valides",
                                                        MessageBoxButtons.OK,
                                                        MessageBoxIcon.Error);
                    // Clear errors for another use and quit
                    UserErrors.Clear();
                    return;
                }
                // Get adherent from database
                using (ClubDbContext context = new ClubDbContext())
                {
                    var adherentInDB = context.Adherents
                                       .SingleOrDefault(a => a.CodeAdh == currentAdherent.CodeAdh);
                    adherentInDB.Nom        = currentAdherent.Nom;
                    adherentInDB.Prenom     = currentAdherent.Prenom;
                    adherentInDB.Sexe       = currentAdherent.Sexe;
                    adherentInDB.Cin        = currentAdherent.Cin;
                    adherentInDB.Tel        = currentAdherent.Tel;
                    adherentInDB.TelUrgence = currentAdherent.TelUrgence;
                    adherentInDB.Adresse    = currentAdherent.Adresse;
                    adherentInDB.Ville      = currentAdherent.Ville;
                    adherentInDB.CNE        = currentAdherent.CNE;
                    await context.SaveChangesAsync();
                }
                // Refresh dataGrid
                Profile_Load(sender, e);

                // Disable form to user
                formEnabled(false);

                // Change Ui
                formColors(Color.FromArgb(172, 126, 241));

                // Change button text
                ModifyBtn.Text = "Modifier";
            }
        }
 public void ShouldReturnTrue_WithValue_NJ13_LXX()
 {
     Assert.IsTrue(RegistrationValidator.Validate("NJ13 LXX"));
 }