| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 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 FmsMaterialCodeClassController : ApiController    {        private iBemsEntities db = new iBemsEntities();        [ResponseType( typeof( void ) )]        public IHttpActionResult DeleteFmsMaterialCodeClass()        {            if ( !ModelState.IsValid )            {                return BadRequest( ModelState );            }            Uri uri = Request.RequestUri;            var uriQuery = HttpUtility.ParseQueryString( uri.Query );            int siteId, depth, materialClassId;            if( int.TryParse( uriQuery.Get( "SiteId" ) , out siteId ) == false ||                int.TryParse(uriQuery.Get("MaterialClassId"), out materialClassId) == false ||                int.TryParse( uriQuery.Get( "Depth" ) , out depth ) == false )            {                return BadRequest("Not Found Parameters.");            }            using( var transaction = new TransactionScope() )            {                var qm = new QueryManager<FmsMaterialCodeClass>(db);                var dbSet = db.FmsMaterialCodeClass;                // 자식이 있으면 먼저 지운다 hcLee 2015 03 06                var query = from d in dbSet                            where d.SiteId == siteId && d.ParentMaterialClassId == materialClassId                            select d;                var list = query.ToList();                foreach( var item in list )                {                    qm.Delete( dbSet , item , true );                }                //그다음 자신을 지운다                qm.Delete(dbSet, new FmsMaterialCodeClass                {                     SiteId = siteId ,                    MaterialClassId = materialClassId                 } , true );                db.SaveChanges();                transaction.Complete();            }            return StatusCode( HttpStatusCode.NoContent );        }        protected override void Dispose(bool disposing)        {            if (disposing)            {                db.Dispose();            }            base.Dispose(disposing);        }    }}
 |