public IHttpActionResult Post(int id, [FromBody] Mapping mapping) { return(WebHandler(() => { var request = new CreateMappingRequest { EntityId = id, Mapping = mapping }; IEntityMapping entityMapping; using (var scope = new TransactionScope(TransactionScopeOption.Required, WriteOptions())) { entityMapping = this.service.CreateMapping(request); scope.Complete(); } var location = String.Format("{0}/{1}", this.Request.RequestUri.AbsolutePath.Substring(1), entityMapping.Id); notificationService.Notify(() => GetContract(id).Contract, service.ContractVersion, Operation.Modified); return new StatusCodeResultWithLocation(this.Request, HttpStatusCode.Created, location); })); }
public IHttpActionResult Post([FromBody] TContract contract) { return(WebHandler(() => { TEntity entity; using (var scope = new TransactionScope(TransactionScopeOption.Required, WriteOptions())) { entity = service.Create(contract); scope.Complete(); } var location = String.Format("{0}/{1}?{2}={3}", Request.RequestUri.AbsolutePath.Substring(1), entity.Id, QueryConstants.ValidAt, entity.Validity.Start.ToString(QueryConstants.DateFormatString)); notificationService.Notify(() => GetContract(entity.Id).Contract, service.ContractVersion, Operation.Created); return new StatusCodeResultWithLocation(Request, HttpStatusCode.Created, location); })); }