public async Task <IActionResult> AddAsync([FromBody] GroupLocationAddModel mGroupLocation) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelStateError())); } var groupLocationId = await _groupLocationRepository.AddAsync(mGroupLocation); return(CreatedAtRoute("GetByGroupLocationIdAsync", new { controller = "GroupLocations", groupLocationId = groupLocationId }, mGroupLocation)); }
public async Task <int> AddAsync(GroupLocationAddModel mGroupLocation) { var group = _context.Groups.FirstOrDefault(c => c.GroupId == mGroupLocation.GroupId); if (group == null) { throw new ExpectException("Could not find Group data which GroupId equal to " + mGroupLocation.GroupId); } var location = _context.Locations.FirstOrDefault(c => c.LocationId == mGroupLocation.LocationId); if (location == null) { throw new ExpectException("Could not find Location data which LocationId equal to " + mGroupLocation.LocationId); } //GroupId and LocationId must be unique var checkData = await _context.GroupLocations .Where(c => c.GroupId == mGroupLocation.GroupId && c.LocationId == mGroupLocation.LocationId).ToListAsync(); if (checkData.Count > 0) { throw new ExpectException("There is already exist data which GroupId equal to " + mGroupLocation.GroupId + " and LocationId equal to " + mGroupLocation.LocationId); } var model = new GroupLocation { GroupId = mGroupLocation.GroupId, LocationId = mGroupLocation.LocationId }; _context.GroupLocations.Add(model); await _context.SaveChangesAsync(); return(model.GroupLocationId); }