public async Task <ActionResult> Signup(RegisterViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var referer = Session["ref"] as string ?? model.Referer; var res = await AppUserManager.CreateUser(model.Login, model.Email, model.Password, referer); if (!res.Success) { AddErrors(res.Errors); return(View(model)); } return(RedirectToAction(nameof(HomeController.Index), ControllerHelper.GetControllerName(nameof(HomeController)))); }
public async void Initialize() { _unitOfWork.ApplicationDataContext.Database.EnsureCreated(); // Look for any users. if (_unitOfWork.ApplicationDataContext.AppUsers.Any()) { return; // DB has been seeded } var userDict = new Dictionary <int, AppUser>(); var dayDict = new Dictionary <int, DayPunch>(); var weekDict = new Dictionary <int, WeekPunch>(); var monthDict = new Dictionary <int, MonthPunch>(); var yearDict = new Dictionary <int, YearPunch>(); var stateDict = new Dictionary <StatusAdminDtoStatus, PunchState>(); await _appUserManager.CreateRole(JwtClaims.ApiAccess); await _appUserManager.CreateRole(JwtClaims.ApiAccessPower); await _appUserManager.CreateRole(JwtClaims.ApiAccessAdmin); // Create PunchStates foreach (var val in Enum.GetValues(typeof(StatusAdminDtoStatus))) { string name = Enum.GetName(typeof(StatusAdminDtoStatus), val); var punchState = new PunchState { State = name }; stateDict.Add((StatusAdminDtoStatus)val, punchState); _unitOfWork.PunchStates.Add(punchState); } // create some users var users = new[] { new Controllers.RegisterDto { Firstname = "Hans", Name = "Tschan", Email = "*****@*****.**", Username = "******" }, new Controllers.RegisterDto { Firstname = "Hanspeter", Name = "Gysin", Email = "*****@*****.**", Username = "******" }, new Controllers.RegisterDto { Firstname = "Matthias", Name = "Höhner", Email = "*****@*****.**", Username = "******" }, new Controllers.RegisterDto { Firstname = "Alexander", Name = "Hilty", Email = "*****@*****.**", Username = "******" }, new Controllers.RegisterDto { Firstname = "Angelo", Name = "Spatharis", Email = "*****@*****.**", Username = "******" }, }; for (var i = 0; i < users.Length; i++) { var userIdentity = _mapper.Map <AppUser>(users[i]); await _appUserManager.CreateUser(userIdentity, "axil311", new List <string> { JwtClaims.ApiAccess }); userDict.Add(i, userIdentity); } var powerUser = new Controllers.RegisterDto { Firstname = "Power", Name = "Timepuncher", Email = "*****@*****.**" }; var powerUserIdentity = _mapper.Map <AppUser>(powerUser); await _appUserManager.CreateUser(powerUserIdentity, "axil311", new List <string> { JwtClaims.ApiAccess, JwtClaims.ApiAccessPower }); var adminUser = new Controllers.RegisterDto { Firstname = "Admin", Name = "Timepuncher", Email = "*****@*****.**" }; var adminUserIdentity = _mapper.Map <AppUser>(adminUser); await _appUserManager.CreateUser(adminUserIdentity, "axil311", new List <string> { JwtClaims.ApiAccessAdmin }); // create the punch dimensions for (var i = 1; i < 32; i++) { var d = new DayPunch { Day = i }; dayDict.Add(i, d); _unitOfWork.DayPunches.Add(d); } for (var i = 1; i < 54; i++) { var w = new WeekPunch { Week = i }; weekDict.Add(i, w); _unitOfWork.WeekPunches.Add(w); } for (var i = 1; i < 13; i++) { var m = new MonthPunch { Month = i }; monthDict.Add(i, m); _unitOfWork.MonthPunches.Add(m); } for (var i = START_YEAR; i < 2035; i++) { var y = new YearPunch { Year = i }; yearDict.Add(i, y); _unitOfWork.YearPunches.Add(y); } // create some punches for every user for (var date = new DateTime(START_YEAR, 1, 1); date <= DateTime.Now - TimeSpan.FromDays(1); date += TimeSpan.FromDays(1)) { if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday) { continue; } var dateTimePrev = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0); for (var p = 1; p < 6; p++) // day punches { if (p > 4) // todo: excess punches { continue; } foreach (var u in userDict) { var timeInfo = GetPunchTime(dateTimePrev, date.Year, date.Month, date.Day, p); var punch = new Punch { Created = DateTime.Now, Updated = DateTime.MinValue, PunchTime = timeInfo.dt, TimeDec = timeInfo.dtDec, Direction = timeInfo.direction, DayPunch = dayDict[timeInfo.dt.Day], WeekPunch = weekDict[_timeService.GetWeekNumber(timeInfo.dt)], MonthPunch = monthDict[timeInfo.dt.Month], YearPunch = yearDict[timeInfo.dt.Year], User = u.Value }; dateTimePrev = timeInfo.dt; _unitOfWork.Punches.Add(punch); } } } _unitOfWork.Complete(); }