public async Task <ActionResult <BirdLogVM> > GetBirdLog(long id) { var tmpBirdLog = await _context.BirdLog .Where(x => x.BirdLogID == id) .Include(e => e.BirdLogBird) .ThenInclude(e => e.Bird) .FirstAsync(); if (tmpBirdLog == null) { return(NotFound()); } BirdLogVM tmpBirgLogsVM = new BirdLogVM(); tmpBirgLogsVM.BirdLogID = tmpBirdLog.BirdLogID; tmpBirgLogsVM.Location_latitude = tmpBirdLog.Location_latitude; tmpBirgLogsVM.location_longitude = tmpBirdLog.location_longitude; tmpBirgLogsVM.Picture = tmpBirdLog.Picture; tmpBirgLogsVM.Temperature = tmpBirdLog.Temperature; tmpBirgLogsVM.Timestamp = tmpBirdLog.Timestamp; tmpBirgLogsVM.UserGUID = tmpBirdLog.UserGUID; tmpBirgLogsVM.Birds = new List <long>(); foreach (BirdLogBird tmpBLB in tmpBirdLog.BirdLogBird) { tmpBirgLogsVM.Birds.Add(tmpBLB.BirdID); } return(tmpBirgLogsVM); }
public async Task <ActionResult <PagedBirdLogVM> > GetBirdLog(int page = 1, int pageSize = 100) { List <BirdLogVM> tmpBirgLogsVM = new List <BirdLogVM>(); PagedBirdLogVM tmpPagedBirdLogVM = new PagedBirdLogVM(); var query = _context.BirdLog .Include(e => e.BirdLogBird) .ThenInclude(e => e.Bird); var entries = await query.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync(); var count = await query.CountAsync(); var totalPages = (int)Math.Ceiling(count / (float)pageSize); tmpPagedBirdLogVM.PagingHeader = new PagingHeader(count, page, pageSize, totalPages); foreach (BirdLog tmpBL in entries) { BirdLogVM tmpBLvm = new BirdLogVM(); tmpBLvm.BirdLogID = tmpBL.BirdLogID; tmpBLvm.Location_latitude = tmpBL.Location_latitude; tmpBLvm.location_longitude = tmpBL.location_longitude; tmpBLvm.Picture = tmpBL.Picture; tmpBLvm.Temperature = tmpBL.Temperature; tmpBLvm.Timestamp = tmpBL.Timestamp; tmpBLvm.UserGUID = tmpBL.UserGUID; tmpBLvm.Birds = new List <long>(); foreach (BirdLogBird tmpBLB in tmpBL.BirdLogBird) { tmpBLvm.Birds.Add(tmpBLB.BirdID); } tmpBirgLogsVM.Add(tmpBLvm); } tmpPagedBirdLogVM.Items = tmpBirgLogsVM; return(tmpPagedBirdLogVM); }
public async Task <ActionResult <BirdLog> > PostBirdLog(BirdLogVM birdLog) { BirdLog tmpBirdLog = new BirdLog(); tmpBirdLog.Location_latitude = birdLog.Location_latitude; tmpBirdLog.location_longitude = birdLog.location_longitude; tmpBirdLog.Picture = birdLog.Picture; tmpBirdLog.Temperature = birdLog.Temperature; tmpBirdLog.Timestamp = birdLog.Timestamp; tmpBirdLog.UserGUID = birdLog.UserGUID; foreach (long x in birdLog.Birds) { var tmpBird = _context.Birds.Find(x); var tmpBLB = new BirdLogBird(); tmpBLB.Bird = tmpBird; tmpBLB.BirdLog = tmpBirdLog; if (tmpBird.BirdLogBird == null) { tmpBird.BirdLogBird = new List <BirdLogBird>(); } tmpBird.BirdLogBird.Add(tmpBLB); } _context.BirdLog.Add(tmpBirdLog); await _context.SaveChangesAsync(); birdLog.BirdLogID = tmpBirdLog.BirdLogID; return(CreatedAtAction("GetBirdLog", new { id = birdLog.BirdLogID }, birdLog)); }