| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | 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 CmMenuController : ApiController    {        private iBemsEntities db = new iBemsEntities();        [ResponseType(typeof(void))]        [ActionName("Insert")]        public IHttpActionResult PostCmMenuInsert(Menu Menu)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.                using (var transaction = new TransactionScope())                {                    var newMenu = db.CmMenu.Add(new CmMenu                    {                        SiteId = Menu.SiteId,                        MenuId = Menu.MenuId,                        Used = Menu.Used,                        MenuPath = Menu.MenuPath,                        Name = Menu.Name                    });                    db.SaveChanges();                    /*                                        foreach (var user in Menu.MenuUsers)                                        {                                            //menu.SiteId = newUserGroup.SiteId;                                            //menu.UserGroupId = newUserGroup.UserGroupId;                                            //db.CmUserGroupPermission.Add( menu );                                            //Trace.WriteLine( string.Format( "{0}-{1}" , newUserGroup.UserGroupId , menu.MenuId ) );                                            db.CmMenuUser.Add( new CmMenuUser                                            {                                                SiteId = newMenu.SiteId,                                                MenuId = newMenu.MenuId,                                                UserId = user.UserId,                                            } );                                            db.SaveChanges();                                        }*/                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("InsertAll")]        public IHttpActionResult PostCmMenuInsertAll(List<Menu> Menu)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    foreach (var m in Menu)                    {                        var foundQuery = db.CmMenu.Where(                            x =>                                x.SiteId == m.SiteId &&                                x.MenuId == m.MenuId);                        if (foundQuery.Any() == false)                        {                            var newM = db.CmMenu.Add(new CmMenu                            {                                SiteId = m.SiteId,                                MenuId = m.MenuId,                                MenuPath = m.MenuPath,                                Name = m.Name,                                Used = m.Used,                            });                        }                    }                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("DeleteAll")]        public IHttpActionResult PostCmMenuDeleteAll(Menu menu)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    var foundQuery = db.CmMenu.Where(x =>                            x.SiteId == menu.SiteId);                    //db.CmMenu.Remove(foundQuery.FirstOrDefault()); 한개만 지운다                    new QueryManager<CmMenu>(db).Delete(db.CmMenu, foundQuery);                    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 CmMenuExists(int id)        {            return db.CmMenu.Count(e => e.SiteId == id) > 0;        }        public class Menu        {            public int SiteId { get; set; }            public string MenuId { get; set; }            public string Name { get; set; }            public string MenuPath { get; set; }            public bool Used { get; set; }        };    }}
 |