using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Diagnostics; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using System.Web.Http.Description; using DevExpress.XtraCharts.Native; using DevExpress.XtraPrinting.Native; using iBemsDataService; using iBemsDataService.Model; using iBemsDataService.Util; namespace iBemsDataService.Controllers { public class FmsWorkResultToFacilityController : ApiController { private iBemsEntities db = new iBemsEntities(); // POST: api/FmsWorkResultToFacility [ResponseType( typeof( void ) )] public IHttpActionResult PostFmsWorkResultToFacility( List workResultToFacilities ) { if ( !ModelState.IsValid ) { return BadRequest( ModelState ); } Uri uri = Request.RequestUri; var uriQuery = HttpUtility.ParseQueryString( uri.Query ); int siteId, workRequestId; if( int.TryParse( uriQuery.Get( "SiteId" ) , out siteId ) == false || int.TryParse( uriQuery.Get( "WorkRequestId" ) , out workRequestId ) == false ) { return BadRequest( "Not Found Parameters." ); } var query = from d in db.FmsWorkResultToFacility where d.SiteId == siteId && d.WorkRequestId == workRequestId select d; var qm = new QueryManager( db ); try { qm.DeleteAndInsert(db.FmsWorkResultToFacility, workResultToFacilities, query); var updateRequestQuery = ( from u in db.FmsWorkRequest where u.SiteId == siteId && u.WorkRequestId == workRequestId select u).FirstOrDefault(); // 작업상태가 대기인 경우 작업중으로 변경 if (updateRequestQuery.WorkProgressId == (short)WorkProgress.WORK_STANDBY) { updateRequestQuery.WorkProgressId = (short)WorkProgress.WORKING; db.SaveChanges(); } } catch( DbUpdateException e ) { throw e; } return StatusCode( HttpStatusCode.NoContent ); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } public class WorkResultToFacility { public int SiteId { get; set; } public int WorkRequestId { get; set; } public int FacilityCode { get; set; } }; }