示例#1
0
 public IActionResult Register(RegValidator data)
 {
     if (UserExists(data.Email))
     {
         ModelState.AddModelError("Email", "Email is in use");
     }
     if (ModelState.IsValid)
     {
         User user = new User {
             Firstname = data.Firstname,
             Lastname  = data.Lastname,
             Email     = data.Email,
             Password  = data.Password,
         };
         PasswordHasher <User> Hasher = new PasswordHasher <User>();
         user.Password = Hasher.HashPassword(user, user.Password);
         _context.users.Add(user);
         _context.SaveChanges();
         User user1 = _context.users.SingleOrDefault(u => u.Email == data.Email);
         HttpContext.Session.SetInt32("ID", user1.UserId);
         return(RedirectToAction("Home"));
     }
     else
     {
         return(View("Index"));
     }
 }
示例#2
0
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();

            var failures = new List <ValidationFailure>();

            expectedRow = new RegistrationCsvRecordResponse
            {
                RowNum          = 1,
                Uln             = 123,
                FirstName       = "F name",
                LastName        = "L name",
                DateOfBirth     = new DateTime(2000, 1, 1),
                ProviderUkprn   = 1234,
                CoreCode        = "989",
                AcademicYear    = 2020,
                SpecialismCodes = new List <string> {
                    "spl1"
                }
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <RegistrationCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseRow(Arg.Any <RegistrationCsvRecordRequest>(), Arg.Any <int>()).Returns(expectedRow);
        }
示例#3
0
 public IActionResult Register(RegValidator model)
 {
     if (ModelState.IsValid)
     {
         List <User> users    = _context.Users.ToList();
         User        existing = users.SingleOrDefault(u => u.username == model.username);
         if (existing == null)
         {
             PasswordHasher <User> hasher = new PasswordHasher <User>();
             User newUser = new User
             {
                 first_name = model.first_name,
                 last_name  = model.last_name,
                 username   = model.username,
                 wallet     = 1000
             };
             newUser.password = hasher.HashPassword(newUser, model.password);
             _context.Add(newUser);
             _context.SaveChanges();
             users = _context.Users.ToList();
             User justCreated = users.Single(u => u.username == newUser.username);
             HttpContext.Session.SetInt32("id", justCreated.id);
             HttpContext.Session.SetString("name", justCreated.first_name);
             return(RedirectToAction("Main"));
         }
         ModelState.AddModelError("username", "This username is already in use.");
     }
     return(View("Index"));
 }
示例#4
0
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();
            var errorMessage = string.Format(ValidationMessages.MustHaveDigitsWithLength, ResultFluentHeader.CoreCode, 8);
            var failures     = new List <ValidationFailure>
            {
                new ValidationFailure(ResultFileHeader.CoreCode, errorMessage),
            };

            expectedRow = new ResultCsvRecordResponse
            {
                Uln              = 123,
                RowNum           = 1,
                ValidationErrors = new List <BulkProcessValidationError>
                {
                    new BulkProcessValidationError {
                        RowNum = "1", Uln = "1234567890", ErrorMessage = errorMessage
                    },
                }
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <ResultCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseErrorObject(Arg.Any <int>(), Arg.Any <ResultCsvRecordRequest>(), regCsvResponse).Returns(expectedRow);
        }
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();
            var failures = new List <ValidationFailure>
            {
                new ValidationFailure(ResultFileHeader.Uln, string.Format(ValidationMessages.Required, ResultFluentHeader.Uln)),
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <ResultCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseErrorObject(Arg.Any <int>(), Arg.Any <ResultCsvRecordRequest>(), regCsvResponse).ReturnsNull();
        }
示例#6
0
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();
            var failures = new List <ValidationFailure>
            {
                new ValidationFailure("ULN", "Uln required"),
                new ValidationFailure("First name", "First name required"),
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <RegistrationCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseErrorObject(Arg.Any <int>(), Arg.Any <RegistrationCsvRecordRequest>(), regCsvResponse).ReturnsNull();
        }
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();

            var failures = new List <ValidationFailure>();

            expectedRow = new ResultCsvRecordResponse
            {
                RowNum               = 1,
                Uln                  = 1234567890,
                CoreCode             = "12345678",
                CoreAssessmentSeries = "Summer 2021",
                CoreGrade            = "A",
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <ResultCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseRow(Arg.Any <ResultCsvRecordRequest>(), Arg.Any <int>()).Returns(expectedRow);
        }
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();
            var failures = new List <ValidationFailure>
            {
                new ValidationFailure("First name", "First name required"),
            };

            expectedRow = new RegistrationCsvRecordResponse
            {
                Uln              = 123,
                RowNum           = 1,
                ValidationErrors = new List <BulkProcessValidationError>
                {
                    new BulkProcessValidationError {
                        RowNum = "1", Uln = "123", ErrorMessage = "First name required"
                    }
                }
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <RegistrationCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseErrorObject(Arg.Any <int>(), Arg.Any <RegistrationCsvRecordRequest>(), regCsvResponse).Returns(expectedRow);
        }
        public override void Given()
        {
            InputFileContent = GetInputFilecontent();
            var failures = new List <ValidationFailure>
            {
                new ValidationFailure("Core code", "Core code must have 8 digits only"),
            };

            expectedRow = new AssessmentCsvRecordResponse
            {
                Uln              = 123,
                RowNum           = 1,
                ValidationErrors = new List <BulkProcessValidationError>
                {
                    new BulkProcessValidationError {
                        RowNum = "1", Uln = "123", ErrorMessage = "Core code must have 8 digits only"
                    }
                }
            };
            var regCsvResponse = new ValidationResult(failures);

            RegValidator.ValidateAsync(Arg.Any <AssessmentCsvRecordRequest>()).Returns(regCsvResponse);
            DataParser.ParseErrorObject(Arg.Any <int>(), Arg.Any <AssessmentCsvRecordRequest>(), regCsvResponse).Returns(expectedRow);
        }
