public static void ImportCompanyLogos(MarechaiContext context) { if (!Directory.Exists("wwwroot/assets/incoming")) { return; } foreach (string file in Directory.GetFiles("wwwroot/assets/incoming", "company_*.svg", SearchOption.TopDirectoryOnly)) { string filename = Path.GetFileNameWithoutExtension(file); if (!filename.StartsWith("company_", StringComparison.InvariantCulture)) { continue; } string[] pieces = filename.Split('_'); if (pieces.Length != 3) { continue; } var guid = Guid.NewGuid(); if (!int.TryParse(pieces[1], out int companyId)) { continue; } if (!int.TryParse(pieces[2], out int year)) { continue; } try { context.CompanyLogos.Add(new CompanyLogo { CompanyId = companyId, Year = year, Guid = guid }); context.SaveChanges(); } catch (Exception) { continue; } SKSvg svg = null; foreach (int minSize in new[] { 256, 32 }) { foreach (string format in new[] { "png", "webp" }) { string outDir = minSize == 32 ? Path.Combine("wwwroot/assets/logos/thumbs", format) : Path.Combine("wwwroot/assets/logos", format); if (!Directory.Exists(outDir)) { Directory.CreateDirectory(outDir); } SKEncodedImageFormat skFormat; switch (format) { case "webp": skFormat = SKEncodedImageFormat.Webp; break; default: skFormat = SKEncodedImageFormat.Png; break; } foreach (int multiplier in new[] { 1, 2, 3 }) { string outPath = Path.Combine(outDir, $"{multiplier}x"); if (!Directory.Exists(outPath)) { Directory.CreateDirectory(outPath); } string rendered = Path.Combine(outPath, $"{guid}.{format}"); if (File.Exists(rendered)) { continue; } Console.WriteLine("Rendering {0}", rendered); if (svg == null) { svg = new SKSvg(); svg.Load(file); } var outFs = new FileStream(rendered, FileMode.CreateNew); RenderSvg(svg, outFs, skFormat, minSize, multiplier); outFs.Close(); } } } File.Move(file, $"wwwroot/assets/logos/{guid}.svg"); } }
public static void Seed(MarechaiContext context, UserManager <ApplicationUser> userManager, RoleManager <ApplicationRole> roleManager, IConfiguration configuration) { DateTime start, end; start = DateTime.Now; Console.WriteLine("\u001b[31;1mImporting ISO-639 codes...\u001b[0m"); try { Iso639.Seed(context); } catch (Exception e) { Console.WriteLine("Exception {0} importing ISO-639 codes, saving changes and continuing...", e); } context.SaveChanges(); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mImporting ISO-4217 codes...\u001b[0m"); try { Iso4217.Seed(context); } catch (Exception e) { Console.WriteLine("Exception {0} importing ISO-4217 codes, saving changes and continuing...", e); } context.SaveChanges(); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mSeeding document roles...\u001b[0m"); DocumentRoles.Seed(context); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mSeeding licenses...\u001b[0m"); License.Seed(context); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mSeeding application roles...\u001b[0m"); Roles.Seed(roleManager, configuration); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mSeeding application users...\u001b[0m"); Users.Seed(userManager, roleManager); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); start = DateTime.Now; Console.WriteLine("\u001b[31;1mSaving changes...\u001b[0m"); context.SaveChanges(); end = DateTime.Now; Console.WriteLine("\u001b[31;1mTook \u001b[32;1m{0} seconds\u001b[31;1m...\u001b[0m", (end - start).TotalSeconds); }