public void CreateThumbnails() { using (var ctx = new DataContext(Configs.Instance.Settings)) { int quantity = 100; var mediaSettings = ctx.Settings.SingleOrDefault(x => x.Name == "mediasettings.defaultimagequality"); if (mediaSettings != null) { Int32.TryParse(mediaSettings.Value, out quantity); } int[] sizes = { 0 }; var pIds = (from pic in ctx.Pictures.AsNoTracking() select pic.Id).ToList(); var productPicIds = (from pmi in ctx.Product_Picture_Mapping.AsNoTracking() select pmi.PictureId).ToList(); var categoryPicIds = (from c in ctx.Categories.AsNoTracking() select c.PictureId).ToList(); pIds.RemoveAll(x => productPicIds.Contains(x)); pIds.RemoveAll(x => categoryPicIds.Contains(x)); int page = 1; int size = 100; List <Picture> pictures = null; List <int> filterIds = null; while ((filterIds = pIds.Skip(((page++) - 1) * size).Take(size).ToList()) != null && filterIds.Count > 0) { pictures = ctx.Pictures.Where(x => filterIds.Contains(x.Id)).ToList(); if (pictures != null) { foreach (var picture in pictures) { Console.WriteLine("Being Create Thumbnail for picture: " + picture.Id.ToString("0000000")); _pictureService.CreateThumbnail(picture, sizes, quantity); try { ctx.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } } }
public void CreateThumbnails() { using (var ctx = new DataContext(Configs.Instance.Settings)) { int quantity = 1000; var mediaSettings = ctx.Settings.SingleOrDefault(x => x.Name == "mediasettings.defaultimagequality"); if (mediaSettings != null) { Int32.TryParse(mediaSettings.Value, out quantity); } int[] sizes = { 0, 75, 100, 210, 415, 450, 550 }; var pIds = (from p in ctx.Products.AsNoTracking() join pim in ctx.Product_Picture_Mapping on p.Id equals pim.ProductId where p.Published && !p.Deleted orderby p.CreatedOnUtc descending select pim.PictureId).ToList(); int page = 1; int size = 100; List <Picture> pictures = null; List <int> filterIds = null; while ((filterIds = pIds.Skip(((page++) - 1) * size).Take(size).ToList()) != null && filterIds.Count > 0) { pictures = ctx.Pictures.Where(x => filterIds.Contains(x.Id)).ToList(); if (pictures != null) { foreach (var picture in pictures) { Console.WriteLine("Being Create Thumbnail for picture: " + picture.Id.ToString("0000000")); _pictureService.CreateThumbnail(picture, sizes, quantity); try { ctx.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } } }