Skip to content

Commit 758b0b7

Browse files
committed
update layout for pages
1 parent 6bf518c commit 758b0b7

File tree

20 files changed

+887
-177
lines changed

20 files changed

+887
-177
lines changed

coolstore.sln.DotSettings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<s:Boolean x:Key="/Default/UserDictionary/Words/=Dapr/@EntryIndexedValue">True</s:Boolean>
55
<s:Boolean x:Key="/Default/UserDictionary/Words/=dbcontext/@EntryIndexedValue">True</s:Boolean>
66
<s:Boolean x:Key="/Default/UserDictionary/Words/=Dtos/@EntryIndexedValue">True</s:Boolean>
7+
<s:Boolean x:Key="/Default/UserDictionary/Words/=exprs/@EntryIndexedValue">True</s:Boolean>
78
<s:Boolean x:Key="/Default/UserDictionary/Words/=Grpc/@EntryIndexedValue">True</s:Boolean>
89
<s:Boolean x:Key="/Default/UserDictionary/Words/=Mediat/@EntryIndexedValue">True</s:Boolean>
910
<s:Boolean x:Key="/Default/UserDictionary/Words/=Migrator/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

src/BuildingBlocks/N8T.Core/Specification/GridSpecificationBase.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq.Expressions;
4+
using N8T.Core.Domain;
45

