public async Task <IActionResult> UpdateBreedingRecord(UpdatedBreedingRecordDto updatedBreedingRecord) { return(Ok(await _breedingRecordService.UpdateBreedingRecord(updatedBreedingRecord))); /* * ServiceResponse<GetBreedingRecordDto> response = await _breedingRecordService.UpdateBreedingRecord(updatedBreedingRecord); * * if (response.Data == null) * { * return NotFound(response); * } * else * { * return Ok(response); * } */ }
public async Task <ServiceResponse <GetBreedingRecordDto> > UpdateBreedingRecord(UpdatedBreedingRecordDto updatedBreedingRecord) { ServiceResponse <GetBreedingRecordDto> serviceResponse = new ServiceResponse <GetBreedingRecordDto>(); try { BreedingRecord breedingRecord = await _context.BreedingRecords.Include(c => c.User).AsNoTracking().FirstOrDefaultAsync(c => c.Id == updatedBreedingRecord.Id); //BreedingRecord mappedUpdated = _mapper.Map<BreedingRecord>(updatedBreedingRecord); if (breedingRecord.User.Id == GetUserId()) { //breedingRecord = Utility.Util.CloneJson<BreedingRecord>(mappedUpdated); breedingRecord.Name = updatedBreedingRecord.Name; breedingRecord.Owner = await _context.Contacts.FirstOrDefaultAsync(c => c.Id == updatedBreedingRecord.OwnerId); breedingRecord.Breeder = await _context.Contacts.FirstOrDefaultAsync(c => c.Id == updatedBreedingRecord.BreederId); breedingRecord.BirthLitter = await _context.Litters.FirstOrDefaultAsync(c => c.Id == updatedBreedingRecord.BirthLitterId); breedingRecord.Sex = updatedBreedingRecord.Sex == 1 ? Gender.Male : Gender.Female; breedingRecord.Public = updatedBreedingRecord.Public; breedingRecord.Birthday = updatedBreedingRecord.Birthday; breedingRecord.DateOfAcquisition = updatedBreedingRecord.DateOfAcquisition; _context.BreedingRecords.Update(breedingRecord); await _context.SaveChangesAsync(); serviceResponse.Data = _mapper.Map <GetBreedingRecordDto>(breedingRecord); } else { serviceResponse.Success = false; serviceResponse.Message = "Record not found."; } } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; } return(serviceResponse); }