Skip to content

Commit a398f18

Browse files
author
pmosk
committed
Not to show disabled users
1 parent a1696ea commit a398f18

File tree

7 files changed

+19
-12
lines changed

7 files changed

+19
-12
lines changed

src/service/CrmContact/Api/Api.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<ItemGroup>
1818
<PackageReference Include="EarlyFuncPack.Core.AsyncPipeline" Version="0.3.0" />
1919
<PackageReference Include="GarageGroup.Infra.Dataverse.Api.Abstractions.Search" Version="3.8.2" />
20+
<PackageReference Include="GarageGroup.Infra.Dataverse.Api.Filter" Version="0.1.1" />
2021
<PackageReference Include="GarageGroup.Infra.Sql.Api.Abstractions.QueryEntitySet" Version="2.0.0" />
2122
<PackageReference Include="GarageGroup.Infra.Sql.Api.Core.DbRequest" Version="2.0.0" />
2223
<PackageReference Include="PrimeFuncPack.Core.Optional" Version="2.1.0" />

src/service/CrmContact/Api/Api/Api.Search.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public ValueTask<Result<ContactSetSearchOut, Failure<ContactSetGetFailureCode>>>
1717
static @in => new DataverseSearchIn($"*{@in.SearchText}*")
1818
{
1919
Entities = ContactSetSearchEntities,
20-
Filter = $"parentcustomerid eq '{@in.CustomerId:D}'",
20+
Filter = new DataverseComparisonFilter("parentcustomerid", DataverseComparisonOperator.Equal, @in.CustomerId),
2121
Top = @in.Top
2222
})
2323
.PipeValue(

src/service/CrmOwner/Api/Api/Api.GetLast.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Linq;
32
using System.Threading;
43
using System.Threading.Tasks;
54
using GarageGroup.Infra;
@@ -21,9 +20,9 @@ public ValueTask<Result<LastOwnerSetGetOut, Failure<OwnerSetGetFailureCode>>> Ge
2120
Filter = new DbCombinedFilter(DbLogicalOperator.And)
2221
{
2322
Filters = new(
24-
DbIncidentOwner.OwnerNotNullFilter,
2523
DbIncidentOwner.BuildCurrentUserIdFilter(@in.UserId),
26-
DbIncidentOwner.BuildCustomerIdFilter(@in.CustomerId))
24+
DbIncidentOwner.BuildCustomerIdFilter(@in.CustomerId),
25+
DbIncidentOwner.EnabledUserFilter)
2726
},
2827
Orders = DbIncidentOwner.DefaultOrders
2928
})

src/service/CrmOwner/Api/Internal.DbIncidentOwner/DbIncidentOwner.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
namespace GarageGroup.Internal.Support;
44

55
[DbEntity("incident", AliasName)]
6+
[DbJoin(DbJoinType.Inner, "systemuser", UserAlias, $"{UserAlias}.systemuserid = {OwnerIdFieldName}")]
67
internal sealed partial record class DbIncidentOwner : IDbEntity<DbIncidentOwner>
78
{
89
private const string All = "QueryAll";
910

1011
private const string AliasName = "i";
1112

13+
private const string UserAlias = "u";
14+
1215
private const string OwnerIdFieldName = $"{AliasName}.ownerid";
1316

1417
private const string MaxCreatedOnParameter = "MaxCreatedOn";

src/service/CrmOwner/Api/Internal.DbIncidentOwner/Owner.Field.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ public static FlatArray<string> AllSelectedFields
1313
[DbSelect(All, AliasName, OwnerIdFieldName, GroupBy = true)]
1414
public Guid OwnerId { get; init; }
1515

16-
[DbSelect(All, AliasName, $"{AliasName}.owneridname", GroupBy = true)]
16+
[DbSelect(All, UserAlias, $"{UserAlias}.fullname", GroupBy = true)]
1717
public string? OwnerName { get; init; }
1818
}

src/service/CrmOwner/Api/Internal.DbIncidentOwner/Owner.Filter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ namespace GarageGroup.Internal.Support;
55

66
partial record class DbIncidentOwner
77
{
8-
internal static readonly DbRawFilter OwnerNotNullFilter
8+
internal static readonly DbRawFilter EnabledUserFilter
99
=
10-
new($"{OwnerIdFieldName} IS NOT NULL");
10+
new($"{UserAlias}.isdisabled = 0");
1111

1212
internal static DbParameterFilter BuildCurrentUserIdFilter(Guid currentUserId)
1313
=>

src/service/CrmOwner/Test/Test.Api/Test.GetLast.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,24 @@ public static async Task GetLastAsync_InputIsNotNull_ExpectSqlApiCalledOnce()
4242
var expectedQuery = new DbSelectQuery("incident", "i")
4343
{
4444
Top = 11,
45-
SelectedFields = new("i.ownerid AS OwnerId", "i.owneridname AS OwnerName", "MAX(i.createdon) AS MaxCreatedOn"),
45+
SelectedFields = new("i.ownerid AS OwnerId", "u.fullname AS OwnerName", "MAX(i.createdon) AS MaxCreatedOn"),
4646
Filter = new DbCombinedFilter(DbLogicalOperator.And)
4747
{
4848
Filters = new IDbFilter[]
4949
{
50-
new DbRawFilter(
51-
"i.ownerid IS NOT NULL"),
5250
new DbParameterFilter(
5351
"i.ownerid", DbFilterOperator.Inequal, Guid.Parse("71cbe0d9-a715-4bf3-bb0c-bb02e343d569"), "currentUserId"),
5452
new DbParameterFilter(
55-
"i.customerid", DbFilterOperator.Equal, Guid.Parse("4a8f89de-3a0f-4952-9a92-7421b2a72405"), "customerId")
53+
"i.customerid", DbFilterOperator.Equal, Guid.Parse("4a8f89de-3a0f-4952-9a92-7421b2a72405"), "customerId"),
54+
new DbRawFilter(
55+
"u.isdisabled = 0")
5656
}
5757
},
58-
GroupByFields = new("i.ownerid", "i.owneridname"),
58+
JoinedTables = new DbJoinedTable[]
59+
{
60+
new(DbJoinType.Inner, "systemuser", "u", new DbRawFilter("u.systemuserid = i.ownerid"))
61+
},
62+
GroupByFields = new("i.ownerid", "u.fullname"),
5963
Orders = new DbOrder[]
6064
{
6165
new("MaxCreatedOn", DbOrderType.Descending)

0 commit comments

Comments
 (0)