From ce9c7ed7e14c8bd6072492d4db6a08147cb5c75d Mon Sep 17 00:00:00 2001 From: Mohammed Date: Sat, 23 Nov 2024 13:42:47 +0300 Subject: [PATCH 01/12] after changes --- Controllers/Mobile/v1/ProjectsController.cs | 236 ++++--- Controllers/Mobile/v1/TasksController.cs | 50 ++ ...184339_image_path-nullable-mig.Designer.cs | 648 ++++++++++++++++++ .../20241122184339_image_path-nullable-mig.cs | 54 ++ ...4526_project-desc-nullable-mig.Designer.cs | 647 +++++++++++++++++ ...0241122184526_project-desc-nullable-mig.cs | 36 + Migrations/MainAppContextModelSnapshot.cs | 13 +- Models/DTOs/TaskOutputDTO.cs | 25 + Models/Project.cs | 2 +- Models/TaskEntity.cs | 2 +- Program.cs | 29 +- 11 files changed, 1617 insertions(+), 125 deletions(-) create mode 100644 Controllers/Mobile/v1/TasksController.cs create mode 100644 Migrations/20241122184339_image_path-nullable-mig.Designer.cs create mode 100644 Migrations/20241122184339_image_path-nullable-mig.cs create mode 100644 Migrations/20241122184526_project-desc-nullable-mig.Designer.cs create mode 100644 Migrations/20241122184526_project-desc-nullable-mig.cs create mode 100644 Models/DTOs/TaskOutputDTO.cs diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index eae2346..402a39f 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; namespace AonFreelancing.Controllers.Mobile.v1 { @@ -172,6 +173,7 @@ public async Task GetProjectDetailsAsync(int id) { var project = await mainAppContext.Projects .Where(p => p.Id == id) + .Include(p=>p.Tasks) .Include(p => p.Bids) .ThenInclude(b => b.Freelancer) .FirstOrDefaultAsync(); @@ -194,9 +196,9 @@ public async Task GetProjectDetailsAsync(int id) SubmittedAt = b.SubmittedAt, ApprovedAt = b.ApprovedAt } ); + var numberOfCompletedTasks = project.Tasks.Where(t => t.Status == "Done").ToList().Count(); + double totalNumberOFTasks = project.Tasks.Count(); - - return Ok(CreateSuccessResponse(new { project.Id, @@ -204,7 +206,8 @@ public async Task GetProjectDetailsAsync(int id) project.Status, project.Budget, project.Duration, - project.Description, + project.Description, + Percentage= (numberOfCompletedTasks /totalNumberOFTasks) * 100, Bids = orderedBids })); } @@ -233,109 +236,109 @@ public async Task CreateTaskAsync(int id, [FromBody] TaskInputDto } - [Authorize(Roles = "CLIENT, FREELANCER")] - [HttpPut("tasks/{id}")] - public async Task UpdateTaskStatusAsync(int id, [FromBody] TaskStatusDto taskStatusDto) - { - var task = await mainAppContext.Tasks.FindAsync(id); - if (task == null) - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "404", Message = "Task not found." } - } - }; - return NotFound(errorResponse); - } - - var validStatuses = new List { "to-do", "in-progress", "in-review", "done" }; - - if (!validStatuses.Contains(taskStatusDto.NewStatus.ToLower())) - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "400", Message = "Invalid status provided." } - } - }; - return BadRequest(errorResponse); - } - - if (task.Status.ToLower() == "to do" && taskStatusDto.NewStatus.ToLower() != "in progress") - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "400", Message = "Invalid status transition from 'To Do'." } - } - }; - return BadRequest(errorResponse); - } - if (task.Status.ToLower() == "in progress" && - taskStatusDto.NewStatus.ToLower() != "in review" && taskStatusDto.NewStatus.ToLower() != "done") - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "400", Message = "Invalid status transition from 'In Progress'." } - } - }; - return BadRequest(errorResponse); - } - if (task.Status.ToLower() == "in review" && taskStatusDto.NewStatus.ToLower() != "done") - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "400", Message = "Invalid status transition from 'In Review'." } - } - }; - return BadRequest(errorResponse); - } - if (task.Status.ToLower() == "done") - { - var errorResponse = new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List - { - new Error { Code = "400", Message = "No further status transitions allowed from 'Done'." } - } - }; - return BadRequest(errorResponse); - } - - task.Status = taskStatusDto.NewStatus; - - task.CompletedAt = taskStatusDto.NewStatus.ToLower() == "done" ? DateTime.UtcNow : (DateTime?)null; - - await mainAppContext.SaveChangesAsync(); - - var successResponse = new ApiResponse - { - IsSuccess = true, - Results = "Task status updated.", - Errors = null - }; - return Ok(successResponse); - } + //[Authorize(Roles = "CLIENT, FREELANCER")] + //[HttpPut("tasks/{id}")] + //public async Task UpdateTaskStatusAsync(int id, [FromBody] TaskStatusDto taskStatusDto) + //{ + // var task = await mainAppContext.Tasks.FindAsync(id); + // if (task == null) + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "404", Message = "Task not found." } + // } + // }; + // return NotFound(errorResponse); + // } + + // var validStatuses = new List { "to-do", "in-progress", "in-review", "done" }; + + // if (!validStatuses.Contains(taskStatusDto.NewStatus.ToLower())) + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "400", Message = "Invalid status provided." } + // } + // }; + // return BadRequest(errorResponse); + // } + + // if (task.Status.ToLower() == "to do" && taskStatusDto.NewStatus.ToLower() != "in progress") + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "400", Message = "Invalid status transition from 'To Do'." } + // } + // }; + // return BadRequest(errorResponse); + // } + // if (task.Status.ToLower() == "in progress" && + // taskStatusDto.NewStatus.ToLower() != "in review" && taskStatusDto.NewStatus.ToLower() != "done") + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "400", Message = "Invalid status transition from 'In Progress'." } + // } + // }; + // return BadRequest(errorResponse); + // } + // if (task.Status.ToLower() == "in review" && taskStatusDto.NewStatus.ToLower() != "done") + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "400", Message = "Invalid status transition from 'In Review'." } + // } + // }; + // return BadRequest(errorResponse); + // } + // if (task.Status.ToLower() == "done") + // { + // var errorResponse = new ApiResponse + // { + // IsSuccess = false, + // Results = null, + // Errors = new List + // { + // new Error { Code = "400", Message = "No further status transitions allowed from 'Done'." } + // } + // }; + // return BadRequest(errorResponse); + // } + + // task.Status = taskStatusDto.NewStatus; + + // task.CompletedAt = taskStatusDto.NewStatus.ToLower() == "done" ? DateTime.UtcNow : (DateTime?)null; + + // await mainAppContext.SaveChangesAsync(); + + // var successResponse = new ApiResponse + // { + // IsSuccess = true, + // Results = "Task status updated.", + // Errors = null + // }; + // return Ok(successResponse); + //} [Authorize(Roles = "CLIENT")] @@ -416,15 +419,20 @@ public async Task UploadProjectImage(int id, IFormFile file) }); } - //[HttpGet("{id}")] - //public IActionResult GetProject(int id) - //{ - // var project = _mainAppContext.Projects - // .Include(p => p.Client) - // .FirstOrDefault(p => p.Id == id); + [HttpGet("{projectId}/tasks")] + public async Task GetTasksByProjectIdAsync([FromRoute] long projectId, + [AllowedValues("To-Do", "Done", "In-Progress", "In-Review", ErrorMessage = "status should be one of the values: 'to-do', 'done', 'in-progress', 'in-review'")][FromQuery] string status = "") + { + if (!ModelState.IsValid) + return base.CustomBadRequest(); + + var storedTasksDTOs = await mainAppContext.Tasks.AsNoTracking() + .Where(t => t.ProjectId == projectId && t.Status.Contains(status)) + .Select(t => new TaskOutputDTO(t)) + .ToListAsync(); + return Ok(CreateSuccessResponse(storedTasksDTOs)); + } - // return Ok(CreateSuccessResponse(project)); - //} } } \ No newline at end of file diff --git a/Controllers/Mobile/v1/TasksController.cs b/Controllers/Mobile/v1/TasksController.cs new file mode 100644 index 0000000..450f399 --- /dev/null +++ b/Controllers/Mobile/v1/TasksController.cs @@ -0,0 +1,50 @@ +using AonFreelancing.Contexts; +using AonFreelancing.Models.DTOs; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using System.Security.Claims; + +namespace AonFreelancing.Controllers.Mobile.v1 +{ + [Authorize] + [Route("api/mobile/v1/tasks")] + [ApiController] + public class TasksController(MainAppContext mainAppContext) : BaseController + { + [Authorize(Roles = "CLIENT, FREELANCER")] + [HttpPatch("{id}/update-status")] + public async Task UpdateByIdAsync(long id, [FromBody] TaskStatusDto taskStatusDTO) + { + var storedTask = await mainAppContext.Tasks.Where(t => t.Id == id).FirstOrDefaultAsync(); + if (storedTask == null) + return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "invalid task id")); + + if (taskStatusDTO.NewStatus == "Done") + storedTask.CompletedAt = DateTime.Now; + if (storedTask.Status == "Done" && taskStatusDTO.NewStatus != "Done") + storedTask.CompletedAt = null; + storedTask.Status = taskStatusDTO.NewStatus; + await mainAppContext.SaveChangesAsync(); + + return Ok(CreateSuccessResponse(new TaskOutputDTO(storedTask))); + } + [Authorize(Roles = "CLIENT")] + [HttpPut("{id}")] + public async Task UpdateByIdAsync(long id, [FromBody] TaskInputDto taskInputDTO) + { + var storedTask = await mainAppContext.Tasks.Where(t => t.Id == id).FirstOrDefaultAsync(); + if (storedTask == null) + return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "invalid task id")); + + storedTask.Name= taskInputDTO.Name; + storedTask.Notes = taskInputDTO.Notes; + storedTask.DeadlineAt= taskInputDTO.DeadlineAt; + + await mainAppContext.SaveChangesAsync(); + + return Ok(CreateSuccessResponse(new TaskOutputDTO(storedTask))); + } + + } +} \ No newline at end of file diff --git a/Migrations/20241122184339_image_path-nullable-mig.Designer.cs b/Migrations/20241122184339_image_path-nullable-mig.Designer.cs new file mode 100644 index 0000000..20cb1d6 --- /dev/null +++ b/Migrations/20241122184339_image_path-nullable-mig.Designer.cs @@ -0,0 +1,648 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241122184339_image_path-nullable-mig")] + partial class image_pathnullablemig + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("int"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImagePath") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Skills") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241122184339_image_path-nullable-mig.cs b/Migrations/20241122184339_image_path-nullable-mig.cs new file mode 100644 index 0000000..c82bd4e --- /dev/null +++ b/Migrations/20241122184339_image_path-nullable-mig.cs @@ -0,0 +1,54 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class image_pathnullablemig : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "ImagePath", + table: "Projects", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AlterColumn( + name: "Notes", + table: "Bids", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "ImagePath", + table: "Projects", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + + migrationBuilder.AlterColumn( + name: "Notes", + table: "Bids", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + } + } +} diff --git a/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs b/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs new file mode 100644 index 0000000..d6f9744 --- /dev/null +++ b/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs @@ -0,0 +1,647 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241122184526_project-desc-nullable-mig")] + partial class projectdescnullablemig + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("int"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImagePath") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Skills") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241122184526_project-desc-nullable-mig.cs b/Migrations/20241122184526_project-desc-nullable-mig.cs new file mode 100644 index 0000000..ce6ed1d --- /dev/null +++ b/Migrations/20241122184526_project-desc-nullable-mig.cs @@ -0,0 +1,36 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class projectdescnullablemig : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Description", + table: "Projects", + type: "nvarchar(max)", + nullable: true, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Description", + table: "Projects", + type: "nvarchar(max)", + nullable: false, + defaultValue: "", + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldNullable: true); + } + } +} diff --git a/Migrations/MainAppContextModelSnapshot.cs b/Migrations/MainAppContextModelSnapshot.cs index 773bd99..bed0108 100644 --- a/Migrations/MainAppContextModelSnapshot.cs +++ b/Migrations/MainAppContextModelSnapshot.cs @@ -70,7 +70,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("bigint"); b.Property("Notes") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ProjectId") @@ -146,7 +145,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("datetime2"); b.Property("Description") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Duration") @@ -159,7 +157,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("bigint"); b.Property("ImagePath") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("PriceType") @@ -199,7 +196,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) }); }); - modelBuilder.Entity("AonFreelancing.Models.Tasks", b => + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -232,7 +229,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ProjectId"); - b.ToTable("Tasks"); + b.ToTable("Tasks", (string)null); }); modelBuilder.Entity("AonFreelancing.Models.TempUser", b => @@ -529,10 +526,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Freelancer"); }); - modelBuilder.Entity("AonFreelancing.Models.Tasks", b => + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => { b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany() + .WithMany("Tasks") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -621,6 +618,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("AonFreelancing.Models.Project", b => { b.Navigation("Bids"); + + b.Navigation("Tasks"); }); modelBuilder.Entity("AonFreelancing.Models.Client", b => diff --git a/Models/DTOs/TaskOutputDTO.cs b/Models/DTOs/TaskOutputDTO.cs new file mode 100644 index 0000000..be1718b --- /dev/null +++ b/Models/DTOs/TaskOutputDTO.cs @@ -0,0 +1,25 @@ +namespace AonFreelancing.Models.DTOs +{ + public class TaskOutputDTO + { + public long Id { get; set; } + public long ProjectId { get; set; } + public string Name { get; set; } + public string? Notes { get; set; } + public string Status { get; set; } + public DateTime? Deadline { get; set; } + public DateTime? CompletedAt { get; set; } + + public TaskOutputDTO() { } + public TaskOutputDTO(TaskEntity task) + { + Id = task.Id; + ProjectId = task.ProjectId; + Name = task.Name; + Notes = task.Notes; + Status = task.Status; + Deadline = task.DeadlineAt; + CompletedAt = task.CompletedAt; + } + } +} diff --git a/Models/Project.cs b/Models/Project.cs index 6d59d16..4bdaa7b 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -11,7 +11,7 @@ public class Project public int Id { get; set; } [Required] public string Title { get; set; } - [AllowNull] public string Description { get; set; } + [AllowNull] public string? Description { get; set; } public long ClientId { get; set; } //FK diff --git a/Models/TaskEntity.cs b/Models/TaskEntity.cs index 6e9fa09..7cc8c37 100644 --- a/Models/TaskEntity.cs +++ b/Models/TaskEntity.cs @@ -1,6 +1,6 @@ namespace AonFreelancing.Models { - public class ProjectTask + public class TaskEntity { public int Id { get; set; } public int ProjectId { get; set; } diff --git a/Program.cs b/Program.cs index 001a8ac..e0f4da4 100644 --- a/Program.cs +++ b/Program.cs @@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.IdentityModel.Tokens; +using Microsoft.OpenApi.Models; using System.Text; namespace AonFreelancing @@ -22,8 +23,6 @@ public static void Main(string[] args) var conf = builder.Configuration; builder.Services.AddControllers(o => o.SuppressAsyncSuffixInActionNames = false); - builder.Services.AddEndpointsApiExplorer(); - builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddDbContext(options => options.UseSqlServer(conf.GetConnectionString("Default"))); @@ -32,6 +31,32 @@ public static void Main(string[] args) .AddDefaultTokenProviders(); builder.Configuration.AddJsonFile("appsettings.json"); + builder.Services.AddEndpointsApiExplorer(); + builder.Services.AddSwaggerGen(options => + { + options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() + { + Name = "Authorization", + In = ParameterLocation.Header, + Type = SecuritySchemeType.Http, + Scheme = "Bearer" + }); + options.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference + { + Type = ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + Array.Empty() + } + }); + }); + // JWT Authentication configuration From ccc3c5fa71b47be998e5000303cd8591331b4b75 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 26 Nov 2024 14:00:04 +0300 Subject: [PATCH 02/12] refactor --- Controllers/Mobile/v1/ProjectsController.cs | 183 ++++++------------ Controllers/Mobile/v1/TasksController.cs | 29 +-- Models/Bid.cs | 22 ++- Models/DTOs/{BidOutDto.cs => BidOutputDTO.cs} | 16 +- Models/DTOs/FreelancerDTO.cs | 15 +- Models/DTOs/ProjectOutDTO.cs | 21 +- Models/DTOs/TaskInputDto.cs | 2 +- Models/Project.cs | 17 +- Models/TaskEntity.cs | 14 +- 9 files changed, 164 insertions(+), 155 deletions(-) rename Models/DTOs/{BidOutDto.cs => BidOutputDTO.cs} (52%) diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index d140b73..3b12e5d 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -20,29 +20,17 @@ public class ProjectsController(MainAppContext mainAppContext, UserManager public async Task PostProjectAsync([FromBody] ProjectInputDto projectInputDto) { if(!ModelState.IsValid) - { - return base.CustomBadRequest(); - } - var user = await userManager.GetUserAsync(HttpContext.User); - if (user == null) + + User? authenticatedUser = await userManager.GetUserAsync(HttpContext.User); + if (authenticatedUser == null) return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "Unable to load user.")); - var userId = user.Id; - var project = new Project - { - ClientId = userId, - Title = projectInputDto.Title, - Description = projectInputDto.Description, - QualificationName = projectInputDto.QualificationName, - Duration = projectInputDto.Duration, - Budget = projectInputDto.Budget, - PriceType = projectInputDto.PriceType, - CreatedAt = DateTime.Now, - }; - - await mainAppContext.Projects.AddAsync(project); + long clientId = authenticatedUser.Id; + Project? newProject = Project.FromInputDTO(projectInputDto, clientId); + + await mainAppContext.Projects.AddAsync(newProject); await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Project added.")); @@ -56,88 +44,58 @@ public async Task GetClientFeedAsync( ) { var trimmedQuery = qur?.ToLower().Replace(" ", "").Trim(); - List? projects; + List? storedProjects; var query = mainAppContext.Projects.AsQueryable(); var count = await query.CountAsync(); if(!string.IsNullOrEmpty(trimmedQuery)) - { - query = query - .Where(p=>p.Title.ToLower().Contains(trimmedQuery)); - } - if(qualificationNames != null && qualificationNames.Count >0) - { - query = query - .Where(p => qualificationNames.Contains(p.QualificationName)); - } + query = query.Where(p=>p.Title.ToLower().Contains(trimmedQuery)); - projects = await query.OrderByDescending(p => p.CreatedAt) + if (qualificationNames != null && qualificationNames.Count > 0) + query = query.Where(p => qualificationNames.Contains(p.QualificationName)); + + storedProjects = await query.OrderByDescending(p => p.CreatedAt) .Skip(page * pageSize) .Take(pageSize) - .Select(p => new ProjectOutDTO - { - Id= p.Id, - Title = p.Title, - Description = p.Description, - Status = p.Status, - Budget = p.Budget, - Duration = p.Duration, - PriceType = p.PriceType, - Qualifications = p.QualificationName, - StartDate = p.StartDate, - EndDate = p.EndDate, - CreatedAt = p.CreatedAt, - CreationTime = StringOperations.GetTimeAgo(p.CreatedAt) - }) + .Select(p => ProjectOutDTO.FromProject(p)) .ToListAsync(); return Ok(CreateSuccessResponse(new { Total=count, - Items=projects + Items=storedProjects })); } [Authorize(Roles = "FREELANCER")] - [HttpPost("{id}/bids")] - public async Task SubmitBidAsync(long id, [FromBody] BidInputDto bidDto) + [HttpPost("{projectId}/bids")] + public async Task SubmitBidAsync(long projectId, [FromBody] BidInputDto bidInputDTO) { if (!ModelState.IsValid) return CustomBadRequest(); - var project = await mainAppContext.Projects.FindAsync(id); - if (project == null) + Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); + if (storedProject == null) return NotFound(CreateErrorResponse("404", "Project not found.")); - var user = await userManager.GetUserAsync(User); - //if (user == null || !User.IsInRole("FREELANCER")) - // return Forbid(); + User authenticatedUser = await userManager.GetUserAsync(User); - var lastBid = await mainAppContext.Bids - .Where(b => b.ProjectId == id) - .OrderByDescending(b => b.SubmittedAt) - .FirstOrDefaultAsync(); + Bid? latestBid = await mainAppContext.Bids.Where(b => b.ProjectId == projectId) + .OrderByDescending(b => b.SubmittedAt) + .FirstOrDefaultAsync(); - if (bidDto.ProposedPrice <= 0 || - (lastBid != null && bidDto.ProposedPrice > lastBid.ProposedPrice) || - (lastBid == null && bidDto.ProposedPrice > project.Budget)) + if (bidInputDTO.ProposedPrice <= 0 || + (latestBid != null && bidInputDTO.ProposedPrice > latestBid.ProposedPrice) || + (latestBid == null && bidInputDTO.ProposedPrice > storedProject.Budget)) { return BadRequest(CreateErrorResponse("400", "Invalid proposed price. The proposed price must be positive and lower than the last bid or project budget.")); } - var bid = new Bid - { - ProjectId = id, - FreelancerId = user.Id, - ProposedPrice = bidDto.ProposedPrice, - Notes = bidDto.Notes, - Status = Constants.BIDS_STATUS_PENDING, - SubmittedAt = DateTime.Now - }; - - await mainAppContext.Bids.AddAsync(bid); + Bid? newBid = Bid.FromInputDTO(bidInputDTO, authenticatedUser.Id, storedProject.Id); + + await mainAppContext.Bids.AddAsync(newBid); await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Bid submitted successfully.")); @@ -145,22 +103,20 @@ public async Task SubmitBidAsync(long id, [FromBody] BidInputDto [Authorize(Roles = "CLIENT")] - [HttpPut("{pid}/bids/{bid}/approve")] - public async Task ApproveBidAsync(long pid, long bid) + [HttpPut("{projectId}/bids/{bidId}/approve")] + public async Task ApproveBidAsync(long projectId, long bidId) { - var project = await mainAppContext.Projects.FindAsync(pid); - if (project == null || project.Status != Constants.PROJECT_STATUS_AVAILABLE) - return BadRequest(CreateErrorResponse("400", $"Project status is '{project?.Status}', but must be 'available'.")); + Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); + if (storedProject == null || storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) + return BadRequest(CreateErrorResponse("400", $"Project status is '{storedProject?.Status}', but must be 'available'.")); - var bidID = await mainAppContext.Bids.FirstOrDefaultAsync(b => b.Id == bid); - if (bidID == null || bidID.ProjectId != pid || bidID.Status == Constants.BIDS_STATUS_APPROVED) + var storedBid = await mainAppContext.Bids.FirstOrDefaultAsync(b => b.Id == bidId); + if (storedBid == null || storedBid.ProjectId != projectId || storedBid.Status == Constants.BIDS_STATUS_APPROVED) return BadRequest(CreateErrorResponse("400", "Bid not found or already approved.")); - bidID.Status = Constants.BIDS_STATUS_APPROVED; - bidID.ApprovedAt = DateTime.Now; - - project.Status = Constants.PROJECT_STATUS_CLOSED; - + storedBid.Status = Constants.BIDS_STATUS_APPROVED; + storedBid.ApprovedAt = DateTime.Now; + storedProject.Status = Constants.PROJECT_STATUS_CLOSED; await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Bid approved successfully.")); @@ -170,63 +126,42 @@ public async Task ApproveBidAsync(long pid, long bid) [HttpGet("{id}")] public async Task GetProjectDetailsAsync(long id) { - var project = await mainAppContext.Projects - .Where(p => p.Id == id) - .Include(p => p.Bids) - .ThenInclude(b => b.Freelancer) - .FirstOrDefaultAsync(); + var storedProject = await mainAppContext.Projects.Where(p => p.Id == id) + .Include(p => p.Bids) + .ThenInclude(b => b.Freelancer) + .FirstOrDefaultAsync(); - if (project == null) + if (storedProject == null) return NotFound(CreateErrorResponse("404", "Project not found.")); - var orderedBids = project.Bids + var orderedBids = storedProject.Bids .OrderByDescending(b => b.ProposedPrice) - .Select(b => new BidOutDto { - Id = b.Id, - FreelancerId = b.FreelancerId, - Freelancer = new FreelancerShortOutDTO { - Id = b.FreelancerId, - Name = b.Freelancer.Name - }, - ProposedPrice = b.ProposedPrice, - Notes = b.Notes, - Status = b.Status, - SubmittedAt = b.SubmittedAt, - ApprovedAt = b.ApprovedAt - } ); - - - + .Select(b => BidOutputDTO.FromBid(b)); + return Ok(CreateSuccessResponse(new { - project.Id, - project.Title, - project.Status, - project.Budget, - project.Duration, - project.Description, + storedProject.Id, + storedProject.Title, + storedProject.Status, + storedProject.Budget, + storedProject.Duration, + storedProject.Description, Bids = orderedBids })); } [Authorize(Roles = "CLIENT")] - [HttpPost("{id}/tasks")] - public async Task CreateTaskAsync(long id, [FromBody] TaskInputDto taskDto) + [HttpPost("{projectId}/tasks")] + public async Task CreateTaskAsync(long projectId, [FromBody] TaskInputDTO taskInputDTO) { - var project = await mainAppContext.Projects.FindAsync(id); - if (project == null || project.Status != Constants.PROJECT_STATUS_CLOSED) + Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); + if (storedProject == null || storedProject.Status != Constants.PROJECT_STATUS_CLOSED) return BadRequest(CreateErrorResponse("400", "Project not found or not closed.")); - var task = new TaskEntity - { - ProjectId = id, - Name = taskDto.Name, - DeadlineAt = taskDto.DeadlineAt, - Notes = taskDto.Notes - }; + TaskEntity? newTask = TaskEntity.FromInputDTO(taskInputDTO,projectId); - await mainAppContext.Tasks.AddAsync(task); + await mainAppContext.Tasks.AddAsync(newTask); await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Task created successfully.")); diff --git a/Controllers/Mobile/v1/TasksController.cs b/Controllers/Mobile/v1/TasksController.cs index 04529ff..3a1de1c 100644 --- a/Controllers/Mobile/v1/TasksController.cs +++ b/Controllers/Mobile/v1/TasksController.cs @@ -22,27 +22,18 @@ public class TasksController(MainAppContext mainAppContext, UserManager us [HttpPut("tasks/{id}/updateStatus")] public async Task UpdateTaskAsync(long id, [FromBody] TaskUpdateDTO taskUpdateDTO) { - //get task first and check its status if exist - var task = await mainAppContext.Tasks.FindAsync(id); - if (task != null && !task.IsDeleted) + TaskEntity? storedTask = await mainAppContext.Tasks.FindAsync(id); + if (storedTask != null && !storedTask.IsDeleted) { - //if its already done cant make any change to it - if (task.Status == Constants.TASKS_STATUS_DONE) - { - return BadRequest(new ApiResponse - { - IsSuccess = false, - Results = "task is already done", - }); - } - //update task status - //if new status is done we should update completedAt field too + if (storedTask.Status == Constants.TASKS_STATUS_DONE) + return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "task is already done")); + if (taskUpdateDTO.Status == Constants.TASKS_STATUS_DONE) - task.CompletedAt = DateTime.Now; - task.Status = taskUpdateDTO.Status; - task.DeadlineAt = taskUpdateDTO.deadlineAt; - task.Name = taskUpdateDTO.Name; - task.Notes = taskUpdateDTO.notes; + storedTask.CompletedAt = DateTime.Now; + storedTask.Status = taskUpdateDTO.Status; + storedTask.DeadlineAt = taskUpdateDTO.deadlineAt; + storedTask.Name = taskUpdateDTO.Name; + storedTask.Notes = taskUpdateDTO.notes; await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Task Has Been Updated ")); diff --git a/Models/Bid.cs b/Models/Bid.cs index 67c4c7b..11440c7 100644 --- a/Models/Bid.cs +++ b/Models/Bid.cs @@ -1,4 +1,6 @@ -using System.ComponentModel.DataAnnotations.Schema; +using AonFreelancing.Models.DTOs; +using AonFreelancing.Utilities; +using System.ComponentModel.DataAnnotations.Schema; namespace AonFreelancing.Models { @@ -12,8 +14,22 @@ public class Bid public Freelancer Freelancer { get; set; } public decimal ProposedPrice { get; set; } public string? Notes { get; set; } - public string Status { get; set; } = "pending"; - public DateTime SubmittedAt { get; set; } = DateTime.Now; + public string Status { get; set; } + public DateTime SubmittedAt { get; set; } public DateTime? ApprovedAt { get; set; } + + public Bid() { } + + Bid(BidInputDto inputDto,long freelancerId,long projectId) + { + FreelancerId = freelancerId; + ProjectId = projectId; + ProposedPrice = inputDto.ProposedPrice; + Notes = inputDto.Notes; + Status = Constants.BIDS_STATUS_PENDING; + SubmittedAt = DateTime.Now; + } + + public static Bid FromInputDTO(BidInputDto inputDto,long freelancerId,long projectId) =>new Bid(inputDto,freelancerId,projectId); } } diff --git a/Models/DTOs/BidOutDto.cs b/Models/DTOs/BidOutputDTO.cs similarity index 52% rename from Models/DTOs/BidOutDto.cs rename to Models/DTOs/BidOutputDTO.cs index 5c94326..b7e08c9 100644 --- a/Models/DTOs/BidOutDto.cs +++ b/Models/DTOs/BidOutputDTO.cs @@ -1,6 +1,6 @@ namespace AonFreelancing.Models.DTOs { - public class BidOutDto + public class BidOutputDTO { public long Id { get; set; } public long ProjectId { get; set; } @@ -13,5 +13,19 @@ public class BidOutDto public string Status { get; set; } = "pending"; public DateTime SubmittedAt { get; set; } = DateTime.Now; public DateTime? ApprovedAt { get; set; } + + BidOutputDTO(Bid bid) + { + Id = bid.Id; + FreelancerId = bid.FreelancerId; + Freelancer = FreelancerShortOutDTO.FromFreelancer(bid.Freelancer); + ProposedPrice = bid.ProposedPrice; + Notes = bid.Notes; + Status = bid.Status; + SubmittedAt = bid.SubmittedAt; + ApprovedAt = bid.ApprovedAt; + } + public static BidOutputDTO FromBid(Bid bid) => new BidOutputDTO(bid); + } } diff --git a/Models/DTOs/FreelancerDTO.cs b/Models/DTOs/FreelancerDTO.cs index 016b87f..0d24e8a 100644 --- a/Models/DTOs/FreelancerDTO.cs +++ b/Models/DTOs/FreelancerDTO.cs @@ -2,7 +2,7 @@ namespace AonFreelancing.Models.DTOs { - public class FreelancerDTO:UserDTO + public class FreelancerDTO : UserDTO { public string Skills { get; set; } @@ -13,16 +13,23 @@ public class FreelancerRequestDTO : UserDTO public string Skills { get; set; } } - public class FreelancerResponseDTO : UserResponseDTO { + public class FreelancerResponseDTO : UserResponseDTO + { public string? Skills { get; set; } - + } public class FreelancerShortOutDTO { public long Id { get; set; } public string Name { get; set; } - public string QualificationName { get; set; } + + FreelancerShortOutDTO(Freelancer freelancer) + { + Id = freelancer.Id; + Name = freelancer.Name; + } + public static FreelancerShortOutDTO FromFreelancer(Freelancer freelancer) => new FreelancerShortOutDTO(freelancer); } } diff --git a/Models/DTOs/ProjectOutDTO.cs b/Models/DTOs/ProjectOutDTO.cs index 76e53c5..54a9c14 100644 --- a/Models/DTOs/ProjectOutDTO.cs +++ b/Models/DTOs/ProjectOutDTO.cs @@ -1,6 +1,7 @@ using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; using System.Diagnostics.CodeAnalysis; +using AonFreelancing.Utilities; namespace AonFreelancing.Models.DTOs { @@ -9,7 +10,7 @@ public class ProjectOutDTO public long Id { get; set; } public int Duration { get; set; } public string Title { get; set; } - public string Description { get; set; } + public string? Description { get; set; } public string Qualifications { get; set; } public string PriceType { get; set; } public string Status { get; set; } @@ -18,5 +19,23 @@ public class ProjectOutDTO public DateTime? StartDate { get; set; } public DateTime? EndDate { get; set; } public string? CreationTime { get; set; } + + ProjectOutDTO(Project project) + { + Id = project.Id; + Duration = project.Duration; + Title = project.Title; + Description = project.Description; + Qualifications = project.QualificationName; + PriceType = project.PriceType; + Status = project.Status; + Budget = project.Budget; + CreatedAt = project.CreatedAt; + StartDate = project.StartDate; + EndDate = project.EndDate; + CreationTime = StringOperations.GetTimeAgo(CreatedAt); + } + public static ProjectOutDTO FromProject(Project project) => new ProjectOutDTO(project); + } } diff --git a/Models/DTOs/TaskInputDto.cs b/Models/DTOs/TaskInputDto.cs index 98281cb..e24a120 100644 --- a/Models/DTOs/TaskInputDto.cs +++ b/Models/DTOs/TaskInputDto.cs @@ -1,6 +1,6 @@ namespace AonFreelancing.Models.DTOs { - public class TaskInputDto + public class TaskInputDTO { public string Name { get; set; } public DateTime DeadlineAt { get; set; } diff --git a/Models/Project.cs b/Models/Project.cs index 3c191f2..a62dc5f 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -1,4 +1,5 @@ -using System.ComponentModel.DataAnnotations; +using AonFreelancing.Models.DTOs; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Diagnostics.CodeAnalysis; @@ -35,5 +36,19 @@ public class Project public ICollection Tasks { get; set; } = new List(); + public Project() { } + Project(ProjectInputDto inputDto,long clientId) + { + ClientId = clientId; + Title = inputDto.Title; + Description = inputDto.Description; + QualificationName = inputDto.QualificationName; + Duration = inputDto.Duration; + Budget = inputDto.Budget; + PriceType = inputDto.PriceType; + CreatedAt = DateTime.Now; + } + public static Project FromInputDTO(ProjectInputDto inputDto, long clientId) => new Project(inputDto, clientId); + } } diff --git a/Models/TaskEntity.cs b/Models/TaskEntity.cs index ece4483..c8ef875 100644 --- a/Models/TaskEntity.cs +++ b/Models/TaskEntity.cs @@ -1,4 +1,6 @@ -namespace AonFreelancing.Models +using AonFreelancing.Models.DTOs; + +namespace AonFreelancing.Models { public class TaskEntity { @@ -13,6 +15,16 @@ public class TaskEntity public bool IsDeleted { get; set; } public DateTime? DeletedAt { get; set; } + + public TaskEntity() { } + TaskEntity(TaskInputDTO inputDTO,long projectId) + { + ProjectId = projectId; + Name = inputDTO.Name; + DeadlineAt = inputDTO.DeadlineAt; + Notes = inputDTO.Notes; + } + public static TaskEntity FromInputDTO(TaskInputDTO inputDTO,long projectId) =>new TaskEntity(inputDTO, projectId); } } From 3ce86d77327940b68556065cf2eced4871ac106e Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 26 Nov 2024 14:14:28 +0300 Subject: [PATCH 03/12] after new migration --- ...184339_image_path-nullable-mig.Designer.cs | 648 ----------------- .../20241122184339_image_path-nullable-mig.cs | 54 -- ...4526_project-desc-nullable-mig.Designer.cs | 647 ----------------- ...0241122184526_project-desc-nullable-mig.cs | 36 - .../20241123015445_task07_update.Designer.cs | 654 ------------------ Migrations/20241123104906_Week08Mig.cs | 22 - ...cs => 20241126110848_init-mig.Designer.cs} | 5 +- ...7_update.cs => 20241126110848_init-mig.cs} | 4 +- Models/Project.cs | 4 +- Models/TaskEntity.cs | 2 +- 10 files changed, 7 insertions(+), 2069 deletions(-) delete mode 100644 Migrations/20241122184339_image_path-nullable-mig.Designer.cs delete mode 100644 Migrations/20241122184339_image_path-nullable-mig.cs delete mode 100644 Migrations/20241122184526_project-desc-nullable-mig.Designer.cs delete mode 100644 Migrations/20241122184526_project-desc-nullable-mig.cs delete mode 100644 Migrations/20241123015445_task07_update.Designer.cs delete mode 100644 Migrations/20241123104906_Week08Mig.cs rename Migrations/{20241123104906_Week08Mig.Designer.cs => 20241126110848_init-mig.Designer.cs} (99%) rename Migrations/{20241123015445_task07_update.cs => 20241126110848_init-mig.cs} (99%) diff --git a/Migrations/20241122184339_image_path-nullable-mig.Designer.cs b/Migrations/20241122184339_image_path-nullable-mig.Designer.cs deleted file mode 100644 index 20cb1d6..0000000 --- a/Migrations/20241122184339_image_path-nullable-mig.Designer.cs +++ /dev/null @@ -1,648 +0,0 @@ -// -using System; -using AonFreelancing.Contexts; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - [DbContext(typeof(MainAppContext))] - [Migration("20241122184339_image_path-nullable-mig")] - partial class image_pathnullablemig - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ApprovedAt") - .HasColumnType("datetime2"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("Notes") - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("int"); - - b.Property("ProposedPrice") - .HasColumnType("decimal(18,2)"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("SubmittedAt") - .HasColumnType("datetime2"); - - b.Property("SystemUserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.HasIndex("ProjectId"); - - b.HasIndex("SystemUserId"); - - b.ToTable("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("Code") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("ExpiresAt") - .HasColumnType("datetime2"); - - b.Property("IsUsed") - .HasColumnType("bit"); - - b.HasKey("PhoneNumber"); - - b.ToTable("otps", null, t => - { - t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Budget") - .HasColumnType("decimal(18,2)"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("CreatedAt") - .HasColumnType("datetime2"); - - b.Property("Description") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Duration") - .HasColumnType("int"); - - b.Property("EndDate") - .HasColumnType("datetime2"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("ImagePath") - .HasColumnType("nvarchar(max)"); - - b.Property("PriceType") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("QualificationName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("StartDate") - .HasColumnType("datetime2"); - - b.Property("Status") - .IsRequired() - .ValueGeneratedOnAdd() - .HasColumnType("nvarchar(max)") - .HasDefaultValue("Available"); - - b.Property("Title") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.ToTable("Projects", null, t => - { - t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); - - t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); - - t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("CompletedAt") - .HasColumnType("datetime2"); - - b.Property("DeadlineAt") - .HasColumnType("datetime2"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Notes") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("int"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ProjectId"); - - b.ToTable("Tasks", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.TempUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PhoneNumber") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("PhoneNumber") - .IsUnique(); - - b.ToTable("TempUser", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("About") - .HasColumnType("nvarchar(max)"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("PhoneNumber") - .IsUnique() - .HasFilter("[PhoneNumber] IS NOT NULL"); - - b.ToTable("AspNetUsers", (string)null); - - b.UseTptMappingStrategy(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderKey") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderDisplayName") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("CompanyName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Clients", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Skills") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Freelancers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Permissions") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("SystemUsers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.HasOne("AonFreelancing.Models.Client", null) - .WithMany("Bids") - .HasForeignKey("ClientId"); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany("Bids") - .HasForeignKey("FreelancerId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Bids") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.SystemUser", null) - .WithMany("Bids") - .HasForeignKey("SystemUserId"); - - b.Navigation("Freelancer"); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.HasOne("AonFreelancing.Models.TempUser", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") - .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.HasOne("AonFreelancing.Models.Client", "Client") - .WithMany("Projects") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany() - .HasForeignKey("FreelancerId"); - - b.Navigation("Client"); - - b.Navigation("Freelancer"); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Tasks") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Client", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Navigation("Bids"); - - b.Navigation("Tasks"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.Navigation("Bids"); - - b.Navigation("Projects"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.Navigation("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.Navigation("Bids"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Migrations/20241122184339_image_path-nullable-mig.cs b/Migrations/20241122184339_image_path-nullable-mig.cs deleted file mode 100644 index c82bd4e..0000000 --- a/Migrations/20241122184339_image_path-nullable-mig.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - /// - public partial class image_pathnullablemig : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "ImagePath", - table: "Projects", - type: "nvarchar(max)", - nullable: true, - oldClrType: typeof(string), - oldType: "nvarchar(max)"); - - migrationBuilder.AlterColumn( - name: "Notes", - table: "Bids", - type: "nvarchar(max)", - nullable: true, - oldClrType: typeof(string), - oldType: "nvarchar(max)"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "ImagePath", - table: "Projects", - type: "nvarchar(max)", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "nvarchar(max)", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "Notes", - table: "Bids", - type: "nvarchar(max)", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "nvarchar(max)", - oldNullable: true); - } - } -} diff --git a/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs b/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs deleted file mode 100644 index d6f9744..0000000 --- a/Migrations/20241122184526_project-desc-nullable-mig.Designer.cs +++ /dev/null @@ -1,647 +0,0 @@ -// -using System; -using AonFreelancing.Contexts; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - [DbContext(typeof(MainAppContext))] - [Migration("20241122184526_project-desc-nullable-mig")] - partial class projectdescnullablemig - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ApprovedAt") - .HasColumnType("datetime2"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("Notes") - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("int"); - - b.Property("ProposedPrice") - .HasColumnType("decimal(18,2)"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("SubmittedAt") - .HasColumnType("datetime2"); - - b.Property("SystemUserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.HasIndex("ProjectId"); - - b.HasIndex("SystemUserId"); - - b.ToTable("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("Code") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("ExpiresAt") - .HasColumnType("datetime2"); - - b.Property("IsUsed") - .HasColumnType("bit"); - - b.HasKey("PhoneNumber"); - - b.ToTable("otps", null, t => - { - t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Budget") - .HasColumnType("decimal(18,2)"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("CreatedAt") - .HasColumnType("datetime2"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("Duration") - .HasColumnType("int"); - - b.Property("EndDate") - .HasColumnType("datetime2"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("ImagePath") - .HasColumnType("nvarchar(max)"); - - b.Property("PriceType") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("QualificationName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("StartDate") - .HasColumnType("datetime2"); - - b.Property("Status") - .IsRequired() - .ValueGeneratedOnAdd() - .HasColumnType("nvarchar(max)") - .HasDefaultValue("Available"); - - b.Property("Title") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.ToTable("Projects", null, t => - { - t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); - - t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); - - t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("CompletedAt") - .HasColumnType("datetime2"); - - b.Property("DeadlineAt") - .HasColumnType("datetime2"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Notes") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("int"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ProjectId"); - - b.ToTable("Tasks", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.TempUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PhoneNumber") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("PhoneNumber") - .IsUnique(); - - b.ToTable("TempUser", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("About") - .HasColumnType("nvarchar(max)"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("PhoneNumber") - .IsUnique() - .HasFilter("[PhoneNumber] IS NOT NULL"); - - b.ToTable("AspNetUsers", (string)null); - - b.UseTptMappingStrategy(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderKey") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderDisplayName") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("CompanyName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Clients", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Skills") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Freelancers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Permissions") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("SystemUsers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.HasOne("AonFreelancing.Models.Client", null) - .WithMany("Bids") - .HasForeignKey("ClientId"); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany("Bids") - .HasForeignKey("FreelancerId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Bids") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.SystemUser", null) - .WithMany("Bids") - .HasForeignKey("SystemUserId"); - - b.Navigation("Freelancer"); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.HasOne("AonFreelancing.Models.TempUser", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") - .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.HasOne("AonFreelancing.Models.Client", "Client") - .WithMany("Projects") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany() - .HasForeignKey("FreelancerId"); - - b.Navigation("Client"); - - b.Navigation("Freelancer"); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Tasks") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Client", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Navigation("Bids"); - - b.Navigation("Tasks"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.Navigation("Bids"); - - b.Navigation("Projects"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.Navigation("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.Navigation("Bids"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Migrations/20241122184526_project-desc-nullable-mig.cs b/Migrations/20241122184526_project-desc-nullable-mig.cs deleted file mode 100644 index ce6ed1d..0000000 --- a/Migrations/20241122184526_project-desc-nullable-mig.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - /// - public partial class projectdescnullablemig : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "Description", - table: "Projects", - type: "nvarchar(max)", - nullable: true, - oldClrType: typeof(string), - oldType: "nvarchar(max)"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "Description", - table: "Projects", - type: "nvarchar(max)", - nullable: false, - defaultValue: "", - oldClrType: typeof(string), - oldType: "nvarchar(max)", - oldNullable: true); - } - } -} diff --git a/Migrations/20241123015445_task07_update.Designer.cs b/Migrations/20241123015445_task07_update.Designer.cs deleted file mode 100644 index 94ee986..0000000 --- a/Migrations/20241123015445_task07_update.Designer.cs +++ /dev/null @@ -1,654 +0,0 @@ -// -using System; -using AonFreelancing.Contexts; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - [DbContext(typeof(MainAppContext))] - [Migration("20241123015445_task07_update")] - partial class task07_update - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.10") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName") - .IsUnique() - .HasDatabaseName("RoleNameIndex") - .HasFilter("[NormalizedName] IS NOT NULL"); - - b.ToTable("AspNetRoles", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ApprovedAt") - .HasColumnType("datetime2"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("Notes") - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("bigint"); - - b.Property("ProposedPrice") - .HasColumnType("decimal(18,2)"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("SubmittedAt") - .HasColumnType("datetime2"); - - b.Property("SystemUserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.HasIndex("ProjectId"); - - b.HasIndex("SystemUserId"); - - b.ToTable("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("Code") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("ExpiresAt") - .HasColumnType("datetime2"); - - b.Property("IsUsed") - .HasColumnType("bit"); - - b.HasKey("PhoneNumber"); - - b.ToTable("otps", null, t => - { - t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Budget") - .HasColumnType("decimal(18,2)"); - - b.Property("ClientId") - .HasColumnType("bigint"); - - b.Property("CreatedAt") - .HasColumnType("datetime2"); - - b.Property("Description") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Duration") - .HasColumnType("int"); - - b.Property("EndDate") - .HasColumnType("datetime2"); - - b.Property("FreelancerId") - .HasColumnType("bigint"); - - b.Property("ImagePath") - .HasColumnType("nvarchar(max)"); - - b.Property("PriceType") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("QualificationName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("StartDate") - .HasColumnType("datetime2"); - - b.Property("Status") - .IsRequired() - .ValueGeneratedOnAdd() - .HasColumnType("nvarchar(max)") - .HasDefaultValue("Available"); - - b.Property("Title") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("FreelancerId"); - - b.ToTable("Projects", null, t => - { - t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); - - t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); - - t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); - }); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("CompletedAt") - .HasColumnType("datetime2"); - - b.Property("DeadlineAt") - .HasColumnType("datetime2"); - - b.Property("DeletedAt") - .HasColumnType("datetime2"); - - b.Property("IsDeleted") - .HasColumnType("bit"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Notes") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("ProjectId") - .HasColumnType("bigint"); - - b.Property("Status") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("ProjectId"); - - b.ToTable("Tasks", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.TempUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PhoneNumber") - .IsRequired() - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.HasIndex("PhoneNumber") - .IsUnique(); - - b.ToTable("TempUser", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("About") - .HasColumnType("nvarchar(max)"); - - b.Property("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("Name") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("NormalizedEmail") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(450)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasDatabaseName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasDatabaseName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("PhoneNumber") - .IsUnique() - .HasFilter("[PhoneNumber] IS NOT NULL"); - - b.ToTable("AspNetUsers", (string)null); - - b.UseTptMappingStrategy(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetRoleClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClaimType") - .HasColumnType("nvarchar(max)"); - - b.Property("ClaimValue") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserClaims", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderKey") - .HasColumnType("nvarchar(450)"); - - b.Property("ProviderDisplayName") - .HasColumnType("nvarchar(max)"); - - b.Property("UserId") - .HasColumnType("bigint"); - - b.HasKey("LoginProvider", "ProviderKey"); - - b.HasIndex("UserId"); - - b.ToTable("AspNetUserLogins", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("RoleId") - .HasColumnType("bigint"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId"); - - b.ToTable("AspNetUserRoles", (string)null); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("bigint"); - - b.Property("LoginProvider") - .HasColumnType("nvarchar(450)"); - - b.Property("Name") - .HasColumnType("nvarchar(450)"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AspNetUserTokens", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("CompanyName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Clients", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Skills") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("Freelancers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasBaseType("AonFreelancing.Models.User"); - - b.Property("Permissions") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.ToTable("SystemUsers", (string)null); - }); - - modelBuilder.Entity("AonFreelancing.Models.Bid", b => - { - b.HasOne("AonFreelancing.Models.Client", null) - .WithMany("Bids") - .HasForeignKey("ClientId"); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany("Bids") - .HasForeignKey("FreelancerId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Bids") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.SystemUser", null) - .WithMany("Bids") - .HasForeignKey("SystemUserId"); - - b.Navigation("Freelancer"); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("AonFreelancing.Models.OTP", b => - { - b.HasOne("AonFreelancing.Models.TempUser", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") - .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.HasOne("AonFreelancing.Models.Client", "Client") - .WithMany("Projects") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") - .WithMany() - .HasForeignKey("FreelancerId"); - - b.Navigation("Client"); - - b.Navigation("Freelancer"); - }); - - modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => - { - b.HasOne("AonFreelancing.Models.Project", "Project") - .WithMany("Tasks") - .HasForeignKey("ProjectId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Project"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("AonFreelancing.Models.ApplicationRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Client", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.HasOne("AonFreelancing.Models.User", null) - .WithOne() - .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("AonFreelancing.Models.Project", b => - { - b.Navigation("Bids"); - - b.Navigation("Tasks"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Client", b => - { - b.Navigation("Bids"); - - b.Navigation("Projects"); - }); - - modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => - { - b.Navigation("Bids"); - }); - - modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => - { - b.Navigation("Bids"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Migrations/20241123104906_Week08Mig.cs b/Migrations/20241123104906_Week08Mig.cs deleted file mode 100644 index 1f98dff..0000000 --- a/Migrations/20241123104906_Week08Mig.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AonFreelancing.Migrations -{ - /// - public partial class Week08Mig : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/Migrations/20241123104906_Week08Mig.Designer.cs b/Migrations/20241126110848_init-mig.Designer.cs similarity index 99% rename from Migrations/20241123104906_Week08Mig.Designer.cs rename to Migrations/20241126110848_init-mig.Designer.cs index 2bd7ce4..881cd9b 100644 --- a/Migrations/20241123104906_Week08Mig.Designer.cs +++ b/Migrations/20241126110848_init-mig.Designer.cs @@ -12,8 +12,8 @@ namespace AonFreelancing.Migrations { [DbContext(typeof(MainAppContext))] - [Migration("20241123104906_Week08Mig")] - partial class Week08Mig + [Migration("20241126110848_init-mig")] + partial class initmig { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -148,7 +148,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasColumnType("datetime2"); b.Property("Description") - .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Duration") diff --git a/Migrations/20241123015445_task07_update.cs b/Migrations/20241126110848_init-mig.cs similarity index 99% rename from Migrations/20241123015445_task07_update.cs rename to Migrations/20241126110848_init-mig.cs index 832f046..5204cd9 100644 --- a/Migrations/20241123015445_task07_update.cs +++ b/Migrations/20241126110848_init-mig.cs @@ -6,7 +6,7 @@ namespace AonFreelancing.Migrations { /// - public partial class task07_update : Migration + public partial class initmig : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) @@ -258,7 +258,7 @@ protected override void Up(MigrationBuilder migrationBuilder) Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Title = table.Column(type: "nvarchar(max)", nullable: false), - Description = table.Column(type: "nvarchar(max)", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), ClientId = table.Column(type: "bigint", nullable: false), CreatedAt = table.Column(type: "datetime2", nullable: false), StartDate = table.Column(type: "datetime2", nullable: true), diff --git a/Models/Project.cs b/Models/Project.cs index a62dc5f..5ef8a24 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -18,7 +18,7 @@ public class Project // Belongs to a client [ForeignKey("ClientId")] - public Client Client { get; set; } + public Client? Client { get; set; } public DateTime CreatedAt { get; set; } public DateTime? StartDate { get; set; } @@ -30,7 +30,7 @@ public class Project public string Status { get; set; } public long? FreelancerId { get; set; } [ForeignKey("FreelancerId")] - public virtual Freelancer? Freelancer { get; set; } + public Freelancer? Freelancer { get; set; } public ICollection Bids { get; set; } = new List(); public string? ImagePath { get; set; } diff --git a/Models/TaskEntity.cs b/Models/TaskEntity.cs index c8ef875..bc84136 100644 --- a/Models/TaskEntity.cs +++ b/Models/TaskEntity.cs @@ -6,7 +6,7 @@ public class TaskEntity { public long Id { get; set; } public long ProjectId { get; set; } - public Project Project { get; set; } + public Project? Project { get; set; } public string Name { get; set; } public string Status { get; set; } = "To-Do"; public DateTime? DeadlineAt { get; set; } From deb40b61ccdc3f023cf145a5c4fb3e144888d716 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 26 Nov 2024 15:01:39 +0300 Subject: [PATCH 04/12] implement getting tasks of a project with optional filter --- Controllers/Mobile/v1/ProjectsController.cs | 23 +++++++++------- Models/DTOs/TaskOutputDTO.cs | 3 ++- Program.cs | 30 +-------------------- 3 files changed, 17 insertions(+), 39 deletions(-) diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index 3b12e5d..1669ea5 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; namespace AonFreelancing.Controllers.Mobile.v1 { @@ -245,16 +246,20 @@ public async Task UploadProjectImage(long id, IFormFile file) Errors = null }); } + [HttpGet("{projectId}/tasks")] + public async Task GetTasksByProjectIdAsync([FromRoute] long projectId, + [AllowedValues(Constants.TASKS_STATUS_TO_DO,Constants.TASKS_STATUS_DONE,Constants.TASKS_STATUS_IN_PROGRESS,Constants.TASKS_STATUS_IN_REVIEW,ErrorMessage = $"status should be one of the values: '{Constants.TASKS_STATUS_TO_DO}', '{Constants.TASKS_STATUS_DONE}', '{Constants.TASKS_STATUS_IN_PROGRESS}', '{Constants.TASKS_STATUS_IN_REVIEW}', or empty")] + [FromQuery] string status = "") + { + if (!ModelState.IsValid) + return base.CustomBadRequest(); - //[HttpGet("{id}")] - //public IActionResult GetProject(int id) - //{ - // var project = _mainAppContext.Projects - // .Include(p => p.Client) - // .FirstOrDefault(p => p.Id == id); - - // return Ok(CreateSuccessResponse(project)); + List storedTasksDTOs = await mainAppContext.Tasks.AsNoTracking() + .Where(t => t.ProjectId == projectId && t.Status.Contains(status)) + .Select(t => TaskOutputDTO.FromTask(t)) + .ToListAsync(); + return Ok(CreateSuccessResponse(storedTasksDTOs)); + } - //} } } \ No newline at end of file diff --git a/Models/DTOs/TaskOutputDTO.cs b/Models/DTOs/TaskOutputDTO.cs index be1718b..13ff9f3 100644 --- a/Models/DTOs/TaskOutputDTO.cs +++ b/Models/DTOs/TaskOutputDTO.cs @@ -11,7 +11,7 @@ public class TaskOutputDTO public DateTime? CompletedAt { get; set; } public TaskOutputDTO() { } - public TaskOutputDTO(TaskEntity task) + TaskOutputDTO(TaskEntity task) { Id = task.Id; ProjectId = task.ProjectId; @@ -21,5 +21,6 @@ public TaskOutputDTO(TaskEntity task) Deadline = task.DeadlineAt; CompletedAt = task.CompletedAt; } + public static TaskOutputDTO FromTask(TaskEntity task) => new TaskOutputDTO(task); } } diff --git a/Program.cs b/Program.cs index 21201c2..e7beac9 100644 --- a/Program.cs +++ b/Program.cs @@ -30,7 +30,6 @@ public static void Main(string[] args) builder.Services.AddIdentity() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); - builder.Configuration.AddJsonFile("appsettings.json"); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(options => @@ -57,9 +56,8 @@ public static void Main(string[] args) } }); }); - - + builder.Configuration.AddJsonFile("appsettings.json"); // JWT Authentication configuration var jwtSettings = builder.Configuration.GetSection("Jwt"); var key = Encoding.UTF8.GetBytes(jwtSettings["Key"] ?? string.Empty); @@ -84,32 +82,6 @@ public static void Main(string[] args) }); - builder.Services.AddSwaggerGen(options => - { - options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() - { - Name = "Authorization", - In = ParameterLocation.Header, - Type = SecuritySchemeType.Http, - Scheme = "Bearer" - }); - options.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference - { - Type = ReferenceType.SecurityScheme, - Id = "Bearer" - } - }, - Array.Empty() - } - }); - }); - - builder.Services.Configure(options => { options.SuppressModelStateInvalidFilter = true; From cc2ffd3921e28f804dd2665041ddcb39470dfba1 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 26 Nov 2024 16:51:29 +0300 Subject: [PATCH 05/12] implement user statistics functionality --- Contexts/MainAppContext.cs | 5 +- Controllers/Mobile/v1/ProjectsController.cs | 2 +- Controllers/Mobile/v1/TasksController.cs | 7 +- Controllers/Mobile/v1/UsersController.cs | 65 +- ...41126134541_update-tasks-table.Designer.cs | 658 ++++++++++++++++++ .../20241126134541_update-tasks-table.cs | 45 ++ Migrations/MainAppContextModelSnapshot.cs | 9 +- Models/DTOs/ProjectsStatisticsDTO.cs | 20 + Models/DTOs/TasksStatisticsDTO.cs | 29 + Models/DTOs/UserStatisticsDTO.cs | 16 + Models/TaskEntity.cs | 2 +- Utilities/Constants.cs | 8 +- 12 files changed, 832 insertions(+), 34 deletions(-) create mode 100644 Migrations/20241126134541_update-tasks-table.Designer.cs create mode 100644 Migrations/20241126134541_update-tasks-table.cs create mode 100644 Models/DTOs/ProjectsStatisticsDTO.cs create mode 100644 Models/DTOs/TasksStatisticsDTO.cs create mode 100644 Models/DTOs/UserStatisticsDTO.cs diff --git a/Contexts/MainAppContext.cs b/Contexts/MainAppContext.cs index fac806e..7cb3761 100644 --- a/Contexts/MainAppContext.cs +++ b/Contexts/MainAppContext.cs @@ -1,4 +1,5 @@ using AonFreelancing.Models; +using AonFreelancing.Utilities; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using System.Reflection.Emit; @@ -61,8 +62,8 @@ protected override void OnModelCreating(ModelBuilder builder) .OnDelete(DeleteBehavior.NoAction); - builder.Entity().ToTable("Tasks"); - + builder.Entity().ToTable("Tasks", t => t.HasCheckConstraint("CK_TASK_STATUS", $"[Status] IN ('{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_REVIEW}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_TO_DO}')")) + .Property(t => t.Status).HasDefaultValue(Constants.TASK_STATUS_TO_DO); base.OnModelCreating(builder); } } diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index 1669ea5..ea2a268 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -248,7 +248,7 @@ public async Task UploadProjectImage(long id, IFormFile file) } [HttpGet("{projectId}/tasks")] public async Task GetTasksByProjectIdAsync([FromRoute] long projectId, - [AllowedValues(Constants.TASKS_STATUS_TO_DO,Constants.TASKS_STATUS_DONE,Constants.TASKS_STATUS_IN_PROGRESS,Constants.TASKS_STATUS_IN_REVIEW,ErrorMessage = $"status should be one of the values: '{Constants.TASKS_STATUS_TO_DO}', '{Constants.TASKS_STATUS_DONE}', '{Constants.TASKS_STATUS_IN_PROGRESS}', '{Constants.TASKS_STATUS_IN_REVIEW}', or empty")] + [AllowedValues(Constants.TASK_STATUS_TO_DO,Constants.TASK_STATUS_DONE,Constants.TASK_STATUS_IN_PROGRESS,Constants.TASK_STATUS_IN_REVIEW,ErrorMessage = $"status should be one of the values: '{Constants.TASK_STATUS_TO_DO}', '{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_IN_REVIEW}', or empty")] [FromQuery] string status = "") { if (!ModelState.IsValid) diff --git a/Controllers/Mobile/v1/TasksController.cs b/Controllers/Mobile/v1/TasksController.cs index 3a1de1c..6e410a8 100644 --- a/Controllers/Mobile/v1/TasksController.cs +++ b/Controllers/Mobile/v1/TasksController.cs @@ -25,10 +25,10 @@ public async Task UpdateTaskAsync(long id, [FromBody] TaskUpdateD TaskEntity? storedTask = await mainAppContext.Tasks.FindAsync(id); if (storedTask != null && !storedTask.IsDeleted) { - if (storedTask.Status == Constants.TASKS_STATUS_DONE) + if (storedTask.Status == Constants.TASK_STATUS_DONE) return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "task is already done")); - if (taskUpdateDTO.Status == Constants.TASKS_STATUS_DONE) + if (taskUpdateDTO.Status == Constants.TASK_STATUS_DONE) storedTask.CompletedAt = DateTime.Now; storedTask.Status = taskUpdateDTO.Status; storedTask.DeadlineAt = taskUpdateDTO.deadlineAt; @@ -48,7 +48,7 @@ public async Task UpdateTaskAsync(long id, [FromBody] TaskUpdateD [HttpPut("tasks/{pid}/checkProgress")] public async Task CheckProgressStatusAsync( int pid ) { - decimal countDone= await mainAppContext.Tasks.Where(s => s.Status== Constants.TASKS_STATUS_DONE&&s.ProjectId==pid && s.IsDeleted==false).CountAsync(); + decimal countDone= await mainAppContext.Tasks.Where(s => s.Status== Constants.TASK_STATUS_DONE&&s.ProjectId==pid && s.IsDeleted==false).CountAsync(); decimal countTotal = await mainAppContext.Tasks.Where(s => s.ProjectId == pid && s.IsDeleted == false ).CountAsync(); if (countTotal > 0) { @@ -85,4 +85,5 @@ public async Task DeleteTaskAsync(long id) } } + } diff --git a/Controllers/Mobile/v1/UsersController.cs b/Controllers/Mobile/v1/UsersController.cs index 4c70fef..39b96c0 100644 --- a/Controllers/Mobile/v1/UsersController.cs +++ b/Controllers/Mobile/v1/UsersController.cs @@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using System.Collections.Immutable; +using System.Security.Claims; namespace AonFreelancing.Controllers.Mobile.v1 { @@ -16,9 +18,9 @@ public class UsersController(MainAppContext mainAppContext, RoleManager GetProfileByIdAsync([FromRoute]long id) + public async Task GetProfileByIdAsync([FromRoute] long id) { - var freelancer = await mainAppContext.Users + var freelancer = await mainAppContext.Users .OfType().Where(f => f.Id == id) .Select(f => new FreelancerResponseDTO { @@ -47,25 +49,25 @@ public async Task GetProfileByIdAsync([FromRoute]long id) .Where(c => c.Id == id) .Include(c => c.Projects) .Select(c => new ClientResponseDTO - { - Id = c.Id, - Name = c.Name, - Username = c.UserName ?? string.Empty, - PhoneNumber = c.PhoneNumber ?? string.Empty, - UserType = Constants.USER_TYPE_CLIENT, - IsPhoneNumberVerified = c.PhoneNumberConfirmed, - Role = new RoleResponseDTO { Name = Constants.USER_TYPE_CLIENT }, - Projects = c.Projects.Select(p => new ProjectDetailsDTO - { - Id = p.Id, - Description = p.Description, - EndDate = p.EndDate, - StartDate = p.StartDate, - Name = p.Title, - }), - CompanyName = c.CompanyName, + { + Id = c.Id, + Name = c.Name, + Username = c.UserName ?? string.Empty, + PhoneNumber = c.PhoneNumber ?? string.Empty, + UserType = Constants.USER_TYPE_CLIENT, + IsPhoneNumberVerified = c.PhoneNumberConfirmed, + Role = new RoleResponseDTO { Name = Constants.USER_TYPE_CLIENT }, + Projects = c.Projects.Select(p => new ProjectDetailsDTO + { + Id = p.Id, + Description = p.Description, + EndDate = p.EndDate, + StartDate = p.StartDate, + Name = p.Title, + }), + CompanyName = c.CompanyName, - }).FirstOrDefaultAsync(); + }).FirstOrDefaultAsync(); if (client != null) @@ -74,6 +76,27 @@ public async Task GetProfileByIdAsync([FromRoute]long id) return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "NotFound")); } + [HttpGet("/statistics")] + public async Task GetUserStatistics() + { + var identity = HttpContext.User.Identity as ClaimsIdentity; + long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + //User? authenticatedUser = await userManager.GetUserAsync(HttpContext.User); + + var storedProjects = await mainAppContext.Projects.AsNoTracking() + .Include(p => p.Freelancer) + .Include(p => p.Tasks) + .Where(p => p.ClientId == authenticatedUserId || p.FreelancerId == authenticatedUserId) + .ToListAsync(); + var storedTasks = storedProjects.SelectMany(p => p.Tasks) + .ToList(); + return Ok(CreateSuccessResponse(new UserStatisticsDTO(ProjectsStatisticsDTO.FromProjects(storedProjects), + TasksStatisticsDTO.FromTasks(storedTasks) + ) + )); + + } + } - + } diff --git a/Migrations/20241126134541_update-tasks-table.Designer.cs b/Migrations/20241126134541_update-tasks-table.Designer.cs new file mode 100644 index 0000000..b8933f7 --- /dev/null +++ b/Migrations/20241126134541_update-tasks-table.Designer.cs @@ -0,0 +1,658 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241126134541_update-tasks-table")] + partial class updatetaskstable + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImagePath") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("DeletedAt") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("to-do"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", null, t => + { + t.HasCheckConstraint("CK_TASK_STATUS", "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Skills") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241126134541_update-tasks-table.cs b/Migrations/20241126134541_update-tasks-table.cs new file mode 100644 index 0000000..ab8f297 --- /dev/null +++ b/Migrations/20241126134541_update-tasks-table.cs @@ -0,0 +1,45 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class updatetaskstable : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Status", + table: "Tasks", + type: "nvarchar(max)", + nullable: false, + defaultValue: "to-do", + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AddCheckConstraint( + name: "CK_TASK_STATUS", + table: "Tasks", + sql: "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropCheckConstraint( + name: "CK_TASK_STATUS", + table: "Tasks"); + + migrationBuilder.AlterColumn( + name: "Status", + table: "Tasks", + type: "nvarchar(max)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(max)", + oldDefaultValue: "to-do"); + } + } +} diff --git a/Migrations/MainAppContextModelSnapshot.cs b/Migrations/MainAppContextModelSnapshot.cs index 6519c1b..8c44704 100644 --- a/Migrations/MainAppContextModelSnapshot.cs +++ b/Migrations/MainAppContextModelSnapshot.cs @@ -229,13 +229,18 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Status") .IsRequired() - .HasColumnType("nvarchar(max)"); + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("to-do"); b.HasKey("Id"); b.HasIndex("ProjectId"); - b.ToTable("Tasks", (string)null); + b.ToTable("Tasks", null, t => + { + t.HasCheckConstraint("CK_TASK_STATUS", "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + }); }); modelBuilder.Entity("AonFreelancing.Models.TempUser", b => diff --git a/Models/DTOs/ProjectsStatisticsDTO.cs b/Models/DTOs/ProjectsStatisticsDTO.cs new file mode 100644 index 0000000..1e3f81b --- /dev/null +++ b/Models/DTOs/ProjectsStatisticsDTO.cs @@ -0,0 +1,20 @@ +using AonFreelancing.Utilities; + +namespace AonFreelancing.Models.DTOs +{ + public class ProjectsStatisticsDTO + { + public int Total { get; set; } + public int Available { get; set; } + public int Closed { get; set; } + + ProjectsStatisticsDTO(Listprojects) + { + Total = projects.Count; ; + Available = projects.Where(p => p.Status == Constants.PROJECT_STATUS_AVAILABLE).Count(); + Closed = projects.Where(p => p.Status == Constants.PROJECT_STATUS_CLOSED).Count(); + } + + public static ProjectsStatisticsDTO FromProjects(List projects) => new ProjectsStatisticsDTO(projects); + } +} \ No newline at end of file diff --git a/Models/DTOs/TasksStatisticsDTO.cs b/Models/DTOs/TasksStatisticsDTO.cs new file mode 100644 index 0000000..2198202 --- /dev/null +++ b/Models/DTOs/TasksStatisticsDTO.cs @@ -0,0 +1,29 @@ +using AonFreelancing.Utilities; + +namespace AonFreelancing.Models.DTOs +{ + public class TasksStatisticsDTO + { + + public int Total { get; set; } + public string ToDo { get; set; } + public string InReview { get; set; } + public string InProgress { get; set; } + public string Done { get; set; } + + TasksStatisticsDTO(List tasks) + { + Total = tasks.Count; + ToDo = GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_TO_DO).Count()); + InReview =GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_IN_REVIEW).Count()); + InProgress = GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_IN_PROGRESS).Count()); + Done = GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_DONE).Count()); + } + + public static TasksStatisticsDTO FromTasks(Listtasks)=>new TasksStatisticsDTO(tasks); + + string GetPercentString(decimal count) => $"{(count / Total) * 100}%"; + + + } +} \ No newline at end of file diff --git a/Models/DTOs/UserStatisticsDTO.cs b/Models/DTOs/UserStatisticsDTO.cs new file mode 100644 index 0000000..6178934 --- /dev/null +++ b/Models/DTOs/UserStatisticsDTO.cs @@ -0,0 +1,16 @@ +using System.Reflection.Metadata.Ecma335; + +namespace AonFreelancing.Models.DTOs +{ + public class UserStatisticsDTO + { + public ProjectsStatisticsDTO Projects { get; set; } + public TasksStatisticsDTO Tasks { get; set; } + + public UserStatisticsDTO(ProjectsStatisticsDTO projectsStatistics, TasksStatisticsDTO tasksStatistics) + { + Projects = projectsStatistics; + Tasks = tasksStatistics; + } + } +} diff --git a/Models/TaskEntity.cs b/Models/TaskEntity.cs index bc84136..2a88652 100644 --- a/Models/TaskEntity.cs +++ b/Models/TaskEntity.cs @@ -8,7 +8,7 @@ public class TaskEntity public long ProjectId { get; set; } public Project? Project { get; set; } public string Name { get; set; } - public string Status { get; set; } = "To-Do"; + public string Status { get; set; } public DateTime? DeadlineAt { get; set; } public DateTime? CompletedAt { get; set; } public string Notes { get; set; } diff --git a/Utilities/Constants.cs b/Utilities/Constants.cs index 45ab3f7..21df021 100644 --- a/Utilities/Constants.cs +++ b/Utilities/Constants.cs @@ -19,9 +19,9 @@ public class Constants public const string BIDS_STATUS_APPROVED = "approved"; - public const string TASKS_STATUS_TO_DO = "to-do"; - public const string TASKS_STATUS_IN_PROGRESS = "in-progress"; - public const string TASKS_STATUS_IN_REVIEW = "in-review"; - public const string TASKS_STATUS_DONE = "done"; + public const string TASK_STATUS_TO_DO = "to-do"; + public const string TASK_STATUS_IN_PROGRESS = "in-progress"; + public const string TASK_STATUS_IN_REVIEW = "in-review"; + public const string TASK_STATUS_DONE = "done"; } } From eabb850fdb069709b4ab0c65bbe320a88a963977 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 26 Nov 2024 21:43:52 +0300 Subject: [PATCH 06/12] implement skills entity with its POST and DELETE --- Contexts/MainAppContext.cs | 27 +- Controllers/BaseController.cs | 2 +- Controllers/Mobile/v1/AuthController.cs | 2 +- Controllers/Mobile/v1/ProjectsController.cs | 1 + Controllers/Mobile/v1/SkillsController.cs | 49 ++ Controllers/Mobile/v1/UsersController.cs | 34 +- Controllers/Web/v1/AuthController.cs | 2 +- Controllers/Web/v1/UsersController.cs | 30 +- Middlewares/ExceptionHandlingMiddleware.cs | 1 + ...0241126154253_skills-table-mig.Designer.cs | 687 ++++++++++++++++++ Migrations/20241126154253_skills-table-mig.cs | 57 ++ Migrations/MainAppContextModelSnapshot.cs | 37 +- Models/DTOs/FreelancerDTO.cs | 31 +- Models/DTOs/SkillInputDTO.cs | 10 + Models/DTOs/SkillOutDTO.cs | 14 + Models/DTOs/UserDTO.cs | 4 +- Models/Freelancer.cs | 10 +- Models/Requests/RegisterRequest.cs | 3 +- Models/{ => Responses}/ApiResponse.cs | 2 +- Models/Skill.cs | 20 + 20 files changed, 939 insertions(+), 84 deletions(-) create mode 100644 Controllers/Mobile/v1/SkillsController.cs create mode 100644 Migrations/20241126154253_skills-table-mig.Designer.cs create mode 100644 Migrations/20241126154253_skills-table-mig.cs create mode 100644 Models/DTOs/SkillInputDTO.cs create mode 100644 Models/DTOs/SkillOutDTO.cs rename Models/{ => Responses}/ApiResponse.cs (87%) create mode 100644 Models/Skill.cs diff --git a/Contexts/MainAppContext.cs b/Contexts/MainAppContext.cs index 7cb3761..3494627 100644 --- a/Contexts/MainAppContext.cs +++ b/Contexts/MainAppContext.cs @@ -21,7 +21,7 @@ public class MainAppContext(DbContextOptions contextOptions) public DbSet TempUsers { get; set; } public DbSet Bids { get; set; } public DbSet Tasks { get; set; } - + public DbSet Skills { get; set; } protected override void OnModelCreating(ModelBuilder builder) { @@ -36,19 +36,22 @@ protected override void OnModelCreating(ModelBuilder builder) builder.Entity().ToTable("SystemUsers"); builder.Entity().ToTable("otps", o => o.HasCheckConstraint("CK_CODE","LEN([Code]) = 6")); + + builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')")); + builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')")); + builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')")) + .Property(p=>p.Status).HasDefaultValue("Available"); + + builder.Entity().ToTable("Tasks", t => t.HasCheckConstraint("CK_TASK_STATUS", $"[Status] IN ('{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_REVIEW}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_TO_DO}')")) + .Property(t => t.Status).HasDefaultValue(Constants.TASK_STATUS_TO_DO); + + //set up relationships builder.Entity().HasOne() .WithOne() .HasForeignKey() .HasPrincipalKey(nameof(TempUser.PhoneNumber)); - builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')")); - - builder.Entity() - .ToTable("Projects", tb => tb.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')")); - builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')")) - .Property(p=>p.Status).HasDefaultValue("Available"); - builder.Entity() .HasOne(b => b.Project) .WithMany(p => p.Bids) @@ -61,9 +64,13 @@ protected override void OnModelCreating(ModelBuilder builder) .HasForeignKey(b => b.FreelancerId) .OnDelete(DeleteBehavior.NoAction); + builder.Entity().HasOne() + .WithMany(f=>f.Skills) + .HasForeignKey(s=>s.UserId) + .HasPrincipalKey(f=>f.Id); + + - builder.Entity().ToTable("Tasks", t => t.HasCheckConstraint("CK_TASK_STATUS", $"[Status] IN ('{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_REVIEW}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_TO_DO}')")) - .Property(t => t.Status).HasDefaultValue(Constants.TASK_STATUS_TO_DO); base.OnModelCreating(builder); } } diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs index 28809e3..5fa2748 100644 --- a/Controllers/BaseController.cs +++ b/Controllers/BaseController.cs @@ -1,4 +1,4 @@ -using AonFreelancing.Models; +using AonFreelancing.Models.Responses; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.AspNetCore.Mvc.ModelBinding; diff --git a/Controllers/Mobile/v1/AuthController.cs b/Controllers/Mobile/v1/AuthController.cs index 007317b..6d313ac 100644 --- a/Controllers/Mobile/v1/AuthController.cs +++ b/Controllers/Mobile/v1/AuthController.cs @@ -110,7 +110,7 @@ public async Task CompleteRegistrationAsync([FromBody] RegisterRe UserName = registerReq.Username, PhoneNumber = tempUser.PhoneNumber, PhoneNumberConfirmed = tempUser.PhoneNumberConfirmed, - Skills = registerReq.Skills ?? string.Empty, + //Skills = registerReq.Skills ?? string.Empty, }, Constants.USER_TYPE_CLIENT => new Client() { diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index ea2a268..2be4740 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -2,6 +2,7 @@ using AonFreelancing.Contexts; using AonFreelancing.Models; using AonFreelancing.Models.DTOs; +using AonFreelancing.Models.Responses; using AonFreelancing.Utilities; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; diff --git a/Controllers/Mobile/v1/SkillsController.cs b/Controllers/Mobile/v1/SkillsController.cs new file mode 100644 index 0000000..adea697 --- /dev/null +++ b/Controllers/Mobile/v1/SkillsController.cs @@ -0,0 +1,49 @@ +using AonFreelancing.Contexts; +using AonFreelancing.Models; +using AonFreelancing.Models.DTOs; +using AonFreelancing.Utilities; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.Security.Claims; + +namespace AonFreelancing.Controllers.Mobile.v1 +{ + [Authorize] + [Route("api/[controller]")] + [ApiController] + public class SkillsController (MainAppContext mainAppContext): BaseController + { + [Authorize(Roles =Constants.USER_TYPE_FREELANCER)] + [HttpPost] + public async Task CreateSkill([FromBody] SkillInputDTO skillInputDTO) + { + var identity = HttpContext.User.Identity as ClaimsIdentity; + long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + + Skill? newSkill = Skill.FromInputDTO(skillInputDTO,authenticatedUserId); + await mainAppContext.Skills.AddAsync(newSkill); + await mainAppContext.SaveChangesAsync(); + return StatusCode(StatusCodes.Status201Created,"skill added successfully"); + } + + [Authorize(Roles = Constants.USER_TYPE_FREELANCER)] + [HttpDelete("{id}")] + public async Task DeleteSkill(long id) + { + var identity = HttpContext.User.Identity as ClaimsIdentity; + long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + + Skill? storedSkill= mainAppContext.Skills.Where(s=>s.Id == id).FirstOrDefault(); + if (storedSkill == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "Skill not found")); + if (storedSkill.UserId != authenticatedUserId) + return Forbid(); + + mainAppContext.Skills.Remove(storedSkill); + await mainAppContext.SaveChangesAsync(); + + return NoContent(); + } + } +} diff --git a/Controllers/Mobile/v1/UsersController.cs b/Controllers/Mobile/v1/UsersController.cs index 39b96c0..42074e0 100644 --- a/Controllers/Mobile/v1/UsersController.cs +++ b/Controllers/Mobile/v1/UsersController.cs @@ -20,31 +20,17 @@ public class UsersController(MainAppContext mainAppContext, RoleManager GetProfileByIdAsync([FromRoute] long id) { - var freelancer = await mainAppContext.Users - .OfType().Where(f => f.Id == id) - .Select(f => new FreelancerResponseDTO - { - Id = f.Id, - Name = f.Name, - Username = f.UserName ?? string.Empty, - PhoneNumber = f.PhoneNumber ?? string.Empty, - UserType = Constants.USER_TYPE_FREELANCER, - IsPhoneNumberVerified = f.PhoneNumberConfirmed, - Role = new RoleResponseDTO { Name = Constants.USER_TYPE_FREELANCER }, - Skills = f.Skills, - }).FirstOrDefaultAsync(); + FreelancerResponseDTO? storedFreelancerDTO = await mainAppContext.Users.OfType() + .Include(f=>f.Skills) + .Where(f => f.Id == id) + .Select(f => FreelancerResponseDTO.FromFreelancer(f)) + .FirstOrDefaultAsync(); - - if (freelancer != null) - return Ok(new ApiResponse - { - IsSuccess = true, - Results = freelancer, - Errors = null - }); + if (storedFreelancerDTO != null) + return Ok(CreateSuccessResponse(storedFreelancerDTO)); - var client = await mainAppContext.Users + ClientResponseDTO? storedClientDTO = await mainAppContext.Users .OfType() .Where(c => c.Id == id) .Include(c => c.Projects) @@ -70,8 +56,8 @@ public async Task GetProfileByIdAsync([FromRoute] long id) }).FirstOrDefaultAsync(); - if (client != null) - return Ok(CreateSuccessResponse(client)); + if (storedClientDTO != null) + return Ok(CreateSuccessResponse(storedClientDTO)); return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "NotFound")); diff --git a/Controllers/Web/v1/AuthController.cs b/Controllers/Web/v1/AuthController.cs index 831f282..3b572f8 100644 --- a/Controllers/Web/v1/AuthController.cs +++ b/Controllers/Web/v1/AuthController.cs @@ -108,7 +108,7 @@ public async Task CompleteRegistrationAsync([FromBody] RegisterRe UserName = registerReq.Username, PhoneNumber = tempUser.PhoneNumber, PhoneNumberConfirmed = tempUser.PhoneNumberConfirmed, - Skills = registerReq.Skills ?? string.Empty, + //Skills = registerReq.Skills , }, Constants.USER_TYPE_CLIENT => new Client() { diff --git a/Controllers/Web/v1/UsersController.cs b/Controllers/Web/v1/UsersController.cs index 39804c6..aafb882 100644 --- a/Controllers/Web/v1/UsersController.cs +++ b/Controllers/Web/v1/UsersController.cs @@ -1,6 +1,7 @@ using AonFreelancing.Contexts; using AonFreelancing.Models; using AonFreelancing.Models.DTOs; +using AonFreelancing.Models.Responses; using AonFreelancing.Utilities; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; @@ -18,31 +19,22 @@ public class UsersController(MainAppContext mainAppContext, RoleManager GetProfileByIdAsync([FromRoute]long id) { - var freelancer = await mainAppContext.Users - .OfType().Where(f => f.Id == id) - .Select(f => new FreelancerResponseDTO - { - Id = f.Id, - Name = f.Name, - Username = f.UserName ?? string.Empty, - PhoneNumber = f.PhoneNumber ?? string.Empty, - UserType = Constants.USER_TYPE_FREELANCER, - IsPhoneNumberVerified = f.PhoneNumberConfirmed, - Role = new RoleResponseDTO { Name = Constants.USER_TYPE_FREELANCER }, - Skills = f.Skills, - }).FirstOrDefaultAsync(); - +FreelancerResponseDTO? storedFreelancerDTO = await mainAppContext.Users.OfType() + .Include(f=>f.Skills) + .Where(f => f.Id == id) + .Select(f => FreelancerResponseDTO.FromFreelancer(f)) + .FirstOrDefaultAsync(); - if (freelancer != null) + if (storedFreelancerDTO != null) return Ok(new ApiResponse { IsSuccess = true, - Results = freelancer, + Results = storedFreelancerDTO, Errors = null }); - var client = await mainAppContext.Users + ClientResponseDTO? storedClientDTO = await mainAppContext.Users .OfType() .Where(c => c.Id == id) .Include(c => c.Projects) @@ -68,8 +60,8 @@ public async Task GetProfileByIdAsync([FromRoute]long id) }).FirstOrDefaultAsync(); - if (client != null) - return Ok(CreateSuccessResponse(client)); + if (storedClientDTO != null) + return Ok(CreateSuccessResponse(storedClientDTO)); return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "NotFound")); diff --git a/Middlewares/ExceptionHandlingMiddleware.cs b/Middlewares/ExceptionHandlingMiddleware.cs index 3eed434..69438af 100644 --- a/Middlewares/ExceptionHandlingMiddleware.cs +++ b/Middlewares/ExceptionHandlingMiddleware.cs @@ -1,4 +1,5 @@ using AonFreelancing.Models; +using AonFreelancing.Models.Responses; namespace AonFreelancing.Middlewares { diff --git a/Migrations/20241126154253_skills-table-mig.Designer.cs b/Migrations/20241126154253_skills-table-mig.Designer.cs new file mode 100644 index 0000000..a25df7e --- /dev/null +++ b/Migrations/20241126154253_skills-table-mig.Designer.cs @@ -0,0 +1,687 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241126154253_skills-table-mig")] + partial class skillstablemig + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImagePath") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("userId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("userId"); + + b.ToTable("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("DeletedAt") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("to-do"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", null, t => + { + t.HasCheckConstraint("CK_TASK_STATUS", "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.HasOne("AonFreelancing.Models.Freelancer", null) + .WithMany("Skills") + .HasForeignKey("userId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + + b.Navigation("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241126154253_skills-table-mig.cs b/Migrations/20241126154253_skills-table-mig.cs new file mode 100644 index 0000000..76dec8a --- /dev/null +++ b/Migrations/20241126154253_skills-table-mig.cs @@ -0,0 +1,57 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class skillstablemig : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Skills", + table: "Freelancers"); + + migrationBuilder.CreateTable( + name: "Skills", + columns: table => new + { + Id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + userId = table.Column(type: "bigint", nullable: false), + Name = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Skills", x => x.Id); + table.ForeignKey( + name: "FK_Skills_Freelancers_userId", + column: x => x.userId, + principalTable: "Freelancers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Skills_userId", + table: "Skills", + column: "userId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Skills"); + + migrationBuilder.AddColumn( + name: "Skills", + table: "Freelancers", + type: "nvarchar(max)", + nullable: false, + defaultValue: ""); + } + } +} diff --git a/Migrations/MainAppContextModelSnapshot.cs b/Migrations/MainAppContextModelSnapshot.cs index 8c44704..fb39fe6 100644 --- a/Migrations/MainAppContextModelSnapshot.cs +++ b/Migrations/MainAppContextModelSnapshot.cs @@ -196,6 +196,28 @@ protected override void BuildModel(ModelBuilder modelBuilder) }); }); + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("userId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("userId"); + + b.ToTable("Skills"); + }); + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => { b.Property("Id") @@ -465,10 +487,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.HasBaseType("AonFreelancing.Models.User"); - b.Property("Skills") - .IsRequired() - .HasColumnType("nvarchar(max)"); - b.ToTable("Freelancers", (string)null); }); @@ -537,6 +555,15 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Freelancer"); }); + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.HasOne("AonFreelancing.Models.Freelancer", null) + .WithMany("Skills") + .HasForeignKey("userId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => { b.HasOne("AonFreelancing.Models.Project", "Project") @@ -643,6 +670,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => { b.Navigation("Bids"); + + b.Navigation("Skills"); }); modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => diff --git a/Models/DTOs/FreelancerDTO.cs b/Models/DTOs/FreelancerDTO.cs index 0d24e8a..b7e8f48 100644 --- a/Models/DTOs/FreelancerDTO.cs +++ b/Models/DTOs/FreelancerDTO.cs @@ -2,21 +2,32 @@ namespace AonFreelancing.Models.DTOs { - public class FreelancerDTO : UserDTO - { + //public class FreelancerDTO : UserDTO + //{ - public string Skills { get; set; } - } + // public string Skills { get; set; } + //} - public class FreelancerRequestDTO : UserDTO - { - public string Skills { get; set; } - } + //public class FreelancerRequestDTO : UserDTO + //{ + // public string Skills { get; set; } + //} public class FreelancerResponseDTO : UserResponseDTO { - public string? Skills { get; set; } - + public ListSkills { get; set; } + FreelancerResponseDTO(Freelancer freelancer) + { + Id = freelancer.Id; + Name = freelancer.Name; + Username = freelancer.UserName; + PhoneNumber = freelancer.PhoneNumber; + UserType = Constants.USER_TYPE_FREELANCER; + IsPhoneNumberVerified = freelancer.PhoneNumberConfirmed; + Role = new RoleResponseDTO { Name = Constants.USER_TYPE_FREELANCER }; + Skills = freelancer.Skills.Select(s => SkillOutDTO.FromSkill(s)).ToList(); + } + public static FreelancerResponseDTO FromFreelancer(Freelancer freelancer)=>new FreelancerResponseDTO(freelancer); } public class FreelancerShortOutDTO diff --git a/Models/DTOs/SkillInputDTO.cs b/Models/DTOs/SkillInputDTO.cs new file mode 100644 index 0000000..42ac8f2 --- /dev/null +++ b/Models/DTOs/SkillInputDTO.cs @@ -0,0 +1,10 @@ +using System.ComponentModel.DataAnnotations; + +namespace AonFreelancing.Models.DTOs +{ + public class SkillInputDTO + { + [Required(ErrorMessage = "skill name cannot be null")] + public string Name { get; set; } + } +} diff --git a/Models/DTOs/SkillOutDTO.cs b/Models/DTOs/SkillOutDTO.cs new file mode 100644 index 0000000..3b7005f --- /dev/null +++ b/Models/DTOs/SkillOutDTO.cs @@ -0,0 +1,14 @@ +namespace AonFreelancing.Models.DTOs +{ + public class SkillOutDTO + { + public long Id { get; set; } + public string Name { get; set; } + SkillOutDTO(Skill skill) + { + Id = skill.Id; + Name = skill.Name; + } + public static SkillOutDTO FromSkill(Skill skill) => new SkillOutDTO(skill); + } +} \ No newline at end of file diff --git a/Models/DTOs/UserDTO.cs b/Models/DTOs/UserDTO.cs index aff9fd9..3284ec0 100644 --- a/Models/DTOs/UserDTO.cs +++ b/Models/DTOs/UserDTO.cs @@ -34,9 +34,9 @@ public class UserResponseDTO public long Id { get; set; } public string Name { get; set; } - public string Email { get; set; } + public string? Email { get; set; } public string? About { get; set; } - public string Username { get; set; } + public string? Username { get; set; } public string PhoneNumber { get; set; } public bool IsPhoneNumberVerified { get; set; } diff --git a/Models/Freelancer.cs b/Models/Freelancer.cs index bf2b786..1609064 100644 --- a/Models/Freelancer.cs +++ b/Models/Freelancer.cs @@ -10,15 +10,7 @@ namespace AonFreelancing.Models [Table("Freelancers")] public class Freelancer : User { - - public string Skills { get; set; } - - - //public override void DisplayProfile() - //{ - // Console.WriteLine($"Overrided Method in Freelancer Class"); - //} - + public List Skills { get; set; } } diff --git a/Models/Requests/RegisterRequest.cs b/Models/Requests/RegisterRequest.cs index 375f032..5ddcbc3 100644 --- a/Models/Requests/RegisterRequest.cs +++ b/Models/Requests/RegisterRequest.cs @@ -9,11 +9,10 @@ public record RegisterRequest( string Username, [Required, Phone] string PhoneNumber, - [Required, MinLength(4, ErrorMessage = "Too short password")] + [Required, MinLength(6, ErrorMessage = "Too short password")] string Password, [Required, AllowedValues("FREELANCER", "CLIENT")] string UserType, - string? Skills = null, string? CompanyName = null ); } diff --git a/Models/ApiResponse.cs b/Models/Responses/ApiResponse.cs similarity index 87% rename from Models/ApiResponse.cs rename to Models/Responses/ApiResponse.cs index dab67e5..bb7187c 100644 --- a/Models/ApiResponse.cs +++ b/Models/Responses/ApiResponse.cs @@ -1,4 +1,4 @@ -namespace AonFreelancing.Models +namespace AonFreelancing.Models.Responses { public class ApiResponse { diff --git a/Models/Skill.cs b/Models/Skill.cs new file mode 100644 index 0000000..4d65a9d --- /dev/null +++ b/Models/Skill.cs @@ -0,0 +1,20 @@ +using AonFreelancing.Models.DTOs; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AonFreelancing.Models +{ + [Table("Skills")] + public class Skill + { + public long Id { get; set; } + public long UserId { get; set; } + public string Name { get; set; } + public Skill() { } + Skill(SkillInputDTO inputDTO, long userId) + { + Name = inputDTO.Name; + UserId = userId; + } + public static Skill FromInputDTO(SkillInputDTO inputDTO, long userId) => new Skill(inputDTO, userId); + } +} From d61ed8e7081c5c22cc0b860d7afd5e9ebd9fa060 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Wed, 27 Nov 2024 13:31:23 +0300 Subject: [PATCH 07/12] implement freelancer feed of projects --- AonFreelancing.csproj | 4 ++ Controllers/Mobile/v1/ProjectsController.cs | 63 ++++++++++++++++----- Models/DTOs/PriceRange.cs | 21 +++++++ Models/DTOs/ProjectOutDTO.cs | 5 +- Models/Responses/PaginatedResult.cs | 14 +++++ 5 files changed, 92 insertions(+), 15 deletions(-) create mode 100644 Models/DTOs/PriceRange.cs create mode 100644 Models/Responses/PaginatedResult.cs diff --git a/AonFreelancing.csproj b/AonFreelancing.csproj index fd58373..69d7ebf 100644 --- a/AonFreelancing.csproj +++ b/AonFreelancing.csproj @@ -19,4 +19,8 @@ + + + + diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index 2be4740..70e2e38 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -38,22 +38,21 @@ public async Task PostProjectAsync([FromBody] ProjectInputDto pro return Ok(CreateSuccessResponse("Project added.")); } - [Authorize(Roles = "CLIENT")] - [HttpGet("clientFeed")] + [Authorize(Roles = Constants.USER_TYPE_CLIENT)] + [HttpGet("clientfeed")] public async Task GetClientFeedAsync( [FromQuery] List? qualificationNames, [FromQuery] int page = 0, - [FromQuery] int pageSize = 8, [FromQuery] string? qur = default + [FromQuery] int pageSize = 8, [FromQuery] string qur = "" ) { - var trimmedQuery = qur?.ToLower().Replace(" ", "").Trim(); + string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); List? storedProjects; - var query = mainAppContext.Projects.AsQueryable(); - - var count = await query.CountAsync(); + var query = mainAppContext.Projects.Include(p => p.Client).AsQueryable(); + int totalProjectsCount = await query.CountAsync(); - if(!string.IsNullOrEmpty(trimmedQuery)) - query = query.Where(p=>p.Title.ToLower().Contains(trimmedQuery)); + if(!string.IsNullOrEmpty(normalizedQuery)) + query = query.Where(p=>p.Title.ToLower().Contains(normalizedQuery)); if (qualificationNames != null && qualificationNames.Count > 0) query = query.Where(p => qualificationNames.Contains(p.QualificationName)); @@ -63,11 +62,47 @@ public async Task GetClientFeedAsync( .Take(pageSize) .Select(p => ProjectOutDTO.FromProject(p)) .ToListAsync(); - - return Ok(CreateSuccessResponse(new { - Total=count, - Items=storedProjects - })); + + return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount, storedProjects))); + } + + [Authorize(Roles = Constants.USER_TYPE_FREELANCER)] + [HttpGet("freelancerfeed")] + public async Task GetProjectFeedAsync( + [FromQuery(Name = "specializations")] List? qualificationNames, + [FromQuery(Name = "timeline")] int? duration, + [FromQuery] PriceRange priceRange, + [FromQuery] int page = 0, + [FromQuery] int pageSize = 8, + [FromQuery] string qur = "" + ) + { + if (!ModelState.IsValid) + return base.CustomBadRequest(); + + string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); + var query = mainAppContext.Projects.Include(p=>p.Client).AsQueryable(); + int totalProjectsCount = await query.CountAsync(); + + if (!string.IsNullOrEmpty(normalizedQuery)) + query = query.Where(p => p.Title.ToLower().Contains(normalizedQuery)); + + if (qualificationNames != null && qualificationNames.Count > 0) + query = query.Where(p => qualificationNames.Contains(p.QualificationName)); + + if (duration.HasValue) + query = query.Where(p => p.Duration == duration.Value); + + if (priceRange.MinPrice != null && priceRange.MaxPrice != null) + query = query.Where(p => p.Budget >= priceRange.MinPrice && p.Budget <= priceRange.MaxPrice); + + + List? storedProjects = await query.OrderByDescending(p => p.CreatedAt) + .Skip(page * pageSize) + .Take(pageSize) + .Select(p => ProjectOutDTO.FromProject(p)) + .ToListAsync(); + return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount,storedProjects))); } diff --git a/Models/DTOs/PriceRange.cs b/Models/DTOs/PriceRange.cs new file mode 100644 index 0000000..7bed511 --- /dev/null +++ b/Models/DTOs/PriceRange.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; + +namespace AonFreelancing.Models.DTOs +{ + public class PriceRange:IValidatableObject + { + [Range(0, int.MaxValue)] + public decimal? MinPrice { get; set; } = 0; + + [Range(0, int.MaxValue)] + public decimal? MaxPrice { get; set; } = int.MaxValue; + + public IEnumerable Validate(ValidationContext validationContext) + { + if (MinPrice >= MaxPrice) + yield return new ValidationResult("MinPrice must be less than MaxPrice"); + } + + + } +} diff --git a/Models/DTOs/ProjectOutDTO.cs b/Models/DTOs/ProjectOutDTO.cs index 54a9c14..31f7c54 100644 --- a/Models/DTOs/ProjectOutDTO.cs +++ b/Models/DTOs/ProjectOutDTO.cs @@ -19,7 +19,8 @@ public class ProjectOutDTO public DateTime? StartDate { get; set; } public DateTime? EndDate { get; set; } public string? CreationTime { get; set; } - + public string ClientName { get; set; } + public long ClientId { get; set; } ProjectOutDTO(Project project) { Id = project.Id; @@ -34,6 +35,8 @@ public class ProjectOutDTO StartDate = project.StartDate; EndDate = project.EndDate; CreationTime = StringOperations.GetTimeAgo(CreatedAt); + ClientName = project.Client.Name; + ClientId = project.Client.Id; } public static ProjectOutDTO FromProject(Project project) => new ProjectOutDTO(project); diff --git a/Models/Responses/PaginatedResult.cs b/Models/Responses/PaginatedResult.cs new file mode 100644 index 0000000..75e21d6 --- /dev/null +++ b/Models/Responses/PaginatedResult.cs @@ -0,0 +1,14 @@ +namespace AonFreelancing.Models.Responses +{ + public class PaginatedResult + { + public long Total { get; set; } + public List Result { get; set; } + + public PaginatedResult(long total, List result) + { + Total = total; + Result = result; + } + } +} From 7da0375099ce6c994d38acfd6af17202b47f2420 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Wed, 27 Nov 2024 16:38:07 +0300 Subject: [PATCH 08/12] implements project likes --- Contexts/MainAppContext.cs | 16 +- Controllers/Mobile/v1/ProjectsController.cs | 37 +- ...241127110303_project-likes-mig.Designer.cs | 731 ++++++++++++++++++ .../20241127110303_project-likes-mig.cs | 103 +++ Migrations/MainAppContextModelSnapshot.cs | 50 +- Models/DTOs/ProjectOutDTO.cs | 5 + Models/Project.cs | 9 +- Models/ProjectLike.cs | 21 + Program.cs | 1 + Services/ProjectLikeService.cs | 26 + Utilities/Constants.cs | 3 + 11 files changed, 989 insertions(+), 13 deletions(-) create mode 100644 Migrations/20241127110303_project-likes-mig.Designer.cs create mode 100644 Migrations/20241127110303_project-likes-mig.cs create mode 100644 Models/ProjectLike.cs create mode 100644 Services/ProjectLikeService.cs diff --git a/Contexts/MainAppContext.cs b/Contexts/MainAppContext.cs index 3494627..ce364f2 100644 --- a/Contexts/MainAppContext.cs +++ b/Contexts/MainAppContext.cs @@ -22,6 +22,7 @@ public class MainAppContext(DbContextOptions contextOptions) public DbSet Bids { get; set; } public DbSet Tasks { get; set; } public DbSet Skills { get; set; } + public DbSet ProjectLikes { get; set; } protected override void OnModelCreating(ModelBuilder builder) { @@ -34,9 +35,9 @@ protected override void OnModelCreating(ModelBuilder builder) builder.Entity().ToTable("Freelancers"); builder.Entity().ToTable("Clients"); builder.Entity().ToTable("SystemUsers"); + builder.Entity().ToTable("otps", o => o.HasCheckConstraint("CK_CODE","LEN([Code]) = 6")); - builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')")); builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')")); builder.Entity().ToTable("Projects", tb => tb.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')")) @@ -44,8 +45,8 @@ protected override void OnModelCreating(ModelBuilder builder) builder.Entity().ToTable("Tasks", t => t.HasCheckConstraint("CK_TASK_STATUS", $"[Status] IN ('{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_REVIEW}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_TO_DO}')")) .Property(t => t.Status).HasDefaultValue(Constants.TASK_STATUS_TO_DO); - - + + builder.Entity().HasIndex(pl => new { pl.ProjectId, pl.UserId }).IsUnique(); //set up relationships builder.Entity().HasOne() .WithOne() @@ -69,6 +70,15 @@ protected override void OnModelCreating(ModelBuilder builder) .HasForeignKey(s=>s.UserId) .HasPrincipalKey(f=>f.Id); + builder.Entity().HasOne() + .WithMany() + .HasForeignKey(pl => pl.UserId) + .HasPrincipalKey(u => u.Id); + builder.Entity().HasOne() + .WithMany(p => p.ProjectLikes) + .HasForeignKey(pl => pl.ProjectId) + .OnDelete(DeleteBehavior.NoAction) + .HasPrincipalKey(p => p.Id); base.OnModelCreating(builder); diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index 70e2e38..e8777b0 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -3,19 +3,22 @@ using AonFreelancing.Models; using AonFreelancing.Models.DTOs; using AonFreelancing.Models.Responses; +using AonFreelancing.Services; using AonFreelancing.Utilities; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging.Abstractions; using System.ComponentModel.DataAnnotations; +using System.Security.Claims; namespace AonFreelancing.Controllers.Mobile.v1 { [Authorize] [Route("api/mobile/v1/projects")] [ApiController] - public class ProjectsController(MainAppContext mainAppContext, UserManager userManager) : BaseController + public class ProjectsController(MainAppContext mainAppContext, UserManager userManager, ProjectLikeService projectLikeService) : BaseController { [Authorize(Roles = "CLIENT")] [HttpPost] @@ -48,7 +51,7 @@ public async Task GetClientFeedAsync( string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); List? storedProjects; - var query = mainAppContext.Projects.Include(p => p.Client).AsQueryable(); + var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p=>p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); if(!string.IsNullOrEmpty(normalizedQuery)) @@ -81,7 +84,7 @@ public async Task GetProjectFeedAsync( return base.CustomBadRequest(); string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); - var query = mainAppContext.Projects.Include(p=>p.Client).AsQueryable(); + var query = mainAppContext.Projects.AsNoTracking().Include(p=>p.Client).Include(p=>p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); if (!string.IsNullOrEmpty(normalizedQuery)) @@ -154,6 +157,7 @@ public async Task ApproveBidAsync(long projectId, long bidId) storedBid.Status = Constants.BIDS_STATUS_APPROVED; storedBid.ApprovedAt = DateTime.Now; storedProject.Status = Constants.PROJECT_STATUS_CLOSED; + storedProject.FreelancerId = storedBid.FreelancerId; await mainAppContext.SaveChangesAsync(); return Ok(CreateSuccessResponse("Bid approved successfully.")); @@ -204,6 +208,33 @@ public async Task CreateTaskAsync(long projectId, [FromBody] Task return Ok(CreateSuccessResponse("Task created successfully.")); } + [HttpPost("{projectId}/likes")] + public async Task LikeOrUnLikeProject([FromRoute] long projectId, [AllowedValues(Constants.PROJECT_LIKE_ACTION, Constants.PROJECT_UNLIKE_ACTION)] string action) + { + if (!ModelState.IsValid) + return base.CustomBadRequest(); + + var identity = HttpContext.User.Identity as ClaimsIdentity; + long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + ProjectLike? storedProjectLike = await mainAppContext.ProjectLikes.FirstOrDefaultAsync(pl => pl.ProjectId == projectId && pl.UserId == authenticatedUserId); + + if (storedProjectLike != null) + { + if (action == Constants.PROJECT_LIKE_ACTION) + return Conflict(CreateErrorResponse("409", "you cannot like the same project twice")); + await projectLikeService.UnlikeProjectAsync(storedProjectLike); + return NoContent(); + } + + + if (storedProjectLike == null && action == Constants.PROJECT_LIKE_ACTION) + { + await projectLikeService.LikeProjectAsync(authenticatedUserId, projectId); + return StatusCode(StatusCodes.Status201Created, "like submitted successfully"); + } + return NoContent(); + } + [Authorize(Roles = "CLIENT")] [HttpPost("{id}/upload-image")] diff --git a/Migrations/20241127110303_project-likes-mig.Designer.cs b/Migrations/20241127110303_project-likes-mig.Designer.cs new file mode 100644 index 0000000..ec61654 --- /dev/null +++ b/Migrations/20241127110303_project-likes-mig.Designer.cs @@ -0,0 +1,731 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241127110303_project-likes-mig")] + partial class projectlikesmig + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImagePath") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("ProjectId", "UserId") + .IsUnique(); + + b.ToTable("ProjectLikes"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("DeletedAt") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("to-do"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", null, t => + { + t.HasCheckConstraint("CK_TASK_STATUS", "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + { + b.HasOne("AonFreelancing.Models.Project", null) + .WithMany("ProjectLikes") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.HasOne("AonFreelancing.Models.Freelancer", null) + .WithMany("Skills") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("ProjectLikes"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + + b.Navigation("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241127110303_project-likes-mig.cs b/Migrations/20241127110303_project-likes-mig.cs new file mode 100644 index 0000000..15466f0 --- /dev/null +++ b/Migrations/20241127110303_project-likes-mig.cs @@ -0,0 +1,103 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class projectlikesmig : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Skills_Freelancers_userId", + table: "Skills"); + + migrationBuilder.RenameColumn( + name: "userId", + table: "Skills", + newName: "UserId"); + + migrationBuilder.RenameIndex( + name: "IX_Skills_userId", + table: "Skills", + newName: "IX_Skills_UserId"); + + migrationBuilder.CreateTable( + name: "ProjectLikes", + columns: table => new + { + Id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ProjectId = table.Column(type: "bigint", nullable: false), + UserId = table.Column(type: "bigint", nullable: false), + CreatedAt = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ProjectLikes", x => x.Id); + table.ForeignKey( + name: "FK_ProjectLikes_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ProjectLikes_Projects_ProjectId", + column: x => x.ProjectId, + principalTable: "Projects", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_ProjectLikes_ProjectId_UserId", + table: "ProjectLikes", + columns: new[] { "ProjectId", "UserId" }, + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_ProjectLikes_UserId", + table: "ProjectLikes", + column: "UserId"); + + migrationBuilder.AddForeignKey( + name: "FK_Skills_Freelancers_UserId", + table: "Skills", + column: "UserId", + principalTable: "Freelancers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Skills_Freelancers_UserId", + table: "Skills"); + + migrationBuilder.DropTable( + name: "ProjectLikes"); + + migrationBuilder.RenameColumn( + name: "UserId", + table: "Skills", + newName: "userId"); + + migrationBuilder.RenameIndex( + name: "IX_Skills_UserId", + table: "Skills", + newName: "IX_Skills_userId"); + + migrationBuilder.AddForeignKey( + name: "FK_Skills_Freelancers_userId", + table: "Skills", + column: "userId", + principalTable: "Freelancers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Migrations/MainAppContextModelSnapshot.cs b/Migrations/MainAppContextModelSnapshot.cs index fb39fe6..17512d0 100644 --- a/Migrations/MainAppContextModelSnapshot.cs +++ b/Migrations/MainAppContextModelSnapshot.cs @@ -196,6 +196,33 @@ protected override void BuildModel(ModelBuilder modelBuilder) }); }); + modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("ProjectId", "UserId") + .IsUnique(); + + b.ToTable("ProjectLikes"); + }); + modelBuilder.Entity("AonFreelancing.Models.Skill", b => { b.Property("Id") @@ -208,12 +235,12 @@ protected override void BuildModel(ModelBuilder modelBuilder) .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("userId") + b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); - b.HasIndex("userId"); + b.HasIndex("UserId"); b.ToTable("Skills"); }); @@ -555,11 +582,26 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Freelancer"); }); + modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + { + b.HasOne("AonFreelancing.Models.Project", null) + .WithMany("ProjectLikes") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + modelBuilder.Entity("AonFreelancing.Models.Skill", b => { b.HasOne("AonFreelancing.Models.Freelancer", null) .WithMany("Skills") - .HasForeignKey("userId") + .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); @@ -657,6 +699,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Navigation("Bids"); + b.Navigation("ProjectLikes"); + b.Navigation("Tasks"); }); diff --git a/Models/DTOs/ProjectOutDTO.cs b/Models/DTOs/ProjectOutDTO.cs index 31f7c54..da12923 100644 --- a/Models/DTOs/ProjectOutDTO.cs +++ b/Models/DTOs/ProjectOutDTO.cs @@ -2,6 +2,7 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics.CodeAnalysis; using AonFreelancing.Utilities; +using System.Text.Json.Serialization; namespace AonFreelancing.Models.DTOs { @@ -21,6 +22,9 @@ public class ProjectOutDTO public string? CreationTime { get; set; } public string ClientName { get; set; } public long ClientId { get; set; } + + [JsonPropertyName("likes")] + public long LikesCount { get; set; } ProjectOutDTO(Project project) { Id = project.Id; @@ -37,6 +41,7 @@ public class ProjectOutDTO CreationTime = StringOperations.GetTimeAgo(CreatedAt); ClientName = project.Client.Name; ClientId = project.Client.Id; + LikesCount = project.ProjectLikes.Count(); } public static ProjectOutDTO FromProject(Project project) => new ProjectOutDTO(project); diff --git a/Models/Project.cs b/Models/Project.cs index 5ef8a24..c551f99 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -10,9 +10,9 @@ namespace AonFreelancing.Models public class Project { public long Id { get; set; } - [Required] public string Title { get; set; } + public string Title { get; set; } - [AllowNull] public string? Description { get; set; } + public string? Description { get; set; } public long ClientId { get; set; } //FK @@ -31,10 +31,11 @@ public class Project public long? FreelancerId { get; set; } [ForeignKey("FreelancerId")] public Freelancer? Freelancer { get; set; } - public ICollection Bids { get; set; } = new List(); + public List Bids { get; set; } = new List(); public string? ImagePath { get; set; } - public ICollection Tasks { get; set; } = new List(); + public List? Tasks { get; set; } + public List? ProjectLikes { get; set; } public Project() { } Project(ProjectInputDto inputDto,long clientId) diff --git a/Models/ProjectLike.cs b/Models/ProjectLike.cs new file mode 100644 index 0000000..d8e9871 --- /dev/null +++ b/Models/ProjectLike.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace AonFreelancing.Models +{ + [Table("ProjectLikes")] + public class ProjectLike + { + public long Id { get; set; } + public long ProjectId { get; set; } + public long UserId { get; set; } + public DateTime CreatedAt { get; set; } + + public ProjectLike(long userId, long projectId) + { + UserId = userId; + ProjectId = projectId; + CreatedAt = DateTime.Now; + } + + } +} diff --git a/Program.cs b/Program.cs index e7beac9..00fde0e 100644 --- a/Program.cs +++ b/Program.cs @@ -26,6 +26,7 @@ public static void Main(string[] args) builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddScoped(); + builder.Services.AddScoped(); builder.Services.AddDbContext(options => options.UseSqlServer(conf.GetConnectionString("Default"))); builder.Services.AddIdentity() .AddEntityFrameworkStores() diff --git a/Services/ProjectLikeService.cs b/Services/ProjectLikeService.cs new file mode 100644 index 0000000..0d77894 --- /dev/null +++ b/Services/ProjectLikeService.cs @@ -0,0 +1,26 @@ +using AonFreelancing.Contexts; +using AonFreelancing.Models; + +namespace AonFreelancing.Services +{ + public class ProjectLikeService(MainAppContext mainAppContext) + { + + + + public async Task LikeProjectAsync(long userId,long projectId) + { + ProjectLike newProjectLike = new ProjectLike(userId, projectId); + await mainAppContext.AddAsync(newProjectLike); + await mainAppContext.SaveChangesAsync(); + } + public async Task UnlikeProjectAsync(ProjectLike projectLike) + { + mainAppContext.ProjectLikes.Remove(projectLike); + await mainAppContext.SaveChangesAsync(); + } + + + + } +} diff --git a/Utilities/Constants.cs b/Utilities/Constants.cs index 21df021..13381f3 100644 --- a/Utilities/Constants.cs +++ b/Utilities/Constants.cs @@ -23,5 +23,8 @@ public class Constants public const string TASK_STATUS_IN_PROGRESS = "in-progress"; public const string TASK_STATUS_IN_REVIEW = "in-review"; public const string TASK_STATUS_DONE = "done"; + + public const string PROJECT_LIKE_ACTION = "like"; + public const string PROJECT_UNLIKE_ACTION = "unlike"; } } From 94dd307c764fca4edcc34248f8a5cdd7572bb2af Mon Sep 17 00:00:00 2001 From: Mohammed Date: Wed, 27 Nov 2024 20:46:49 +0300 Subject: [PATCH 09/12] fix some bugs --- Controllers/Mobile/v1/ProjectsController.cs | 85 +++++++++++---------- Controllers/Mobile/v1/SkillsController.cs | 14 +++- Models/DTOs/BidOutputDTO.cs | 3 +- Models/DTOs/ProjectOutDTO.cs | 8 +- Models/DTOs/TasksStatisticsDTO.cs | 2 + Services/AuthService.cs | 3 + 6 files changed, 64 insertions(+), 51 deletions(-) diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index e8777b0..385fe53 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -18,13 +18,13 @@ namespace AonFreelancing.Controllers.Mobile.v1 [Authorize] [Route("api/mobile/v1/projects")] [ApiController] - public class ProjectsController(MainAppContext mainAppContext, UserManager userManager, ProjectLikeService projectLikeService) : BaseController + public class ProjectsController(MainAppContext mainAppContext, UserManager userManager, ProjectLikeService projectLikeService,AuthService authService) : BaseController { [Authorize(Roles = "CLIENT")] [HttpPost] public async Task PostProjectAsync([FromBody] ProjectInputDto projectInputDto) { - if(!ModelState.IsValid) + if (!ModelState.IsValid) return base.CustomBadRequest(); User? authenticatedUser = await userManager.GetUserAsync(HttpContext.User); @@ -51,11 +51,11 @@ public async Task GetClientFeedAsync( string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); List? storedProjects; - var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p=>p.ProjectLikes).AsQueryable(); + var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p => p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); - if(!string.IsNullOrEmpty(normalizedQuery)) - query = query.Where(p=>p.Title.ToLower().Contains(normalizedQuery)); + if (!string.IsNullOrEmpty(normalizedQuery)) + query = query.Where(p => p.Title.ToLower().Contains(normalizedQuery)); if (qualificationNames != null && qualificationNames.Count > 0) query = query.Where(p => qualificationNames.Contains(p.QualificationName)); @@ -84,7 +84,7 @@ public async Task GetProjectFeedAsync( return base.CustomBadRequest(); string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); - var query = mainAppContext.Projects.AsNoTracking().Include(p=>p.Client).Include(p=>p.ProjectLikes).AsQueryable(); + var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p => p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); if (!string.IsNullOrEmpty(normalizedQuery)) @@ -105,7 +105,7 @@ public async Task GetProjectFeedAsync( .Take(pageSize) .Select(p => ProjectOutDTO.FromProject(p)) .ToListAsync(); - return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount,storedProjects))); + return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount, storedProjects))); } @@ -116,51 +116,56 @@ public async Task SubmitBidAsync(long projectId, [FromBody] BidIn if (!ModelState.IsValid) return CustomBadRequest(); - Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); - if (storedProject == null) - return NotFound(CreateErrorResponse("404", "Project not found.")); - - User authenticatedUser = await userManager.GetUserAsync(User); - - Bid? latestBid = await mainAppContext.Bids.Where(b => b.ProjectId == projectId) - .OrderByDescending(b => b.SubmittedAt) - .FirstOrDefaultAsync(); + long authenticatedFreelancerId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); + Project? storedProject = mainAppContext.Projects.Where(p => p.Id == projectId).Include(p => p.Bids).FirstOrDefault(); - if (bidInputDTO.ProposedPrice <= 0 || - (latestBid != null && bidInputDTO.ProposedPrice > latestBid.ProposedPrice) || - (latestBid == null && bidInputDTO.ProposedPrice > storedProject.Budget)) - { - return BadRequest(CreateErrorResponse("400", "Invalid proposed price. The proposed price must be positive and lower than the last bid or project budget.")); - } + if (storedProject == null) + return NotFound(CreateErrorResponse("404", "project not found")); + if (storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) + return Conflict(CreateErrorResponse("409", "cannot submit a bid for project that is not available for bids")); + if (storedProject.Budget <= bidInputDTO.ProposedPrice) + return BadRequest(CreateErrorResponse("400", "proposed price must be less than the project's budget")); + if (storedProject.Bids.Any() && storedProject.Bids.OrderBy(b => b.ProposedPrice).First().ProposedPrice <= bidInputDTO.ProposedPrice) + return BadRequest(CreateErrorResponse("40", "proposed price must be less than earlier proposed prices")); - Bid? newBid = Bid.FromInputDTO(bidInputDTO, authenticatedUser.Id, storedProject.Id); - - await mainAppContext.Bids.AddAsync(newBid); + Bid? newBid = Bid.FromInputDTO(bidInputDTO, authenticatedFreelancerId, projectId); + await mainAppContext.AddAsync(newBid); await mainAppContext.SaveChangesAsync(); - return Ok(CreateSuccessResponse("Bid submitted successfully.")); + return StatusCode(StatusCodes.Status201Created); } [Authorize(Roles = "CLIENT")] [HttpPut("{projectId}/bids/{bidId}/approve")] - public async Task ApproveBidAsync(long projectId, long bidId) + public async Task ApproveBidAsync([FromRoute] long projectId, [FromRoute] long bidId) { - Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); - if (storedProject == null || storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) - return BadRequest(CreateErrorResponse("400", $"Project status is '{storedProject?.Status}', but must be 'available'.")); + + long authenticatedClientId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); + Project? storedProject = await mainAppContext.Projects.Where(p => p.Id == projectId) + .Include(p => p.Bids) + .FirstOrDefaultAsync(); + + if (storedProject == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "project not found")); + + if (authenticatedClientId != storedProject.ClientId) + return Forbid(); - var storedBid = await mainAppContext.Bids.FirstOrDefaultAsync(b => b.Id == bidId); - if (storedBid == null || storedBid.ProjectId != projectId || storedBid.Status == Constants.BIDS_STATUS_APPROVED) - return BadRequest(CreateErrorResponse("400", "Bid not found or already approved.")); + if (storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) + return Conflict(CreateErrorResponse(StatusCodes.Status409Conflict.ToString(), "project status is not 'Available'")); + + Bid? storedBid = storedProject.Bids.Where(b => b.Id == bidId).FirstOrDefault(); + if (storedBid == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "bid not found")); storedBid.Status = Constants.BIDS_STATUS_APPROVED; storedBid.ApprovedAt = DateTime.Now; storedProject.Status = Constants.PROJECT_STATUS_CLOSED; storedProject.FreelancerId = storedBid.FreelancerId; - await mainAppContext.SaveChangesAsync(); - return Ok(CreateSuccessResponse("Bid approved successfully.")); + await mainAppContext.SaveChangesAsync(); + return Ok(); } @@ -186,12 +191,11 @@ public async Task GetProjectDetailsAsync(long id) storedProject.Status, storedProject.Budget, storedProject.Duration, - storedProject.Description, + storedProject.Description, Bids = orderedBids })); } - [Authorize(Roles = "CLIENT")] [HttpPost("{projectId}/tasks")] public async Task CreateTaskAsync(long projectId, [FromBody] TaskInputDTO taskInputDTO) @@ -200,7 +204,7 @@ public async Task CreateTaskAsync(long projectId, [FromBody] Task if (storedProject == null || storedProject.Status != Constants.PROJECT_STATUS_CLOSED) return BadRequest(CreateErrorResponse("400", "Project not found or not closed.")); - TaskEntity? newTask = TaskEntity.FromInputDTO(taskInputDTO,projectId); + TaskEntity? newTask = TaskEntity.FromInputDTO(taskInputDTO, projectId); await mainAppContext.Tasks.AddAsync(newTask); await mainAppContext.SaveChangesAsync(); @@ -214,8 +218,7 @@ public async Task LikeOrUnLikeProject([FromRoute] long projectId, if (!ModelState.IsValid) return base.CustomBadRequest(); - var identity = HttpContext.User.Identity as ClaimsIdentity; - long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + long authenticatedUserId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); ProjectLike? storedProjectLike = await mainAppContext.ProjectLikes.FirstOrDefaultAsync(pl => pl.ProjectId == projectId && pl.UserId == authenticatedUserId); if (storedProjectLike != null) @@ -225,8 +228,6 @@ public async Task LikeOrUnLikeProject([FromRoute] long projectId, await projectLikeService.UnlikeProjectAsync(storedProjectLike); return NoContent(); } - - if (storedProjectLike == null && action == Constants.PROJECT_LIKE_ACTION) { await projectLikeService.LikeProjectAsync(authenticatedUserId, projectId); diff --git a/Controllers/Mobile/v1/SkillsController.cs b/Controllers/Mobile/v1/SkillsController.cs index adea697..2b788a3 100644 --- a/Controllers/Mobile/v1/SkillsController.cs +++ b/Controllers/Mobile/v1/SkillsController.cs @@ -5,12 +5,13 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using System.Security.Claims; namespace AonFreelancing.Controllers.Mobile.v1 { [Authorize] - [Route("api/[controller]")] + [Route("api/mobile/v1/[controller]")] [ApiController] public class SkillsController (MainAppContext mainAppContext): BaseController { @@ -20,11 +21,16 @@ public async Task CreateSkill([FromBody] SkillInputDTO skillInput { var identity = HttpContext.User.Identity as ClaimsIdentity; long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); + + bool isSkillExistsForFreelancer =await mainAppContext.Skills.AsNoTracking().AnyAsync(s => s.UserId == authenticatedUserId && s.Name == skillInputDTO.Name); + + if (isSkillExistsForFreelancer) + return Conflict(CreateErrorResponse("409", "you already have this skill in your profile")); Skill? newSkill = Skill.FromInputDTO(skillInputDTO,authenticatedUserId); await mainAppContext.Skills.AddAsync(newSkill); await mainAppContext.SaveChangesAsync(); - return StatusCode(StatusCodes.Status201Created,"skill added successfully"); + return StatusCode(StatusCodes.Status201Created); } [Authorize(Roles = Constants.USER_TYPE_FREELANCER)] @@ -35,9 +41,9 @@ public async Task DeleteSkill(long id) long authenticatedUserId = Convert.ToInt64(identity.FindFirst(ClaimTypes.NameIdentifier).Value); Skill? storedSkill= mainAppContext.Skills.Where(s=>s.Id == id).FirstOrDefault(); - if (storedSkill == null) + if (storedSkill == null) return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "Skill not found")); - if (storedSkill.UserId != authenticatedUserId) + if (authenticatedUserId != storedSkill.UserId) return Forbid(); mainAppContext.Skills.Remove(storedSkill); diff --git a/Models/DTOs/BidOutputDTO.cs b/Models/DTOs/BidOutputDTO.cs index b7e08c9..2ab05d1 100644 --- a/Models/DTOs/BidOutputDTO.cs +++ b/Models/DTOs/BidOutputDTO.cs @@ -5,7 +5,7 @@ public class BidOutputDTO public long Id { get; set; } public long ProjectId { get; set; } - public ProjectOutDTO Project { get; set; } + //public ProjectOutDTO Project { get; set; } public long FreelancerId { get; set; } public FreelancerShortOutDTO Freelancer { get; set; } public decimal ProposedPrice { get; set; } @@ -18,6 +18,7 @@ public class BidOutputDTO { Id = bid.Id; FreelancerId = bid.FreelancerId; + ProjectId = bid.ProjectId; Freelancer = FreelancerShortOutDTO.FromFreelancer(bid.Freelancer); ProposedPrice = bid.ProposedPrice; Notes = bid.Notes; diff --git a/Models/DTOs/ProjectOutDTO.cs b/Models/DTOs/ProjectOutDTO.cs index da12923..d58158b 100644 --- a/Models/DTOs/ProjectOutDTO.cs +++ b/Models/DTOs/ProjectOutDTO.cs @@ -17,8 +17,8 @@ public class ProjectOutDTO public string Status { get; set; } public decimal Budget { get; set; } public DateTime CreatedAt { get; set; } - public DateTime? StartDate { get; set; } - public DateTime? EndDate { get; set; } + //public DateTime? StartDate { get; set; } + //public DateTime? EndDate { get; set; } public string? CreationTime { get; set; } public string ClientName { get; set; } public long ClientId { get; set; } @@ -36,8 +36,8 @@ public class ProjectOutDTO Status = project.Status; Budget = project.Budget; CreatedAt = project.CreatedAt; - StartDate = project.StartDate; - EndDate = project.EndDate; + //StartDate = project.StartDate; + //EndDate = project.EndDate; CreationTime = StringOperations.GetTimeAgo(CreatedAt); ClientName = project.Client.Name; ClientId = project.Client.Id; diff --git a/Models/DTOs/TasksStatisticsDTO.cs b/Models/DTOs/TasksStatisticsDTO.cs index 2198202..adae17e 100644 --- a/Models/DTOs/TasksStatisticsDTO.cs +++ b/Models/DTOs/TasksStatisticsDTO.cs @@ -14,6 +14,8 @@ public class TasksStatisticsDTO TasksStatisticsDTO(List tasks) { Total = tasks.Count; + if (Total == 0) + return; ToDo = GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_TO_DO).Count()); InReview =GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_IN_REVIEW).Count()); InProgress = GetPercentString(tasks.Where(t => t.Status == Constants.TASK_STATUS_IN_PROGRESS).Count()); diff --git a/Services/AuthService.cs b/Services/AuthService.cs index eef7276..90c34f3 100644 --- a/Services/AuthService.cs +++ b/Services/AuthService.cs @@ -2,6 +2,8 @@ using AonFreelancing.Models; using AonFreelancing.Models.Requests; using Microsoft.EntityFrameworkCore; +using System.Security.Claims; +using System.Security.Principal; using static System.Net.WebRequestMethods; namespace AonFreelancing.Services @@ -12,6 +14,7 @@ public class AuthService public AuthService(MainAppContext mainAppContext) { _mainAppContext = mainAppContext; } + public long GetUserId(ClaimsIdentity identity) => long.Parse(identity.FindFirst(ClaimTypes.NameIdentifier).Value); public async Task IsUserExistsInTempAsync(PhoneNumberReq phoneNumberReq) { From 6e8431dc3def53dcb87ddb4ee409fbd5c57e41e7 Mon Sep 17 00:00:00 2001 From: Mohammed Date: Wed, 27 Nov 2024 23:56:06 +0300 Subject: [PATCH 10/12] some enhancements --- AonFreelancing.csproj | 4 - Attributes/AllowedFileExtensionsAttribute.cs | 32 + Attributes/MaxFileSizeAttribute.cs | 27 + Controllers/Mobile/v1/ProjectsController.cs | 134 +--- Controllers/Mobile/v1/TasksController.cs | 121 ++- ...41127185547_project-image-mig2.Designer.cs | 731 ++++++++++++++++++ .../20241127185547_project-image-mig2.cs | 28 + Migrations/MainAppContextModelSnapshot.cs | 6 +- Models/DTOs/BidOutputDTO.cs | 4 +- Models/DTOs/ProjectInputDTO.cs | 9 +- Models/DTOs/ProjectOutDTO.cs | 8 +- Models/DTOs/TaskInputDto.cs | 6 +- Models/Project.cs | 2 +- Models/TaskEntity.cs | 9 +- Program.cs | 10 +- Services/FileStorageService.cs | 17 + Utilities/FileCheckUtil.cs | 44 ++ .../5ab065a9-5dc7-4869-be46-50429affc263.jpg | Bin 0 -> 457941 bytes .../f373959e-12c7-4aef-aecb-278313dbb326.jpg | Bin 363422 -> 0 bytes 19 files changed, 1008 insertions(+), 184 deletions(-) create mode 100644 Attributes/AllowedFileExtensionsAttribute.cs create mode 100644 Attributes/MaxFileSizeAttribute.cs create mode 100644 Migrations/20241127185547_project-image-mig2.Designer.cs create mode 100644 Migrations/20241127185547_project-image-mig2.cs create mode 100644 Services/FileStorageService.cs create mode 100644 Utilities/FileCheckUtil.cs create mode 100644 uploads/5ab065a9-5dc7-4869-be46-50429affc263.jpg delete mode 100644 wwwroot/images/f373959e-12c7-4aef-aecb-278313dbb326.jpg diff --git a/AonFreelancing.csproj b/AonFreelancing.csproj index 69d7ebf..fd58373 100644 --- a/AonFreelancing.csproj +++ b/AonFreelancing.csproj @@ -19,8 +19,4 @@ - - - - diff --git a/Attributes/AllowedFileExtensionsAttribute.cs b/Attributes/AllowedFileExtensionsAttribute.cs new file mode 100644 index 0000000..3d2c06e --- /dev/null +++ b/Attributes/AllowedFileExtensionsAttribute.cs @@ -0,0 +1,32 @@ +using System.ComponentModel.DataAnnotations; + +namespace AonFreelancing.Attributes +{ + public class AllowedFileExtensionsAttribute : ValidationAttribute + { + private readonly string[] _extensions; + private string _extension; + public AllowedFileExtensionsAttribute(string[] extensions) + { + _extensions = extensions; + } + + protected override ValidationResult IsValid(object value, ValidationContext validationContext) + { + + if (value is not IFormFile file) + return ValidationResult.Success; + + _extension = Path.GetExtension(file.FileName); + if (Utilities.FileCheckUtil.IsValidFileExtensionAndSignature(file.FileName, file.OpenReadStream(), _extensions)) + return ValidationResult.Success; + + return new ValidationResult(GetErrorMessage()); + } + + public string GetErrorMessage() + { + return $"either file extension ({_extension}) is not allowed or the file has been corrupted"; + } + } +} \ No newline at end of file diff --git a/Attributes/MaxFileSizeAttribute.cs b/Attributes/MaxFileSizeAttribute.cs new file mode 100644 index 0000000..bb2963a --- /dev/null +++ b/Attributes/MaxFileSizeAttribute.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; + +namespace AonFreelancing.Attributes +{ + public class MaxFileSizeAttribute : ValidationAttribute + { + private readonly int _maxFileSize; + public MaxFileSizeAttribute(int maxFileSize) + { + _maxFileSize = maxFileSize; + } + + protected override ValidationResult IsValid(object value, ValidationContext validationContext) + { + var file = value as IFormFile; + if (file != null && file.Length > _maxFileSize) + return new ValidationResult(GetErrorMessage()); + + return ValidationResult.Success; + } + + public string GetErrorMessage() + { + return $"Maximum allowed file size is {_maxFileSize} bytes."; + } + } +} \ No newline at end of file diff --git a/Controllers/Mobile/v1/ProjectsController.cs b/Controllers/Mobile/v1/ProjectsController.cs index 385fe53..0134504 100644 --- a/Controllers/Mobile/v1/ProjectsController.cs +++ b/Controllers/Mobile/v1/ProjectsController.cs @@ -9,7 +9,6 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging.Abstractions; using System.ComponentModel.DataAnnotations; using System.Security.Claims; @@ -18,11 +17,11 @@ namespace AonFreelancing.Controllers.Mobile.v1 [Authorize] [Route("api/mobile/v1/projects")] [ApiController] - public class ProjectsController(MainAppContext mainAppContext, UserManager userManager, ProjectLikeService projectLikeService,AuthService authService) : BaseController + public class ProjectsController(MainAppContext mainAppContext, FileStorageService fileStorageService, UserManager userManager, ProjectLikeService projectLikeService, AuthService authService) : BaseController { [Authorize(Roles = "CLIENT")] [HttpPost] - public async Task PostProjectAsync([FromBody] ProjectInputDto projectInputDto) + public async Task PostProjectAsync([FromForm] ProjectInputDto projectInputDto) { if (!ModelState.IsValid) return base.CustomBadRequest(); @@ -35,10 +34,13 @@ public async Task PostProjectAsync([FromBody] ProjectInputDto pro long clientId = authenticatedUser.Id; Project? newProject = Project.FromInputDTO(projectInputDto, clientId); + if (projectInputDto.ImageFile != null) + newProject.ImageFileName = await fileStorageService.SaveAsync(projectInputDto.ImageFile); + await mainAppContext.Projects.AddAsync(newProject); await mainAppContext.SaveChangesAsync(); - return Ok(CreateSuccessResponse("Project added.")); + return CreatedAtAction(nameof(GetProjectDetailsAsync),new {id = newProject.Id},null); } [Authorize(Roles = Constants.USER_TYPE_CLIENT)] @@ -48,9 +50,9 @@ public async Task GetClientFeedAsync( [FromQuery] int pageSize = 8, [FromQuery] string qur = "" ) { + string imagesBaseUrl = $"{Request.Scheme}://{Request.Host}/images"; string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); List? storedProjects; - var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p => p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); @@ -63,7 +65,7 @@ public async Task GetClientFeedAsync( storedProjects = await query.OrderByDescending(p => p.CreatedAt) .Skip(page * pageSize) .Take(pageSize) - .Select(p => ProjectOutDTO.FromProject(p)) + .Select(p => ProjectOutDTO.FromProject(p, imagesBaseUrl)) .ToListAsync(); return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount, storedProjects))); @@ -83,6 +85,7 @@ public async Task GetProjectFeedAsync( if (!ModelState.IsValid) return base.CustomBadRequest(); + string imagesBaseUrl = $"{Request.Scheme}://{Request.Host}/images"; string normalizedQuery = qur.ToLower().Replace(" ", "").Trim(); var query = mainAppContext.Projects.AsNoTracking().Include(p => p.Client).Include(p => p.ProjectLikes).AsQueryable(); int totalProjectsCount = await query.CountAsync(); @@ -103,7 +106,7 @@ public async Task GetProjectFeedAsync( List? storedProjects = await query.OrderByDescending(p => p.CreatedAt) .Skip(page * pageSize) .Take(pageSize) - .Select(p => ProjectOutDTO.FromProject(p)) + .Select(p => ProjectOutDTO.FromProject(p, imagesBaseUrl)) .ToListAsync(); return Ok(CreateSuccessResponse(new PaginatedResult(totalProjectsCount, storedProjects))); } @@ -119,11 +122,11 @@ public async Task SubmitBidAsync(long projectId, [FromBody] BidIn long authenticatedFreelancerId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); Project? storedProject = mainAppContext.Projects.Where(p => p.Id == projectId).Include(p => p.Bids).FirstOrDefault(); - if (storedProject == null) + if (storedProject == null) return NotFound(CreateErrorResponse("404", "project not found")); if (storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) return Conflict(CreateErrorResponse("409", "cannot submit a bid for project that is not available for bids")); - if (storedProject.Budget <= bidInputDTO.ProposedPrice) + if (storedProject.Budget <= bidInputDTO.ProposedPrice) return BadRequest(CreateErrorResponse("400", "proposed price must be less than the project's budget")); if (storedProject.Bids.Any() && storedProject.Bids.OrderBy(b => b.ProposedPrice).First().ProposedPrice <= bidInputDTO.ProposedPrice) return BadRequest(CreateErrorResponse("40", "proposed price must be less than earlier proposed prices")); @@ -140,7 +143,7 @@ public async Task SubmitBidAsync(long projectId, [FromBody] BidIn [HttpPut("{projectId}/bids/{bidId}/approve")] public async Task ApproveBidAsync([FromRoute] long projectId, [FromRoute] long bidId) { - + long authenticatedClientId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); Project? storedProject = await mainAppContext.Projects.Where(p => p.Id == projectId) .Include(p => p.Bids) @@ -154,7 +157,7 @@ public async Task ApproveBidAsync([FromRoute] long projectId, [Fr if (storedProject.Status != Constants.PROJECT_STATUS_AVAILABLE) return Conflict(CreateErrorResponse(StatusCodes.Status409Conflict.ToString(), "project status is not 'Available'")); - + Bid? storedBid = storedProject.Bids.Where(b => b.Id == bidId).FirstOrDefault(); if (storedBid == null) return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "bid not found")); @@ -173,6 +176,7 @@ public async Task ApproveBidAsync([FromRoute] long projectId, [Fr public async Task GetProjectDetailsAsync(long id) { var storedProject = await mainAppContext.Projects.Where(p => p.Id == id) + .Include(p => p.Tasks) .Include(p => p.Bids) .ThenInclude(b => b.Freelancer) .FirstOrDefaultAsync(); @@ -180,6 +184,12 @@ public async Task GetProjectDetailsAsync(long id) if (storedProject == null) return NotFound(CreateErrorResponse("404", "Project not found.")); + int numberOfCompletedTasks = storedProject.Tasks.Where(t => t.Status == Constants.TASK_STATUS_DONE).ToList().Count; + decimal totalNumberOFTasks = storedProject.Tasks.Count; + decimal percentage = 0; + if (totalNumberOFTasks > 0) + percentage = (numberOfCompletedTasks / totalNumberOFTasks) * 100; + var orderedBids = storedProject.Bids .OrderByDescending(b => b.ProposedPrice) .Select(b => BidOutputDTO.FromBid(b)); @@ -192,20 +202,26 @@ public async Task GetProjectDetailsAsync(long id) storedProject.Budget, storedProject.Duration, storedProject.Description, + Percentage = percentage, Bids = orderedBids })); } - [Authorize(Roles = "CLIENT")] + [Authorize(Roles = Constants.USER_TYPE_CLIENT)] [HttpPost("{projectId}/tasks")] public async Task CreateTaskAsync(long projectId, [FromBody] TaskInputDTO taskInputDTO) { - Project? storedProject = await mainAppContext.Projects.FindAsync(projectId); - if (storedProject == null || storedProject.Status != Constants.PROJECT_STATUS_CLOSED) - return BadRequest(CreateErrorResponse("400", "Project not found or not closed.")); + long authenticatedClientId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); + Project? storedProject = await mainAppContext.Projects.AsNoTracking().FirstOrDefaultAsync(p=>p.Id == projectId); + if (storedProject == null ) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "Project not found")); + if (authenticatedClientId != storedProject.ClientId) + return Forbid(); + if(storedProject.Status != Constants.PROJECT_STATUS_CLOSED) + return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "project is not status closed yet")); + TaskEntity? newTask = TaskEntity.FromInputDTO(taskInputDTO, projectId); - await mainAppContext.Tasks.AddAsync(newTask); await mainAppContext.SaveChangesAsync(); @@ -236,84 +252,6 @@ public async Task LikeOrUnLikeProject([FromRoute] long projectId, return NoContent(); } - - [Authorize(Roles = "CLIENT")] - [HttpPost("{id}/upload-image")] - public async Task UploadProjectImage(long id, IFormFile file) - { - if (file == null || file.Length == 0) - { - return BadRequest(new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List { new Error { Code = "400", Message = "No file uploaded." } } - }); - } - - var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif" }; - var extension = Path.GetExtension(file.FileName).ToLower(); - if (!allowedExtensions.Contains(extension)) - { - return BadRequest(new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List { new Error { Code = "400", Message = "Invalid file type. Only image files are allowed." } } - }); - } - - if (file.Length > 5 * 1024 * 1024) - { - return BadRequest(new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List { new Error { Code = "400", Message = "File size exceeds the 5 MB limit." } } - }); - } - - // Define the file path to save the image (e.g., in wwwroot/images) - var uploadPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images"); - if (!Directory.Exists(uploadPath)) - { - Directory.CreateDirectory(uploadPath); - } - - // Generate a unique file name - var fileName = Guid.NewGuid().ToString() + extension; - var filePath = Path.Combine(uploadPath, fileName); - - // Save the image to the server - using (var stream = new FileStream(filePath, FileMode.Create)) - { - await file.CopyToAsync(stream); - } - - // Save the file metadata to the database - var project = await mainAppContext.Projects.FindAsync(id); - if (project == null) - { - return NotFound(new ApiResponse - { - IsSuccess = false, - Results = null, - Errors = new List { new Error { Code = "404", Message = "Project not found." } } - }); - } - - // Save the image path or filename to the project model - project.ImagePath = $"/images/{fileName}"; - await mainAppContext.SaveChangesAsync(); - - // Return a success response with the image URL or file path - return Ok(new ApiResponse - { - IsSuccess = true, - Results = $"/images/{fileName}", - Errors = null - }); - } [HttpGet("{projectId}/tasks")] public async Task GetTasksByProjectIdAsync([FromRoute] long projectId, [AllowedValues(Constants.TASK_STATUS_TO_DO,Constants.TASK_STATUS_DONE,Constants.TASK_STATUS_IN_PROGRESS,Constants.TASK_STATUS_IN_REVIEW,ErrorMessage = $"status should be one of the values: '{Constants.TASK_STATUS_TO_DO}', '{Constants.TASK_STATUS_DONE}', '{Constants.TASK_STATUS_IN_PROGRESS}', '{Constants.TASK_STATUS_IN_REVIEW}', or empty")] @@ -321,6 +259,14 @@ public async Task GetTasksByProjectIdAsync([FromRoute] long proje { if (!ModelState.IsValid) return base.CustomBadRequest(); + + long authenticatedUserId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); + Project? storedProject = await mainAppContext.Projects.AsNoTracking().FirstOrDefaultAsync(p => p.Id == projectId); + + if (storedProject == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "project not found")); + if (authenticatedUserId != storedProject.ClientId && authenticatedUserId != storedProject.FreelancerId) + return Forbid(); List storedTasksDTOs = await mainAppContext.Tasks.AsNoTracking() .Where(t => t.ProjectId == projectId && t.Status.Contains(status)) diff --git a/Controllers/Mobile/v1/TasksController.cs b/Controllers/Mobile/v1/TasksController.cs index 6e410a8..33fd42d 100644 --- a/Controllers/Mobile/v1/TasksController.cs +++ b/Controllers/Mobile/v1/TasksController.cs @@ -1,89 +1,66 @@ using AonFreelancing.Contexts; -using AonFreelancing.Models.DTOs; +using AonFreelancing.Controllers; using AonFreelancing.Models; +using AonFreelancing.Models.DTOs; +using AonFreelancing.Services; using AonFreelancing.Utilities; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; -using System; -using System.Diagnostics; - +using System.Security.Claims; -namespace AonFreelancing.Controllers.Mobile.v1 +[Authorize] +[Route("api/mobile/v1/tasks")] +[ApiController] +public class TasksController(MainAppContext mainAppContext,AuthService authService) : BaseController { - [Authorize] - [Route("api/[controller]")] - [ApiController] - public class TasksController(MainAppContext mainAppContext, UserManager userManager) : BaseController + [Authorize(Roles = $"{Constants.USER_TYPE_CLIENT}, {Constants.USER_TYPE_FREELANCER}")] + [HttpPatch("{id}/update-status")] + public async Task UpdateByIdAsync(long id, [FromBody] TaskStatusDto taskStatusDTO) { - [Authorize(Roles = "CLIENT, FREELANCER")] - [HttpPut("tasks/{id}/updateStatus")] - public async Task UpdateTaskAsync(long id, [FromBody] TaskUpdateDTO taskUpdateDTO) - { - TaskEntity? storedTask = await mainAppContext.Tasks.FindAsync(id); - if (storedTask != null && !storedTask.IsDeleted) - { - if (storedTask.Status == Constants.TASK_STATUS_DONE) - return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), "task is already done")); + if (!ModelState.IsValid) + return CustomBadRequest(); + long authenticatedUserId = authService.GetUserId((ClaimsIdentity) HttpContext.User.Identity); - if (taskUpdateDTO.Status == Constants.TASK_STATUS_DONE) - storedTask.CompletedAt = DateTime.Now; - storedTask.Status = taskUpdateDTO.Status; - storedTask.DeadlineAt = taskUpdateDTO.deadlineAt; - storedTask.Name = taskUpdateDTO.Name; - storedTask.Notes = taskUpdateDTO.notes; - await mainAppContext.SaveChangesAsync(); - return Ok(CreateSuccessResponse("Task Has Been Updated ")); - - } - return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), - "Task not found.")); - } - - - - [Authorize(Roles = "CLIENT")] - [HttpPut("tasks/{pid}/checkProgress")] - public async Task CheckProgressStatusAsync( int pid ) + var storedTask = await mainAppContext.Tasks.Include(t=>t.Project) + .Where(t => t.Id == id && !t.IsDeleted) + .FirstOrDefaultAsync(); + if (storedTask == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "task not found")); + if (authenticatedUserId != storedTask.Project.ClientId && authenticatedUserId != storedTask.Project.FreelancerId) + return Forbid(); + if (taskStatusDTO.NewStatus == Constants.TASK_STATUS_DONE) { - decimal countDone= await mainAppContext.Tasks.Where(s => s.Status== Constants.TASK_STATUS_DONE&&s.ProjectId==pid && s.IsDeleted==false).CountAsync(); - decimal countTotal = await mainAppContext.Tasks.Where(s => s.ProjectId == pid && s.IsDeleted == false ).CountAsync(); - if (countTotal > 0) - { - int progress = (int)Math.Round(countDone / countTotal * 100); - - return Ok(CreateSuccessResponse(progress)); - - } - return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), - "project has no tasks")); + if (storedTask.Status == Constants.TASK_STATUS_DONE) + return Conflict(CreateErrorResponse(StatusCodes.Status409Conflict.ToString(), "this task status is 'done' already")); + if (storedTask.Status != Constants.TASK_STATUS_DONE) + storedTask.CompletedAt = DateTime.Now; } + + storedTask.Status = taskStatusDTO.NewStatus; + await mainAppContext.SaveChangesAsync(); - [Authorize(Roles = "CLIENT, FREELANCER")] - [HttpPut("tasks/{id}/deleteTask")] - public async Task DeleteTaskAsync(long id) - { - //get task first and check its status if exist - var task = await mainAppContext.Tasks.FindAsync(id); - if (task != null) - { - - //delete task status - //if status is deleted we should update DeletedAt and IsDeleted field too - - task.IsDeleted = true; - task.DeletedAt = DateTime.Now; - await mainAppContext.SaveChangesAsync(); - return Ok(CreateSuccessResponse("Task Has Been deleted ")); - - } - return BadRequest(CreateErrorResponse(StatusCodes.Status400BadRequest.ToString(), - "Task not found.")); + return Ok(CreateSuccessResponse(TaskOutputDTO.FromTask(storedTask))); + } + [Authorize(Roles = Constants.USER_TYPE_CLIENT)] + [HttpPut("{id}")] + public async Task UpdateByIdAsync(long id, [FromBody] TaskInputDTO taskInputDTO) + { + if (!ModelState.IsValid) + return CustomBadRequest(); + long authenticatedClientId = authService.GetUserId((ClaimsIdentity)HttpContext.User.Identity); + TaskEntity? storedTask = await mainAppContext.Tasks.Include(t=>t.Project) + .Where(t => t.Id == id && !t.IsDeleted) + .FirstOrDefaultAsync(); + if (storedTask == null) + return NotFound(CreateErrorResponse(StatusCodes.Status404NotFound.ToString(), "task not found")); + if (authenticatedClientId != storedTask.Project.ClientId ) + return Forbid(); + storedTask.UpdateFromInputDTO(taskInputDTO); + await mainAppContext.SaveChangesAsync(); - } + return Ok(CreateSuccessResponse(TaskOutputDTO.FromTask(storedTask))); } -} +} \ No newline at end of file diff --git a/Migrations/20241127185547_project-image-mig2.Designer.cs b/Migrations/20241127185547_project-image-mig2.Designer.cs new file mode 100644 index 0000000..0a98b9c --- /dev/null +++ b/Migrations/20241127185547_project-image-mig2.Designer.cs @@ -0,0 +1,731 @@ +// +using System; +using AonFreelancing.Contexts; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + [DbContext(typeof(MainAppContext))] + [Migration("20241127185547_project-image-mig2")] + partial class projectimagemig2 + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("AonFreelancing.Models.ApplicationRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ApprovedAt") + .HasColumnType("datetime2"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("Notes") + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("ProposedPrice") + .HasColumnType("decimal(18,2)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubmittedAt") + .HasColumnType("datetime2"); + + b.Property("SystemUserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.HasIndex("ProjectId"); + + b.HasIndex("SystemUserId"); + + b.ToTable("Bids"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ExpiresAt") + .HasColumnType("datetime2"); + + b.Property("IsUsed") + .HasColumnType("bit"); + + b.HasKey("PhoneNumber"); + + b.ToTable("otps", null, t => + { + t.HasCheckConstraint("CK_CODE", "LEN([Code]) = 6"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Budget") + .HasColumnType("decimal(18,2)"); + + b.Property("ClientId") + .HasColumnType("bigint"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Duration") + .HasColumnType("int"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FreelancerId") + .HasColumnType("bigint"); + + b.Property("ImageFileName") + .HasColumnType("nvarchar(max)"); + + b.Property("PriceType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("QualificationName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("Available"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("FreelancerId"); + + b.ToTable("Projects", null, t => + { + t.HasCheckConstraint("CK_PRICE_TYPE", "[PriceType] IN ('Fixed', 'PerHour')"); + + t.HasCheckConstraint("CK_QUALIFICATION_NAME", "[QualificationName] IN ('uiux', 'frontend', 'mobile', 'backend', 'fullstack')"); + + t.HasCheckConstraint("CK_STATUS", "[Status] IN ('Available', 'Closed')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.ProjectLike", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.HasIndex("ProjectId", "UserId") + .IsUnique(); + + b.ToTable("ProjectLikes"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CompletedAt") + .HasColumnType("datetime2"); + + b.Property("DeadlineAt") + .HasColumnType("datetime2"); + + b.Property("DeletedAt") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Notes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProjectId") + .HasColumnType("bigint"); + + b.Property("Status") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(max)") + .HasDefaultValue("to-do"); + + b.HasKey("Id"); + + b.HasIndex("ProjectId"); + + b.ToTable("Tasks", null, t => + { + t.HasCheckConstraint("CK_TASK_STATUS", "[Status] IN ('done', 'in-review', 'in-progress', 'to-do')"); + }); + }); + + modelBuilder.Entity("AonFreelancing.Models.TempUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("PhoneNumber") + .IsUnique(); + + b.ToTable("TempUser", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("About") + .HasColumnType("nvarchar(max)"); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(450)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("PhoneNumber") + .IsUnique() + .HasFilter("[PhoneNumber] IS NOT NULL"); + + b.ToTable("AspNetUsers", (string)null); + + b.UseTptMappingStrategy(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("Clients", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.ToTable("Freelancers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasBaseType("AonFreelancing.Models.User"); + + b.Property("Permissions") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.ToTable("SystemUsers", (string)null); + }); + + modelBuilder.Entity("AonFreelancing.Models.Bid", b => + { + b.HasOne("AonFreelancing.Models.Client", null) + .WithMany("Bids") + .HasForeignKey("ClientId"); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany("Bids") + .HasForeignKey("FreelancerId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Bids") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.SystemUser", null) + .WithMany("Bids") + .HasForeignKey("SystemUserId"); + + b.Navigation("Freelancer"); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("AonFreelancing.Models.OTP", b => + { + b.HasOne("AonFreelancing.Models.TempUser", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.OTP", "PhoneNumber") + .HasPrincipalKey("AonFreelancing.Models.TempUser", "PhoneNumber") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.HasOne("AonFreelancing.Models.Client", "Client") + .WithMany("Projects") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.Freelancer", "Freelancer") + .WithMany() + .HasForeignKey("FreelancerId"); + + b.Navigation("Client"); + + b.Navigation("Freelancer"); + }); + + modelBuilder.Entity("AonFreelancing.Models.ProjectLike", b => + { + b.HasOne("AonFreelancing.Models.Project", null) + .WithMany("ProjectLikes") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Skill", b => + { + b.HasOne("AonFreelancing.Models.Freelancer", null) + .WithMany("Skills") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.TaskEntity", b => + { + b.HasOne("AonFreelancing.Models.Project", "Project") + .WithMany("Tasks") + .HasForeignKey("ProjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Project"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("AonFreelancing.Models.ApplicationRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Client", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.Freelancer", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.HasOne("AonFreelancing.Models.User", null) + .WithOne() + .HasForeignKey("AonFreelancing.Models.SystemUser", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AonFreelancing.Models.Project", b => + { + b.Navigation("Bids"); + + b.Navigation("ProjectLikes"); + + b.Navigation("Tasks"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Client", b => + { + b.Navigation("Bids"); + + b.Navigation("Projects"); + }); + + modelBuilder.Entity("AonFreelancing.Models.Freelancer", b => + { + b.Navigation("Bids"); + + b.Navigation("Skills"); + }); + + modelBuilder.Entity("AonFreelancing.Models.SystemUser", b => + { + b.Navigation("Bids"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20241127185547_project-image-mig2.cs b/Migrations/20241127185547_project-image-mig2.cs new file mode 100644 index 0000000..3f24b71 --- /dev/null +++ b/Migrations/20241127185547_project-image-mig2.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace AonFreelancing.Migrations +{ + /// + public partial class projectimagemig2 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "ImagePath", + table: "Projects", + newName: "ImageFileName"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "ImageFileName", + table: "Projects", + newName: "ImagePath"); + } + } +} diff --git a/Migrations/MainAppContextModelSnapshot.cs b/Migrations/MainAppContextModelSnapshot.cs index 17512d0..d6eaee9 100644 --- a/Migrations/MainAppContextModelSnapshot.cs +++ b/Migrations/MainAppContextModelSnapshot.cs @@ -156,7 +156,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("FreelancerId") .HasColumnType("bigint"); - b.Property("ImagePath") + b.Property("ImageFileName") .HasColumnType("nvarchar(max)"); b.Property("PriceType") @@ -196,7 +196,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) }); }); - modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + modelBuilder.Entity("AonFreelancing.Models.ProjectLike", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -582,7 +582,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Freelancer"); }); - modelBuilder.Entity("AonFreelancing.Models.ProjectLikes", b => + modelBuilder.Entity("AonFreelancing.Models.ProjectLike", b => { b.HasOne("AonFreelancing.Models.Project", null) .WithMany("ProjectLikes") diff --git a/Models/DTOs/BidOutputDTO.cs b/Models/DTOs/BidOutputDTO.cs index 2ab05d1..168e15b 100644 --- a/Models/DTOs/BidOutputDTO.cs +++ b/Models/DTOs/BidOutputDTO.cs @@ -6,7 +6,7 @@ public class BidOutputDTO public long ProjectId { get; set; } //public ProjectOutDTO Project { get; set; } - public long FreelancerId { get; set; } + //public long FreelancerId { get; set; } public FreelancerShortOutDTO Freelancer { get; set; } public decimal ProposedPrice { get; set; } public string? Notes { get; set; } @@ -17,7 +17,7 @@ public class BidOutputDTO BidOutputDTO(Bid bid) { Id = bid.Id; - FreelancerId = bid.FreelancerId; + //FreelancerId = bid.FreelancerId; ProjectId = bid.ProjectId; Freelancer = FreelancerShortOutDTO.FromFreelancer(bid.Freelancer); ProposedPrice = bid.ProposedPrice; diff --git a/Models/DTOs/ProjectInputDTO.cs b/Models/DTOs/ProjectInputDTO.cs index 1234e59..7a5e6fc 100644 --- a/Models/DTOs/ProjectInputDTO.cs +++ b/Models/DTOs/ProjectInputDTO.cs @@ -1,4 +1,5 @@ -using System.ComponentModel.DataAnnotations; +using AonFreelancing.Attributes; +using System.ComponentModel.DataAnnotations; using System.Diagnostics.CodeAnalysis; namespace AonFreelancing.Models.DTOs @@ -17,7 +18,7 @@ public class ProjectInputDto public string QualificationName { get; set; } [Required] - [Range(1,int.MaxValue)] + [Range(1, 365)] public int Duration { get; set; } //Number of days [Required] @@ -27,5 +28,9 @@ public class ProjectInputDto [Required] [Range(0, int.MaxValue)] public decimal Budget { get; set; } + + [MaxFileSize(1024 * 1024 * 5)] + [AllowedFileExtensions([".jpg", ".jpeg", ".png"])] + public IFormFile? ImageFile { get; set; } } } diff --git a/Models/DTOs/ProjectOutDTO.cs b/Models/DTOs/ProjectOutDTO.cs index d58158b..39157ca 100644 --- a/Models/DTOs/ProjectOutDTO.cs +++ b/Models/DTOs/ProjectOutDTO.cs @@ -23,9 +23,11 @@ public class ProjectOutDTO public string ClientName { get; set; } public long ClientId { get; set; } + public string ImageUrl { get; set; } + [JsonPropertyName("likes")] public long LikesCount { get; set; } - ProjectOutDTO(Project project) + ProjectOutDTO(Project project,string imageBaseUrl) { Id = project.Id; Duration = project.Duration; @@ -42,8 +44,10 @@ public class ProjectOutDTO ClientName = project.Client.Name; ClientId = project.Client.Id; LikesCount = project.ProjectLikes.Count(); + if (project.ImageFileName != null) + ImageUrl = $"{imageBaseUrl}/{project.ImageFileName}"; } - public static ProjectOutDTO FromProject(Project project) => new ProjectOutDTO(project); + public static ProjectOutDTO FromProject(Project project,string imageBaseUrl) => new ProjectOutDTO(project,imageBaseUrl); } } diff --git a/Models/DTOs/TaskInputDto.cs b/Models/DTOs/TaskInputDto.cs index e24a120..b0a4551 100644 --- a/Models/DTOs/TaskInputDto.cs +++ b/Models/DTOs/TaskInputDto.cs @@ -1,4 +1,7 @@ -namespace AonFreelancing.Models.DTOs +using AonFreelancing.Utilities; +using System.ComponentModel.DataAnnotations; + +namespace AonFreelancing.Models.DTOs { public class TaskInputDTO { @@ -9,6 +12,7 @@ public class TaskInputDTO public class TaskStatusDto { + [AllowedValues(Constants.TASK_STATUS_DONE, Constants.TASK_STATUS_IN_REVIEW, Constants.TASK_STATUS_IN_PROGRESS, Constants.TASK_STATUS_TO_DO)] public string NewStatus { get; set; } } diff --git a/Models/Project.cs b/Models/Project.cs index c551f99..d65e1c5 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -32,7 +32,7 @@ public class Project [ForeignKey("FreelancerId")] public Freelancer? Freelancer { get; set; } public List Bids { get; set; } = new List(); - public string? ImagePath { get; set; } + public string? ImageFileName { get; set; } public List? Tasks { get; set; } public List? ProjectLikes { get; set; } diff --git a/Models/TaskEntity.cs b/Models/TaskEntity.cs index 2a88652..8a6fefa 100644 --- a/Models/TaskEntity.cs +++ b/Models/TaskEntity.cs @@ -24,7 +24,12 @@ public TaskEntity() { } DeadlineAt = inputDTO.DeadlineAt; Notes = inputDTO.Notes; } - - public static TaskEntity FromInputDTO(TaskInputDTO inputDTO,long projectId) =>new TaskEntity(inputDTO, projectId); + public static TaskEntity FromInputDTO(TaskInputDTO inputDTO, long projectId) => new TaskEntity(inputDTO, projectId); + public void UpdateFromInputDTO(TaskInputDTO inputDTO) + { + Name = inputDTO.Name; + Notes = inputDTO.Notes; + DeadlineAt = inputDTO.DeadlineAt; + } } } diff --git a/Program.cs b/Program.cs index 00fde0e..fbd0634 100644 --- a/Program.cs +++ b/Program.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.FileProviders; using Microsoft.IdentityModel.Tokens; using Microsoft.OpenApi.Models; using System.Text; @@ -25,6 +26,7 @@ public static void Main(string[] args) builder.Services.AddControllers(o => o.SuppressAsyncSuffixInActionNames = false); builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddDbContext(options => options.UseSqlServer(conf.GetConnectionString("Default"))); @@ -100,12 +102,18 @@ public static void Main(string[] args) app.UseMiddleware(); - app.UseHttpsRedirection(); + app.UseStaticFiles(new StaticFileOptions + { + FileProvider = new PhysicalFileProvider(FileStorageService.ROOT), + RequestPath = "/images" + }); app.UseAuthentication(); app.UseAuthorization(); + + app.MapControllers(); app.Run(); diff --git a/Services/FileStorageService.cs b/Services/FileStorageService.cs new file mode 100644 index 0000000..5b26d39 --- /dev/null +++ b/Services/FileStorageService.cs @@ -0,0 +1,17 @@ + +namespace AonFreelancing.Services +{ + public class FileStorageService + { + public static readonly string ROOT = Path.Combine(Directory.GetCurrentDirectory(), "uploads"); + + public async Task SaveAsync(IFormFile formFile) + { + string fileName = $"{Guid.NewGuid().ToString()}{Path.GetExtension(formFile.FileName)}"; + using Stream stream = File.Create(Path.Combine(ROOT, fileName)); + await formFile.CopyToAsync(stream); + return fileName; + } + + } +} \ No newline at end of file diff --git a/Utilities/FileCheckUtil.cs b/Utilities/FileCheckUtil.cs new file mode 100644 index 0000000..f1fba56 --- /dev/null +++ b/Utilities/FileCheckUtil.cs @@ -0,0 +1,44 @@ + +namespace AonFreelancing.Utilities +{ + public static class FileCheckUtil + { + // For more file signatures, see the File Signatures Database (https://www.filesignatures.net/) + private static readonly Dictionary> _fileSignature = new Dictionary> + { + { ".gif", new List { new byte[] { 0x47, 0x49, 0x46, 0x38 } } }, + { ".png", new List { new byte[] { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A } } }, + { ".jpeg", new List + { + new byte[] { 0xFF, 0xD8, 0xFF, 0xE0 }, + new byte[] { 0xFF, 0xD8, 0xFF, 0xE2 }, + new byte[] { 0xFF, 0xD8, 0xFF, 0xE3 }, + } + }, + { ".jpg", new List + { + new byte[] { 0xFF, 0xD8, 0xFF, 0xE0 }, + new byte[] { 0xFF, 0xD8, 0xFF, 0xE1 }, + new byte[] { 0xFF, 0xD8, 0xFF, 0xE8 }, + } + }, + }; + + public static bool IsValidFileExtensionAndSignature(string fileName, Stream data, string[] permittedExtensions) + { + if (string.IsNullOrEmpty(fileName) || data == null || data.Length == 0) + return false; + + var extension = Path.GetExtension(fileName).ToLowerInvariant(); + if (string.IsNullOrEmpty(extension) || !permittedExtensions.Contains(extension)) + return false; + + data.Position = 0; + using var reader = new BinaryReader(data); + var signatures = _fileSignature[extension]; + var headerBytes = reader.ReadBytes(signatures.Max(m => m.Length)); + + return signatures.Any(signature => headerBytes.Take(signature.Length).SequenceEqual(signature)); + } + } +} \ No newline at end of file diff --git a/uploads/5ab065a9-5dc7-4869-be46-50429affc263.jpg b/uploads/5ab065a9-5dc7-4869-be46-50429affc263.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a6abdc67c02028fb79d5c3240740b7ffcc5285c GIT binary patch literal 457941 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¼pjnE! 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

    S1e*o@pgbDaUklo$W^BM_N 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 z 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