diff --git a/Marco.Pms.Model/Mapper/DirectoryMapper.cs b/Marco.Pms.Model/Mapper/DirectoryMapper.cs index fbe0e46..b9e9f86 100644 --- a/Marco.Pms.Model/Mapper/DirectoryMapper.cs +++ b/Marco.Pms.Model/Mapper/DirectoryMapper.cs @@ -46,7 +46,7 @@ namespace Marco.Pms.Model.Mapper Id = contact.Id, ProjectId = contact.ProjectId, Name = contact.Name, - ContactCategory = contact.ContactCategory != null ? contact.ContactCategory.ToContactCategoryVMFromContactCategoryMaster() : new ContactCategoryVM(), + ContactCategory = contact.ContactCategory != null ? contact.ContactCategory.ToContactCategoryVMFromContactCategoryMaster() : null, Description = contact.Description ?? string.Empty, Organization = contact.Organization ?? string.Empty, Address = contact.Address ?? string.Empty diff --git a/Marco.Pms.Services/Controllers/DirectoryController.cs b/Marco.Pms.Services/Controllers/DirectoryController.cs index afcb061..b5ac7e5 100644 --- a/Marco.Pms.Services/Controllers/DirectoryController.cs +++ b/Marco.Pms.Services/Controllers/DirectoryController.cs @@ -2,12 +2,14 @@ using Marco.Pms.Model.Utilities; using Marco.Pms.Services.Helpers; using MarcoBMS.Services.Service; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Marco.Pms.Services.Controllers { [ApiController] [Route("api/[controller]")] + [Authorize] public class DirectoryController : ControllerBase { @@ -28,7 +30,7 @@ namespace Marco.Pms.Services.Controllers var response = await _directoryHelper.GetListOfContacts(); - if(response.StatusCode == 200) + if (response.StatusCode == 200) { return Ok(response); } @@ -36,7 +38,7 @@ namespace Marco.Pms.Services.Controllers { return BadRequest(response); } - + } [HttpPost] diff --git a/Marco.Pms.Services/Helpers/DirectoryHelper.cs b/Marco.Pms.Services/Helpers/DirectoryHelper.cs index b1f6e9c..c34d2ac 100644 --- a/Marco.Pms.Services/Helpers/DirectoryHelper.cs +++ b/Marco.Pms.Services/Helpers/DirectoryHelper.cs @@ -30,21 +30,17 @@ namespace Marco.Pms.Services.Helpers public async Task> GetListOfContacts() { Guid tenantId = _userHelper.GetTenantId(); + var LoggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); var contacts = await _context.Contacts.Where(c => c.TenantId == tenantId).ToListAsync(); - - List contactIds = contacts.Select(c=>c.Id).ToList(); + List contactIds = contacts.Select(c => c.Id).ToList(); var phoneNo = await _context.ContactsPhones.Where(p => contactIds.Contains(p.ContactId)).ToListAsync(); + var Emails = await _context.ContactsEmails.Where(E => contactIds.Contains(E.ContactId)).ToListAsync(); + var Tags = await _context.ContactTagMappings.Where(t => contactIds.Contains(t.ContactId)).ToListAsync(); + List TagIds = Tags.Select(t => t.ContactTagtId).ToList(); - var Emails = await _context.ContactsEmails.Where(E=> contactIds.Contains(E.ContactId)).ToListAsync(); - - var Tags = await _context.ContactTagMappings.Where(t=>contactIds.Contains(t.ContactId)).ToListAsync(); - - - List TagIds = Tags.Select(t=>t.ContactTagtId).ToList(); - - var TagList = await _context.ContactTagMasters.Where(t=> TagIds.Contains(t.Id)).ToListAsync(); + var TagList = await _context.ContactTagMasters.Where(t => TagIds.Contains(t.Id)).ToListAsync(); List list = new List(); @@ -55,13 +51,13 @@ namespace Marco.Pms.Services.Helpers List contactEmailVms = new List(); List contactPhoneVms = new List(); - List conatctTagVms = new List(); + List conatctTagVms = new List(); var phones = phoneNo.Where(p => p.ContactId == contact.Id).ToList(); var emails = Emails.Where(e => e.ContactId == contact.Id).ToList(); var tagMappingss = Tags.Where(t => t.ContactId == contact.Id).ToList(); - if(emails != null) + if (emails != null) { foreach (var email in emails) { @@ -70,8 +66,8 @@ namespace Marco.Pms.Services.Helpers contactEmailVms.Add(emailVM); } } - - if(phones != null) + + if (phones != null) { foreach (var phone in phones) { @@ -81,14 +77,14 @@ namespace Marco.Pms.Services.Helpers } } - - if (tagMappingss != null) { + if (tagMappingss != null) + { foreach (var tagMapping in tagMappingss) { ContactTagVM tagVM = new ContactTagVM(); ; var tag = TagList.Find(t => t.Id == tagMapping.ContactTagtId); - tagVM = tag.ToContactTagVMFromContactTagMaster(); + tagVM = tag != null ? tag.ToContactTagVMFromContactTagMaster() : new ContactTagVM(); conatctTagVms.Add(tagVM); @@ -97,15 +93,14 @@ namespace Marco.Pms.Services.Helpers contactVM = contact.ToContactVMFromContact(); - contactVM.ContactEmails = contactEmailVms; contactVM.ContactPhones = contactPhoneVms; contactVM.Tags = conatctTagVms; - + list.Add(contactVM); } - - return ApiResponse.SuccessResponse(list, "Contact List !",200); + _logger.LogInfo("{count} contacts are fetched by Employee with ID {LoggedInEmployeeId}", list.Count, LoggedInEmployee.Id); + return ApiResponse.SuccessResponse(list, System.String.Format("{0} contacts fetched successfully", list.Count), 200); } @@ -218,4 +213,4 @@ namespace Marco.Pms.Services.Helpers return ApiResponse.ErrorResponse("User send empty data", "User send empty data", 400); } } - } +}