sa/Stars Assistant/Program.cs

122 lines
3.2 KiB
C#

using System;
using Avalonia;
using Microsoft.EntityFrameworkCore;
using CsvHelper.Configuration;
using CsvHelper;
using StarsAssistant.Model;
using System.Globalization;
namespace StarsAssistant;
sealed class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args)
{
// __createTestData();
BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
public static void __createTestData ()
{
using var db = new StarsDatabase("stars.sqlite");
db.Database.EnsureDeleted();
db.Database.EnsureCreated();
// Note: This sample requires the database to be created before running.
Console.WriteLine($"Database path: {db.DbPath}.");
var config = CsvConfiguration.FromAttributes<Planet>(CultureInfo.InvariantCulture);
config.Delimiter = "\t";
config.Escape = '\0';
config.MissingFieldFound = null;
using (var reader = new StreamReader("/home/torben/goingth/GOINGTH.p1", System.Text.Encoding.Latin1))
using (var csv = new CsvReader(reader, config))
{
List<CSV.Planet> records = csv.GetRecords<CSV.Planet>().ToList();
foreach (CSV.Planet csvp in records)
{
Planet p = new Planet{ Name = csvp.Name };
csvp.UpdateDbPlanet(p);
db.Add(p);
}
db.SaveChanges();
}
}
}
/*
using Microsoft.EntityFrameworkCore;
using CsvHelper.Configuration;
using CsvHelper;
using StarsAssistant.model;
using var db = new StarsDatabase("stars.sqlite");
db.Database.EnsureDeleted();
db.Database.EnsureCreated();
// Note: This sample requires the database to be created before running.
Console.WriteLine($"Database path: {db.DbPath}.");
var config = CsvConfiguration.FromAttributes<Planet>(CultureInfo.InvariantCulture);
config.Delimiter = "\t";
config.Escape = '\0';
config.MissingFieldFound = null;
using (var reader = new StreamReader("/home/torben/goingth/GOINGTH.p1", Encoding.Latin1))
using (var csv = new CsvReader(reader, config))
{
List<Planet> records = csv.GetRecords<Planet>().ToList();
foreach (Planet p in records)
{
db.Add(p);
}
db.SaveChanges();
}
*/
/*
// Create
Console.WriteLine("Inserting a new blog");
db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
db.SaveChanges();
// Read
Console.WriteLine("Querying for a blog");
var blog = db.Blogs
.OrderBy(b => b.BlogId)
.First();
// Update
Console.WriteLine("Updating the blog and adding a post");
blog.Url = "https://devblogs.microsoft.com/dotnet";
blog.Posts.Add(
new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" });
db.SaveChanges();
// Delete
// Console.WriteLine("Delete the blog");
// db.Remove(blog);
// db.SaveChanges();
*/