diff --git a/Estara.Core/Contracts/Services/ISampleDataService.cs b/Estara.Core/Contracts/Services/ISampleDataService.cs deleted file mode 100644 index 0c13ace..0000000 --- a/Estara.Core/Contracts/Services/ISampleDataService.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Estara.Core.Models; - -namespace Estara.Core.Contracts.Services; - -// Remove this class once your pages/features are using your data. -public interface ISampleDataService -{ - Task> GetContentGridDataAsync(); - - Task> GetGridDataAsync(); - - Task> GetListDetailsDataAsync(); -} diff --git a/Estara.Core/Models/SampleCompany.cs b/Estara.Core/Models/SampleCompany.cs deleted file mode 100644 index bfa6b70..0000000 --- a/Estara.Core/Models/SampleCompany.cs +++ /dev/null @@ -1,60 +0,0 @@ -namespace Estara.Core.Models; - -// Model for the SampleDataService. Replace with your own model. -public class SampleCompany -{ - public string CompanyID - { - get; set; - } - - public string CompanyName - { - get; set; - } - - public string ContactName - { - get; set; - } - - public string ContactTitle - { - get; set; - } - - public string Address - { - get; set; - } - - public string City - { - get; set; - } - - public string PostalCode - { - get; set; - } - - public string Country - { - get; set; - } - - public string Phone - { - get; set; - } - - public string Fax - { - get; set; - } - - public ICollection Orders - { - get; set; - } -} diff --git a/Estara.Core/Models/SampleOrder.cs b/Estara.Core/Models/SampleOrder.cs deleted file mode 100644 index 0668e74..0000000 --- a/Estara.Core/Models/SampleOrder.cs +++ /dev/null @@ -1,81 +0,0 @@ -namespace Estara.Core.Models; - -// Model for the SampleDataService. Replace with your own model. -public class SampleOrder -{ - public long OrderID - { - get; set; - } - - public DateTime OrderDate - { - get; set; - } - - public DateTime RequiredDate - { - get; set; - } - - public DateTime ShippedDate - { - get; set; - } - - public string ShipperName - { - get; set; - } - - public string ShipperPhone - { - get; set; - } - - public double Freight - { - get; set; - } - - public string Company - { - get; set; - } - - public string ShipTo - { - get; set; - } - - public double OrderTotal - { - get; set; - } - - public string Status - { - get; set; - } - - public int SymbolCode - { - get; set; - } - - public string SymbolName - { - get; set; - } - - public char Symbol => (char)SymbolCode; - - public ICollection Details - { - get; set; - } - - public string ShortDescription => $"Order ID: {OrderID}"; - - public override string ToString() => $"{Company} {Status}"; -} diff --git a/Estara.Core/Models/SampleOrderDetail.cs b/Estara.Core/Models/SampleOrderDetail.cs deleted file mode 100644 index ecefb16..0000000 --- a/Estara.Core/Models/SampleOrderDetail.cs +++ /dev/null @@ -1,52 +0,0 @@ -namespace Estara.Core.Models; - -// Model for the SampleDataService. Replace with your own model. -public class SampleOrderDetail -{ - public long ProductID - { - get; set; - } - - public string ProductName - { - get; set; - } - - public int Quantity - { - get; set; - } - - public double Discount - { - get; set; - } - - public string QuantityPerUnit - { - get; set; - } - - public double UnitPrice - { - get; set; - } - - public string CategoryName - { - get; set; - } - - public string CategoryDescription - { - get; set; - } - - public double Total - { - get; set; - } - - public string ShortDescription => $"Product ID: {ProductID} - {ProductName}"; -} diff --git a/Estara.Core/README.md b/Estara.Core/README.md deleted file mode 100644 index 906c066..0000000 --- a/Estara.Core/README.md +++ /dev/null @@ -1,5 +0,0 @@ -*Recommended Markdown Viewer: [Markdown Editor](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.MarkdownEditor2)* - -## Getting Started - -The Core project contains code that can be [reused across multiple application projects](https://docs.microsoft.com/dotnet/standard/net-standard#net-5-and-net-standard). diff --git a/Estara.Core/Services/SampleDataService.cs b/Estara.Core/Services/SampleDataService.cs deleted file mode 100644 index a20f96b..0000000 --- a/Estara.Core/Services/SampleDataService.cs +++ /dev/null @@ -1,522 +0,0 @@ -using Estara.Core.Contracts.Services; -using Estara.Core.Models; - -namespace Estara.Core.Services; - -// This class holds sample data used by some generated pages to show how they can be used. -// TODO: The following classes have been created to display sample data. Delete these files once your app is using real data. -// 1. Contracts/Services/ISampleDataService.cs -// 2. Services/SampleDataService.cs -// 3. Models/SampleCompany.cs -// 4. Models/SampleOrder.cs -// 5. Models/SampleOrderDetail.cs -public class SampleDataService : ISampleDataService -{ - private List _allOrders; - - public SampleDataService() - { - } - - private static IEnumerable AllOrders() - { - // The following is order summary data - var companies = AllCompanies(); - return companies.SelectMany(c => c.Orders); - } - - private static IEnumerable AllCompanies() - { - return new List() - { - new SampleCompany() - { - CompanyID = "ALFKI", - CompanyName = "Company A", - ContactName = "Maria Anders", - ContactTitle = "Sales Representative", - Address = "Obere Str. 57", - City = "Berlin", - PostalCode = "12209", - Country = "Germany", - Phone = "030-0074321", - Fax = "030-0076545", - Orders = new List() - { - new SampleOrder() - { - OrderID = 10643, // Symbol Globe - OrderDate = new DateTime(1997, 8, 25), - RequiredDate = new DateTime(1997, 9, 22), - ShippedDate = new DateTime(1997, 9, 22), - ShipperName = "Speedy Express", - ShipperPhone = "(503) 555-9831", - Freight = 29.46, - Company = "Company A", - ShipTo = "Company A, Obere Str. 57, Berlin, 12209, Germany", - OrderTotal = 814.50, - Status = "Shipped", - SymbolCode = 57643, - SymbolName = "Globe", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 28, - ProductName = "Rössle Sauerkraut", - Quantity = 15, - Discount = 0.25, - QuantityPerUnit = "25 - 825 g cans", - UnitPrice = 45.60, - CategoryName = "Produce", - CategoryDescription = "Dried fruit and bean curd", - Total = 513.00 - }, - new SampleOrderDetail() - { - ProductID = 39, - ProductName = "Chartreuse verte", - Quantity = 21, - Discount = 0.25, - QuantityPerUnit = "750 cc per bottle", - UnitPrice = 18.0, - CategoryName = "Beverages", - CategoryDescription = "Soft drinks, coffees, teas, beers, and ales", - Total = 283.50 - }, - new SampleOrderDetail() - { - ProductID = 46, - ProductName = "Spegesild", - Quantity = 2, - Discount = 0.25, - QuantityPerUnit = "4 - 450 g glasses", - UnitPrice = 12.0, - CategoryName = "Seafood", - CategoryDescription = "Seaweed and fish", - Total = 18.00 - } - } - }, - new SampleOrder() - { - OrderID = 10835, // Symbol Music - OrderDate = new DateTime(1998, 1, 15), - RequiredDate = new DateTime(1998, 2, 12), - ShippedDate = new DateTime(1998, 1, 21), - ShipperName = "Federal Shipping", - ShipperPhone = "(503) 555-9931", - Freight = 69.53, - Company = "Company A", - ShipTo = "Company A, Obere Str. 57, Berlin, 12209, Germany", - OrderTotal = 845.80, - Status = "Closed", - SymbolCode = 57737, - SymbolName = "Audio", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 59, - ProductName = "Raclette Courdavault", - Quantity = 15, - Discount = 0, - QuantityPerUnit = "5 kg pkg.", - UnitPrice = 55.00, - CategoryName = "Dairy Products", - CategoryDescription = "Cheeses", - Total = 825.00 - }, - new SampleOrderDetail() - { - ProductID = 77, - ProductName = "Original Frankfurter grüne Soße", - Quantity = 2, - Discount = 0.2, - QuantityPerUnit = "12 boxes", - UnitPrice = 13.0, - CategoryName = "Condiments", - CategoryDescription = "Sweet and savory sauces, relishes, spreads, and seasonings", - Total = 20.80 - } - } - }, - new SampleOrder() - { - OrderID = 10952, // Symbol Calendar - OrderDate = new DateTime(1998, 3, 16), - RequiredDate = new DateTime(1998, 4, 27), - ShippedDate = new DateTime(1998, 3, 24), - ShipperName = "Speedy Express", - ShipperPhone = "(503) 555-9831", - Freight = 40.42, - Company = "Company A", - ShipTo = "Company A, Obere Str. 57, Berlin, 12209, Germany", - OrderTotal = 471.20, - Status = "Closed", - SymbolCode = 57699, - SymbolName = "Calendar", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 6, - ProductName = "Grandma's Boysenberry Spread", - Quantity = 16, - Discount = 0.05, - QuantityPerUnit = "12 - 8 oz jars", - UnitPrice = 25.0, - CategoryName = "Condiments", - CategoryDescription = "Sweet and savory sauces, relishes, spreads, and seasonings", - Total = 380.00 - }, - new SampleOrderDetail() - { - ProductID = 28, - ProductName = "Rössle Sauerkraut", - Quantity = 2, - Discount = 0, - QuantityPerUnit = "25 - 825 g cans", - UnitPrice = 45.60, - CategoryName = "Produce", - CategoryDescription = "Dried fruit and bean curd", - Total = 91.20 - } - } - } - } - }, - new SampleCompany() - { - CompanyID = "ANATR", - CompanyName = "Company F", - ContactName = "Ana Trujillo", - ContactTitle = "Owner", - Address = "Avda. de la Constitución 2222", - City = "México D.F.", - PostalCode = "05021", - Country = "Mexico", - Phone = "(5) 555-4729", - Fax = "(5) 555-3745", - Orders = new List() - { - new SampleOrder() - { - OrderID = 10625, // Symbol Camera - OrderDate = new DateTime(1997, 8, 8), - RequiredDate = new DateTime(1997, 9, 5), - ShippedDate = new DateTime(1997, 8, 14), - ShipperName = "Speedy Express", - ShipperPhone = "(503) 555-9831", - Freight = 43.90, - Company = "Company F", - ShipTo = "Company F, Avda. de la Constitución 2222, 05021, México D.F., Mexico", - OrderTotal = 469.75, - Status = "Shipped", - SymbolCode = 57620, - SymbolName = "Camera", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 14, - ProductName = "Tofu", - Quantity = 3, - Discount = 0, - QuantityPerUnit = "40 - 100 g pkgs.", - UnitPrice = 23.25, - CategoryName = "Produce", - CategoryDescription = "Dried fruit and bean curd", - Total = 69.75 - }, - new SampleOrderDetail() - { - ProductID = 42, - ProductName = "Singaporean Hokkien Fried Mee", - Quantity = 5, - Discount = 0, - QuantityPerUnit = "32 - 1 kg pkgs.", - UnitPrice = 14.0, - CategoryName = "Grains/Cereals", - CategoryDescription = "Breads, crackers, pasta, and cereal", - Total = 70.00 - }, - new SampleOrderDetail() - { - ProductID = 60, - ProductName = "Camembert Pierrot", - Quantity = 10, - Discount = 0, - QuantityPerUnit = "15 - 300 g rounds", - UnitPrice = 34.00, - CategoryName = "Dairy Products", - CategoryDescription = "Cheeses", - Total = 340.00 - } - } - }, - new SampleOrder() - { - OrderID = 10926, // Symbol Clock - OrderDate = new DateTime(1998, 3, 4), - RequiredDate = new DateTime(1998, 4, 1), - ShippedDate = new DateTime(1998, 3, 11), - ShipperName = "Federal Shipping", - ShipperPhone = "(503) 555-9931", - Freight = 39.92, - Company = "Company F", - ShipTo = "Company F, Avda. de la Constitución 2222, 05021, México D.F., Mexico", - OrderTotal = 507.20, - Status = "Shipped", - SymbolCode = 57633, - SymbolName = "Clock", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 11, - ProductName = "Queso Cabrales", - Quantity = 2, - Discount = 0, - QuantityPerUnit = "1 kg pkg.", - UnitPrice = 21.0, - CategoryName = "Dairy Products", - CategoryDescription = "Cheeses", - Total = 42.00 - }, - new SampleOrderDetail() - { - ProductID = 13, - ProductName = "Konbu", - Quantity = 10, - Discount = 0, - QuantityPerUnit = "2 kg box", - UnitPrice = 6.0, - CategoryName = "Seafood", - CategoryDescription = "Seaweed and fish", - Total = 60.00 - }, - new SampleOrderDetail() - { - ProductID = 19, - ProductName = "Teatime Chocolate Biscuits", - Quantity = 7, - Discount = 0, - QuantityPerUnit = "10 boxes x 12 pieces", - UnitPrice = 9.20, - CategoryName = "Confections", - CategoryDescription = "Desserts, candies, and sweet breads", - Total = 64.40 - }, - new SampleOrderDetail() - { - ProductID = 72, - ProductName = "Mozzarella di Giovanni", - Quantity = 10, - Discount = 0, - QuantityPerUnit = "24 - 200 g pkgs.", - UnitPrice = 34.80, - CategoryName = "Dairy Products", - CategoryDescription = "Cheeses", - Total = 340.80 - } - } - } - } - }, - new SampleCompany() - { - CompanyID = "ANTON", - CompanyName = "Company Z", - ContactName = "Antonio Moreno", - ContactTitle = "Owner", - Address = "Mataderos 2312", - City = "México D.F.", - PostalCode = "05023", - Country = "Mexico", - Phone = "(5) 555-3932", - Fax = string.Empty, - Orders = new List() - { - new SampleOrder() - { - OrderID = 10507, // Symbol Contact - OrderDate = new DateTime(1997, 4, 15), - RequiredDate = new DateTime(1997, 5, 13), - ShippedDate = new DateTime(1997, 4, 22), - ShipperName = "Speedy Express", - ShipperPhone = "(503) 555-9831", - Freight = 47.45, - Company = "Company Z", - ShipTo = "Company Z, Mataderos 2312, 05023, México D.F., Mexico", - OrderTotal = 978.50, - Status = "Closed", - SymbolCode = 57661, - SymbolName = "Contact", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 43, - ProductName = "Ipoh Coffee", - Quantity = 15, - Discount = 0.15, - QuantityPerUnit = "16 - 500 g tins", - UnitPrice = 46.0, - CategoryName = "Beverages", - CategoryDescription = "Soft drinks, coffees, teas, beers, and ales", - Total = 816.00 - }, - new SampleOrderDetail() - { - ProductID = 48, - ProductName = "Chocolade", - Quantity = 15, - Discount = 0.15, - QuantityPerUnit = "10 pkgs.", - UnitPrice = 12.75, - CategoryName = "Confections", - CategoryDescription = "Desserts, candies, and sweet breads", - Total = 162.50 - } - } - }, - new SampleOrder() - { - OrderID = 10573, // Symbol Star - OrderDate = new DateTime(1997, 6, 19), - RequiredDate = new DateTime(1997, 7, 17), - ShippedDate = new DateTime(1997, 6, 20), - ShipperName = "Federal Shipping", - ShipperPhone = "(503) 555-9931", - Freight = 84.84, - Company = "Company Z", - ShipTo = "Company Z, Mataderos 2312, 05023, México D.F., Mexico", - OrderTotal = 2082.00, - Status = "Closed", - SymbolCode = 57619, - SymbolName = "Favorite", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 17, - ProductName = "Alice Mutton", - Quantity = 18, - Discount = 0, - QuantityPerUnit = "20 - 1 kg tins", - UnitPrice = 39.00, - CategoryName = "Meat/Poultry", - CategoryDescription = "Prepared meats", - Total = 702.00 - }, - new SampleOrderDetail() - { - ProductID = 34, - ProductName = "Sasquatch Ale", - Quantity = 40, - Discount = 0, - QuantityPerUnit = "24 - 12 oz bottles", - UnitPrice = 14.0, - CategoryName = "Beverages", - CategoryDescription = "Soft drinks, coffees, teas, beers, and ales", - Total = 560.00 - }, - new SampleOrderDetail() - { - ProductID = 53, - ProductName = "Perth Pasties", - Quantity = 25, - Discount = 0, - QuantityPerUnit = "48 pieces", - UnitPrice = 32.80, - CategoryName = "Meat/Poultry", - CategoryDescription = "Prepared meats", - Total = 820.00 - } - } - }, - new SampleOrder() - { - OrderID = 10682, // Symbol Home - OrderDate = new DateTime(1997, 9, 25), - RequiredDate = new DateTime(1997, 10, 23), - ShippedDate = new DateTime(1997, 10, 1), - ShipperName = "United Package", - ShipperPhone = "(503) 555-3199", - Freight = 36.13, - Company = "Company Z", - ShipTo = "Company Z, Mataderos 2312, 05023, México D.F., Mexico", - OrderTotal = 375.50, - Status = "Closed", - SymbolCode = 57615, - SymbolName = "Home", - Details = new List() - { - new SampleOrderDetail() - { - ProductID = 33, - ProductName = "Geitost", - Quantity = 30, - Discount = 0, - QuantityPerUnit = "500 g", - UnitPrice = 2.50, - CategoryName = "Dairy Products", - CategoryDescription = "Cheeses", - Total = 75.00 - }, - new SampleOrderDetail() - { - ProductID = 66, - ProductName = "Louisiana Hot Spiced Okra", - Quantity = 4, - Discount = 0, - QuantityPerUnit = "24 - 8 oz jars", - UnitPrice = 17.00, - CategoryName = "Condiments", - CategoryDescription = "Sweet and savory sauces, relishes, spreads, and seasonings", - Total = 68.00 - }, - new SampleOrderDetail() - { - ProductID = 75, - ProductName = "Rhönbräu Klosterbier", - Quantity = 30, - Discount = 0, - QuantityPerUnit = "24 - 0.5 l bottles", - UnitPrice = 7.75, - CategoryName = "Beverages", - CategoryDescription = "Soft drinks, coffees, teas, beers, and ales", - Total = 232.50 - } - } - } - } - } - }; - } - - public async Task> GetContentGridDataAsync() - { - _allOrders ??= new List(AllOrders()); - - await Task.CompletedTask; - return _allOrders; - } - - public async Task> GetGridDataAsync() - { - _allOrders ??= new List(AllOrders()); - - await Task.CompletedTask; - return _allOrders; - } - - public async Task> GetListDetailsDataAsync() - { - _allOrders ??= new List(AllOrders()); - - await Task.CompletedTask; - return _allOrders; - } -} diff --git a/Estara.Patcher/Estara.Patcher.vcxproj b/Estara.Patcher/Estara.Patcher.vcxproj new file mode 100644 index 0000000..cf43e6c --- /dev/null +++ b/Estara.Patcher/Estara.Patcher.vcxproj @@ -0,0 +1,157 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {e0bc6fde-61da-4acf-bade-332bdb54d1c9} + EstaraPatcher + 10.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;ESTARAPATCHER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + WIN32;NDEBUG;ESTARAPATCHER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + Level3 + true + _DEBUG;ESTARAPATCHER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + NDEBUG;ESTARAPATCHER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Estara.Patcher/Estara.Patcher.vcxproj.filters b/Estara.Patcher/Estara.Patcher.vcxproj.filters new file mode 100644 index 0000000..1e57c7b --- /dev/null +++ b/Estara.Patcher/Estara.Patcher.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/Estara.Patcher/dllmain.cpp b/Estara.Patcher/dllmain.cpp new file mode 100644 index 0000000..9ac5dea --- /dev/null +++ b/Estara.Patcher/dllmain.cpp @@ -0,0 +1,20 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#include "pch.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + // TODO: Add DLL patching code from @orcfoss/Lure. + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/Estara.Patcher/framework.h b/Estara.Patcher/framework.h new file mode 100644 index 0000000..54b83e9 --- /dev/null +++ b/Estara.Patcher/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files +#include diff --git a/Estara.Patcher/pch.cpp b/Estara.Patcher/pch.cpp new file mode 100644 index 0000000..64b7eef --- /dev/null +++ b/Estara.Patcher/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: source file corresponding to the pre-compiled header + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/Estara.Patcher/pch.h b/Estara.Patcher/pch.h new file mode 100644 index 0000000..885d5d6 --- /dev/null +++ b/Estara.Patcher/pch.h @@ -0,0 +1,13 @@ +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" + +#endif //PCH_H diff --git a/Estara.Tools/App.xaml b/Estara.Tools/App.xaml new file mode 100644 index 0000000..86aa515 --- /dev/null +++ b/Estara.Tools/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Estara.Tools/App.xaml.cs b/Estara.Tools/App.xaml.cs new file mode 100644 index 0000000..50a1eca --- /dev/null +++ b/Estara.Tools/App.xaml.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace Estara.Tools; +/// +/// Interaction logic for App.xaml +/// +public partial class App : Application +{ +} diff --git a/Estara.Tools/AssemblyInfo.cs b/Estara.Tools/AssemblyInfo.cs new file mode 100644 index 0000000..8b5504e --- /dev/null +++ b/Estara.Tools/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/Estara.Tools/Estara.Tools.csproj b/Estara.Tools/Estara.Tools.csproj new file mode 100644 index 0000000..d097ab9 --- /dev/null +++ b/Estara.Tools/Estara.Tools.csproj @@ -0,0 +1,14 @@ + + + + WinExe + net7.0-windows + enable + true + + + + + + + diff --git a/Estara.Tools/MainWindow.xaml b/Estara.Tools/MainWindow.xaml new file mode 100644 index 0000000..4a89f90 --- /dev/null +++ b/Estara.Tools/MainWindow.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/Estara.Tools/MainWindow.xaml.cs b/Estara.Tools/MainWindow.xaml.cs new file mode 100644 index 0000000..ce46a88 --- /dev/null +++ b/Estara.Tools/MainWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Estara.Tools; +/// +/// Interaction logic for MainWindow.xaml +/// +public partial class MainWindow : Window +{ + public MainWindow() + { + InitializeComponent(); + } + + // TODO: Add a basic toolset. +} diff --git a/Estara.sln b/Estara.sln index 3588505..38398fa 100644 --- a/Estara.sln +++ b/Estara.sln @@ -7,6 +7,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Estara", "Estara\Estara.csp EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Estara.Core", "Estara.Core\Estara.Core.csproj", "{6FC83ED3-8060-4415-9B1C-1B7DA39D8AD4}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Estara.Patcher", "Estara.Patcher\Estara.Patcher.vcxproj", "{E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Estara.Tools", "Estara.Tools\Estara.Tools.csproj", "{AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -59,6 +63,38 @@ Global {6FC83ED3-8060-4415-9B1C-1B7DA39D8AD4}.Release|x64.Build.0 = Release|x64 {6FC83ED3-8060-4415-9B1C-1B7DA39D8AD4}.Release|x86.ActiveCfg = Release|x86 {6FC83ED3-8060-4415-9B1C-1B7DA39D8AD4}.Release|x86.Build.0 = Release|x86 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|Any CPU.Build.0 = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|arm64.ActiveCfg = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|arm64.Build.0 = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|x64.ActiveCfg = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|x64.Build.0 = Debug|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|x86.ActiveCfg = Debug|Win32 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Debug|x86.Build.0 = Debug|Win32 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|Any CPU.ActiveCfg = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|Any CPU.Build.0 = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|arm64.ActiveCfg = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|arm64.Build.0 = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|x64.ActiveCfg = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|x64.Build.0 = Release|x64 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|x86.ActiveCfg = Release|Win32 + {E0BC6FDE-61DA-4ACF-BADE-332BDB54D1C9}.Release|x86.Build.0 = Release|Win32 + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|arm64.ActiveCfg = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|arm64.Build.0 = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|x64.ActiveCfg = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|x64.Build.0 = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|x86.ActiveCfg = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Debug|x86.Build.0 = Debug|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|Any CPU.Build.0 = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|arm64.ActiveCfg = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|arm64.Build.0 = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|x64.ActiveCfg = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|x64.Build.0 = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|x86.ActiveCfg = Release|Any CPU + {AFF88B22-7CB0-4F5B-B707-EFCDAAAA204C}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Estara/Activation/DefaultActivationHandler.cs b/Estara/Activation/DefaultActivationHandler.cs index a3ac189..2eb04d7 100644 --- a/Estara/Activation/DefaultActivationHandler.cs +++ b/Estara/Activation/DefaultActivationHandler.cs @@ -22,7 +22,7 @@ public class DefaultActivationHandler : ActivationHandler(); // Core Services - services.AddSingleton(); services.AddSingleton(); // Views and ViewModels services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); + services.AddTransient(); // Configuration services.Configure(context.Configuration.GetSection(nameof(LocalSettingsOptions))); diff --git a/Estara/Estara.csproj b/Estara/Estara.csproj index 040424c..80a86c8 100644 --- a/Estara/Estara.csproj +++ b/Estara/Estara.csproj @@ -25,6 +25,10 @@ Never https://kiseki.lol/estara + + + + @@ -48,6 +52,12 @@ Always + + MSBuild:Compile + + + MSBuild:Compile + diff --git a/Estara/README.md b/Estara/README.md deleted file mode 100644 index e24cced..0000000 --- a/Estara/README.md +++ /dev/null @@ -1,27 +0,0 @@ -*Recommended Markdown Viewer: [Markdown Editor](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.MarkdownEditor2)* - -## Getting Started - -Browse and address `TODO:` comments in `View -> Task List` to learn the codebase and understand next steps for turning the generated code into production code. - -Explore the [WinUI Gallery](https://www.microsoft.com/store/productId/9P3JFPWWDZRC) to learn about available controls and design patterns. - -Relaunch Template Studio to modify the project by right-clicking on the project in `View -> Solution Explorer` then selecting `Add -> New Item (Template Studio)`. - -## Publishing - -For projects with MSIX packaging, right-click on the application project and select `Package and Publish -> Create App Packages...` to create an MSIX package. - -For projects without MSIX packaging, follow the [deployment guide](https://docs.microsoft.com/windows/apps/windows-app-sdk/deploy-unpackaged-apps) or add the `Self-Contained` Feature to enable xcopy deployment. - -## CI Pipelines - -See [README.md](https://github.com/microsoft/TemplateStudio/blob/main/docs/WinUI/pipelines/README.md) for guidance on building and testing projects in CI pipelines. - -## Changelog - -See [releases](https://github.com/microsoft/TemplateStudio/releases) and [milestones](https://github.com/microsoft/TemplateStudio/milestones). - -## Feedback - -Bugs and feature requests should be filed at https://aka.ms/templatestudio. diff --git a/Estara/Services/PageService.cs b/Estara/Services/PageService.cs index feff383..0786fdc 100644 --- a/Estara/Services/PageService.cs +++ b/Estara/Services/PageService.cs @@ -14,11 +14,13 @@ public class PageService : IPageService public PageService() { - Configure(); - Configure(); - Configure(); - Configure(); - Configure(); + Configure(); + Configure(); + Configure(); + Configure(); + Configure(); + Configure(); + Configure(); Configure(); } diff --git a/Estara/Strings/en-us/Resources.resw b/Estara/Strings/en-us/Resources.resw index 4c1ddee..1aaa431 100644 --- a/Estara/Strings/en-us/Resources.resw +++ b/Estara/Strings/en-us/Resources.resw @@ -1,5 +1,64 @@  + @@ -61,23 +120,32 @@ Estara - - Estara - + + Estara + Main - - Select an item from the list. + + Play - - ListDetails + + Host - - ContentGrid + + Character - - DataGrid + + Versions + + + Places + + + Packages + + + Bookmarks Personalization @@ -98,13 +166,13 @@ About this application - TODO: Replace with your app description. + A Kiseki experiment - - Privacy Statement + + Source - - https://YourPrivacyUrlGoesHere/ + + https://github.com/kiseki-lol/estara <toast launch="action=ToastClick"> @@ -120,4 +188,4 @@ </actions> </toast> - + \ No newline at end of file diff --git a/Estara/ViewModels/BookmarksViewModel.cs b/Estara/ViewModels/BookmarksViewModel.cs new file mode 100644 index 0000000..7152530 --- /dev/null +++ b/Estara/ViewModels/BookmarksViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class BookmarksViewModel : ObservableRecipient +{ + public BookmarksViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/CharacterViewModel.cs b/Estara/ViewModels/CharacterViewModel.cs new file mode 100644 index 0000000..df5f086 --- /dev/null +++ b/Estara/ViewModels/CharacterViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class CharacterViewModel : ObservableRecipient +{ + public CharacterViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/ContentGridDetailViewModel.cs b/Estara/ViewModels/ContentGridDetailViewModel.cs deleted file mode 100644 index 640bf20..0000000 --- a/Estara/ViewModels/ContentGridDetailViewModel.cs +++ /dev/null @@ -1,33 +0,0 @@ -using CommunityToolkit.Mvvm.ComponentModel; - -using Estara.Contracts.ViewModels; -using Estara.Core.Contracts.Services; -using Estara.Core.Models; - -namespace Estara.ViewModels; - -public partial class ContentGridDetailViewModel : ObservableRecipient, INavigationAware -{ - private readonly ISampleDataService _sampleDataService; - - [ObservableProperty] - private SampleOrder? item; - - public ContentGridDetailViewModel(ISampleDataService sampleDataService) - { - _sampleDataService = sampleDataService; - } - - public async void OnNavigatedTo(object parameter) - { - if (parameter is long orderID) - { - var data = await _sampleDataService.GetContentGridDataAsync(); - Item = data.First(i => i.OrderID == orderID); - } - } - - public void OnNavigatedFrom() - { - } -} diff --git a/Estara/ViewModels/ContentGridViewModel.cs b/Estara/ViewModels/ContentGridViewModel.cs deleted file mode 100644 index 52ab710..0000000 --- a/Estara/ViewModels/ContentGridViewModel.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System.Collections.ObjectModel; -using System.Windows.Input; - -using CommunityToolkit.Mvvm.ComponentModel; -using CommunityToolkit.Mvvm.Input; - -using Estara.Contracts.Services; -using Estara.Contracts.ViewModels; -using Estara.Core.Contracts.Services; -using Estara.Core.Models; - -namespace Estara.ViewModels; - -public partial class ContentGridViewModel : ObservableRecipient, INavigationAware -{ - private readonly INavigationService _navigationService; - private readonly ISampleDataService _sampleDataService; - - public ObservableCollection Source { get; } = new ObservableCollection(); - - public ContentGridViewModel(INavigationService navigationService, ISampleDataService sampleDataService) - { - _navigationService = navigationService; - _sampleDataService = sampleDataService; - } - - public async void OnNavigatedTo(object parameter) - { - Source.Clear(); - - // TODO: Replace with real data. - var data = await _sampleDataService.GetContentGridDataAsync(); - foreach (var item in data) - { - Source.Add(item); - } - } - - public void OnNavigatedFrom() - { - } - - [RelayCommand] - private void OnItemClick(SampleOrder? clickedItem) - { - if (clickedItem != null) - { - _navigationService.SetListDataItemForNextConnectedAnimation(clickedItem); - _navigationService.NavigateTo(typeof(ContentGridDetailViewModel).FullName!, clickedItem.OrderID); - } - } -} diff --git a/Estara/ViewModels/DataGridViewModel.cs b/Estara/ViewModels/DataGridViewModel.cs deleted file mode 100644 index 81ca609..0000000 --- a/Estara/ViewModels/DataGridViewModel.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Collections.ObjectModel; - -using CommunityToolkit.Mvvm.ComponentModel; - -using Estara.Contracts.ViewModels; -using Estara.Core.Contracts.Services; -using Estara.Core.Models; - -namespace Estara.ViewModels; - -public partial class DataGridViewModel : ObservableRecipient, INavigationAware -{ - private readonly ISampleDataService _sampleDataService; - - public ObservableCollection Source { get; } = new ObservableCollection(); - - public DataGridViewModel(ISampleDataService sampleDataService) - { - _sampleDataService = sampleDataService; - } - - public async void OnNavigatedTo(object parameter) - { - Source.Clear(); - - // TODO: Replace with real data. - var data = await _sampleDataService.GetGridDataAsync(); - - foreach (var item in data) - { - Source.Add(item); - } - } - - public void OnNavigatedFrom() - { - } -} diff --git a/Estara/ViewModels/HostViewModel.cs b/Estara/ViewModels/HostViewModel.cs new file mode 100644 index 0000000..a464f2e --- /dev/null +++ b/Estara/ViewModels/HostViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class HostViewModel : ObservableRecipient +{ + public HostViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/ListDetailsViewModel.cs b/Estara/ViewModels/ListDetailsViewModel.cs deleted file mode 100644 index aab73f4..0000000 --- a/Estara/ViewModels/ListDetailsViewModel.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections.ObjectModel; - -using CommunityToolkit.Mvvm.ComponentModel; - -using Estara.Contracts.ViewModels; -using Estara.Core.Contracts.Services; -using Estara.Core.Models; - -namespace Estara.ViewModels; - -public partial class ListDetailsViewModel : ObservableRecipient, INavigationAware -{ - private readonly ISampleDataService _sampleDataService; - - [ObservableProperty] - private SampleOrder? selected; - - public ObservableCollection SampleItems { get; private set; } = new ObservableCollection(); - - public ListDetailsViewModel(ISampleDataService sampleDataService) - { - _sampleDataService = sampleDataService; - } - - public async void OnNavigatedTo(object parameter) - { - SampleItems.Clear(); - - // TODO: Replace with real data. - var data = await _sampleDataService.GetListDetailsDataAsync(); - - foreach (var item in data) - { - SampleItems.Add(item); - } - } - - public void OnNavigatedFrom() - { - } - - public void EnsureItemSelected() - { - Selected ??= SampleItems.First(); - } -} diff --git a/Estara/ViewModels/MainViewModel.cs b/Estara/ViewModels/MainViewModel.cs deleted file mode 100644 index ed0feb3..0000000 --- a/Estara/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using CommunityToolkit.Mvvm.ComponentModel; - -namespace Estara.ViewModels; - -public partial class MainViewModel : ObservableRecipient -{ - public MainViewModel() - { - } -} diff --git a/Estara/ViewModels/PackagesViewModel.cs b/Estara/ViewModels/PackagesViewModel.cs new file mode 100644 index 0000000..e2434df --- /dev/null +++ b/Estara/ViewModels/PackagesViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class PackagesViewModel : ObservableRecipient +{ + public PackagesViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/PlacesViewModel.cs b/Estara/ViewModels/PlacesViewModel.cs new file mode 100644 index 0000000..ae5c1a8 --- /dev/null +++ b/Estara/ViewModels/PlacesViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class PlacesViewModel : ObservableRecipient +{ + public PlacesViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/PlayViewModel.cs b/Estara/ViewModels/PlayViewModel.cs new file mode 100644 index 0000000..816a138 --- /dev/null +++ b/Estara/ViewModels/PlayViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class PlayViewModel : ObservableRecipient +{ + public PlayViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/ViewModels/VersionsViewModel.cs b/Estara/ViewModels/VersionsViewModel.cs new file mode 100644 index 0000000..58c105b --- /dev/null +++ b/Estara/ViewModels/VersionsViewModel.cs @@ -0,0 +1,11 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Estara.ViewModels; + +public partial class VersionsViewModel : ObservableRecipient +{ + public VersionsViewModel() + { + // + } +} \ No newline at end of file diff --git a/Estara/Views/MainPage.xaml b/Estara/Views/BookmarksPage.xaml similarity index 86% rename from Estara/Views/MainPage.xaml rename to Estara/Views/BookmarksPage.xaml index 40b9352..3383b0c 100644 --- a/Estara/Views/MainPage.xaml +++ b/Estara/Views/BookmarksPage.xaml @@ -1,5 +1,5 @@  - + - + \ No newline at end of file diff --git a/Estara/Views/BookmarksPage.xaml.cs b/Estara/Views/BookmarksPage.xaml.cs new file mode 100644 index 0000000..182e215 --- /dev/null +++ b/Estara/Views/BookmarksPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class BookmarksPage : Page +{ + public BookmarksViewModel ViewModel + { + get; + } + + public BookmarksPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Estara/Views/CharacterPage.xaml b/Estara/Views/CharacterPage.xaml new file mode 100644 index 0000000..5f4ef47 --- /dev/null +++ b/Estara/Views/CharacterPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/CharacterPage.xaml.cs b/Estara/Views/CharacterPage.xaml.cs new file mode 100644 index 0000000..ce9b69b --- /dev/null +++ b/Estara/Views/CharacterPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class CharacterPage : Page +{ + public CharacterViewModel ViewModel + { + get; + } + + public CharacterPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Estara/Views/ContentGridDetailPage.xaml b/Estara/Views/ContentGridDetailPage.xaml deleted file mode 100644 index 49d29cf..0000000 --- a/Estara/Views/ContentGridDetailPage.xaml +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Estara/Views/ContentGridDetailPage.xaml.cs b/Estara/Views/ContentGridDetailPage.xaml.cs deleted file mode 100644 index d853468..0000000 --- a/Estara/Views/ContentGridDetailPage.xaml.cs +++ /dev/null @@ -1,43 +0,0 @@ -using CommunityToolkit.WinUI.UI.Animations; - -using Estara.Contracts.Services; -using Estara.ViewModels; - -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Navigation; - -namespace Estara.Views; - -public sealed partial class ContentGridDetailPage : Page -{ - public ContentGridDetailViewModel ViewModel - { - get; - } - - public ContentGridDetailPage() - { - ViewModel = App.GetService(); - InitializeComponent(); - } - - protected override void OnNavigatedTo(NavigationEventArgs e) - { - base.OnNavigatedTo(e); - this.RegisterElementForConnectedAnimation("animationKeyContentGrid", itemHero); - } - - protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) - { - base.OnNavigatingFrom(e); - if (e.NavigationMode == NavigationMode.Back) - { - var navigationService = App.GetService(); - - if (ViewModel.Item != null) - { - navigationService.SetListDataItemForNextConnectedAnimation(ViewModel.Item); - } - } - } -} diff --git a/Estara/Views/ContentGridPage.xaml b/Estara/Views/ContentGridPage.xaml deleted file mode 100644 index 8c0223a..0000000 --- a/Estara/Views/ContentGridPage.xaml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Estara/Views/ContentGridPage.xaml.cs b/Estara/Views/ContentGridPage.xaml.cs deleted file mode 100644 index 215e097..0000000 --- a/Estara/Views/ContentGridPage.xaml.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Estara.ViewModels; - -using Microsoft.UI.Xaml.Controls; - -namespace Estara.Views; - -public sealed partial class ContentGridPage : Page -{ - public ContentGridViewModel ViewModel - { - get; - } - - public ContentGridPage() - { - ViewModel = App.GetService(); - InitializeComponent(); - } -} diff --git a/Estara/Views/DataGridPage.xaml b/Estara/Views/DataGridPage.xaml deleted file mode 100644 index 955b486..0000000 --- a/Estara/Views/DataGridPage.xaml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Estara/Views/DataGridPage.xaml.cs b/Estara/Views/DataGridPage.xaml.cs deleted file mode 100644 index 795dfa0..0000000 --- a/Estara/Views/DataGridPage.xaml.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Estara.ViewModels; - -using Microsoft.UI.Xaml.Controls; - -namespace Estara.Views; - -// TODO: Change the grid as appropriate for your app. Adjust the column definitions on DataGridPage.xaml. -// For more details, see the documentation at https://docs.microsoft.com/windows/communitytoolkit/controls/datagrid. -public sealed partial class DataGridPage : Page -{ - public DataGridViewModel ViewModel - { - get; - } - - public DataGridPage() - { - ViewModel = App.GetService(); - InitializeComponent(); - } -} diff --git a/Estara/Views/HostPage.xaml b/Estara/Views/HostPage.xaml new file mode 100644 index 0000000..0b02dc2 --- /dev/null +++ b/Estara/Views/HostPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/MainPage.xaml.cs b/Estara/Views/HostPage.xaml.cs similarity index 50% rename from Estara/Views/MainPage.xaml.cs rename to Estara/Views/HostPage.xaml.cs index 2ed7dea..ce1df75 100644 --- a/Estara/Views/MainPage.xaml.cs +++ b/Estara/Views/HostPage.xaml.cs @@ -4,16 +4,16 @@ using Microsoft.UI.Xaml.Controls; namespace Estara.Views; -public sealed partial class MainPage : Page +public sealed partial class HostPage : Page { - public MainViewModel ViewModel + public HostViewModel ViewModel { get; } - public MainPage() + public HostPage() { - ViewModel = App.GetService(); + ViewModel = App.GetService(); InitializeComponent(); } -} +} \ No newline at end of file diff --git a/Estara/Views/ListDetailsDetailControl.xaml b/Estara/Views/ListDetailsDetailControl.xaml deleted file mode 100644 index cf22d1a..0000000 --- a/Estara/Views/ListDetailsDetailControl.xaml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Estara/Views/ListDetailsDetailControl.xaml.cs b/Estara/Views/ListDetailsDetailControl.xaml.cs deleted file mode 100644 index b94eb95..0000000 --- a/Estara/Views/ListDetailsDetailControl.xaml.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Estara.Core.Models; - -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; - -namespace Estara.Views; - -public sealed partial class ListDetailsDetailControl : UserControl -{ - public SampleOrder? ListDetailsMenuItem - { - get => GetValue(ListDetailsMenuItemProperty) as SampleOrder; - set => SetValue(ListDetailsMenuItemProperty, value); - } - - public static readonly DependencyProperty ListDetailsMenuItemProperty = DependencyProperty.Register("ListDetailsMenuItem", typeof(SampleOrder), typeof(ListDetailsDetailControl), new PropertyMetadata(null, OnListDetailsMenuItemPropertyChanged)); - - public ListDetailsDetailControl() - { - InitializeComponent(); - } - - private static void OnListDetailsMenuItemPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - if (d is ListDetailsDetailControl control) - { - control.ForegroundElement.ChangeView(0, 0, 1); - } - } -} diff --git a/Estara/Views/ListDetailsPage.xaml b/Estara/Views/ListDetailsPage.xaml deleted file mode 100644 index 8ea7af7..0000000 --- a/Estara/Views/ListDetailsPage.xaml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Estara/Views/ListDetailsPage.xaml.cs b/Estara/Views/ListDetailsPage.xaml.cs deleted file mode 100644 index 3afc196..0000000 --- a/Estara/Views/ListDetailsPage.xaml.cs +++ /dev/null @@ -1,29 +0,0 @@ -using CommunityToolkit.WinUI.UI.Controls; - -using Estara.ViewModels; - -using Microsoft.UI.Xaml.Controls; - -namespace Estara.Views; - -public sealed partial class ListDetailsPage : Page -{ - public ListDetailsViewModel ViewModel - { - get; - } - - public ListDetailsPage() - { - ViewModel = App.GetService(); - InitializeComponent(); - } - - private void OnViewStateChanged(object sender, ListDetailsViewState e) - { - if (e == ListDetailsViewState.Both) - { - ViewModel.EnsureItemSelected(); - } - } -} diff --git a/Estara/Views/PackagesPage.xaml b/Estara/Views/PackagesPage.xaml new file mode 100644 index 0000000..b84b881 --- /dev/null +++ b/Estara/Views/PackagesPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/PackagesPage.xaml.cs b/Estara/Views/PackagesPage.xaml.cs new file mode 100644 index 0000000..ab10641 --- /dev/null +++ b/Estara/Views/PackagesPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class PackagesPage : Page +{ + public PackagesViewModel ViewModel + { + get; + } + + public PackagesPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Estara/Views/PlacesPage.xaml b/Estara/Views/PlacesPage.xaml new file mode 100644 index 0000000..9d0271f --- /dev/null +++ b/Estara/Views/PlacesPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/PlacesPage.xaml.cs b/Estara/Views/PlacesPage.xaml.cs new file mode 100644 index 0000000..ebaa16e --- /dev/null +++ b/Estara/Views/PlacesPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class PlacesPage : Page +{ + public PlacesViewModel ViewModel + { + get; + } + + public PlacesPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Estara/Views/PlayPage.xaml b/Estara/Views/PlayPage.xaml new file mode 100644 index 0000000..f2e40ad --- /dev/null +++ b/Estara/Views/PlayPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/PlayPage.xaml.cs b/Estara/Views/PlayPage.xaml.cs new file mode 100644 index 0000000..8e2a68a --- /dev/null +++ b/Estara/Views/PlayPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class PlayPage : Page +{ + public PlayViewModel ViewModel + { + get; + } + + public PlayPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Estara/Views/SettingsPage.xaml b/Estara/Views/SettingsPage.xaml index 29488a5..8a02e74 100644 --- a/Estara/Views/SettingsPage.xaml +++ b/Estara/Views/SettingsPage.xaml @@ -60,7 +60,7 @@ x:Uid="Settings_AboutDescription" Margin="{StaticResource XSmallTopMargin}" Style="{ThemeResource BodyTextBlockStyle}" /> - + diff --git a/Estara/Views/SettingsPage.xaml.cs b/Estara/Views/SettingsPage.xaml.cs index 4f30919..ca13b98 100644 --- a/Estara/Views/SettingsPage.xaml.cs +++ b/Estara/Views/SettingsPage.xaml.cs @@ -4,7 +4,6 @@ using Microsoft.UI.Xaml.Controls; namespace Estara.Views; -// TODO: Set the URL for your privacy policy by updating SettingsPage_PrivacyTermsLink.NavigateUri in Resources.resw. public sealed partial class SettingsPage : Page { public SettingsViewModel ViewModel diff --git a/Estara/Views/ShellPage.xaml b/Estara/Views/ShellPage.xaml index 6f20015..807f29b 100644 --- a/Estara/Views/ShellPage.xaml +++ b/Estara/Views/ShellPage.xaml @@ -28,7 +28,7 @@ - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + diff --git a/Estara/Views/ShellPage.xaml.cs b/Estara/Views/ShellPage.xaml.cs index f732fa8..8b25cba 100644 --- a/Estara/Views/ShellPage.xaml.cs +++ b/Estara/Views/ShellPage.xaml.cs @@ -11,7 +11,6 @@ using Windows.System; namespace Estara.Views; -// TODO: Update NavigationViewItem titles and icons in ShellPage.xaml. public sealed partial class ShellPage : Page { public ShellViewModel ViewModel diff --git a/Estara/Views/VersionsPage.xaml b/Estara/Views/VersionsPage.xaml new file mode 100644 index 0000000..783b376 --- /dev/null +++ b/Estara/Views/VersionsPage.xaml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Estara/Views/VersionsPage.xaml.cs b/Estara/Views/VersionsPage.xaml.cs new file mode 100644 index 0000000..41431ba --- /dev/null +++ b/Estara/Views/VersionsPage.xaml.cs @@ -0,0 +1,19 @@ +using Estara.ViewModels; + +using Microsoft.UI.Xaml.Controls; + +namespace Estara.Views; + +public sealed partial class VersionsPage : Page +{ + public VersionsViewModel ViewModel + { + get; + } + + public VersionsPage() + { + ViewModel = App.GetService(); + InitializeComponent(); + } +} \ No newline at end of file diff --git a/README.md b/README.md index 2fc2ead..60a892e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,13 @@ # Estara A Kiseki experiment +# Notice +We want to inform you that our project is currently a work in progress. While it is open source and available for developers to explore, please be aware that Estara is not intended for regular user consumption. Unless you are experienced in software development, we kindly advise against installing Estara in its current state. Thank you for your understanding. + +# Requirements +- 64-bit version of Windows build 17763 or greater (i.e., Version 1809 or greater) +- .NET 7 runtime (download via `winget install Microsoft.DotNet.SDK.7`) + # License ``` Estara - A Kiseki experiment