56
namespace N8T.Core.Specification
67
{
@@ -17,16 +18,49 @@ public abstract class GridSpecificationBase<T> : IGridSpecification<T>
1718
public int Skip { get; private set; }
1819
public bool IsPagingEnabled { get; set; }
1920

21+
protected void ApplyIncludeList(IEnumerable<Expression<Func<T, object>>> includes)
22+
{
23+
foreach (var include in includes)
24+
{
25+
AddInclude(include);
26+
}
27+
}
28+
2029
protected void AddInclude(Expression<Func<T, object>> includeExpression)
2130
{
2231
Includes.Add(includeExpression);
2332
}
2433

34+
protected void ApplyIncludeList(IEnumerable<string> includes)
35+
{
36+
foreach (var include in includes)
37+
{
38+
AddInclude(include);
39+
}
40+
}
41+
2542
protected void AddInclude(string includeString)
2643
{
2744
IncludeStrings.Add(includeString);
2845
}
2946

47+
protected IGridSpecification<T> ApplyFilterList(IEnumerable<FilterModel> filters)
48+
{
49+
foreach (var (fieldName, comparision, fieldValue) in filters)
50+
{
51+
ApplyFilter(PredicateBuilder.Build<T>(fieldName, comparision, fieldValue));
52+
}
53+
54+
return this;
55+
}
56+
57+
protected IGridSpecification<T> ApplyFilter(Expression<Func<T, bool>> expr)
58+
{
59+
Criterias.Add(expr);
60+
61+
return this;
62+
}
63+
3064
protected void ApplyPaging(int skip, int take)
3165
{
3266
Skip = skip;
@@ -43,6 +77,14 @@ protected void ApplyOrderByDescending(Expression<Func<T, object>> orderByDescend
4377
protected void ApplyGroupBy(Expression<Func<T, object>> groupByExpression) =>
4478
GroupBy = groupByExpression;
4579

80+
protected void ApplySortingList(IEnumerable<string> sorts)
81+
{
82+
foreach (var sort in sorts)
83+
{
84+
ApplySorting(sort);
85+
}
86+
}
87+
4688
protected void ApplySorting(string sort)
4789
{
4890
this.ApplySorting(sort, nameof(ApplyOrderBy), nameof(ApplyOrderByDescending));

src/BuildingBlocks/N8T.Infrastructure/LambdaExpression/PredicateBuilder.cs renamed to src/BuildingBlocks/N8T.Core/Specification/PredicateBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System.Linq;
44
using System.Linq.Expressions;
55

6-
namespace N8T.Infrastructure.LambdaExpression
6+
namespace N8T.Core.Specification
77
{
88
/// <summary>
99
/// https://codereview.stackexchange.com/questions/166460/chaining-multiple-predicates

src/BuildingBlocks/N8T.Core/Specification/SpecificationBase.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,27 @@ public abstract class SpecificationBase<T> : ISpecification<T>
1717
public int Skip { get; private set; }
1818
public bool IsPagingEnabled { get; private set; }
1919

20+
protected void ApplyIncludeList(IEnumerable<Expression<Func<T, object>>> includes)
21+
{
22+
foreach (var include in includes)
23+
{
24+
AddInclude(include);
25+
}
26+
}
27+
2028
protected void AddInclude(Expression<Func<T, object>> includeExpression)
2129
{
2230
Includes.Add(includeExpression);
2331
}
2432

33+
protected void ApplyIncludeList(IEnumerable<string> includes)
34+
{
35+
foreach (var include in includes)
36+
{
37+
AddInclude(include);
38+
}
39+
}
40+
2541
protected void AddInclude(string includeString)
2642
{
2743
IncludeStrings.Add(includeString);

src/BuildingBlocks/N8T.Infrastructure.EfCore/Repository.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using N8T.Core.Domain;
77
using N8T.Core.Repository;
88
using N8T.Core.Specification;
9-
using N8T.Infrastructure.LambdaExpression;
109

1110
namespace N8T.Infrastructure.EfCore
1211
{

src/Product/ProductService.Application/Queries/GetProductById.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
namespace ProductService.Application.Queries
1414
{
15-
public class GetProductById
15+
public static class GetProductById
1616
{
1717
public record Query : IItemQueryInput<Guid>, IQuery<ProductDto>
1818
{
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Diagnostics.CodeAnalysis;
23
using System.Linq.Expressions;
34
using N8T.Core.Domain;
45
using N8T.Core.Specification;
@@ -8,17 +9,15 @@ namespace ProductService.Core.Specifications
89
{
910
public sealed class ProductByIdQuerySpec : SpecificationBase<Product>
1011
{
11-
private readonly IItemQueryInput<Guid> _queryInput;
12+
private readonly Guid _id;
1213

13-
public ProductByIdQuerySpec(IItemQueryInput<Guid> queryInput)
14+
public ProductByIdQuerySpec([NotNull] IItemQueryInput<Guid> queryInput)
1415
{
15-
_queryInput = queryInput ?? throw new ArgumentNullException(nameof(queryInput));
16-
foreach (var include in queryInput.Includes)
17-
{
18-
AddInclude(include);
19-
}
16+
ApplyIncludeList(queryInput.Includes);
17+
18+
_id = queryInput.Id;
2019
}
2120

22-
public override Expression<Func<Product, bool>> Criteria => p => p.Id == _queryInput.Id;
21+
public override Expression<Func<Product, bool>> Criteria => p => p.Id == _id;
2322
}
2423
}

src/Product/ProductService.Core/Specifications/ProductListQuerySpec.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using N8T.Core.Domain;
22
using N8T.Core.Specification;
3-
using N8T.Infrastructure.LambdaExpression;
43
using ProductService.Core.Entities;
54

65
namespace ProductService.Core.Specifications
@@ -9,20 +8,11 @@ public sealed class ProductListQuerySpec : GridSpecificationBase<Product>
98
{
109
public ProductListQuerySpec(IListQueryInput gridQueryInput)
1110
{
12-
foreach (var include in gridQueryInput.Includes)
13-
{
14-
AddInclude(include);
15-
}
11+
ApplyIncludeList(gridQueryInput.Includes);
1612

17-
foreach (var (fieldName, comparision, fieldValue) in gridQueryInput.Filters)
18-
{
19-
Criterias.Add(PredicateBuilder.Build<Product>(fieldName, comparision, fieldValue));
20-
}
13+
ApplyFilterList(gridQueryInput.Filters);
2114

22-
foreach (var sort in gridQueryInput.Sorts)
23-
{
24-
ApplySorting(sort);
25-
}
15+
ApplySortingList(gridQueryInput.Sorts);
2616

2717
ApplyPaging(gridQueryInput.Page, gridQueryInput.PageSize);
2818
}

src/Web/assets/scss/main.scss

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,14 @@
22
// // Vendors variables override and path
33
@import "vendors/vendor";
44
@import "base/base";
5+
6+
#components-layout-demo-fixed .logo {
7+
float: left;
8+
width: 120px;
9+
height: 31px;
10+
margin: 16px 24px 16px 0;
11+
background: rgba(255, 255, 255, 0.2);
12+
}
13+
.site-layout .site-layout-background {
14+
background: #fff;
15+
}

src/Web/layout/MainLayout.jsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import React from "react";
2-
import { Container, Row, Col } from "reactstrap";
3-
import styled from "styled-components";
2+
import { Layout, Row, Col } from "antd";
43

54
/* Components */
65
import NavBar from "./nav/NavBar";
7-
import Footer from "./foot/Footer";
6+
import MyFooter from "./foot/MyFooter";
87

9-
const MyRow = styled(Row)`
10-
margin-top: 30px;
11-
`
8+
const { Header, Content, Footer } = Layout;
129

1310
function MainLayout(mainProps) {
1411
const { children } = mainProps;
@@ -17,13 +14,21 @@ function MainLayout(mainProps) {
1714

1815
return (
1916
<>
20-
<NavBar {...props} />
21-
<Container fluid>
22-
<MyRow>
23-
<Col>{children}</Col>
24-
</MyRow>
25-
</Container>
26-
<Footer />
17+
<Layout>
18+
<NavBar {...props} />
19+
<Content
20+
className="site-layout"
21+
style={{ padding: "0 50px", marginTop: 100 }}
22+
>
23+
<div
24+
className="site-layout-background"
25+
style={{ padding: 24, minHeight: 600 }}
26+
>
27+
{children}
28+
</div>
29+
</Content>
30+
<MyFooter />
31+
</Layout>
2732
</>
2833
);
2934
}

0 commit comments

Comments
 (0)