public async Task <IHttpActionResult> DeleteGeoHierarchy(int id) { GeoHierarchy geoHierarchy = await db.GeoHierarchies.FindAsync(id); if (geoHierarchy == null) { return(NotFound()); } db.GeoHierarchies.Remove(geoHierarchy); await db.SaveChangesAsync(); return(Ok(geoHierarchy)); }
public IHttpActionResult PutGeoHierarchy(GeoHierarchyViewModel geoHierarchyViewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (var transaction = db.Database.BeginTransaction()) { try { GeoHierarchy geoHierarchy = geoHierarchyViewModel; db.Entry(geoHierarchy).State = EntityState.Modified; db.SaveChanges(); List <SchoolGeoHierarchyMapping> lstSchoolGeoHierarchyMapping = db.SchoolGeoHierarchyMapping.Where(a => a.GeoHierarchyId == geoHierarchyViewModel.Id).ToList(); db.SchoolGeoHierarchyMapping.RemoveRange(lstSchoolGeoHierarchyMapping); db.SaveChanges(); lstSchoolGeoHierarchyMapping.Clear(); foreach (SchoolGeoHierarchyMappingViewModel item in geoHierarchyViewModel.SchoolGeoHierarchyMappingViewModels) { lstSchoolGeoHierarchyMapping.Add(new SchoolGeoHierarchyMapping { SchoolId = Convert.ToInt32(item.Code), GeoHierarchyId = geoHierarchyViewModel.Id }); } db.SchoolGeoHierarchyMapping.AddRange(lstSchoolGeoHierarchyMapping); db.SaveChanges(); transaction.Commit(); } catch (DbUpdateConcurrencyException) { transaction.Rollback(); if (!GeoHierarchyExists(geoHierarchyViewModel.Id)) { return(NotFound()); } else { throw; } } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> PostGeoHierarchy(GeoHierarchyViewModel geoHierarchyViewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (geoHierarchyViewModel.Id > 0) { return(PutGeoHierarchy(geoHierarchyViewModel)); } using (var transaction = db.Database.BeginTransaction()) { try { GeoHierarchy geoHierarchy = geoHierarchyViewModel; db.GeoHierarchies.Add(geoHierarchy); await db.SaveChangesAsync(); List <SchoolGeoHierarchyMapping> lstSchoolGeoHierarchyMapping = new List <SchoolGeoHierarchyMapping>(); foreach (SchoolGeoHierarchyMappingViewModel item in geoHierarchyViewModel.SchoolGeoHierarchyMappingViewModels) { lstSchoolGeoHierarchyMapping.Add(new SchoolGeoHierarchyMapping { SchoolId = Convert.ToInt32(item.Code), GeoHierarchyId = geoHierarchy.Id }); } db.SchoolGeoHierarchyMapping.AddRange(lstSchoolGeoHierarchyMapping); await db.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } return(CreatedAtRoute("DefaultApi", new { id = geoHierarchyViewModel.Id }, geoHierarchyViewModel)); }