Skip to content

Commit 0dbb258

Browse files
committed
merge
2 parents e80a2e0 + 8185baf commit 0dbb258

25 files changed

+588
-508
lines changed

CargoHub/LogTransferData.csv

-13
This file was deleted.

CargoHub/Models/Client.cs

+18-9
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,27 @@ namespace CargoHub.Models
44
{
55
public class Client : BaseModel
66
{
7-
public required string Name { get; set; }
8-
public required string Address { get; set; }
9-
public required string City { get; set; }
7+
[JsonPropertyName("name")]
8+
public required string? Name { get; set; }
9+
[JsonPropertyName("address")]
10+
11+
public required string? Address { get; set; }
12+
[JsonPropertyName("city")]
13+
14+
public required string? City { get; set; }
1015
[JsonPropertyName("zip_code")]
11-
public required string ZipCode { get; set; }
12-
public required string Province { get; set; }
13-
public required string Country { get; set; }
16+
public required string? ZipCode { get; set; }
17+
[JsonPropertyName("province")]
18+
19+
public required string? Province { get; set; }
20+
[JsonPropertyName("country")]
21+
22+
public required string? Country { get; set; }
1423
[JsonPropertyName("contact_name")]
15-
public required string ContactName { get; set; }
24+
public required string? ContactName { get; set; }
1625
[JsonPropertyName("contact_phone")]
17-
public required string ContactPhone { get; set; }
26+
public required string? ContactPhone { get; set; }
1827
[JsonPropertyName("contact_email")]
19-
public required string ContactEmail { get; set; }
28+
public required string? ContactEmail { get; set; }
2029
}
2130
}

CargoHub/Models/Inventory.cs

+11-10
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,32 @@ public class Inventory : BaseModel
1010
{
1111

1212
[JsonPropertyName("item_id")]
13-
public required string ItemId { get; set; }
14-
15-
public required string Description { get; set; }
13+
public required string? ItemId { get; set; }
14+
[JsonPropertyName("description")]
15+
16+
public required string? Description { get; set; }
1617

1718
[JsonPropertyName("item_reference")]
18-
public required string ItemReference { get; set; }
19+
public required string? ItemReference { get; set; }
1920
[JsonPropertyName("locations")]
2021
[NotMapped]
21-
public required List<int> LocationIds { get; set; } = [];
22+
public required List<int?> LocationIds { get; set; } = [];
2223
[JsonIgnore]
2324
public ICollection<Location> Locations { get; set; } = [];
2425

2526
[JsonPropertyName("total_on_hand")]
26-
public required int TotalOnHand { get; set; }
27+
public required int? TotalOnHand { get; set; }
2728

2829
[JsonPropertyName("total_expected")]
29-
public required int TotalExpected { get; set; }
30+
public required int? TotalExpected { get; set; }
3031

3132
[JsonPropertyName("total_ordered")]
32-
public required int TotalOrdered { get; set; }
33+
public required int? TotalOrdered { get; set; }
3334

3435
[JsonPropertyName("total_allocated")]
35-
public required int TotalAllocated { get; set; }
36+
public required int? TotalAllocated { get; set; }
3637

3738
[JsonPropertyName("total_available")]
38-
public required int TotalAvailable { get; set; }
39+
public required int? TotalAvailable { get; set; }
3940
}
4041
}

CargoHub/Models/Item.cs

+9-9
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@ public class Item : BaseModel, IContainsClassification
1414
[Key]
1515
[JsonPropertyName("uid")]
1616

17-
public string Uid { get; set; } = string.Empty;
17+
public string? Uid { get; set; } = string.Empty;
1818
[JsonPropertyName("code")]
1919

20-
public required string Code { get; set; }
20+
public required string? Code { get; set; }
2121
[JsonPropertyName("description")]
22-
public required string Description { get; set; }
22+
public required string? Description { get; set; }
2323

2424
[JsonPropertyName("short_description")]
25-
public required string ShortDescription { get; set; }
25+
public required string? ShortDescription { get; set; }
2626

2727
[JsonPropertyName("upc_code")]
28-
public required string UpcCode { get; set; }
28+
public required string? UpcCode { get; set; }
2929

3030
[JsonPropertyName("model_number")]
31-
public required string ModelNumber { get; set; }
31+
public required string? ModelNumber { get; set; }
3232

3333
[JsonPropertyName("commodity_code")]
34-
public required string CommodityCode { get; set; }
34+
public required string? CommodityCode { get; set; }
3535

3636
[JsonPropertyName("item_line")]
3737
public required int ItemLine { get; set; }
@@ -55,10 +55,10 @@ public class Item : BaseModel, IContainsClassification
5555
public required int SupplierId { get; set; }
5656

5757
[JsonPropertyName("supplier_code")]
58-
public required string SupplierCode { get; set; }
58+
public required string? SupplierCode { get; set; }
5959

