| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- 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;
 
- namespace iBemsDataService.Controllers
 
- {
 
-     public class FmsFacilityCodeClassController : ApiController
 
-     {
 
-         private iBemsEntities db = new iBemsEntities();
 
-         // cyim 2015.12.30 : 설정-시설관리-시설등록-시설분류목록에 중복 입력 체크 (1개라도 있다면 false)
 
-         [ResponseType(typeof(void))]
 
-         [ActionName("Check")]
 
-         public bool PostFmsFacilityCodeClassCheck(FmsFacilityCodeClass param)
 
-         {
 
-             try
 
-             {
 
-                 IEnumerable<FmsFacilityCodeClass> newKeyData = (from data in db.FmsFacilityCodeClass
 
-                                                                 where data.SiteId == param.SiteId && (data.Name == param.Name || data.Abbreviation == param.Abbreviation)
 
-                                                                 select data).Take(1);
 
-                 if (newKeyData.Count() > 0)                
 
-                     return false;                               
 
-             }
 
-             catch (Exception) { throw; }
 
-             return true;
 
-         }
 
-         [ResponseType(typeof(void))]
 
-         [ActionName("Insert")]
 
-         public IHttpActionResult PostFmsFacilityCodeClassInsert(FmsFacilityCodeClass param)
 
-         {
 
-             try
 
-             {
 
-                 IEnumerable<FmsFacilityCodeClass> newKeyData = (from data in db.FmsFacilityCodeClass
 
-                 where data.SiteId == param.SiteId && (data.ParentFacilityClassId == null || (data.ParentFacilityClassId == param.ParentFacilityClassId)) &&
 
-                     data.Depth == param.Depth && data.Name == param.Name 
 
-                     select data).Take(1);
 
-                 if (newKeyData.Count() > 0)
 
-                 {
 
-                     return BadRequest("중복된 이름이나 별명이 이미 존재 합니다!");
 
-                 }
 
-                 db.FmsFacilityCodeClass.Add(param);
 
-                 db.SaveChanges();
 
-             }
 
-             catch (Exception) { throw; }
 
-             return StatusCode(HttpStatusCode.NoContent);
 
-         }
 
-         [ResponseType(typeof(void))]
 
-         [ActionName("Update")]
 
-         public IHttpActionResult PostFmsFacilityCodeClassUpdate(FmsFacilityCodeClass param)
 
-         {
 
-             try
 
-             {
 
-                 IEnumerable<FmsFacilityCodeClass> newKeyData = (from data in db.FmsFacilityCodeClass
 
-                     where data.FacilityClassId != param.FacilityClassId &&
 
-                     data.SiteId == param.SiteId && (data.ParentFacilityClassId == null || (data.ParentFacilityClassId == param.ParentFacilityClassId)) &&
 
-                     data.Depth == param.Depth && (data.Name == param.Name || data.Abbreviation == param.Abbreviation)
 
-                     select data).Take(1);
 
-                 if (newKeyData.Count() > 1)
 
-                 {
 
-                     return BadRequest("중복된 이름이나 별명이 이미 존재 합니다!");
 
-                 }
 
-                 var codeClass = db.FmsFacilityCodeClass
 
-                     .Where(a => a.FacilityClassId == param.FacilityClassId)
 
-                     .FirstOrDefault();
 
-                 if (codeClass == null) return BadRequest("Not Found Parameters.");
 
-                 codeClass.Name = param.Name;
 
-                 codeClass.Abbreviation = param.Abbreviation;
 
-                 codeClass.IsUse = param.IsUse;
 
-                 db.SaveChanges();
 
-             }
 
-             catch (Exception) { throw; }
 
-             return StatusCode(HttpStatusCode.NoContent);
 
-         }
 
-         [ResponseType( typeof( void ) )]
 
-         public IHttpActionResult DeleteFmsFacilityCodeClass()
 
-         {
 
-             if ( !ModelState.IsValid )
 
-             {
 
-                 return BadRequest( ModelState );
 
-             }
 
-             Uri uri = Request.RequestUri;
 
-             var uriQuery = HttpUtility.ParseQueryString( uri.Query );
 
-             int siteId, facilityClassId, depth;
 
-             if( int.TryParse( uriQuery.Get( "SiteId" ) , out siteId ) == false ||
 
-                 int.TryParse( uriQuery.Get( "FacilityClassId" ) , out facilityClassId ) == false ||
 
-                 int.TryParse( uriQuery.Get( "Depth" ) , out depth ) == false )
 
-             {
 
-                 return BadRequest("Not Found Parameters.");
 
-             }
 
-             using( var transaction = new TransactionScope() )
 
-             {
 
-                 var qm = new QueryManager<FmsFacilityCodeClass>( db );
 
-                 var dbSet = db.FmsFacilityCodeClass;
 
-                 if( depth == 0 )
 
-                 {
 
-                     var query = from d in dbSet
 
-                                 where d.SiteId == siteId &&
 
-                                       d.ParentFacilityClassId == facilityClassId
 
-                                 select d;
 
-                     var list = query.ToList();
 
-                     foreach( var item in list )
 
-                     {
 
-                         var queryToDelete = from d in dbSet
 
-                                     where d.SiteId == siteId &&
 
-                                           d.ParentFacilityClassId == item.FacilityClassId
 
-                                     select d;
 
-                         qm.Delete( dbSet , queryToDelete );
 
-                         qm.Delete( dbSet , item , true );
 
-                     }
 
-                 }
 
-                 else if( depth == 1 )
 
-                 {
 
-                     var query = from d in dbSet
 
-                                 where d.SiteId == siteId &&
 
-                                       d.ParentFacilityClassId == facilityClassId
 
-                                 select d;
 
-                     qm.Delete( dbSet, query );
 
-                 }
 
-                 qm.Delete( dbSet , new FmsFacilityCodeClass { 
 
-                     SiteId = siteId , 
 
-                     FacilityClassId = facilityClassId 
 
-                 } , true );
 
-                 db.SaveChanges();
 
-                 transaction.Complete();
 
-             }
 
-             return StatusCode( HttpStatusCode.NoContent );
 
-         }
 
-         protected override void Dispose(bool disposing)
 
-         {
 
-             if (disposing)
 
-             {
 
-                 db.Dispose();
 
-             }
 
-             base.Dispose(disposing);
 
-         }
 
-     }
 
- }
 
 
  |