public async Task <ActionResult> AddGame() { var temporaryFiles = new List <GameManagerFile>(); var formModel = await Request.StreamFile(_configuration["TemporaryPath"], temporaryFiles); GameUpload gameUpload = new GameUpload(); var bindingSuccessful = await TryUpdateModelAsync(gameUpload, prefix : "", valueProvider : formModel); if (!bindingSuccessful) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } } if (gameUpload.Cover != null && gameUpload.Cover != "") { var file = new GameManagerFile() { Name = "cover.png", Path = Path.GetTempFileName() }; var splitted = gameUpload.Cover.Split(","); if (splitted.Length > 1) { System.IO.File.WriteAllBytes(file.Path, Convert.FromBase64String(splitted[1])); temporaryFiles.Add(file); } } // Add game to the database var node = new GameManagerNode() { Name = gameUpload.Name, SortName = gameUpload.SortName, Description = gameUpload.Description, ReleaseDate = gameUpload.ReleaseDate, Players = gameUpload.Players, Developer = gameUpload.Developer, Publisher = gameUpload.Publisher, Type = GameManagerNodeType.Game, Files = temporaryFiles }; _gameManagerNodeRepository.Create(node); _storage.Save(); _gameManagerService.AddGame(node); Response.StatusCode = (int)HttpStatusCode.OK; return(Json("Game added!")); }
private GameManagerFile CreateCueSheet(FileInfo sourceFileInfo, GameManagerFile sourceFile) { var managerFile = new GameManagerFile(); var sb = new StringBuilder(); sb.AppendLine($"FILE \"{sourceFileInfo.Name}\" BINARY"); sb.AppendLine(" TRACK 01 MODE2/2352"); sb.AppendLine(" INDEX 01 00:00:00"); var cueSheetFileName = Path.ChangeExtension(sourceFile.Name, ".cue"); File.WriteAllText( Path.Combine( sourceFileInfo.Directory.FullName, cueSheetFileName), sb.ToString()); managerFile.Name = cueSheetFileName; managerFile.Path = sourceFile.Path; managerFile.NodeId = sourceFile.NodeId; return(managerFile); }