Skip to content

Commit 42f055b

Browse files
Merge branch 'main' of https://github.com/IgniteUI/NorthwindAPI into dgdimitrov/add-query-builder-package
2 parents dabd724 + 5661b8a commit 42f055b

File tree

6 files changed

+90
-18
lines changed

6 files changed

+90
-18
lines changed

NorthwindCRUD/Controllers/AuthController.cs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,71 @@ public ActionResult<string> Register(RegisterDto userModel)
8989
return StatusCode(500);
9090
}
9191
}
92+
93+
[AllowAnonymous]
94+
[HttpPost("LoginObject")]
95+
public ActionResult<AuthDto> LoginObject(LoginDto userModel)
96+
{
97+
try
98+
{
99+
if (ModelState.IsValid)
100+
{
101+
if (this.authService.IsAuthenticated(userModel.Email, userModel.Password))
102+
{
103+
var token = this.authService.GenerateJwtToken(userModel.Email);
104+
105+
return Ok(new AuthDto() { Token = token });
106+
}
107+
108+
return BadRequest("Email or password are not correct!");
109+
}
110+
111+
return BadRequest(ModelState);
112+
}
113+
catch (Exception error)
114+
{
115+
logger.LogError(error.Message);
116+
return StatusCode(500);
117+
}
118+
}
119+
120+
[AllowAnonymous]
121+
[HttpPost("RegisterObject")]
122+
public ActionResult<AuthDto> RegisterObject(RegisterDto userModel)
123+
{
124+
try
125+
{
126+
if (ModelState.IsValid)
127+
{
128+
if (userModel.Password != userModel.ConfirmedPassword)
129+
{
130+
return BadRequest("Passwords does not match!");
131+
}
132+
133+
if (this.authService.DoesUserExists(userModel.Email))
134+
{
135+
return BadRequest("User does not exists!");
136+
}
137+
138+
var mappedModel = this.mapper.Map<RegisterDto, UserDb>(userModel);
139+
var user = this.authService.RegisterUser(mappedModel);
140+
141+
if (user != null)
142+
{
143+
var token = this.authService.GenerateJwtToken(user.Email);
144+
return Ok(new AuthDto() { Token = token });
145+
}
146+
147+
return BadRequest("Email or password are not correct!");
148+
}
149+
150+
return BadRequest(ModelState);
151+
}
152+
catch (Exception error)
153+
{
154+
logger.LogError(error.Message);
155+
return StatusCode(500);
156+
}
157+
}
92158
}
93159
}

NorthwindCRUD/Models/Contracts/IAddress.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ namespace NorthwindCRUD.Models.Contracts
44
{
55
public interface IAddress
66
{
7-
string Street { get; set; }
7+
string? Street { get; set; }
88

9-
string City { get; set; }
9+
string? City { get; set; }
1010

11-
string Region { get; set; }
11+
string? Region { get; set; }
1212

13-
string PostalCode { get; set; }
13+
string? PostalCode { get; set; }
1414

15-
string Country { get; set; }
15+
string? Country { get; set; }
1616

1717
string? Phone { get; set; }
1818
}

NorthwindCRUD/Models/DbModels/AddressDb.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ public class AddressDb : IAddress
1010
[DatabaseGenerated(DatabaseGeneratedOption.None)]
1111
public string AddressId { get; set; }
1212

13-
public string Street { get; set; }
13+
public string? Street { get; set; }
1414

15-
public string City { get; set; }
15+
public string? City { get; set; }
1616

17-
public string Region { get; set; }
17+
public string? Region { get; set; }
1818

19-
public string PostalCode { get; set; }
19+
public string? PostalCode { get; set; }
2020

21-
public string Country { get; set; }
21+
public string? Country { get; set; }
2222

2323
public string? Phone { get; set; }
2424

NorthwindCRUD/Models/Dtos/AddressDto.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,21 @@ namespace NorthwindCRUD.Models.Dtos
66
public class AddressDto : IAddress
77
{
88
[StringLength(100, ErrorMessage = "Street cannot exceed 100 characters.")]
9-
public string Street { get; set; }
9+
public string? Street { get; set; }
1010

1111
[StringLength(50, ErrorMessage = "City cannot exceed 50 characters.")]
12-
public string City { get; set; }
12+
public string? City { get; set; }
1313

1414
[StringLength(50, ErrorMessage = "Region cannot exceed 50 characters.")]
15-
public string Region { get; set; }
15+
public string? Region { get; set; }
1616

1717
[StringLength(20, ErrorMessage = "Postal code cannot exceed 20 characters.")]
18-
public string PostalCode { get; set; }
18+
public string? PostalCode { get; set; }
1919

20-
[Required(ErrorMessage = "Country is required.")]
2120
[StringLength(50, ErrorMessage = "Country cannot exceed 50 characters.")]
22-
public string Country { get; set; }
21+
public string? Country { get; set; }
2322

24-
[RegularExpression(@"^\+?[1-9]\d{1,14}$", ErrorMessage = "Phone number is not valid.")]
23+
[RegularExpression(@"^\+?[0-9][0-9\-]{1,14}$", ErrorMessage = "Phone number is not valid.")]
2524
public string? Phone { get; set; }
2625
}
2726
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace NorthwindCRUD.Models.Dtos
2+
{
3+
public class AuthDto
4+
{
5+
public string Token { get; set; }
6+
}
7+
}

NorthwindCRUD/Services/SalesService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public SalesDto[] RetrieveSalesDataByCountry(string startDate, string endDate, s
7171
.ToList();
7272

7373
var filteredData = salesData
74-
.Where(od => od.Order.ShipAddress?.Country.ToLower(CultureInfo.InvariantCulture) == normalizedCountry && DateTime.Parse(od.Order.OrderDate, CultureInfo.InvariantCulture) >= parsedStartDate && DateTime.Parse(od.Order.RequiredDate, CultureInfo.InvariantCulture) <= parsedEndDate)
74+
.Where(od => od.Order.ShipAddress?.Country?.ToLower(CultureInfo.InvariantCulture) == normalizedCountry && DateTime.Parse(od.Order.OrderDate, CultureInfo.InvariantCulture) >= parsedStartDate && DateTime.Parse(od.Order.RequiredDate, CultureInfo.InvariantCulture) <= parsedEndDate)
7575
.ToList();
7676

7777
var sales = filteredData.Select(od => new SalesDto

0 commit comments

Comments
 (0)