示例#10
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //----------------------------------------------------
            IConfigService configService     = new XMLConfigService("Config.xml");
            IMessenger     messenger_sms     = new SmsMessenger();
            IMessenger     messenger_email   = new EmailMessenger();
            IPassHasher    passHasher        = new SHA256Hasher();
            IKeyGenerator  smallKeyGenerator = new SmallKeyGenerator();
            IKeyGenerator  bigKeyGenerator   = new BigKeyGenerator();
            IRegValidator  regValidator      = new RegValidator();
            IUOWFactory    UOWFactory        = new EFUOWFactory(configService.ConnectionString);
            IGetUserDTO    getUserDTO        = new GetUserDTO();

            //----------------------------------------------------
            IClaimService claimService = new ClaimService(UOWFactory);

            //----------------------------------------------------
            services.AddSingleton <IConfigService, IConfigService>(
                serviceProvider =>
            {
                return(configService);
            }
                );
            //----------------------------------------------------
            services.AddSingleton <IGetUserDTO, IGetUserDTO>(
                serviceProvider =>
            {
                return(getUserDTO);
            }
                );
            //----------------------------------------------------
            services.AddSingleton <IUOWFactory, IUOWFactory>(
                serviceProvider =>
            {
                return(UOWFactory);
            }
                );

            services.AddSingleton <IClaimService, ClaimService>();
            //-----------------------------------------------------

            services.AddSingleton <IUserService, UserAuthService>(
                serviceProvider =>
            {
                return(new UserAuthService(
                           UOWFactory,
                           new AuthKeyService(smallKeyGenerator, messenger_sms),
                           new AuthKeyService(smallKeyGenerator, messenger_email),
                           passHasher,
                           regValidator,
                           claimService,
                           bigKeyGenerator,
                           getUserDTO
                           ));
            }
                );

            services.AddSingleton <IProfileService, ProfileService>(
                serviceProvider =>
            {
                IConfirmService emailCS = new ConfirmService(
                    new ConfirmKeyService(bigKeyGenerator, messenger_email)
                    );
                IConfirmService phoneCS = new ConfirmService(
                    new ConfirmKeyService(smallKeyGenerator, messenger_sms)
                    );
                return(new ProfileService(
                           UOWFactory,
                           regValidator,
                           emailCS,
                           phoneCS,
                           passHasher,
                           claimService,
                           getUserDTO
                           ));
            }
                );

            services.AddSingleton <IRestorePasswordService, RestorePasswordService>(
                serviceProvider =>
            {
                var emaiCKS  = new ConfirmKeyService(bigKeyGenerator, messenger_email);
                var phoneCKS = new ConfirmKeyService(smallKeyGenerator, messenger_sms);
                return(new RestorePasswordService(UOWFactory, emaiCKS, phoneCKS, new RegValidator(), passHasher));
            }
                );
            //---------Forum Services--------------------------------
            IGroupRules     groupRules     = new GroupRules();
            ISectionRules   sectionRules   = new SectionRules(groupRules);
            IThemeRules     themeRules     = new ThemeRules(sectionRules);
            IMessageRules   messageRules   = new MessageRules(themeRules, sectionRules);
            IDTOHelper      dtoHelper      = new DTOHelper();
            IForumDTOHelper forumDTOHelper = new ForumDTOHelper(messageRules, themeRules, sectionRules, groupRules, dtoHelper);

            services.AddSingleton <IGroupService, GroupService>(
                serviceProvider =>
            {
                return(new GroupService(groupRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <ISectionService, SectionService>(
                serviceProvider =>
            {
                return(new SectionService(sectionRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IThemeService, ThemeService>(
                serviceProvider =>
            {
                return(new ThemeService(themeRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IMessageService, MessageService>(
                serviceProvider =>
            {
                return(new MessageService(messageRules, getUserDTO, UOWFactory, forumDTOHelper));
            }
                );

            services.AddSingleton <IForumService, ForumService>(
                serviceProvider =>
            {
                return(new ForumService(getUserDTO, UOWFactory, forumDTOHelper, groupRules));
            }
                );
            //--------------------Page Services--------------------
            IPageRules pageRules = new PageRules();
            INoteRules noteRules = new NoteRules();

            services.AddSingleton <IPageService, PageService>(
                serviceProvider =>
            {
                return(new PageService(pageRules, UOWFactory, getUserDTO, dtoHelper));
            }
                );

            services.AddSingleton <IBlogService, BlogService>(
                serviceProvider =>
            {
                return(new BlogService(noteRules, UOWFactory, getUserDTO, dtoHelper));
            }
                );

            //-------------------------------------------------------
            services.AddSingleton <IImageService, ImageService>(
                serviceProvider =>
            {
                return(new ImageService(UOWFactory, getUserDTO));
            }
                );
            //-------------------------------------------
            services.AddSingleton <IAdminService, AdminService>(
                serviceProvider =>
            {
                return(new AdminService(getUserDTO, UOWFactory));
            }
                );

            services.Configure <FormOptions>(x =>
            {
                x.ValueCountLimit          = int.MaxValue;
                x.MemoryBufferThreshold    = int.MaxValue;
                x.ValueLengthLimit         = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue; // In case of multipart
            });
            //------------------------------------------------------
            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.LoginPath  = new Microsoft.AspNetCore.Http.PathString("/Account/Login");
                options.LogoutPath = new Microsoft.AspNetCore.Http.PathString("/Account/Logout");
                options.Events.OnValidatePrincipal = PrincipalValidator.ValidateAsync;
            });

            services.AddMvc();
        }