| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | 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 CmPatrolGroupController : ApiController    {        private iBemsEntities db = new iBemsEntities();               [ResponseType( typeof ( void ) )]        [ActionName( "Insert" )]        public IHttpActionResult PostCmPatrolGroupInsert(PatrolGroup patrolGroup)        {            if ( !ModelState.IsValid )            {                return BadRequest( ModelState );            }            try            {                // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.                using( var transaction = new TransactionScope() )                {                    var newpatrolGroup = db.CmPatrolGroup.Add(new CmPatrolGroup                    {                        SiteId = patrolGroup.SiteId,                        Name = patrolGroup.Name                    });                    db.SaveChanges();/*                    foreach (var user in patrolGroup.PatrolGroupUsers)                    {                        //menu.SiteId = newUserGroup.SiteId;                        //menu.UserGroupId = newUserGroup.UserGroupId;                        //db.CmUserGroupPermission.Add( menu );                        //Trace.WriteLine( string.Format( "{0}-{1}" , newUserGroup.UserGroupId , menu.MenuId ) );                        db.CmPatrolGroupUser.Add( new CmPatrolGroupUser                        {                            SiteId = newpatrolGroup.SiteId,                            PatrolGroupId = newpatrolGroup.PatrolGroupId,                            UserId = user.UserId,                        } );                        db.SaveChanges();                    }*/                    transaction.Complete();                }            }            catch( Exception )            {                throw;            }            return StatusCode( HttpStatusCode.NoContent );        }        [ResponseType( typeof( void ) )]        [ActionName( "UpdateGroupUser" )]        public IHttpActionResult PostCmPatrolGroupUpdateGroupUser(List<PatrolGroupUser> patrolGroupUsers)        {            if( !ModelState.IsValid )            {                return BadRequest( ModelState );            }            try            {                using( var transaction = new TransactionScope() )                {                    foreach (var user in patrolGroupUsers)                    {                        var foundQuery = db.CmPatrolGroupUser.Where(                            x =>                                x.SiteId == user.SiteId &&                                x.PatrolGroupId == user.PatrolGroupId &&                                x.UserId == user.UserId);                        if (foundQuery.Any() == false)                        {                            var newUser = db.CmPatrolGroupUser.Add(new CmPatrolGroupUser                            {                                SiteId = user.SiteId,                                PatrolGroupId = user.PatrolGroupId,                                UserId = user.UserId,                            });                        }                    }                    db.SaveChanges();                    transaction.Complete();                }            }            catch( Exception )            {                throw;            }            return StatusCode( HttpStatusCode.NoContent );        }        [ResponseType(typeof(void))]        [ActionName("DeleteGroupUser")]        public IHttpActionResult PostCmPatrolGroupDeleteGroupUser(List<PatrolGroupUser> patrolGroupUsers)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    //개념이 다른듯 2016 02 14                    foreach (var user in patrolGroupUsers)                    {                        var foundQuery = db.CmPatrolGroupUser.Where(x =>                                x.SiteId == user.SiteId &&                                x.PatrolGroupId == user.PatrolGroupId &&                                x.UserId == user.UserId);                        db.CmPatrolGroupUser.Remove(foundQuery.FirstOrDefault());                                    }                    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 CmPatrolGroupExists( int id )        {            return db.CmPatrolGroup.Count( e => e.SiteId == id ) > 0;        }        public class PatrolGroup        {            public int SiteId { get; set; }            public int PatrolGroupId { get; set; }            public string Name { get; set; }            public List<CmPatrolGroupUser> PatrolGroupUsers { get; set; }        };        public class PatrolGroupUser        {            public int SiteId { get; set; }            public int PatrolGroupId { get; set; }            public string UserId { get; set; }        };    }}
 |