6060
[JsonPropertyName("supplier_part_number")]
61-
public required string SupplierPartNumber { get; set; }
61+
public required string? SupplierPartNumber { get; set; }
6262

6363
[JsonIgnore]
6464
public List<Classification> Classifications { get; set; } = [];

CargoHub/Models/ItemGroup.cs

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ namespace CargoHub.Models
55
{
66
public class ItemGroup : BaseModel
77
{
8-
public required string Name {get;set;}
9-
public required string Description {get;set;}
8+
[JsonPropertyName("name")]
9+
public required string? Name {get;set;}
10+
[JsonPropertyName("description")]
11+
12+
public required string? Description {get;set;}
1013
}
1114
}

CargoHub/Models/ItemLine.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ namespace CargoHub.Models
55
{
66
public class ItemLine : BaseModel
77
{
8-
public required string Name {get;set;}
9-
public required string Description {get;set;}
8+
[JsonPropertyName("name")]
9+
10+
public required string? Name {get;set;}
11+
[JsonPropertyName("description")]
12+
13+
public required string? Description {get;set;}
1014
}
1115
}

CargoHub/Models/ItemType.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ namespace CargoHub.Models
55

66
public class ItemType : BaseModel
77
{
8-
public required string Name {get;set;}
9-
public required string Description {get;set;}
8+
[JsonPropertyName("name")]
9+
10+
public required string? Name {get;set;}
11+
[JsonPropertyName("description")]
12+
13+
public required string? Description {get;set;}
1014
}
1115
}
1216

CargoHub/Models/Location.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ public class Location : BaseModel, IContainsClassification
1717
public string? Code { get; set; } // Nullable based on provided JSON
1818
[JsonIgnore]
1919
public ICollection<Inventory> Inventories { get; } = [];
20-
public required string Name { get; set; }
20+
[JsonPropertyName("name")]
21+
22+
public required string? Name { get; set; }
2123
[JsonIgnore]
2224
public List<Classification> Classifications { get; set; } = [];
2325
}

CargoHub/Models/Order.cs

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class Order : IContainsClassification
3737
// Avoid serializing the OrderItems navigation property
3838

3939
public List<OrderItem>? OrderItems { get; set; } = new List<OrderItem>();
40+
[JsonIgnore]
4041
public List<Classification> Classifications { get; set; } = [];
4142
[JsonPropertyOrder(-1)]
4243
[JsonPropertyName("id")]

CargoHub/Models/Supplier.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ public class Supplier : BaseModel, IContainsClassification
1313
[JsonPropertyName("address")]
1414

1515
public required string? Address { get; set; }
16+
17+
1618
[JsonPropertyName("address_extra")]
1719
public required string? AddressExtra { get; set; }
1820
[JsonPropertyName("city")]
1921
public required string? City { get; set; }
22+
2023
[JsonPropertyName("zip_code")]
2124
public required string? ZipCode { get; set; }
2225
[JsonPropertyName("province")]
@@ -25,7 +28,6 @@ public class Supplier : BaseModel, IContainsClassification
2528
[JsonPropertyName("country")]
2629

2730
public required string? Country { get; set; }
28-
2931
[JsonPropertyName("contact_name")]
3032
public required string? ContactName { get; set; }
3133
[JsonPropertyName("phonenumber")]
@@ -37,4 +39,4 @@ public class Supplier : BaseModel, IContainsClassification
3739
[JsonIgnore]
3840
public List<Classification> Classifications { get; set; } = [];
3941
}
40-
}
42+
}

