Add project files.
This commit is contained in:
37
BlazorSyncfusionCrm.sln
Normal file
37
BlazorSyncfusionCrm.sln
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.5.33530.505
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorSyncfusionCrm.Server", "BlazorSyncfusionCrm\Server\BlazorSyncfusionCrm.Server.csproj", "{7CDE9631-522C-4727-9D35-734AF3EC1D8B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorSyncfusionCrm.Client", "BlazorSyncfusionCrm\Client\BlazorSyncfusionCrm.Client.csproj", "{D25FCFE5-07DB-4CD1-9DB0-1D609A0EDAB1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorSyncfusionCrm.Shared", "BlazorSyncfusionCrm\Shared\BlazorSyncfusionCrm.Shared.csproj", "{543DDF44-5E13-4C3D-93E0-F3827B7B9A48}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{7CDE9631-522C-4727-9D35-734AF3EC1D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7CDE9631-522C-4727-9D35-734AF3EC1D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7CDE9631-522C-4727-9D35-734AF3EC1D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7CDE9631-522C-4727-9D35-734AF3EC1D8B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D25FCFE5-07DB-4CD1-9DB0-1D609A0EDAB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D25FCFE5-07DB-4CD1-9DB0-1D609A0EDAB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D25FCFE5-07DB-4CD1-9DB0-1D609A0EDAB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D25FCFE5-07DB-4CD1-9DB0-1D609A0EDAB1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{543DDF44-5E13-4C3D-93E0-F3827B7B9A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{543DDF44-5E13-4C3D-93E0-F3827B7B9A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{543DDF44-5E13-4C3D-93E0-F3827B7B9A48}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{543DDF44-5E13-4C3D-93E0-F3827B7B9A48}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {390A8B16-94FE-481E-B900-6D8E7186423F}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
12
BlazorSyncfusionCrm/Client/App.razor
Normal file
12
BlazorSyncfusionCrm/Client/App.razor
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<Router AppAssembly="@typeof(App).Assembly">
|
||||||
|
<Found Context="routeData">
|
||||||
|
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||||
|
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
|
||||||
|
</Found>
|
||||||
|
<NotFound>
|
||||||
|
<PageTitle>Not found</PageTitle>
|
||||||
|
<LayoutView Layout="@typeof(MainLayout)">
|
||||||
|
<p role="alert">Sorry, there's nothing at this address.</p>
|
||||||
|
</LayoutView>
|
||||||
|
</NotFound>
|
||||||
|
</Router>
|
||||||
20
BlazorSyncfusionCrm/Client/BlazorSyncfusionCrm.Client.csproj
Normal file
20
BlazorSyncfusionCrm/Client/BlazorSyncfusionCrm.Client.csproj
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.5" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.5" PrivateAssets="all" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
|
||||||
|
<PackageReference Include="Syncfusion.Blazor" Version="21.1.39" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Shared\BlazorSyncfusionCrm.Shared.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
7
BlazorSyncfusionCrm/Client/MainLayout.razor
Normal file
7
BlazorSyncfusionCrm/Client/MainLayout.razor
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
@inherits LayoutComponentBase
|
||||||
|
|
||||||
|
<NavBar />
|
||||||
|
|
||||||
|
<main>
|
||||||
|
@Body
|
||||||
|
</main>
|
||||||
65
BlazorSyncfusionCrm/Client/Pages/Contacts.razor
Normal file
65
BlazorSyncfusionCrm/Client/Pages/Contacts.razor
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
@page "/contacts"
|
||||||
|
@inject NavigationManager NavigationManager
|
||||||
|
<h3>Contacts</h3>
|
||||||
|
|
||||||
|
<SfGrid DataSource="GridData" AllowFiltering="true" Toolbar="@(new List<string>() {"Search"})">
|
||||||
|
<GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.CheckBox"></GridFilterSettings>
|
||||||
|
<GridColumns>
|
||||||
|
<GridColumn Width="60">
|
||||||
|
<Template>
|
||||||
|
@{
|
||||||
|
var contact = context as Contact;
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-edit"
|
||||||
|
OnClick="@(() => EditContact(contact!.Id))"></SfButton>
|
||||||
|
}
|
||||||
|
</Template>
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn Field="FirstName" HeaderText="First Name"></GridColumn>
|
||||||
|
<GridColumn Field="LastName" HeaderText="Last Name"></GridColumn>
|
||||||
|
<GridColumn Field="NickName" HeaderText="Nick Name"></GridColumn>
|
||||||
|
<GridColumn Field="Place" HeaderText="Place"></GridColumn>
|
||||||
|
<GridColumn Field="DateOfBirth" HeaderText="Date Of Birth" Format="yyyy-MM-dd"></GridColumn>
|
||||||
|
</GridColumns>
|
||||||
|
|
||||||
|
</SfGrid>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
public List<Contact> GridData { get; set; } = new List<Contact>
|
||||||
|
{
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
FirstName = "Peter",
|
||||||
|
LastName = "Parker",
|
||||||
|
NickName = "Spider-Man",
|
||||||
|
Place = "New York City",
|
||||||
|
DateOfBirth = new DateTime(2001, 8, 1),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
},
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
FirstName = "Tony",
|
||||||
|
LastName = "Stark",
|
||||||
|
NickName = "Iron Man",
|
||||||
|
Place = "Malibu",
|
||||||
|
DateOfBirth = new DateTime(1970, 5, 29),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
},
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
FirstName = "Bruce",
|
||||||
|
LastName = "Wayne",
|
||||||
|
NickName = "Batman",
|
||||||
|
Place = "Gotham City",
|
||||||
|
DateOfBirth = new DateTime(1915, 4, 7),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void EditContact(int Id)
|
||||||
|
{
|
||||||
|
NavigationManager.NavigateTo($"contacts/edit/{Id}");
|
||||||
|
}
|
||||||
|
}
|
||||||
3
BlazorSyncfusionCrm/Client/Pages/Index.razor
Normal file
3
BlazorSyncfusionCrm/Client/Pages/Index.razor
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@page "/"
|
||||||
|
|
||||||
|
<h1>Wellcome to Blazing CRM!</h1>
|
||||||
18
BlazorSyncfusionCrm/Client/Program.cs
Normal file
18
BlazorSyncfusionCrm/Client/Program.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using BlazorSyncfusionCrm.Client;
|
||||||
|
using Microsoft.AspNetCore.Components.Web;
|
||||||
|
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
||||||
|
using Syncfusion.Blazor;
|
||||||
|
|
||||||
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||||
|
builder.RootComponents.Add<App>("#app");
|
||||||
|
builder.RootComponents.Add<HeadOutlet>("head::after");
|
||||||
|
|
||||||
|
builder.Services.AddHttpClient("BlazorSyncfusionCrm.ServerAPI", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress));
|
||||||
|
|
||||||
|
// Supply HttpClient instances that include access tokens when making requests to the server project
|
||||||
|
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("BlazorSyncfusionCrm.ServerAPI"));
|
||||||
|
builder.Services.AddSyncfusionBlazor();
|
||||||
|
|
||||||
|
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTcyMTQ0NkAzMjMxMmUzMTJlMzMzNVNvVmlFLy9zUk5TTTlURGZIeTRCelpRR2FTQ1NXTXRrSGpNcVJKMzRES1E9");
|
||||||
|
|
||||||
|
await builder.Build().RunAsync();
|
||||||
38
BlazorSyncfusionCrm/Client/Properties/launchSettings.json
Normal file
38
BlazorSyncfusionCrm/Client/Properties/launchSettings.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"iisSettings": {
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:57610",
|
||||||
|
"sslPort": 44334
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||||
|
"applicationUrl": "http://localhost:5229",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||||
|
"applicationUrl": "https://localhost:7031;http://localhost:5229",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
22
BlazorSyncfusionCrm/Client/Shared/NavBar.razor
Normal file
22
BlazorSyncfusionCrm/Client/Shared/NavBar.razor
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
@inject NavigationManager NavigationManager
|
||||||
|
|
||||||
|
<SfAppBar ColorMode="AppBarColor.Primary">
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-home" Content="Home"
|
||||||
|
OnClick="@(()=> NavigateToPage("/"))" />
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-user" Content="Contacts"
|
||||||
|
OnClick="@(()=> NavigateToPage("/contacts"))" />
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-location" Content="Map"
|
||||||
|
OnClick="@(()=> NavigateToPage("/map"))" />
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-notes" Content="Notes"
|
||||||
|
OnClick="@(()=> NavigateToPage("/notes"))" />
|
||||||
|
<AppBarSpacer></AppBarSpacer>
|
||||||
|
<SfButton CssClass="e-inherit" IconCss="e-icons e-plus" Content="New Contact" />
|
||||||
|
|
||||||
|
</SfAppBar>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
void NavigateToPage(string page)
|
||||||
|
{
|
||||||
|
NavigationManager.NavigateTo(page);
|
||||||
|
}
|
||||||
|
}
|
||||||
14
BlazorSyncfusionCrm/Client/_Imports.razor
Normal file
14
BlazorSyncfusionCrm/Client/_Imports.razor
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
@using System.Net.Http
|
||||||
|
@using System.Net.Http.Json
|
||||||
|
@using Microsoft.AspNetCore.Components.Routing
|
||||||
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
|
@using Microsoft.AspNetCore.Components.WebAssembly.Http
|
||||||
|
@using Microsoft.JSInterop
|
||||||
|
@using BlazorSyncfusionCrm.Client.Shared
|
||||||
|
@using BlazorSyncfusionCrm.Client
|
||||||
|
@using BlazorSyncfusionCrm.Shared;
|
||||||
|
@using Syncfusion.Blazor
|
||||||
|
@using Syncfusion.Blazor.Navigations
|
||||||
|
@using Syncfusion.Blazor.Buttons
|
||||||
|
@using Syncfusion.Blazor.Grids
|
||||||
|
|
||||||
42
BlazorSyncfusionCrm/Client/wwwroot/css/app.css
Normal file
42
BlazorSyncfusionCrm/Client/wwwroot/css/app.css
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-family: Roboto, Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
margin: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#blazor-error-ui {
|
||||||
|
background: lightyellow;
|
||||||
|
bottom: 0;
|
||||||
|
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
display: none;
|
||||||
|
left: 0;
|
||||||
|
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#blazor-error-ui .dismiss {
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
right: 0.75rem;
|
||||||
|
top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blazor-error-boundary {
|
||||||
|
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||||
|
padding: 1rem 1rem 1rem 3.7rem;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blazor-error-boundary::after {
|
||||||
|
content: "An error has occurred."
|
||||||
|
}
|
||||||
26
BlazorSyncfusionCrm/Client/wwwroot/index.html
Normal file
26
BlazorSyncfusionCrm/Client/wwwroot/index.html
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>BlazorSyncfusionCrm</title>
|
||||||
|
<base href="/" />
|
||||||
|
<link href="css/app.css" rel="stylesheet" />
|
||||||
|
<link href="_content/Syncfusion.Blazor/styles/bootstrap5.css" rel="stylesheet" />
|
||||||
|
<!-- If you add any scoped CSS files, uncomment the following to load them
|
||||||
|
<link href="BlazorSyncfusionCrm.Client.styles.css" rel="stylesheet" /> -->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app">Loading...</div>
|
||||||
|
|
||||||
|
<div id="blazor-error-ui">
|
||||||
|
An unhandled error has occurred.
|
||||||
|
<a href="" class="reload">Reload</a>
|
||||||
|
<a class="dismiss">🗙</a>
|
||||||
|
</div>
|
||||||
|
<script src="_framework/blazor.webassembly.js"></script>
|
||||||
|
<script src="_content/Syncfusion.Blazor/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
24
BlazorSyncfusionCrm/Server/BlazorSyncfusionCrm.Server.csproj
Normal file
24
BlazorSyncfusionCrm/Server/BlazorSyncfusionCrm.Server.csproj
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="7.0.5" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0-preview.3.23174.2" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0-preview.3.23174.2">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0-preview.3.23174.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Client\BlazorSyncfusionCrm.Client.csproj" />
|
||||||
|
<ProjectReference Include="..\Shared\BlazorSyncfusionCrm.Shared.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
64
BlazorSyncfusionCrm/Server/Data/DataContext.cs
Normal file
64
BlazorSyncfusionCrm/Server/Data/DataContext.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
using BlazorSyncfusionCrm.Shared;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Server.Data
|
||||||
|
{
|
||||||
|
public class DataContext : DbContext
|
||||||
|
{
|
||||||
|
public DataContext(DbContextOptions<DataContext> options) : base(options)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||||
|
{
|
||||||
|
base.OnConfiguring(optionsBuilder);
|
||||||
|
optionsBuilder
|
||||||
|
.UseSqlServer("Server=oemansv7win;Database=blazingcrm;User Id=sa;Password=SAoemansv7winSA;TrustServerCertificate=true");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder.Entity<Contact>().HasData(
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
FirstName = "Peter",
|
||||||
|
LastName = "Parker",
|
||||||
|
NickName = "Spider-Man",
|
||||||
|
Place = "New York City",
|
||||||
|
DateOfBirth = new DateTime(2001, 8, 1),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
},
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
FirstName = "Tony",
|
||||||
|
LastName = "Stark",
|
||||||
|
NickName = "Iron Man",
|
||||||
|
Place = "Malibu",
|
||||||
|
DateOfBirth = new DateTime(1970, 5, 29),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
},
|
||||||
|
new Contact
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
FirstName = "Bruce",
|
||||||
|
LastName = "Wayne",
|
||||||
|
NickName = "Batman",
|
||||||
|
Place = "Gotham City",
|
||||||
|
DateOfBirth = new DateTime(1915, 4, 7),
|
||||||
|
DateCreated = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
modelBuilder.Entity<Note>().HasData(
|
||||||
|
new Note { Id = 1,ContactId = 1,Text="With great power comes great responsibility."},
|
||||||
|
new Note { Id = 2, ContactId = 2, Text = "I'm Iron Man." },
|
||||||
|
new Note { Id = 3, ContactId = 3, Text = "I'm Batman!." }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DbSet<Contact> Contacts { get; set; }
|
||||||
|
public DbSet<Note> Notes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
177
BlazorSyncfusionCrm/Server/Migrations/20230417080830_Initial.Designer.cs
generated
Normal file
177
BlazorSyncfusionCrm/Server/Migrations/20230417080830_Initial.Designer.cs
generated
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using BlazorSyncfusionCrm.Server.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Server.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(DataContext))]
|
||||||
|
[Migration("20230417080830_Initial")]
|
||||||
|
partial class Initial
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "8.0.0-preview.3.23174.2")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||||
|
|
||||||
|
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Contact", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateCreated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateDeleted")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DateOfBirth")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateUpdated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<string>("FirstName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("LastName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("NickName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Place")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Contacts");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6043),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(2001, 8, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Peter",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Parker",
|
||||||
|
NickName = "Spider-Man",
|
||||||
|
Place = "New York City"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6047),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(1970, 5, 29, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Tony",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Stark",
|
||||||
|
NickName = "Iron Man",
|
||||||
|
Place = "Malibu"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6050),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(1915, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Bruce",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Wayne",
|
||||||
|
NickName = "Batman",
|
||||||
|
Place = "Gotham City"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Note", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int?>("ContactId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateCreated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<string>("Text")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("ContactId");
|
||||||
|
|
||||||
|
b.ToTable("Notes");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
ContactId = 1,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6341),
|
||||||
|
Text = "With great power comes great responsibility."
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
ContactId = 2,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6345),
|
||||||
|
Text = "I'm Iron Man."
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
ContactId = 3,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6346),
|
||||||
|
Text = "I'm Batman!."
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Note", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BlazorSyncfusionCrm.Shared.Contact", "Contact")
|
||||||
|
.WithMany("Notes")
|
||||||
|
.HasForeignKey("ContactId");
|
||||||
|
|
||||||
|
b.Navigation("Contact");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Contact", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Notes");
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Server.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class Initial : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Contacts",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
FirstName = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
LastName = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
NickName = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
Place = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
DateOfBirth = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
DateCreated = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
DateUpdated = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
DateDeleted = table.Column<DateTime>(type: "datetime2", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Contacts", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "Notes",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<int>(type: "int", nullable: false)
|
||||||
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
|
Text = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
ContactId = table.Column<int>(type: "int", nullable: true),
|
||||||
|
DateCreated = table.Column<DateTime>(type: "datetime2", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Notes", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Notes_Contacts_ContactId",
|
||||||
|
column: x => x.ContactId,
|
||||||
|
principalTable: "Contacts",
|
||||||
|
principalColumn: "Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.InsertData(
|
||||||
|
table: "Contacts",
|
||||||
|
columns: new[] { "Id", "DateCreated", "DateDeleted", "DateOfBirth", "DateUpdated", "FirstName", "IsDeleted", "LastName", "NickName", "Place" },
|
||||||
|
values: new object[,]
|
||||||
|
{
|
||||||
|
{ 1, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6043), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(2001, 8, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), "Peter", false, "Parker", "Spider-Man", "New York City" },
|
||||||
|
{ 2, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6047), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(1970, 5, 29, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), "Tony", false, "Stark", "Iron Man", "Malibu" },
|
||||||
|
{ 3, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6050), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(1915, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified), new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), "Bruce", false, "Wayne", "Batman", "Gotham City" }
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.InsertData(
|
||||||
|
table: "Notes",
|
||||||
|
columns: new[] { "Id", "ContactId", "DateCreated", "Text" },
|
||||||
|
values: new object[,]
|
||||||
|
{
|
||||||
|
{ 1, 1, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6341), "With great power comes great responsibility." },
|
||||||
|
{ 2, 2, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6345), "I'm Iron Man." },
|
||||||
|
{ 3, 3, new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6346), "I'm Batman!." }
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Notes_ContactId",
|
||||||
|
table: "Notes",
|
||||||
|
column: "ContactId");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Notes");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Contacts");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,174 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using BlazorSyncfusionCrm.Server.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Server.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(DataContext))]
|
||||||
|
partial class DataContextModelSnapshot : ModelSnapshot
|
||||||
|
{
|
||||||
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "8.0.0-preview.3.23174.2")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||||
|
|
||||||
|
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Contact", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateCreated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateDeleted")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DateOfBirth")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateUpdated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<string>("FirstName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDeleted")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<string>("LastName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("NickName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Place")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.ToTable("Contacts");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6043),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(2001, 8, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Peter",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Parker",
|
||||||
|
NickName = "Spider-Man",
|
||||||
|
Place = "New York City"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6047),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(1970, 5, 29, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Tony",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Stark",
|
||||||
|
NickName = "Iron Man",
|
||||||
|
Place = "Malibu"
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6050),
|
||||||
|
DateDeleted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateOfBirth = new DateTime(1915, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
DateUpdated = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
|
||||||
|
FirstName = "Bruce",
|
||||||
|
IsDeleted = false,
|
||||||
|
LastName = "Wayne",
|
||||||
|
NickName = "Batman",
|
||||||
|
Place = "Gotham City"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Note", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int?>("ContactId")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DateCreated")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<string>("Text")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("ContactId");
|
||||||
|
|
||||||
|
b.ToTable("Notes");
|
||||||
|
|
||||||
|
b.HasData(
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 1,
|
||||||
|
ContactId = 1,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6341),
|
||||||
|
Text = "With great power comes great responsibility."
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 2,
|
||||||
|
ContactId = 2,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6345),
|
||||||
|
Text = "I'm Iron Man."
|
||||||
|
},
|
||||||
|
new
|
||||||
|
{
|
||||||
|
Id = 3,
|
||||||
|
ContactId = 3,
|
||||||
|
DateCreated = new DateTime(2023, 4, 17, 10, 8, 30, 665, DateTimeKind.Local).AddTicks(6346),
|
||||||
|
Text = "I'm Batman!."
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Note", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("BlazorSyncfusionCrm.Shared.Contact", "Contact")
|
||||||
|
.WithMany("Notes")
|
||||||
|
.HasForeignKey("ContactId");
|
||||||
|
|
||||||
|
b.Navigation("Contact");
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("BlazorSyncfusionCrm.Shared.Contact", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Notes");
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
33
BlazorSyncfusionCrm/Server/Program.cs
Normal file
33
BlazorSyncfusionCrm/Server/Program.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using BlazorSyncfusionCrm.Server.Data;
|
||||||
|
using Microsoft.AspNetCore.ResponseCompression;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
builder.Services.AddControllersWithViews();
|
||||||
|
builder.Services.AddRazorPages();
|
||||||
|
builder.Services.AddDbContext<DataContext>();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseWebAssemblyDebugging();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||||
|
app.UseHsts();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
app.UseBlazorFrameworkFiles();
|
||||||
|
app.UseStaticFiles();
|
||||||
|
|
||||||
|
app.UseRouting();
|
||||||
|
|
||||||
|
app.MapRazorPages();
|
||||||
|
app.MapControllers();
|
||||||
|
app.MapFallbackToFile("index.html");
|
||||||
|
|
||||||
|
app.Run();
|
||||||
44
BlazorSyncfusionCrm/Server/Properties/launchSettings.json
Normal file
44
BlazorSyncfusionCrm/Server/Properties/launchSettings.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||||
|
"applicationUrl": "http://localhost:5229"
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||||
|
"applicationUrl": "https://localhost:7031;http://localhost:5229"
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
},
|
||||||
|
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:57610",
|
||||||
|
"sslPort": 44334
|
||||||
|
},
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:53859/",
|
||||||
|
"sslPort": 44311
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
8
BlazorSyncfusionCrm/Server/appsettings.Development.json
Normal file
8
BlazorSyncfusionCrm/Server/appsettings.Development.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
BlazorSyncfusionCrm/Server/appsettings.json
Normal file
9
BlazorSyncfusionCrm/Server/appsettings.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
12
BlazorSyncfusionCrm/Shared/BlazorSyncfusionCrm.Shared.csproj
Normal file
12
BlazorSyncfusionCrm/Shared/BlazorSyncfusionCrm.Shared.csproj
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<SupportedPlatform Include="browser" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
27
BlazorSyncfusionCrm/Shared/Contact.cs
Normal file
27
BlazorSyncfusionCrm/Shared/Contact.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Shared
|
||||||
|
{
|
||||||
|
public class Contact
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string FirstName { get; set; } = string.Empty;
|
||||||
|
public string LastName { get; set; } = string.Empty;
|
||||||
|
public string NickName { get; set; } = string.Empty;
|
||||||
|
public string Place { get; set; } = string.Empty;
|
||||||
|
public bool IsDeleted { get; set; }
|
||||||
|
public DateTime? DateOfBirth { get; set; }
|
||||||
|
public DateTime DateCreated { get; set; } = DateTime.Now;
|
||||||
|
public DateTime DateUpdated { get; set; }
|
||||||
|
public DateTime DateDeleted { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<Note> Notes { get; set; } = new List<Note>();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
17
BlazorSyncfusionCrm/Shared/Note.cs
Normal file
17
BlazorSyncfusionCrm/Shared/Note.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BlazorSyncfusionCrm.Shared
|
||||||
|
{
|
||||||
|
public class Note
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public required string Text { get; set; }
|
||||||
|
public int? ContactId { get; set; }
|
||||||
|
public Contact? Contact { get; set; }
|
||||||
|
public DateTime DateCreated { get; set;} = DateTime.Now;
|
||||||
|
}
|
||||||
|
}
|
||||||
1
BlazorSyncfusionCrm/Shared/SharedClass.cs
Normal file
1
BlazorSyncfusionCrm/Shared/SharedClass.cs
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* Shared classes can be referenced by both the Client and Server */
|
||||||
Reference in New Issue
Block a user