cc4a4ea6d7a8c68cf11197e798502190eda2e2ed.svn-base 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data.Entity;
  5. using System.Data.Entity.Infrastructure;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Web;
  9. using System.Web.Http;
  10. using System.Web.Http.Description;
  11. using DevExpress.Office.Utils;
  12. using iBemsDataService.Model;
  13. using iBemsDataService.Util;
  14. using System.Transactions;
  15. using System.Diagnostics;
  16. namespace iBemsDataService.Controllers
  17. {
  18. public class CmPatrolGroupController : ApiController
  19. {
  20. private iBemsEntities db = new iBemsEntities();
  21. [ResponseType( typeof ( void ) )]
  22. [ActionName( "Insert" )]
  23. public IHttpActionResult PostCmPatrolGroupInsert(PatrolGroup patrolGroup)
  24. {
  25. if ( !ModelState.IsValid )
  26. {
  27. return BadRequest( ModelState );
  28. }
  29. try
  30. {
  31. // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.
  32. using( var transaction = new TransactionScope() )
  33. {
  34. var newpatrolGroup = db.CmPatrolGroup.Add(new CmPatrolGroup
  35. {
  36. SiteId = patrolGroup.SiteId,
  37. Name = patrolGroup.Name
  38. });
  39. db.SaveChanges();
  40. /*
  41. foreach (var user in patrolGroup.PatrolGroupUsers)
  42. {
  43. //menu.SiteId = newUserGroup.SiteId;
  44. //menu.UserGroupId = newUserGroup.UserGroupId;
  45. //db.CmUserGroupPermission.Add( menu );
  46. //Trace.WriteLine( string.Format( "{0}-{1}" , newUserGroup.UserGroupId , menu.MenuId ) );
  47. db.CmPatrolGroupUser.Add( new CmPatrolGroupUser
  48. {
  49. SiteId = newpatrolGroup.SiteId,
  50. PatrolGroupId = newpatrolGroup.PatrolGroupId,
  51. UserId = user.UserId,
  52. } );
  53. db.SaveChanges();
  54. }*/
  55. transaction.Complete();
  56. }
  57. }
  58. catch( Exception )
  59. {
  60. throw;
  61. }
  62. return StatusCode( HttpStatusCode.NoContent );
  63. }
  64. [ResponseType( typeof( void ) )]
  65. [ActionName( "UpdateGroupUser" )]
  66. public IHttpActionResult PostCmPatrolGroupUpdateGroupUser(List<PatrolGroupUser> patrolGroupUsers)
  67. {
  68. if( !ModelState.IsValid )
  69. {
  70. return BadRequest( ModelState );
  71. }
  72. try
  73. {
  74. using( var transaction = new TransactionScope() )
  75. {
  76. foreach (var user in patrolGroupUsers)
  77. {
  78. var foundQuery = db.CmPatrolGroupUser.Where(
  79. x =>
  80. x.SiteId == user.SiteId &&
  81. x.PatrolGroupId == user.PatrolGroupId &&
  82. x.UserId == user.UserId);
  83. if (foundQuery.Any() == false)
  84. {
  85. var newUser = db.CmPatrolGroupUser.Add(new CmPatrolGroupUser
  86. {
  87. SiteId = user.SiteId,
  88. PatrolGroupId = user.PatrolGroupId,
  89. UserId = user.UserId,
  90. });
  91. }
  92. }
  93. db.SaveChanges();
  94. transaction.Complete();
  95. }
  96. }
  97. catch( Exception )
  98. {
  99. throw;
  100. }
  101. return StatusCode( HttpStatusCode.NoContent );
  102. }
  103. [ResponseType(typeof(void))]
  104. [ActionName("DeleteGroupUser")]
  105. public IHttpActionResult PostCmPatrolGroupDeleteGroupUser(List<PatrolGroupUser> patrolGroupUsers)
  106. {
  107. if (!ModelState.IsValid)
  108. {
  109. return BadRequest(ModelState);
  110. }
  111. try
  112. {
  113. using (var transaction = new TransactionScope())
  114. {
  115. //개념이 다른듯 2016 02 14
  116. foreach (var user in patrolGroupUsers)
  117. {
  118. var foundQuery = db.CmPatrolGroupUser.Where(x =>
  119. x.SiteId == user.SiteId &&
  120. x.PatrolGroupId == user.PatrolGroupId &&
  121. x.UserId == user.UserId);
  122. db.CmPatrolGroupUser.Remove(foundQuery.FirstOrDefault());
  123. }
  124. db.SaveChanges();
  125. transaction.Complete();
  126. }
  127. }
  128. catch (Exception)
  129. {
  130. throw;
  131. }
  132. return StatusCode(HttpStatusCode.NoContent);
  133. }
  134. protected override void Dispose(bool disposing)
  135. {
  136. if (disposing)
  137. {
  138. db.Dispose();
  139. }
  140. base.Dispose(disposing);
  141. }
  142. private bool CmPatrolGroupExists( int id )
  143. {
  144. return db.CmPatrolGroup.Count( e => e.SiteId == id ) > 0;
  145. }
  146. public class PatrolGroup
  147. {
  148. public int SiteId { get; set; }
  149. public int PatrolGroupId { get; set; }
  150. public string Name { get; set; }
  151. public List<CmPatrolGroupUser> PatrolGroupUsers { get; set; }
  152. };
  153. public class PatrolGroupUser
  154. {
  155. public int SiteId { get; set; }
  156. public int PatrolGroupId { get; set; }
  157. public string UserId { get; set; }
  158. };
  159. }
  160. }