public HttpResponseMessage Post(Collection collection)
 {
     try
     {
         return Request.CreateResponse(HttpStatusCode.Created, _collectionService.Create(collection));
     }
     catch (CollectionNameAlreadyExistsException)
     {
         throw new HttpResponseException(
             new HttpResponseMessage
                 {
                     StatusCode = HttpStatusCode.BadRequest,
                     ReasonPhrase = ReasonPhrases.CollectionNameAlreadyExists
                 });
     }
     catch (ApplicationIdNotPartOfOrganisationException)
     {
         throw new HttpResponseException(
             new HttpResponseMessage
             {
                 StatusCode = HttpStatusCode.BadRequest,
                 ReasonPhrase = ReasonPhrases.ApplicationNotPartOfOrganisation
             });
     }
     catch (OrganisationIdNotValidException)
     {
         throw new HttpResponseException(
             new HttpResponseMessage
                 {
                     StatusCode = HttpStatusCode.BadRequest,
                     ReasonPhrase = ReasonPhrases.OrganisationIdNotValid
                 });
     }
 }
            public new void SetUp()
            {
                base.SetUp();

                CollectionIntoService = new Collection();
                CollectionService.Stub(x => x.Create(CollectionIntoService)).Return(collectionFromService);
                Outcome = CollectionController.Post(CollectionIntoService);
            }
 public HttpResponseMessage Put(Collection collection)
 {
     try
     {
         collection = _collectionService.Update(collection);
         return Request.CreateResponse(HttpStatusCode.OK, collection);
     }
     catch (ItemNotFoundException)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
     }
     catch (ApplicationIdNotValidException)
     {
         throw new HttpResponseException(
             new HttpResponseMessage(HttpStatusCode.BadRequest)
                 {
                     ReasonPhrase =
                         ReasonPhrases.ApplicationIdNotValid
                 });
     }
     catch (OrganisationIdNotValidException)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
             {
                 ReasonPhrase =
                    ReasonPhrases.OrganisationIdNotValid
             });
     }
 }
        public BadRequestException UpdateCollectionWithUnspecifiedName(Collection collection)
        {
            try
            {
                collection.Name = string.Empty;
                _collectionServiceAgent.Put(collection);
            }
            catch (BadRequestException ex)
            {
                return ex;
            }

            throw new SpecFlowException("Expected Bad Request Exception not caught");
        }
 public Collection UpdateCollection(Collection collection)
 {
     return _collectionServiceAgent.Put(collection);
 }
 public new virtual void SetUp()
 {
     base.SetUp();
     ApplicationService.Stub(x => x.GetApplicationByApiKey(apiKey)).Return(new Application { Id = ApplicationId, OrganisationId = OrganisationId });
     _collectionToReturn = new Collection { Name = CollectionName };
     CollectionRepository.Stub(x => x.GetCollectionsForApplication(ApplicationId, OrganisationId))
                      .Return(new List<Collection> { _collectionToReturn });
     _result = CollectionService.GetCollectionByApiKeyAndName(apiKey, CollectionName);
 }
        public Collection Put(Collection collection)
        {
            HttpRequestMessage request = CreatePutRequest(collection, "/collection/");

            return CheckResult<Collection>(request);
        }