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; namespace iBemsDataService.Controllers { public class CmUserToLicenseController : ApiController { private iBemsEntities db = new iBemsEntities(); // PUT: api/CmUserToLicense/5 [ResponseType(typeof(void))] public IHttpActionResult PutCmUserToLicense( int id , UserToLicense userToLicense ) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if( id != userToLicense.SiteId ) { return BadRequest(); } db.Entry( userToLicense ).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!CmUserToLicenseExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); } // POST: api/CmUserToLicense [ResponseType( typeof ( void ) )] public IHttpActionResult PostCmUserToLicense( List userToLicenses ) { if ( !ModelState.IsValid ) { return BadRequest( ModelState ); } Uri uri = Request.RequestUri; var uriQuery = HttpUtility.ParseQueryString( uri.Query ); string userId = uriQuery.Get( "UserId" ); int siteId; if ( int.TryParse( uriQuery.Get( "SiteId" ) , out siteId ) == false || userId == null ) { return NotFound(); } var query = from d in db.CmUserToLicense where d.SiteId == siteId && d.UserId == userId select d; try { foreach( var deleteItem in query ) { db.CmUserToLicense.Remove( deleteItem ); } foreach( var f in userToLicenses ) { var newData = new CmUserToLicense { SiteId = f.SiteId, UserId = f.UserId , LicenseId = f.LicenseId }; db.CmUserToLicense.Add( newData ); } db.SaveChanges(); } catch( DbUpdateException e ) { //if( CmUserToLicenseExists( CmUserToLicense.SiteId ) ) //{ // return Conflict(); //} //else { throw e; } } return StatusCode( HttpStatusCode.NoContent ); } // DELETE: api/CmUserToLicense/5 [ResponseType(typeof(CmUserToLicense))] public IHttpActionResult DeleteCmUserToLicense(int id) { var CmUserToLicense = db.CmUserToLicense.Find(id); if (CmUserToLicense == null) { return NotFound(); } db.CmUserToLicense.Remove(CmUserToLicense); db.SaveChanges(); return Ok(CmUserToLicense); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } private bool CmUserToLicenseExists(int id) { return db.CmUserToLicense.Count(e => e.SiteId == id) > 0; } } public class UserToLicense { public int SiteId { get; set; } public string UserId { get; set; } public int LicenseId { get; set; } }; }