Skip to content

Commit d4a381c

Browse files
First commit
1 parent c321bea commit d4a381c

File tree

72 files changed

+34410
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+34410
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.28729.10
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jQueryDatatableServerSideNetCore22", "jQueryDatatableServerSideNetCore22\jQueryDatatableServerSideNetCore22.csproj", "{E7F44EA0-FE27-44DD-80A6-8931052A4005}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{E7F44EA0-FE27-44DD-80A6-8931052A4005}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{E7F44EA0-FE27-44DD-80A6-8931052A4005}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{E7F44EA0-FE27-44DD-80A6-8931052A4005}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{E7F44EA0-FE27-44DD-80A6-8931052A4005}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {3BB5194C-C2FC-4A39-90B6-4863FC15E091}
24+
EndGlobalSection
25+
EndGlobal
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/AutoDetectedNamingRules/=Method/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
3+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/AutoDetectedNamingRules/=Parameters/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
4+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/AutoDetectedNamingRules/=Locals/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
5+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/AutoDetectedNamingRules/=Property/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
6+
<s:Int64 x:Key="/Default/CodeStyle/Naming/CSharpAutoNaming/AutoNamingCompletedVersion/@EntryValue">2</s:Int64></wpf:ResourceDictionary>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@{
2+
Layout = "/Views/Shared/_Layout.cshtml";
3+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
using Microsoft.AspNetCore.Mvc;
7+
using jQueryDatatableServerSideNetCore22.Models;
8+
9+
namespace jQueryDatatableServerSideNetCore22.Controllers
10+
{
11+
public class HomeController : Controller
12+
{
13+
public IActionResult Index()
14+
{
15+
return View();
16+
}
17+
18+
public IActionResult Privacy()
19+
{
20+
return View();
21+
}
22+
23+
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
24+
public IActionResult Error()
25+
{
26+
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
27+
}
28+
}
29+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
using jQueryDatatableServerSideNetCore22.Data;
2+
using jQueryDatatableServerSideNetCore22.Extensions;
3+
using jQueryDatatableServerSideNetCore22.Models.AuxiliaryModels;
4+
using jQueryDatatableServerSideNetCore22.Models.DatabaseModels;
5+
using Microsoft.AspNetCore.Mvc;
6+
using Microsoft.EntityFrameworkCore;
7+
using RandomGen;
8+
using System;
9+
using System.Linq;
10+
using System.Threading.Tasks;
11+
12+
namespace jQueryDatatableServerSideNetCore22.Controllers
13+
{
14+
public class TestRegistersController : Controller
15+
{
16+
private readonly ApplicationDbContext _context;
17+
18+
public TestRegistersController(ApplicationDbContext context)
19+
{
20+
_context = context;
21+
}
22+
23+
// GET: TestRegisters
24+
public async Task<IActionResult> Index()
25+
{
26+
await SeedData();
27+
28+
return View();
29+
}
30+
31+
[HttpPost]
32+
public async Task<IActionResult> LoadTable([FromBody]DTParameters dtParameters)
33+
{
34+
var searchBy = dtParameters.Search?.Value;
35+
36+
var orderCriteria = string.Empty;
37+
var orderAscendingDirection = true;
38+
39+
if (dtParameters.Order != null)
40+
{
41+
// in this example we just default sort on the 1st column
42+
orderCriteria = dtParameters.Columns[dtParameters.Order[0].Column].Data;
43+
orderAscendingDirection = dtParameters.Order[0].Dir.ToString().ToLower() == "asc";
44+
}
45+
else
46+
{
47+
// if we have an empty search then just order the results by Id ascending
48+
orderCriteria = "Id";
49+
orderAscendingDirection = true;
50+
}
51+
52+
var result = await _context.TestRegisters.ToListAsync();
53+
54+
if (!string.IsNullOrEmpty(searchBy))
55+
{
56+
result = result.Where(r => r.Name != null && r.Name.ToUpper().Contains(searchBy.ToUpper()) ||
57+
r.FirstSurname != null && r.FirstSurname.ToUpper().Contains(searchBy.ToUpper()) ||
58+
r.SecondSurname != null && r.SecondSurname.ToUpper().Contains(searchBy.ToUpper()) ||
59+
r.Street != null && r.Street.ToUpper().Contains(searchBy.ToUpper()) ||
60+
r.Phone != null && r.Phone.ToUpper().Contains(searchBy.ToUpper()) ||
61+
r.ZipCode != null && r.ZipCode.ToUpper().Contains(searchBy.ToUpper()) ||
62+
r.Country != null && r.Country.ToUpper().Contains(searchBy.ToUpper()) ||
63+
r.Notes != null && r.Notes.ToUpper().Contains(searchBy.ToUpper()))
64+
.ToList();
65+
}
66+
67+
result = orderAscendingDirection ? result.AsQueryable().OrderByDynamic(orderCriteria, LinqExtensions.Order.Asc).ToList() : result.AsQueryable().OrderByDynamic(orderCriteria, LinqExtensions.Order.Desc).ToList();
68+
69+
// now just get the count of items (without the skip and take) - eg how many could be returned with filtering
70+
var filteredResultsCount = result.Count();
71+
var totalResultsCount = await _context.TestRegisters.CountAsync();
72+
73+
return Json(new
74+
{
75+
draw = dtParameters.Draw,
76+
recordsTotal = totalResultsCount,
77+
recordsFiltered = filteredResultsCount,
78+
data = result
79+
.Skip(dtParameters.Start)
80+
.Take(dtParameters.Length)
81+
.ToList()
82+
});
83+
}
84+
85+
public async Task SeedData()
86+
{
87+
if (!_context.TestRegisters.Any())
88+
{
89+
for (var i = 0; i < 1000; i++)
90+
{
91+
await _context.TestRegisters.AddAsync(new TestRegister
92+
{
93+
Name = i % 2 == 0 ? Gen.Random.Names.Male()() : Gen.Random.Names.Female()(),
94+
FirstSurname = Gen.Random.Names.Surname()(),
95+
SecondSurname = Gen.Random.Names.Surname()(),
96+
Street = Gen.Random.Names.Full()(),
97+
Phone = Gen.Random.PhoneNumbers.WithRandomFormat()(),
98+
ZipCode = Gen.Random.Numbers.Integers(10000, 99999)().ToString(),
99+
Country = Gen.Random.Countries()(),
100+
Notes = Gen.Random.Text.Short()(),
101+
CreationDate = Gen.Random.Time.Dates(DateTime.Now.AddYears(-100), DateTime.Now)()
102+
});
103+
}
104+
105+
await _context.SaveChangesAsync();
106+
}
107+
}
108+
}
109+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using jQueryDatatableServerSideNetCore22.Models.DatabaseModels;
2+
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore;
4+
5+
namespace jQueryDatatableServerSideNetCore22.Data
6+
{
7+
public class ApplicationDbContext : IdentityDbContext
8+
{
9+
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
10+
: base(options)
11+
{
12+
}
13+
14+
public DbSet<TestRegister> TestRegisters { get; set; }
15+
}
16+
}

0 commit comments

Comments
 (0)