public async Task <IHttpActionResult> PostTerritories(TerritoriesVm vm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = Task.Factory.StartNew(() => { IUnitOfWork uow = new UnitOfWorkImp(new IRepositoryConnection[] { TerritoriesRepository }); var bo = (BOTerritories)vm.BOTerritories(TerritoriesRepository); uow.Create(bo); string err; if (!uow.Commit(out err)) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(err) }; throw new HttpResponseException(resp); } vm = new TerritoriesVm(bo); return(true); }); await result; return(CreatedAtRoute("DefaultApi", new { id = vm.TerritoryID }, vm)); }
public async Task <IHttpActionResult> PutTerritories(string id, TerritoriesVm vm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != vm.TerritoryID) { return(BadRequest()); } var result = Task.Factory.StartNew(() => { IUnitOfWork uow = new UnitOfWorkImp(new IRepositoryConnection[] { TerritoriesRepository }); var bo = (BOTerritories)vm.BOTerritories(TerritoriesRepository); uow.Update(bo); string err; if (!uow.Commit(out err)) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(err) }; throw new HttpResponseException(resp); } return(true); }); await result; if (!result.Result) { return(NotFound()); } return(StatusCode(HttpStatusCode.NoContent)); }