public JsonResult Upload(HttpPostedFileBase file) { try { var filename = Path.GetFileName(file.FileName); if (filename == null) { throw new NotSupportedException(); } var randomFilename = Path.GetRandomFileName(); string title; if (_replayService.IsAlreadyUploaded(file.InputStream, out title)) { return(Json(new { success = false, message = string.Format("Replay is already uploaded with title - '{0}'.", title) })); } var replay = _replayService.SaveReplay(file.InputStream, randomFilename); var path = Path.Combine(Server.MapPath("~/App_Data/replays"), randomFilename); file.SaveAs(path); string replayToken = string.Empty; if (HttpContext.Session != null) { var hashedReplaySeed = PasswordHasher.Hash(replay.Seed); HttpContext.Session["replay" + replay.Id] = replayToken = hashedReplaySeed.Hash; } return(new JsonResult { Data = new { replayId = replay.Id, success = true, token = replayToken } }); } catch (Exception ex) { return(new JsonResult { Data = new { success = false, message = string.Format("Could not upload the replay - {0}", ex.Message) } }); } }
public void ReplaySaveTest01() { var replayBytes = ReplayParserTestResources.Steel_Balalaika_vs_We_suck_at_wargame_3vs3; _service.SaveReplay(new MemoryStream(replayBytes), Guid.NewGuid().ToString()); }