public async Task <CreatedUserViewModel> CreateNew(CreateUserDto dto, IPAddress remoteHost) { var result = await DbContext.Users.AddAsync(new User { Username = dto.Username, Email = dto.Email, PasswordHash = dto.Password, Birthday = dto.BirthDay, CreationDate = DateTime.UtcNow, AccountType = AccountType.User }); await DbContext.SaveChangesAsync(); var session = await InternalAuthenticateUser(result.Entity.Id, remoteHost); return(new CreatedUserViewModel() { User = new UserSummaryViewModel { Id = result.Entity.Id, Username = result.Entity.Username, CreationDateUtc = result.Entity.CreationDate }, Session = UserSessionViewModel.FromUserSession(session) }); }
public ActionResult EndTestSession(UserSessionViewModel user) { var testRepo = new TestRepository(); var result = testRepo.EndTestSession(user.TestSessionID); if (result == TestRepository.DefaultErrorCode) { return(Json("MyTests", JsonRequestBehavior.AllowGet)); } return(Json("TestSessionResult?testSessionId=" + user.TestSessionID + "&userId=" + user.UserID , JsonRequestBehavior.AllowGet)); }
public async Task <UserSessionViewModel> AuthenticateUser(AuthUserDto dto, IPAddress remoteHost) { if (dto is null) { throw new ArgumentNullException(nameof(dto)); } if (remoteHost.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork && remoteHost.AddressFamily != System.Net.Sockets.AddressFamily.InterNetworkV6) { throw new ArgumentOutOfRangeException(nameof(remoteHost), "Invalid IP Address"); } dto.Password = Utilities.StringUtilities.ComputeHash(dto.Password, System.Security.Cryptography.HashAlgorithmName.SHA512); var session = await UserRepository.AuthenticateUser(dto, remoteHost); return(UserSessionViewModel.FromUserSession(session)); }
public void UploadForSeries(Subtitles subtitles, int itemId, int episodeId, HttpPostedFileBase file) { //Save the file string filePath = FileManager.SaveSubtitlesInFolder(file, itemId + "/" + episodeId); UserSessionViewModel loggedInUser = (UserSessionViewModel)HttpContext.Current.Session["Login"]; subtitles.FilePath = filePath; subtitles.FileName = file.FileName; subtitles.Episode = new Episode { Id = episodeId }; subtitles.Uploader = new User { Username = loggedInUser.Username }; //Add the subtitles to the database subtitlesRepo.CreateSubtitlesForSeries(subtitles); }
public Result <UserSessionViewModel> GetUserSessionViewModel(string userId) { SelectSpecification <AppUserEntity, UserSessionViewModel> userSpecification = new SelectSpecification <AppUserEntity, UserSessionViewModel>(); userSpecification.AddFilter(x => x.Id == userId); userSpecification.AddSelect(x => new UserSessionViewModel( x.Id, x.UserName)); UserSessionViewModel userRoles = _userRepository.SingleOrDefault(userSpecification); if (userRoles == null) { _logger.LogWarning($"No user. UserId {userId}"); return(Result.Fail <UserSessionViewModel>("no_user", "No user")); } return(Result.Ok(userRoles)); }