public GameModel(Game game) { this.AddedBy = "ZVGQ"; // TODO: add property to denote who added it this.AddedOn = game.AddedOn.ToShortDateString(); this.Id = game.GameId; this.ReleaseYear = game.ReleaseYear; this.Title = game.Title; this.TitleMedia = "/Content/images/defaultgamepicture.png"; this.UpdatedBy = "ZVGQ"; this.UpdatedOn = game.UpdatedOn.ToShortDateString(); this.ActionUrl = this.GetActionUrl(); }
public Game AddGame(Game newGame, int[] platforms, int[] genres, int userId, byte[] newTitleImageData) { Game game = context.Games.Create(); try { if (game != null) { game.Description = newGame.Description; game.Genres = genreRepo.GetGenres(genres); game.Platforms = platformRepo.GetPlatforms(platforms); game.RegionId = newGame.RegionId; game.ReleaseYear = newGame.ReleaseYear; game.ShortName = GameRepository.CreateShortNameFromTitle(newGame.Title); game.Title = newGame.Title; game.UpdatedById = userId; game.UpdatedOn = DateTime.UtcNow; if (newTitleImageData != null && newTitleImageData.Length > 0) { game.TitleMediaItem = mediaRepo.AddMediaItem(newTitleImageData, "title.png", game.ShortName); } context.Games.Add(game); context.SaveChanges(); } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { // TODO: Handle Exception foreach (var eve in ex.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return game; }
public GameViewModel(Game sourceItem) { this.Id = sourceItem.GameId; this.Title = sourceItem.Title; this.TitleMediaUrl = (sourceItem.TitleMediaItem != null) ? sourceItem.TitleMediaItem.FileUrl : ""; }
private Game MigrateTitleImage(Game game, DirectoryInfo gameDir, ZanyContext ctx) { FileInfo titleFile = null; List<FileInfo> files = gameDir.GetFiles().ToList(); titleFile = files.Where(x => x.Name.Contains("title")) .FirstOrDefault(); if (titleFile == null) { titleFile = files.Where(x => x.Name.Contains("logo")) .FirstOrDefault(); } CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer imageContainer = blobClient.GetContainerReference("media"); imageContainer.CreateIfNotExists(); BlobContainerPermissions permissions = new BlobContainerPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Container; imageContainer.SetPermissions(permissions); string blockBlobRef = game.ShortName + "/" + "title" + titleFile.Extension; CloudBlockBlob blockBlob = imageContainer.GetBlockBlobReference(blockBlobRef); using (var fileStream = System.IO.File.OpenRead(titleFile.FullName)) { blockBlob.UploadFromStream(fileStream); } this.IntializeGameData(game, ctx); MediaItem gameTitleItem = new MediaItem(); gameTitleItem.MediaType = MediaTypes.Image; gameTitleItem.FileUrl = blockBlob.Uri.ToString(); game.TitleMediaItem = ctx.MediaItems.Add(gameTitleItem); return game; }
private HomeViewModel MigrateGames() { HomeViewModel model = new HomeViewModel(); model.successfulTransfers = new List<Game>(); model.failedTransfers = new List<Game>(); Game currentGame = null; using (ZanyContext ctx = new ZanyContext()) { foreach (var item in gameDirectories) { currentGame = new Game(); currentGame.Title = item.Name; currentGame.ShortName = item.Name; try { currentGame = this.MigrateTitleImage(currentGame, item, ctx); ctx.Games.Add(currentGame); ctx.SaveChanges(); model.successfulTransfers.Add(currentGame); } catch (Exception ex) { model.failedTransfers.Add(currentGame); } } ctx.SaveChanges(); } return model; }
private void MigrateGame(string sourceDir, ZanyContext ctx) { DirectoryInfo gameDirectory = new DirectoryInfo(sourceDir); // create game entity Game game = new Game(); game.Title = gameDirectory.Name; game.ShortName = gameDirectory.Name; game = this.IntializeGameData(game, ctx); // get file FileInfo fileInfo = this.GetTitleFile(gameDirectory); // add title media item string titleMediaUri = this.UploadMediaFile(fileInfo, "title", game.Title); MediaItem mediaItem = new MediaItem(); mediaItem.MediaType = MediaTypes.Image; mediaItem.FileUrl = titleMediaUri; // get quotes List<Quote> gameQuotes = this.GetGameQuotes(gameDirectory, fileInfo, game.Title); // add entities game.TitleMediaItem = ctx.MediaItems.Add(mediaItem); foreach (var quote in gameQuotes) { game.Quotes.Add(quote); } ctx.Games.Add(game); // save context ctx.SaveChanges(); }
private Game IntializeGameData(Game game, ZanyContext ctx) { if (_region == null) { _region = ctx.Regions.FirstOrDefault(); } game.Region = _region; return game; }
public Game UpdateGame(Game game, int[] platforms, int[] genres, int userId, byte[] newTitleImage) { Game updateGame = this.GetGame(game.GameId); try { if (updateGame != null) { updateGame.Description = game.Description; updateGame.RegionId = game.RegionId; updateGame.ReleaseYear = game.ReleaseYear; updateGame.ShortName = GameRepository.CreateShortNameFromTitle(game.Title); updateGame.Title = game.Title; updateGame.UpdatedById = userId; updateGame.UpdatedOn = DateTime.UtcNow; updateGame.Genres.Clear(); foreach (var g in genreRepo.GetGenres(genres)) { updateGame.Genres.Add(g); } updateGame.Platforms.Clear(); foreach (var p in platformRepo.GetPlatforms(platforms)) { updateGame.Platforms.Add(p); } if (newTitleImage != null && newTitleImage.Length > 0) { if (game.TitleMediaItemId.HasValue) { updateGame.TitleMediaItem = mediaRepo.UpdateMediaItem(game.TitleMediaItemId.Value, newTitleImage); } else { updateGame.TitleMediaItem = mediaRepo.AddMediaItem(newTitleImage, "title.png", game.ShortName); } } context.SaveChanges(); } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { // TODO: Handle Exception foreach (var eve in ex.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return updateGame; }