-
Notifications
You must be signed in to change notification settings - Fork 2
Mashrafe #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Mashrafe #39
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
abdb841
Configuration Done
MashrafeJess 848e960
update DB
MashrafeJess 4a794d3
Final
MashrafeJess cbdd96f
Without Migration Folder
MashrafeJess 55ba698
Initial commit on new branch
MashrafeJess 2dccfbc
Merge branch 'recover-pr' into mashrafe
MashrafeJess 7bdf898
recover
MashrafeJess c9a7de6
Update src/Application/EmailVerification/Create/CreateEmailVerificati…
MashrafeJess 2e0968d
Update src/Application/EmailVerification/Delete/DeleteEmailVerificati…
MashrafeJess 2783ecd
Update src/Application/PasswordResets/Get/GetPasswordResetQueryHandle…
MashrafeJess 7a83e75
Update src/Application/EmailVerification/Update/UpdateEmailVerificati…
MashrafeJess e029c32
Update src/Application/PasswordResets/Create/CreatePasswordResetComma…
MashrafeJess 92d3bfe
Update src/Application/EmailVerification/Create/CreateEmailVerificati…
MashrafeJess 482565e
Update src/Application/Application/Create/CreateApplicationCommand.cs
MashrafeJess cc674bf
Resolve merge + restore local changes
MashrafeJess 7f267f5
Update src/Application/PasswordResets/Get/GetPasswordResetQueryHandle…
MashrafeJess 0885a52
Update src/Application/PasswordResets/Delete/DeletePasswordResetComma…
MashrafeJess c2918a4
Update src/Application/EmailVerification/Create/CreateEmailVerificati…
MashrafeJess 133f8fc
2nd Resolve Done
MashrafeJess a409b55
Resolve merge + restore local changes
MashrafeJess 5d28313
3rd
MashrafeJess 1049735
Resolve merge + restore local changes
MashrafeJess 83a7ad9
Update src/Application/EmailVerification/Create/CreateEmailVerificati…
MashrafeJess b588e97
4th Review
MashrafeJess 6915bf5
Merge branch 'mashrafe' of https://github.com/Dapplesoft-AD/AuthServe…
MashrafeJess 728d276
Resolve Conflict
MashrafeJess afccf5a
5th
MashrafeJess 575b2a1
6
MashrafeJess ab06a0a
Merge branch 'Dev' of https://github.com/Dapplesoft-AD/AuthServer int…
MashrafeJess File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -403,3 +403,4 @@ FodyWeavers.xsd | |
| appsettings.Development.json | ||
| appsettings.*.json | ||
| !appsettings.json | ||
| /AuthServer.sln | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
12 changes: 12 additions & 0 deletions
12
src/Application/Abstractions/Data/IApplicationDbContext.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,22 +1,34 @@ | ||
| using Domain.Applications; | ||
| using Domain.Customers; | ||
| using Domain.EmailVerification; | ||
| using Domain.PasswordResets; | ||
| using Domain.Permissions; | ||
| using Domain.RolePermissions; | ||
| using Domain.Roles; | ||
| using Domain.Todos; | ||
| using Domain.Token; | ||
| using Domain.UserLoginHistories; | ||
| using Domain.UserProfiles; | ||
| using Domain.Users; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using Microsoft.EntityFrameworkCore.ChangeTracking; | ||
|
|
||
| namespace Application.Abstractions.Data; | ||
|
|
||
| public interface IApplicationDbContext | ||
| { | ||
| DbSet<User> Users { get; } | ||
| DbSet<EmailVerifications> EmailVerifications { get; } | ||
| DbSet<PasswordReset> PasswordReset { get; } | ||
| DbSet<Tokens> Tokens { get; } | ||
| DbSet<TodoItem> TodoItems { get; } | ||
| DbSet<Customer> Customers { get; } | ||
| DbSet<Permission> Permissions { get; } | ||
| DbSet<Applicationapply> Applications { get; } // ← ADD THIS | ||
| DbSet<RolePermission> RolePermissions { get; } | ||
| DbSet<Role> Roles { get; } | ||
| DbSet<UserLoginHistory> UserLoginHistory { get; } | ||
| DbSet<UserProfile> UserProfile { get; } | ||
| EntityEntry Entry(object entity); | ||
| Task<int> SaveChangesAsync(CancellationToken cancellationToken = default); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
src/Application/EmailVerification/Create/CreateEmailVerificationCommand.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.EmailVerification.Create; | ||
|
|
||
| public sealed class CreateEmailVerificationCommand : ICommand<Guid> | ||
| { | ||
| public Guid UserId { get; set; } | ||
| public string Token { get; set; } | ||
| public DateTime ExpiresAt { get; set; } | ||
| public DateTime VerifiedAt { get; set; } | ||
| } |
52 changes: 52 additions & 0 deletions
52
src/Application/EmailVerification/Create/CreateEmailVerificationCommandHandler.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| using Application.Abstractions.Authentication; | ||
| using Application.Abstractions.Data; | ||
| using Application.Abstractions.Messaging; | ||
| using Domain.EmailVerification; | ||
| using Domain.Users; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using SharedKernel; | ||
|
|
||
| namespace Application.EmailVerification.Create; | ||
|
|
||
| internal sealed class CreateEmailVerificationCommandHandler( | ||
| IApplicationDbContext context, | ||
| IDateTimeProvider dateTimeProvider, | ||
| IUserContext userContext) | ||
| : ICommandHandler<CreateEmailVerificationCommand, Guid> | ||
| { | ||
| public async Task<Result<Guid>> Handle(CreateEmailVerificationCommand command, CancellationToken cancellationToken) | ||
| { | ||
| if (userContext.UserId != command.UserId) | ||
| { | ||
| return Result.Failure<Guid>(UserErrors.Unauthorized()); | ||
| } | ||
|
|
||
| User? user = await context.Users.AsNoTracking() | ||
| .SingleOrDefaultAsync(u => u.Id == command.UserId, cancellationToken); | ||
|
|
||
| if (user is null) | ||
| { | ||
| return Result.Failure<Guid>(UserErrors.NotFound(command.UserId)); | ||
| } | ||
|
|
||
| var emailVerifications = new EmailVerifications | ||
| { | ||
| UserId = command.UserId, | ||
| Token = command.Token, | ||
| ExpiresAt = command.ExpiresAt == default | ||
| ? dateTimeProvider.UtcNow | ||
| : command.ExpiresAt, | ||
| VerifiedAt = command.VerifiedAt == default | ||
| ? dateTimeProvider.UtcNow | ||
| : command.VerifiedAt | ||
| }; | ||
|
|
||
| emailVerifications.Raise(new EmailVerificationCreatedDomainEvent(emailVerifications.EvId)); | ||
|
|
||
| context.EmailVerifications.Add(emailVerifications); | ||
|
|
||
| await context.SaveChangesAsync(cancellationToken); | ||
|
|
||
| return emailVerifications.EvId; | ||
| } | ||
| } |
19 changes: 19 additions & 0 deletions
19
src/Application/EmailVerification/Create/CreateEmailVerificationCommandValidator.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| using FluentValidation; | ||
|
|
||
| namespace Application.EmailVerification.Create; | ||
|
|
||
| public class CreateEmailVerificationCommandValidator : AbstractValidator<CreateEmailVerificationCommand> | ||
| { | ||
| public CreateEmailVerificationCommandValidator() | ||
| { | ||
| RuleFor(x => x.UserId) | ||
| .NotEmpty().WithMessage("User ID is required."); | ||
| RuleFor(x => x.Token) | ||
| .NotEmpty().WithMessage("Token is required.") | ||
| .MaximumLength(255).WithMessage("Token must not exceed 255 characters."); | ||
| RuleFor(x => x.ExpiresAt) | ||
| .GreaterThan(DateTime.UtcNow).WithMessage("Expiration date must be in the future."); | ||
| RuleFor(x => x.VerifiedAt) | ||
| .GreaterThan(DateTime.UtcNow).WithMessage("Verification date must be in the future."); | ||
| } | ||
| } |
5 changes: 5 additions & 0 deletions
5
src/Application/EmailVerification/Delete/DeleteEmailVerificationCommand.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.EmailVerification.Delete; | ||
|
|
||
| public sealed record DeleteEmailVerificationCommand(Guid EvId) : ICommand; |
31 changes: 31 additions & 0 deletions
31
src/Application/EmailVerification/Delete/DeleteEmailVerificationCommandHandler.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| using Application.Abstractions.Authentication; | ||
| using Application.Abstractions.Data; | ||
| using Application.Abstractions.Messaging; | ||
| using Domain.EmailVerification; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using SharedKernel; | ||
|
|
||
| namespace Application.EmailVerification.Delete; | ||
|
|
||
| internal sealed class DeleteEmailVerificationCommandHandler(IApplicationDbContext context, IUserContext userContext) | ||
| : ICommandHandler<DeleteEmailVerificationCommand> | ||
| { | ||
| public async Task<Result> Handle(DeleteEmailVerificationCommand command, CancellationToken cancellationToken) | ||
| { | ||
| EmailVerifications? emailVerifications = await context.EmailVerifications | ||
| .SingleOrDefaultAsync(t => t.EvId == command.EvId && t.UserId == userContext.UserId, cancellationToken); | ||
|
|
||
| if (emailVerifications is null) | ||
| { | ||
| return Result.Failure(EmailVerificationErrors.NotFound(command.EvId)); | ||
| } | ||
|
|
||
| context.EmailVerifications.Remove(emailVerifications); | ||
|
|
||
| emailVerifications.Raise(new EmailVerificationDeletedDomainEvent(emailVerifications.EvId)); | ||
|
|
||
| await context.SaveChangesAsync(cancellationToken); | ||
|
|
||
| return Result.Success(); | ||
| } | ||
| } |
12 changes: 12 additions & 0 deletions
12
src/Application/EmailVerification/Delete/DeleteEmailVerificationCommandValidator.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| using FluentValidation; | ||
|
|
||
| namespace Application.EmailVerification.Delete; | ||
|
|
||
| internal sealed class DeleteEmailVerificationCommandValidator : AbstractValidator<DeleteEmailVerificationCommand> | ||
| { | ||
| public DeleteEmailVerificationCommandValidator() | ||
| { | ||
| RuleFor(x => x.EvId) | ||
| .NotEmpty().WithMessage("Email Verification ID is required."); | ||
| } | ||
| } |
10 changes: 10 additions & 0 deletions
10
src/Application/EmailVerification/Get/EmailVerificationResponse.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| namespace Application.EmailVerification.Get; | ||
|
|
||
| public sealed class EmailVerificationResponse | ||
| { | ||
| public Guid EvId { get; set; } | ||
| public Guid UserId { get; set; } | ||
| public string Token { get; set; } | ||
| public DateTime ExpiresAt { get; set; } | ||
| public DateTime VerifiedAt { get; set; } | ||
| } |
5 changes: 5 additions & 0 deletions
5
src/Application/EmailVerification/Get/GetEmailVerificationsQuery.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.EmailVerification.Get; | ||
|
|
||
| public sealed record GetEmailVerificationsQuery(Guid UserId) : IQuery<List<EmailVerificationResponse>>; |
33 changes: 33 additions & 0 deletions
33
src/Application/EmailVerification/Get/GetEmailVerificationsQueryHandler.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| using Application.Abstractions.Authentication; | ||
| using Application.Abstractions.Data; | ||
| using Application.Abstractions.Messaging; | ||
| using Domain.Users; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using SharedKernel; | ||
|
|
||
| namespace Application.EmailVerification.Get; | ||
|
|
||
| internal sealed class GetEmailVerificationQueryHandler(IApplicationDbContext context, IUserContext userContext) | ||
| : IQueryHandler<GetEmailVerificationsQuery, List<EmailVerificationResponse>> | ||
| { | ||
| public async Task<Result<List<EmailVerificationResponse>>> Handle(GetEmailVerificationsQuery query, CancellationToken cancellationToken) | ||
| { | ||
| if (query.UserId != userContext.UserId) | ||
| { | ||
| return Result.Failure<List<EmailVerificationResponse>>(UserErrors.Unauthorized()); | ||
| } | ||
|
|
||
| List<EmailVerificationResponse> emailVerifications = await context.EmailVerifications | ||
| .Where(emailVerifications => emailVerifications.UserId == query.UserId) | ||
| .Select(emailVerifications => new EmailVerificationResponse | ||
| { | ||
| EvId = emailVerifications.EvId, | ||
| UserId = emailVerifications.UserId, | ||
| Token = emailVerifications.Token, | ||
| ExpiresAt = emailVerifications.ExpiresAt, | ||
| VerifiedAt = emailVerifications.VerifiedAt | ||
| }).ToListAsync(cancellationToken); | ||
|
|
||
| return emailVerifications; | ||
| } | ||
| } |
10 changes: 10 additions & 0 deletions
10
src/Application/EmailVerification/GetById/EmailVerificationResponse.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| namespace Application.EmailVerification.GetById; | ||
|
|
||
| public sealed class EmailVerificationResponse | ||
| { | ||
| public Guid EvId { get; set; } | ||
| public Guid UserId { get; set; } | ||
| public string Token { get; set; } | ||
| public DateTime ExpiresAt { get; set; } | ||
| public DateTime VerifiedAt { get; set; } | ||
| } |
5 changes: 5 additions & 0 deletions
5
src/Application/EmailVerification/GetById/GetEmailVerificationByIdQuery.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.EmailVerification.GetById; | ||
|
|
||
| public sealed record GetEmailVerificationByIdQuery(Guid EvId) : IQuery<EmailVerificationResponse>; |
34 changes: 34 additions & 0 deletions
34
src/Application/EmailVerification/GetById/GetEmailVerificationByIdQueryHandler.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| using Application.Abstractions.Authentication; | ||
| using Application.Abstractions.Data; | ||
| using Application.Abstractions.Messaging; | ||
| using Domain.EmailVerification; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using SharedKernel; | ||
|
|
||
| namespace Application.EmailVerification.GetById; | ||
|
|
||
| internal sealed class GetEmailVerificationByIdQueryHandler(IApplicationDbContext context, IUserContext userContext) | ||
| : IQueryHandler<GetEmailVerificationByIdQuery, EmailVerificationResponse> | ||
| { | ||
| public async Task<Result<EmailVerificationResponse>> Handle(GetEmailVerificationByIdQuery query, CancellationToken cancellationToken) | ||
| { | ||
| EmailVerificationResponse? emailVerification = await context.EmailVerifications | ||
| .Where(emailVerification => emailVerification.EvId == query.EvId && emailVerification.UserId == userContext.UserId) | ||
| .Select(emailVerification => new EmailVerificationResponse | ||
| { | ||
| EvId = emailVerification.EvId, | ||
| UserId = emailVerification.UserId, | ||
| Token = emailVerification.Token, | ||
| ExpiresAt = emailVerification.ExpiresAt, | ||
| VerifiedAt = emailVerification.VerifiedAt | ||
| }) | ||
| .SingleOrDefaultAsync(cancellationToken); | ||
|
|
||
| if (emailVerification is null) | ||
| { | ||
| return Result.Failure<EmailVerificationResponse>(EmailVerificationErrors.NotFound(query.EvId)); | ||
| } | ||
|
|
||
| return emailVerification; | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
7
src/Application/EmailVerification/Update/UpdateEmailVerificationCommand.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.EmailVerification.Update; | ||
|
|
||
| public sealed record UpdateEmailVerificationCommand( | ||
| Guid EvId, | ||
| string Token) : ICommand; |
29 changes: 29 additions & 0 deletions
29
src/Application/EmailVerification/Update/UpdateEmailVerificationCommandHandler.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| using Application.Abstractions.Data; | ||
| using Application.Abstractions.Messaging; | ||
| using Domain.EmailVerification; | ||
| using Microsoft.EntityFrameworkCore; | ||
| using SharedKernel; | ||
|
|
||
| namespace Application.EmailVerification.Update; | ||
|
|
||
| internal sealed class UpdateEmailVerificationCommandHandler( | ||
| IApplicationDbContext context) | ||
| : ICommandHandler<UpdateEmailVerificationCommand> | ||
| { | ||
| public async Task<Result> Handle(UpdateEmailVerificationCommand command, CancellationToken cancellationToken) | ||
| { | ||
| EmailVerifications? emailVerifications = await context.EmailVerifications | ||
| .SingleOrDefaultAsync(t => t.EvId == command.EvId, cancellationToken); | ||
|
|
||
| if (emailVerifications is null) | ||
| { | ||
| return Result.Failure(EmailVerificationErrors.NotFound(command.EvId)); | ||
| } | ||
|
|
||
| emailVerifications.Token = command.Token; | ||
|
|
||
| await context.SaveChangesAsync(cancellationToken); | ||
|
|
||
| return Result.Success(); | ||
| } | ||
| } |
11 changes: 11 additions & 0 deletions
11
src/Application/PasswordResets/Create/CreatePasswordResetCommand.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| using Application.Abstractions.Messaging; | ||
|
|
||
| namespace Application.PasswordResets.Create; | ||
|
|
||
| public sealed class CreatePasswordResetCommand : ICommand<Guid> | ||
| { | ||
| public Guid UserId { get; set; } | ||
| public string Token { get; set; } | ||
| public DateTime ExpiresAt { get; set; } | ||
| public bool Used { get; set; } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Invalid Visual Studio version. The VisualStudioVersion "18.3.11206.111 d18.3" appears to be corrupted or invalid. Visual Studio 2022 uses version 17.x, not 18.x. This should be reverted to a valid version number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This File looks Critical and changing the version for this project may harm our main progress.