Document_Manager #129
@ -1,6 +1,7 @@
|
||||
using Marco.Pms.Model.Dtos.Directory;
|
||||
using Marco.Pms.Model.Utilities;
|
||||
using Marco.Pms.Services.Helpers;
|
||||
using Marco.Pms.Services.Service.ServiceInterfaces;
|
||||
using MarcoBMS.Services.Helpers;
|
||||
using MarcoBMS.Services.Service;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@ -14,16 +15,32 @@ namespace Marco.Pms.Services.Controllers
|
||||
public class DirectoryController : ControllerBase
|
||||
{
|
||||
|
||||
private readonly DirectoryHelper _directoryHelper;
|
||||
private readonly IDirectoryService _directoryService;
|
||||
private readonly UserHelper _userHelper;
|
||||
private readonly ILoggingService _logger;
|
||||
private readonly Guid tenantId;
|
||||
|
||||
|
||||
public DirectoryController(DirectoryHelper directoryHelper, ILoggingService logger)
|
||||
public DirectoryController(IDirectoryService directoryHelper, UserHelper userHelper, ILoggingService logger)
|
||||
{
|
||||
_directoryHelper = directoryHelper;
|
||||
_directoryService = directoryHelper;
|
||||
_userHelper = userHelper;
|
||||
_logger = logger;
|
||||
tenantId = userHelper.GetTenantId();
|
||||
}
|
||||
#region =================================================================== Contact APIs ===================================================================
|
||||
|
||||
#region =================================================================== Contact Get APIs ===================================================================
|
||||
|
||||
[HttpGet("list")]
|
||||
public async Task<IActionResult> GetContactList([FromQuery] string? search, [FromQuery] string? filter, [FromQuery] Guid? projectId, [FromQuery] bool active = true,
|
||||
[FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 20)
|
||||
{
|
||||
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
|
||||
var response = await _directoryService.GetListOfContactsAsync(search: search, filter: filter, projectId: projectId, active: active, pageSize: pageSize, pageNumber: pageNumber, tenantId, loggedInEmployee);
|
||||
|
||||
return StatusCode(response.StatusCode, response);
|
||||
|
||||
}
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> GetContactList([FromQuery] string? search, [FromQuery] List<Guid>? bucketIds, [FromQuery] List<Guid>? categoryIds, [FromQuery] Guid? projectId, [FromQuery] bool active = true)
|
||||
{
|
||||
@ -32,7 +49,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
BucketIds = bucketIds,
|
||||
CategoryIds = categoryIds
|
||||
};
|
||||
var response = await _directoryHelper.GetListOfContacts(search, active, filterDto, projectId);
|
||||
var response = await _directoryService.GetListOfContactsOld(search, active, filterDto, projectId);
|
||||
|
||||
|
||||
if (response.StatusCode == 200)
|
||||
@ -53,7 +70,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpGet("contact-bucket/{bucketId}")]
|
||||
public async Task<IActionResult> GetContactsListByBucketId(Guid bucketId)
|
||||
{
|
||||
var response = await _directoryHelper.GetContactsListByBucketId(bucketId);
|
||||
var response = await _directoryService.GetContactsListByBucketId(bucketId);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -68,55 +85,10 @@ namespace Marco.Pms.Services.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> CreateContact([FromBody] CreateContactDto createContact)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
var errors = ModelState.Values
|
||||
.SelectMany(v => v.Errors)
|
||||
.Select(e => e.ErrorMessage)
|
||||
.ToList();
|
||||
_logger.LogWarning("User sent Invalid Date while marking attendance");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid data", errors, 400));
|
||||
}
|
||||
var response = await _directoryHelper.CreateContact(createContact);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(response);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut("{id}")]
|
||||
public async Task<IActionResult> UpdateContact(Guid id, [FromBody] UpdateContactDto updateContact)
|
||||
{
|
||||
var response = await _directoryHelper.UpdateContact(id, updateContact);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
}
|
||||
else if (response.StatusCode == 404)
|
||||
{
|
||||
return NotFound(response);
|
||||
}
|
||||
else if (response.StatusCode == 401)
|
||||
{
|
||||
return Unauthorized(response);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(response);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("profile/{id}")]
|
||||
public async Task<IActionResult> GetContactProfile(Guid id)
|
||||
{
|
||||
var response = await _directoryHelper.GetContactProfile(id);
|
||||
var response = await _directoryService.GetContactProfile(id);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -134,14 +106,61 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpGet("organization")]
|
||||
public async Task<IActionResult> GetOrganizationList()
|
||||
{
|
||||
var response = await _directoryHelper.GetOrganizationList();
|
||||
var response = await _directoryService.GetOrganizationList();
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> CreateContact([FromBody] CreateContactDto createContact)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
var errors = ModelState.Values
|
||||
.SelectMany(v => v.Errors)
|
||||
.Select(e => e.ErrorMessage)
|
||||
.ToList();
|
||||
_logger.LogWarning("User sent Invalid Date while marking attendance");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid data", errors, 400));
|
||||
}
|
||||
var response = await _directoryService.CreateContact(createContact);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(response);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut("{id}")]
|
||||
public async Task<IActionResult> UpdateContact(Guid id, [FromBody] UpdateContactDto updateContact)
|
||||
{
|
||||
var response = await _directoryService.UpdateContact(id, updateContact);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
}
|
||||
else if (response.StatusCode == 404)
|
||||
{
|
||||
return NotFound(response);
|
||||
}
|
||||
else if (response.StatusCode == 401)
|
||||
{
|
||||
return Unauthorized(response);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(response);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<IActionResult> DeleteContact(Guid id, [FromQuery] bool? active)
|
||||
{
|
||||
var response = await _directoryHelper.DeleteContact(id, active ?? false);
|
||||
var response = await _directoryService.DeleteContact(id, active ?? false);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -155,13 +174,14 @@ namespace Marco.Pms.Services.Controllers
|
||||
return BadRequest(response);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
// -------------------------------- Contact Notes --------------------------------
|
||||
|
||||
[HttpGet("notes")]
|
||||
public async Task<IActionResult> GetListOFAllNotes([FromQuery] Guid? projectId, [FromQuery] int? pageSize, [FromQuery] int pageNumber)
|
||||
{
|
||||
var response = await _directoryHelper.GetListOFAllNotes(projectId, pageSize ?? 25, pageNumber);
|
||||
var response = await _directoryService.GetListOFAllNotes(projectId, pageSize ?? 25, pageNumber);
|
||||
return StatusCode(response.StatusCode, response);
|
||||
}
|
||||
|
||||
@ -169,7 +189,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
public async Task<IActionResult> CreateContactNote([FromBody] CreateContactNoteDto noteDto)
|
||||
{
|
||||
|
||||
var response = await _directoryHelper.CreateContactNote(noteDto);
|
||||
var response = await _directoryService.CreateContactNote(noteDto);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -187,7 +207,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpGet("notes/{ContactId}")]
|
||||
public async Task<IActionResult> GetNoteListByContactId(Guid contactId, [FromQuery] bool active = true)
|
||||
{
|
||||
var response = await _directoryHelper.GetNoteListByContactId(contactId, active);
|
||||
var response = await _directoryService.GetNoteListByContactId(contactId, active);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -205,7 +225,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpPut("note/{id}")]
|
||||
public async Task<IActionResult> UpdateContactNote(Guid id, [FromBody] UpdateContactNoteDto noteDto)
|
||||
{
|
||||
var response = await _directoryHelper.UpdateContactNote(id, noteDto);
|
||||
var response = await _directoryService.UpdateContactNote(id, noteDto);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -223,7 +243,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpDelete("note/{id}")]
|
||||
public async Task<IActionResult> DeleteContactNote(Guid id, [FromQuery] bool? active)
|
||||
{
|
||||
var response = await _directoryHelper.DeleteContactNote(id, active ?? false);
|
||||
var response = await _directoryService.DeleteContactNote(id, active ?? false);
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
@ -232,7 +252,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpGet("buckets")]
|
||||
public async Task<IActionResult> GetBucketList()
|
||||
{
|
||||
var response = await _directoryHelper.GetBucketList();
|
||||
var response = await _directoryService.GetBucketList();
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -259,7 +279,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
_logger.LogWarning("User sent Invalid Date while marking attendance");
|
||||
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid data", errors, 400));
|
||||
}
|
||||
var response = await _directoryHelper.CreateBucket(bucketDto);
|
||||
var response = await _directoryService.CreateBucket(bucketDto);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -282,7 +302,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpPut("bucket/{id}")]
|
||||
public async Task<IActionResult> UpdateBucket(Guid id, [FromBody] UpdateBucketDto bucketDto)
|
||||
{
|
||||
var response = await _directoryHelper.UpdateBucket(id, bucketDto);
|
||||
var response = await _directoryService.UpdateBucket(id, bucketDto);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -304,7 +324,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpPost("assign-bucket/{bucketId}")]
|
||||
public async Task<IActionResult> AssignBucket(Guid bucketId, [FromBody] List<AssignBucketDto> assignBuckets)
|
||||
{
|
||||
var response = await _directoryHelper.AssignBucket(bucketId, assignBuckets);
|
||||
var response = await _directoryService.AssignBucket(bucketId, assignBuckets);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
@ -326,7 +346,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
[HttpDelete("bucket/{id}")]
|
||||
public async Task<IActionResult> DeleteBucket(Guid id)
|
||||
{
|
||||
var response = await _directoryHelper.DeleteBucket(id);
|
||||
var response = await _directoryService.DeleteBucket(id);
|
||||
if (response.StatusCode == 200)
|
||||
{
|
||||
return Ok(response);
|
||||
|
@ -1,10 +1,13 @@
|
||||
using AutoMapper;
|
||||
using Marco.Pms.Model.Directory;
|
||||
using Marco.Pms.Model.Dtos.Project;
|
||||
using Marco.Pms.Model.Employees;
|
||||
using Marco.Pms.Model.Master;
|
||||
using Marco.Pms.Model.MongoDBModels;
|
||||
using Marco.Pms.Model.Projects;
|
||||
using Marco.Pms.Model.ViewModels.Directory;
|
||||
using Marco.Pms.Model.ViewModels.Employee;
|
||||
using Marco.Pms.Model.ViewModels.Master;
|
||||
using Marco.Pms.Model.ViewModels.Projects;
|
||||
|
||||
namespace Marco.Pms.Services.MappingProfiles
|
||||
@ -60,9 +63,25 @@ namespace Marco.Pms.Services.MappingProfiles
|
||||
opt => opt.MapFrom(src => src.Comment));
|
||||
#endregion
|
||||
|
||||
#region ======================================================= Projects =======================================================
|
||||
#region ======================================================= Employee =======================================================
|
||||
|
||||
CreateMap<Employee, EmployeeVM>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region ======================================================= Directory =======================================================
|
||||
|
||||
CreateMap<Contact, ContactVM>();
|
||||
|
||||
|
||||
CreateMap<ContactPhone, ContactPhoneVM>();
|
||||
CreateMap<ContactEmail, ContactEmailVM>();
|
||||
CreateMap<ContactCategoryMaster, ContactCategoryVM>();
|
||||
CreateMap<ContactTagMaster, ContactTagVM>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -172,6 +172,7 @@ builder.Services.AddScoped<RefreshTokenService>();
|
||||
builder.Services.AddScoped<PermissionServices>();
|
||||
builder.Services.AddScoped<ISignalRService, SignalRService>();
|
||||
builder.Services.AddScoped<IProjectServices, ProjectServices>();
|
||||
builder.Services.AddScoped<IDirectoryService, DirectoryService>();
|
||||
#endregion
|
||||
|
||||
#region Helpers
|
||||
|
1778
Marco.Pms.Services/Service/DirectoryService.cs
Normal file
1778
Marco.Pms.Services/Service/DirectoryService.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,28 @@
|
||||
using Marco.Pms.Model.Dtos.Directory;
|
||||
using Marco.Pms.Model.Employees;
|
||||
using Marco.Pms.Model.Utilities;
|
||||
|
||||
namespace Marco.Pms.Services.Service.ServiceInterfaces
|
||||
{
|
||||
public interface IDirectoryService
|
||||
{
|
||||
Task<ApiResponse<object>> GetListOfContactsAsync(string? search, string? filter, Guid? projectId, bool active, int pageSize, int pageNumber, Guid tenantId, Employee loggedInEmployee);
|
||||
Task<ApiResponse<object>> GetListOfContactsOld(string? search, bool active, ContactFilterDto? filterDto, Guid? projectId);
|
||||
Task<ApiResponse<object>> GetContactsListByBucketId(Guid id);
|
||||
Task<ApiResponse<object>> GetContactProfile(Guid id);
|
||||
Task<ApiResponse<object>> GetOrganizationList();
|
||||
Task<ApiResponse<object>> CreateContact(CreateContactDto createContact);
|
||||
Task<ApiResponse<object>> UpdateContact(Guid id, UpdateContactDto updateContact);
|
||||
Task<ApiResponse<object>> DeleteContact(Guid id, bool active);
|
||||
Task<ApiResponse<object>> GetListOFAllNotes(Guid? projectId, int pageSize, int pageNumber);
|
||||
Task<ApiResponse<object>> GetNoteListByContactId(Guid id, bool active);
|
||||
Task<ApiResponse<object>> CreateContactNote(CreateContactNoteDto noteDto);
|
||||
Task<ApiResponse<object>> UpdateContactNote(Guid id, UpdateContactNoteDto noteDto);
|
||||
Task<ApiResponse<object>> DeleteContactNote(Guid id, bool active);
|
||||
Task<ApiResponse<object>> GetBucketList();
|
||||
Task<ApiResponse<object>> CreateBucket(CreateBucketDto bucketDto);
|
||||
Task<ApiResponse<object>> UpdateBucket(Guid id, UpdateBucketDto bucketDto);
|
||||
Task<ApiResponse<object>> AssignBucket(Guid bucketId, List<AssignBucketDto> assignBuckets);
|
||||
Task<ApiResponse<object>> DeleteBucket(Guid id);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user