public async Task <IHttpActionResult> Post(AdvertiserCreateViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var buyerAccount = await _accountService.GetAccount(model.BuyerAccountUuid.GetValueOrDefault(Guid.Empty)).ConfigureAwait(false);

            if (buyerAccount == null)
            {
                return(BadRequest("The specified buyer account was not found."));
            }

            var industryCategory = await _industryCategoryService.GetIndustryCategory(model.IndustryCategoryId.GetValueOrDefault(0)).ConfigureAwait(false);

            if (industryCategory == null)
            {
                return(BadRequest("The specified industry category was not found."));
            }

            var advertiser = _mapping.Map <Advertiser>(model);
            await _advertiserService.CreateAdvertiser(advertiser).ConfigureAwait(false);

            advertiser = await _advertiserService.GetAdvertiser(advertiser.AdvertiserUuid).ConfigureAwait(false);

            var advertiserViewModel = _mapping.Map <AdvertiserViewModel>(advertiser);

            return(CreatedAtRoute("Advertisers.GetById", new { Id = advertiserViewModel.AdvertiserUuid }, advertiserViewModel));
        }
Пример #2
0
        public async Task Post_ShouldReturnOk()
        {
            // Arrange
            var model = new AdvertiserCreateViewModel {
                BuyerAccountUuid = Guid.NewGuid(), IndustryCategoryId = 1
            };

            Mock.Mock <IAccountService>().Setup(x => x.GetAccount(model.BuyerAccountUuid.Value))
            .Returns(Task.FromResult(new BuyerAccount()));
            Mock.Mock <IIndustryCategoryService>().Setup(x => x.GetIndustryCategory(model.IndustryCategoryId.Value))
            .Returns(Task.FromResult(new IndustryCategory()));
            Mock.Mock <IAdvertiserService>().Setup(x => x.GetAdvertiser(It.IsAny <Guid>()))
            .Returns(Task.FromResult(new Advertiser()));

            // Act
            var retVal = await Controller.Post(model);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal, Is.TypeOf <CreatedAtRouteNegotiatedContentResult <AdvertiserViewModel> >());
            Mock.Mock <IAdvertiserService>().Verify(x => x.CreateAdvertiser(It.IsAny <Advertiser>()), Times.Once);
        }