public async Task <ServiceResponse <GetBreedingRecordDto> > GetBreedingRecordById(int id) { ServiceResponse <GetBreedingRecordDto> serviceResponse = new ServiceResponse <GetBreedingRecordDto>(); string UserRole = GetUserRole(); BreedingRecord record = UserRole.Equals("Admin") ? await _context.BreedingRecords .Include(br => br.Owner) .Include(br => br.Breeder) .Include(br => br.BirthLitter) .Include(br => br.Notes) .Include(br => br.BreedingRecordCharacteristics).ThenInclude(brc => brc.Characteristic) .FirstOrDefaultAsync(c => c.Id == id) : await _context.BreedingRecords .Include(br => br.Owner) .Include(br => br.Breeder) .Include(br => br.BirthLitter) .Include(br => br.Notes) .Include(br => br.BreedingRecordCharacteristics).ThenInclude(brc => brc.Characteristic) .FirstOrDefaultAsync(c => c.Id == id && c.User.Id == GetUserId()); serviceResponse.Data = _mapper.Map <GetBreedingRecordDto>(record); return(serviceResponse); }
public async Task <ServiceResponse <List <GetBreedingRecordDto> > > DeleteBreedingRecord(int id) { ServiceResponse <List <GetBreedingRecordDto> > serviceResponse = new ServiceResponse <List <GetBreedingRecordDto> >(); try { BreedingRecord breedingRecord = await _context.BreedingRecords.FirstAsync(c => c.Id == id && c.User.Id == GetUserId()); if (breedingRecord != null) { _context.BreedingRecords.Remove(breedingRecord); await _context.SaveChangesAsync(); serviceResponse.Data = _context.BreedingRecords.Where(c => c.User.Id == GetUserId()).Select(c => _mapper.Map <GetBreedingRecordDto>(c)).ToList(); } else { serviceResponse.Success = false; serviceResponse.Message = "BreedingRecord not found."; } } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; } return(serviceResponse); }
public async Task <ServiceResponse <GetBreedingRecordDto> > CreateBreedingRecordCharacteristic(CreateBreedingRecordCharacteristicDto newBreedingRecordCharacteristic) { ServiceResponse <GetBreedingRecordDto> serviceResponse = new ServiceResponse <GetBreedingRecordDto>(); try { BreedingRecord record = await _context.BreedingRecords .Include(br => br.BreedingRecordCharacteristics).ThenInclude(br => br.Characteristic) .FirstOrDefaultAsync(br => br.Id == newBreedingRecordCharacteristic.BreedingRecordId && br.User.Id == GetUserId()); if (record == null) { serviceResponse.Success = false; serviceResponse.Message = "BreedingRecord not found."; return(serviceResponse); } Characteristic characteristic = await _context.Characteristics .FirstOrDefaultAsync(c => c.Id == newBreedingRecordCharacteristic.CharacteristicId); if (characteristic == null) { serviceResponse.Success = false; serviceResponse.Message = "Characteristic not found."; return(serviceResponse); } BreedingRecordCharacteristic breedingRecordCharacteristic = new BreedingRecordCharacteristic { BreedingRecord = record, Characteristic = characteristic }; await _context.BreedingRecordCharacteristics.AddAsync(breedingRecordCharacteristic); await _context.SaveChangesAsync(); serviceResponse.Data = _mapper.Map <GetBreedingRecordDto>(record); } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; } return(serviceResponse); }
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); }
public async Task <ServiceResponse <List <GetBreedingRecordDto> > > CreateBreedingRecord(CreateBreedingRecordDto newBreedingRecord) { ServiceResponse <List <GetBreedingRecordDto> > serviceResponse = new ServiceResponse <List <GetBreedingRecordDto> >(); BreedingRecord record = _mapper.Map <BreedingRecord>(newBreedingRecord); record.User = await _context.Users.FirstOrDefaultAsync(u => u.Id == GetUserId()); record.Owner = await _context.Contacts.FirstOrDefaultAsync(c => c.Id == newBreedingRecord.OwnerId); record.Breeder = await _context.Contacts.FirstOrDefaultAsync(c => c.Id == newBreedingRecord.BreederId); record.BirthLitter = await _context.Litters.FirstOrDefaultAsync(c => c.Id == newBreedingRecord.BirthLitterId); record.Sex = newBreedingRecord.Sex == 1 ? record.Sex = Gender.Male : record.Sex = Gender.Female; await _context.BreedingRecords.AddAsync(record); await _context.SaveChangesAsync(); serviceResponse.Data = await GetAllRecords(); return(serviceResponse); }