| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- 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;
 
- using System.Diagnostics;
 
- namespace iBemsDataService.Controllers
 
- {
 
-     public class CmUserGroupController : ApiController
 
-     {
 
-         private iBemsEntities db = new iBemsEntities();
 
-         const int PERMISSION_SEARCH                     = 1;
 
-         const int PERMISSION_MODIFICATION               = 2;
 
-         const int PERMISSION_DEPEND_BUSINESS_FIELD      = 4;
 
-         const int PERMISSION_ALL                        = 7;   // 1: 조회, 2(10): 수정 , 4: 업무분야
 
-         
 
-         [ResponseType( typeof ( void ) )]
 
-         [ActionName( "Insert" )]
 
-         public IHttpActionResult PostCmUserGroup( UserGroup userGroup )
 
-         {
 
-             if ( !ModelState.IsValid )
 
-             {
 
-                 return BadRequest( ModelState );
 
-             }
 
-             try
 
-             {
 
-                 // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.
 
-                 using( var transaction = new TransactionScope() )
 
-                 {
 
-                     var newUserGroup = db.CmUserGroup.Add( new CmUserGroup
 
-                     {
 
-                         SiteId = userGroup.SiteId,
 
-                         Name = userGroup.Name
 
-                     });
 
-                     db.SaveChanges();
 
-                     foreach( var menu in userGroup.UserGroupPermissions )
 
-                     {
 
-                         //menu.SiteId = newUserGroup.SiteId;
 
-                         //menu.UserGroupId = newUserGroup.UserGroupId;
 
-                         //db.CmUserGroupPermission.Add( menu );
 
-                         Trace.WriteLine( string.Format( "{0}-{1}" , newUserGroup.UserGroupId , menu.MenuId ) );
 
-                         db.CmUserGroupPermission.Add( new CmUserGroupPermission
 
-                         {
 
-                             SiteId = newUserGroup.SiteId ,
 
-                             UserGroupId = newUserGroup.UserGroupId ,
 
-                             MenuId = menu.MenuId ,
 
-                             MenuPermission = PERMISSION_ALL
 
-                         } );
 
-                         db.SaveChanges();
 
-                     }
 
-                     transaction.Complete();
 
-                 }
 
-             }
 
-             catch( Exception )
 
-             {
 
-                 throw;
 
-             }
 
-             return StatusCode( HttpStatusCode.NoContent );
 
-         }
 
-         [ResponseType( typeof( void ) )]
 
-         [ActionName( "UpdatePermission" )]
 
-         public IHttpActionResult PostCmUserGroup( List<CmUserGroupPermission> userGroupPermissions )
 
-         {
 
-             if( !ModelState.IsValid )
 
-             {
 
-                 return BadRequest( ModelState );
 
-             }
 
-             try
 
-             {
 
-                 using( var transaction = new TransactionScope() )
 
-                 {
 
-                     foreach( var permission in userGroupPermissions )
 
-                     {
 
-                         var foundQuery = db.CmUserGroupPermission.Where(
 
-                             x =>
 
-                                 x.SiteId == permission.SiteId &&
 
-                                 x.UserGroupId == permission.UserGroupId &&
 
-                                 x.MenuId == permission.MenuId );
 
-                         if( foundQuery.Any() == false )
 
-                             continue;
 
-                         var found = foundQuery.First();
 
-                         found.MenuPermission = permission.MenuPermission;
 
-                     }
 
-                     db.SaveChanges();
 
-                     transaction.Complete();
 
-                 }
 
-             }
 
-             catch( Exception )
 
-             {
 
-                 throw;
 
-             }
 
-             return StatusCode( HttpStatusCode.NoContent );
 
-         }
 
-         protected override void Dispose(bool disposing)
 
-         {
 
-             if (disposing)
 
-             {
 
-                 db.Dispose();
 
-             }
 
-             base.Dispose(disposing);
 
-         }
 
-         private bool CmUserGroupExists( int id )
 
-         {
 
-             return db.CmUserGroup.Count( e => e.SiteId == id ) > 0;
 
-         }
 
-         public class UserGroup
 
-         {
 
-             public int SiteId { get; set; }
 
-             public int UserGroupId { get; set; }
 
-             public string Name { get; set; }
 
-             public List<CmUserGroupPermission> UserGroupPermissions { get; set; }
 
-         };
 
-     }
 
- }
 
 
  |