using System; using System.Collections; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Net; using System.Web; using System.Web.Http; using System.Web.Http.Description; using DevExpress.Office.Utils; using iBemsDataService.Model; using iBemsDataService.Util; using System.Transactions; // hcLee 2015 03 06 작성 namespace iBemsDataService.Controllers { public class FmsWorkCodeCauseClassController : ApiController { private iBemsEntities db = new iBemsEntities(); [ResponseType( typeof( void ) )] public IHttpActionResult DeleteFmsWorkCodeCauseClass() { if ( !ModelState.IsValid ) { return BadRequest( ModelState ); } Uri uri = Request.RequestUri; var uriQuery = HttpUtility.ParseQueryString( uri.Query ); int siteId, causeClassId; if( int.TryParse( uriQuery.Get( "SiteId" ) , out siteId ) == false || int.TryParse(uriQuery.Get("CauseClassId"), out causeClassId) == false) //|| //int.TryParse( uriQuery.Get( "Depth" ) , out depth ) == false ) { return BadRequest("Not Found Parameters."); } using( var transaction = new TransactionScope() ) { var qm = new QueryManager( db ); var dbSet = db.FmsWorkCodeCauseClass; // 자식이 있으면 먼저 지운다 hcLee 2015 03 06 var query = from d in dbSet where d.SiteId == siteId && d.ParentId == causeClassId select d; var list = query.ToList(); foreach( var item in list ) { qm.Delete( dbSet , item , true ); } //그다음 자신을 지운다 qm.Delete(dbSet, new FmsWorkCodeCauseClass { SiteId = siteId , CauseClassId = causeClassId } , true ); db.SaveChanges(); transaction.Complete(); } return StatusCode( HttpStatusCode.NoContent ); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }