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 FmsWorkHistoryController : ApiController { private iBemsEntities db = new iBemsEntities(); [ResponseType(typeof(void))] [ActionName("Remove")] public IHttpActionResult PostFmsWorkHistoryRemove(FmsWorkHistory workRequest) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { using (var transaction = new TransactionScope()) { var tempSiteId = workRequest.SiteId; var tempWorkRequestId = workRequest.WorkRequestId; var foundQuery = db.FmsWorkResultCheckItemMaterial.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery) { db.FmsWorkResultCheckItemMaterial.Remove(deleteItem); } var foundQuery1 = db.FmsWorkResultCheckItem.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery1) { db.FmsWorkResultCheckItem.Remove(deleteItem); } var foundQuery2 = db.FmsWorkResultFile.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery2) { db.FmsWorkResultFile.Remove(deleteItem); } var foundQuery3 = db.FmsWorkResultLaw.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery3) { db.FmsWorkResultLaw.Remove(deleteItem); } var foundQuery4 = db.FmsWorkResultToFacility.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery4) { db.FmsWorkResultToFacility.Remove(deleteItem); } var foundQuery10 = db.FmsMaterialRelease.Where(x => //추가 x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery10) { db.FmsMaterialRelease.Remove(deleteItem); } var foundQuery5 = db.FmsWorkResult.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery5) { db.FmsWorkResult.Remove(deleteItem); } var foundQuery6 = db.FmsWorkOrderToFacility.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery6) { db.FmsWorkOrderToFacility.Remove(deleteItem); } var foundQuery7 = db.FmsWorkOrder.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery7) { db.FmsWorkOrder.Remove(deleteItem); } var foundQuery8 = db.FmsWorkRequestToFacility.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery8) { db.FmsWorkRequestToFacility.Remove(deleteItem); } var foundQuery9 = db.FmsWorkRequest.Where(x => x.SiteId == tempSiteId && x.WorkRequestId == tempWorkRequestId); foreach (var deleteItem in foundQuery9) { db.FmsWorkRequest.Remove(deleteItem); } db.SaveChanges(); transaction.Complete(); } } catch (Exception) { throw; } return StatusCode(HttpStatusCode.NoContent); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } public class FmsWorkHistory { public int SiteId { get; set; } public int WorkRequestId { get; set; } public int WorkTypeId { get; set; } public int BusinessFieldId { get; set; } public int WorkScheduleId { get; set; } public int WorkProgressId { get; set; } public string Title { get; set; } public string Content { get; set; } public string RequestUserId { get; set; } public System.DateTime RequestDate { get; set; } public System.DateTime StartWorkDate { get; set; } public string RejectUserId { get; set; } public System.DateTime RejectDate { get; set; } public string RejectReason { get; set; } public int InspectionAgencyId { get; set; } } } }