public ActionResult UploadPart1() { // Check we have a valid user var user = _authRepository.GetUserAccount(User.Identity.GetUserId()); if (user == null) { HttpContext.GetOwinContext().Authentication.SignOut(); return(RedirectToAction("Index", "Home")); } // Check if the user is allowed to upload if (!_authUserCharacterRepository.UserCanUpload(user.Email)) { return(RedirectToAction("CantUpload")); } var userCharacters = _authUserCharacterRepository.GetUploaders(user.Email); // Allow site admins to upload parses as any user var model = new UploadSessionVM() { Characters = userCharacters, Public = true, SessionDate = DateTime.Now }; return(View(model)); }
public ActionResult UploadPart2(UploadSessionVM model) { if (model == null) { return(RedirectToAction("Index", "Home")); } if (model.Name == null) { return(RedirectToAction("Index", "Home")); } return(View("UploadPart2", model)); }
public ActionResult UploadPart1(UploadSessionVM model) { // Check we have a valid user var user = _authRepository.GetUserAccount(User.Identity.GetUserId()); if (user == null) { HttpContext.GetOwinContext().Authentication.SignOut(); return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { // Generate an upload token and make sure it's not in use while (true) { model.UploadToken = AuthEncryption.RandomFilename(); _logger.Debug(string.Format("Checking to see if session token {0} has been used before", model.UploadToken)); if (!_sessionLogRepository.SessionLogTokenExists(model.UploadToken)) { _logger.Debug("Token wasn't found, so inserting a new session with it now."); break; } _logger.Debug(string.Format("Found an existing log with the token {0} - generating a new one.", model.UploadToken)); } TimeSpan utcOffset = TimeZoneInfo.FindSystemTimeZoneById(user.TimeZone).GetUtcOffset(DateTime.UtcNow); var result = _sessionRepository.CreateSession(User.Identity.GetUserId(), new Session() { AuthUserCharacterId = model.UploadCharacterId, Date = model.SessionDate.Subtract(utcOffset), Name = model.Name, EncountersPublic = model.Public }); if (result.Success) { int sessionId = int.Parse(result.Message); model.UploadedSessionId = sessionId; // Add this session to the SessionLog table in case other guild members or this user choose to upload additional logs to the session var guildId = _authUserCharacterRepository.GetGuildIdForCharacter(model.UploadCharacterId); if (guildId > 0) { var newSessionLog = new SessionLog() { AuthUserCharacterId = model.UploadCharacterId, Filename = model.UploadToken + ".zip", Token = model.UploadToken, GuildId = guildId, LogSize = 0, SessionId = sessionId, TotalPlayedTime = 0 }; var returnValue = _sessionLogRepository.Create(newSessionLog); } return(UploadPart2(model)); } ModelState.AddModelError("", result.Message); } //var user = _authRepository.GetUserAccount(User.Identity.GetUserId()); var userCharacters = _authUserCharacterRepository.GetUploaders(user.Email); model.Characters = userCharacters; return(View(model)); }