public async Task <UrgencyResponse> UpdateAsync(int guardianId, int urgencyId, Urgency urgency) { var existingGuardian = await _guardianRepository.FindByIdAsync(guardianId); if (existingGuardian == null) { return(new UrgencyResponse("Guardian not found")); } var existingUrgency = await _urgencyRepository.FindByIdAsync(urgencyId); if (existingUrgency == null) { return(new UrgencyResponse("Urgency not found")); } existingUrgency.Title = urgency.Title; existingUrgency.Summary = urgency.Summary; existingUrgency.Latitude = urgency.Latitude; existingUrgency.Longitude = urgency.Longitude; var othersUrgencies = await _urgencyRepository.ListByGuardianIdAsync(guardianId); var otherUrgency = othersUrgencies.Where(other => other != existingUrgency).Where(other => existingUrgency.Title == other.Title && existingUrgency.Latitude == other.Latitude && existingUrgency.Longitude == other.Longitude && existingUrgency.ReportedAt.Date == other.ReportedAt.Date).ToList().FirstOrDefault(); if (otherUrgency != null) { return(new UrgencyResponse("There is another urgency with same title, location and report day")); } try { _urgencyRepository.Update(existingUrgency); await _unitOfWork.CompleteAsync(); return(new UrgencyResponse(urgency)); } catch (Exception ex) { return(new UrgencyResponse($"An error ocurred while updating the urgency: {ex.Message}")); } }
public void Update(UrgencyEntity item) { _urgencyRep.Update(item); }