CargoHub/Models/Transfer.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ namespace CargoHub.Models
77
{
88
public class Transfer : BaseModel, IContainsClassification
99
{
10-
public required string Reference { get; set; }
10+
[JsonPropertyName("reference")]
11+
12+
public required string? Reference { get; set; }
1113
[JsonPropertyName("transfer_from")]
12-
public required int TransferFrom { get; set; }
14+
public required int? TransferFrom { get; set; }
1315
[JsonPropertyName("transfer_to")]
14-
public required int TransferTo { get; set; }
16+
public required int? TransferTo { get; set; }
1517
[JsonPropertyName("transfer_status")]
1618
public string? TransferStatus { get; set; }
1719

CargoHub/Models/TransferData.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ namespace CargoHub.Models
33

44
public class TransferData
55
{
6-
public string File { get; set; }
7-
public string DateOfTransfer { get; set; }
6+
public string? File { get; set; }
7+
public string? DateOfTransfer { get; set; }
88
public int RowsChanged { get; set; }
9-
public string TransferTime { get; set; }
10-
public string Error { get; set; }
9+
public string? TransferTime { get; set; }
10+
public string? Error { get; set; }
1111

1212
public TransferData(string file, string dateOfTransfer, int rows, string transferTime, string error)
1313
{

CargoHub/Models/Warehouse.cs

+26-11
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,36 @@ namespace CargoHub.Models
55
{
66
public class Warehouse : BaseModel, IContainsClassification
77
{
8-
public required string Code { get; set; }
9-
public required string Name { get; set; }
10-
public required string Address { get; set; }
11-
public required string Zip { get; set; }
12-
public required string City { get; set; }
13-
public required string Province { get; set; }
14-
public required string Country { get; set; }
8+
[JsonPropertyName("code")]
9+
10+
public required string? Code { get; set; }
11+
[JsonPropertyName("name")]
12+
13+
public required string? Name { get; set; }
14+
[JsonPropertyName("address")]
15+
16+
public required string? Address { get; set; }
17+
[JsonPropertyName("zip")]
18+
19+
public required string? Zip { get; set; }
20+
[JsonPropertyName("city")]
21+
22+
public required string? City { get; set; }
23+
[JsonPropertyName("province")]
24+
25+
public required string? Province { get; set; }
26+
[JsonPropertyName("country")]
27+
28+
public required string? Country { get; set; }
29+
1530
[JsonIgnore]
16-
public string ContactName { get; set; } = string.Empty;
31+
public string? ContactName { get; set; } = string.Empty;
1732

1833
[JsonIgnore]
19-
public string ContactPhone { get; set; } = string.Empty;
34+
public string? ContactPhone { get; set; } = string.Empty;
2035

2136
[JsonIgnore]
22-
public string ContactEmail { get; set; } = string.Empty;
37+
public string? ContactEmail { get; set; } = string.Empty;
2338

2439
[NotMapped]
2540
// Contact dictionary for JSON serialization/deserialization
@@ -45,7 +60,7 @@ public class Warehouse : BaseModel, IContainsClassification
4560
}
4661

4762
[JsonIgnore]
48-
public ICollection<Location> Locations { get; } = [];
63+
public ICollection<Location> Locations { get; } = [];
4964
[JsonIgnore]
5065
public List<Classification> Classifications { get; set; } = [];
5166
}

CargoHub/Rest/Migrate.rest

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22

33
POST {{baseUrl}}?FolderName=data
44

5+

CargoHub/Services/APIKeyService.cs

+12
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using System.Text;
44
using CargoHub.Enums;
55
using CargoHub.Models;
6+
using Microsoft.EntityFrameworkCore;
7+
using Microsoft.EntityFrameworkCore.Metadata.Internal;
68

79
namespace CargoHub.Services
810
{
@@ -39,5 +41,15 @@ public bool VerifyApiKey(string rawApiKey)
3941

4042
return apiKey != null; // Return true if a match is found
4143
}
44+
45+
public async Task<RolesEnum.Roles?> GetRoleForApiKey(string ApiKey)
46+
{
47+
APIKey? key = await _context.APIKeys.FirstOrDefaultAsync(key => key.HashedApiKey == HashString(ApiKey));
48+
if (key != null)
49+
{
50+
return key.UserRole;
51+
}
52+
return null;
53+
}
4254
}
4355
}
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
// using CargoHub.Enums;
3+
// using Microsoft.AspNetCore.Mvc.Filters;
4+
5+
// namespace CargoHub.Services
6+
// {
7+
// public class AuthorizationFilter : Attribute, IAsyncActionFilter
8+
// {
9+
// private readonly Dictionary<RolesEnum.Roles, List<string>> _roles = new Dictionary<RolesEnum.Roles, List<string>>(){
10+
// {RolesEnum.Roles.WarehouseManager, new List<string>(){"api/v2/ItemGroups","api/v2/ItemLines", "api/v2/Warehouses", "api/v2/Locations", "api/v2/ItemTypes", "api/v2/Transfer", "api/v2/Classifications"}},
11+
// {RolesEnum.Roles.FloorManager, new List<string>(){ "api/v2/[Controller]", "", "",}}
12+
// };
13+
// public async Task OnActionExecutionAsync(ActionExecutingContext _context, ActionExecutionDelegate next)
14+
// {
15+
// RolesEnum.Roles[] ApiRoles = []
16+
// var context = _context.HttpContext;
17+
// string? ApiKey = context.Request.Headers["ApiKey"].FirstOrDefault();
18+
// if (ApiKey == null)
19+
// {
20+
// context.Response.StatusCode = 401;
21+
// context.Response.ContentType = "text/plain";
22+
// await context.Response.WriteAsync("Unauthorized: API key is missing.");
23+
// return;
24+
// }
25+
// var apiKeyService = context.RequestServices.GetService<APIKeyService>();
26+
// bool KeyExists = apiKeyService.VerifyApiKey(ApiKey);
27+
// if (!KeyExists)
28+
// {
29+
// context.Response.StatusCode = 401;
30+
// context.Response.ContentType = "text/plain";
31+
// await context.Response.WriteAsync("Unknown or inactive Api key");
32+
// }
33+
// RolesEnum.Roles? UserRole = await apiKeyService.GetRoleForApiKey(ApiKey);
34+
// UserRole.
35+
36+
37+
// }
38+
// }
39+
// }

0 commit comments

Comments
 (0)