Beispiel #1
0
        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);
            }));
        }
Beispiel #2
0
        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);
            }));
        }