示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }