817e70a05ece250c10955415d0c22a2de1bfa334.svn-base 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Entity;
  5. using System.Data.Entity.Infrastructure;
  6. using System.Diagnostics;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Net.Http;
  10. using System.Web;
  11. using System.Web.Http;
  12. using System.Web.Http.Description;
  13. using DevExpress.XtraCharts.Native;
  14. using DevExpress.XtraPrinting.Native;
  15. using iBemsDataService;
  16. using iBemsDataService.Model;
  17. using iBemsDataService.Util;
  18. namespace iBemsDataService.Controllers
  19. {
  20. public class FmsMaterialPurchaseRequestController : ApiController
  21. {
  22. private iBemsEntities db = new iBemsEntities();
  23. [ResponseType( typeof( void ) )]
  24. [ActionName( "Approval" )]
  25. public IHttpActionResult PostFmsMaterialPurchaseRequest( PurchaseRequestAppovalInfo info )
  26. {
  27. if ( !ModelState.IsValid )
  28. {
  29. return BadRequest( ModelState );
  30. }
  31. if( info.UserId == null || info.UserId.IsEmpty() ||
  32. info.PurchaseRequests == null || info.PurchaseRequests.IsEmpty() )
  33. {
  34. return BadRequest( "Not Found Parameters." );
  35. }
  36. try
  37. {
  38. var purchaseRequests = info.PurchaseRequests;
  39. foreach( var p in purchaseRequests )
  40. {
  41. var purchaseRequest = db.FmsMaterialPurchaseRequest.Where( x =>
  42. x.SiteId == p.SiteId &&
  43. x.BusinessFieldId == p.BusinessFieldId &&
  44. x.PurchaseRequestId == p.PurchaseRequestId
  45. ).First();
  46. purchaseRequest.ProgressId = (short)PurchaseProgress.PURCHASE_REQUEST_APPROVAL;
  47. purchaseRequest.ApprovalUserId = info.UserId;
  48. purchaseRequest.ApprovalDate = DateTime.Now;
  49. }
  50. db.SaveChanges();
  51. }
  52. catch( DbUpdateException e )
  53. {
  54. {
  55. throw e;
  56. }
  57. }
  58. return StatusCode( HttpStatusCode.NoContent );
  59. }
  60. protected override void Dispose(bool disposing)
  61. {
  62. if (disposing)
  63. {
  64. db.Dispose();
  65. }
  66. base.Dispose(disposing);
  67. }
  68. }
  69. public class PurchaseRequestAppovalInfo
  70. {
  71. public string UserId { get; set; }
  72. public List<PurchaseRequest> PurchaseRequests { get; set; }
  73. }
  74. public class PurchaseRequest
  75. {
  76. public int SiteId { get; set; }
  77. public int BusinessFieldId { get; set; }
  78. public int PurchaseRequestId { get; set; }
  79. };
  80. }