Feature_Directory #90

Merged
vikas.nale merged 501 commits from Feature_Directory into main 2025-06-10 14:44:36 +00:00
2 changed files with 21 additions and 5 deletions
Showing only changes of commit 895f22c62a - Show all commits

View File

@ -23,7 +23,7 @@ namespace Marco.Pms.Model.Mapper
TenantId = tenantId
};
}
public static Contact ToContactFromUpdateContactDto(this UpdateContactDto updateContactDto, Guid tenantId)
public static Contact ToContactFromUpdateContactDto(this UpdateContactDto updateContactDto, Guid tenantId, Contact contact)
{
return new Contact
@ -31,6 +31,8 @@ namespace Marco.Pms.Model.Mapper
Id = updateContactDto.Id,
Name = updateContactDto.Name ?? string.Empty,
ContactCategoryId = updateContactDto.ContactCategoryId,
CreatedAt = contact.CreatedAt,
CreatedById = contact.CreatedById,
Description = updateContactDto.Description ?? string.Empty,
Organization = updateContactDto?.Organization ?? string.Empty,
Address = updateContactDto != null ? updateContactDto.Address : string.Empty,

View File

@ -385,15 +385,16 @@ namespace Marco.Pms.Services.Helpers
_logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended different ID in payload and path parameter", LoggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("Invalid data", "Invalid data", 400);
}
Contact? contact = await _context.Contacts.FirstOrDefaultAsync(c => c.Id == id && c.IsActive && c.TenantId == tenantId);
Contact? contact = await _context.Contacts.AsNoTracking().FirstOrDefaultAsync(c => c.Id == id && c.IsActive && c.TenantId == tenantId);
if (contact == null)
{
_logger.LogWarning("Employee with ID {LoggedInEmployeeId} tries to update contact with ID {ContactId} is not found in database", LoggedInEmployee.Id);
return ApiResponse<object>.ErrorResponse("Contact not found", "Contact not found", 404);
}
var newContact = updateContact.ToContactFromUpdateContactDto(tenantId);
var newContact = updateContact.ToContactFromUpdateContactDto(tenantId, contact);
_context.Contacts.Update(newContact);
await _context.SaveChangesAsync();
List<ContactPhone> phones = await _context.ContactsPhones.AsNoTracking().Where(p => p.ContactId == contact.Id).ToListAsync();
var phoneIds = phones.Select(p => p.Id).ToList();
@ -505,7 +506,8 @@ namespace Marco.Pms.Services.Helpers
_context.ContactProjectMappings.Add(new ContactProjectMapping
{
ProjectId = ProjectId,
ContactId = contact.Id
ContactId = contact.Id,
TenantId = tenantId
});
}
}
@ -572,7 +574,19 @@ namespace Marco.Pms.Services.Helpers
UpdateAt = DateTime.UtcNow
});
await _context.SaveChangesAsync();
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException dbEx)
{
return ApiResponse<object>.ErrorResponse("User Send empty Payload", new
{
message = dbEx.Message,
innerexcption = dbEx.InnerException.Message
}, 400);
}
contact = await _context.Contacts.Include(c => c.ContactCategory).FirstOrDefaultAsync(c => c.Id == id && c.IsActive && c.TenantId == tenantId) ?? new Contact();
phones = await _context.ContactsPhones.AsNoTracking().Where(p => p.ContactId == contact.Id).ToListAsync();