public async Task <CampusResponse> CreateCampus(PostCampusRequest model) { try { var buildings = await _unitOfWork.Repository <Building>().GetAll().Where(x => model.Geom.Contains(x.Geom)).ToListAsync(); foreach (var item in buildings) { item.CampusId = null; if (item.BuildingStreetSegments.Count != 0) { _unitOfWork.Repository <BuildingStreetSegment>().DeleteRange((IQueryable <BuildingStreetSegment>)item.BuildingStreetSegments); } } var campus = new Campus { Name = model.Name, Buildings = buildings, CreateDate = DateTime.UtcNow.AddHours(7), Geom = model.Geom }; await _unitOfWork.Repository <Campus>().InsertAsync(campus); await _unitOfWork.CommitAsync(); List <CampusStreetSegment> list = new List <CampusStreetSegment>(); foreach (var item in model.StreetSegmentId) { CampusStreetSegment campusStreet = new CampusStreetSegment { StreetSegmentId = item, CampusId = campus.Id }; list.Add(campusStreet); } await _unitOfWork.Repository <CampusStreetSegment>().InsertRangeAsync(list.AsQueryable()); await _unitOfWork.CommitAsync(); return(new CampusResponse { Id = campus.Id, CreateDate = campus.CreateDate, Geom = campus.Geom, ModifyDate = campus.ModifyDate, Name = campus.Name }); } catch (Exception e) { throw new CrudException(HttpStatusCode.BadRequest, "Create Campus Error!!!", e.InnerException?.Message); } }
public async Task <ActionResult <CampusResponse> > InsertCampus([FromBody] PostCampusRequest model) { var rs = await _campusService.CreateCampus(model); return(Ok(rs)); }