public async Task TestPutOfficeAync_InvalidModel()
        {
            controller.ModelState.AddModelError("key", "error");
            var model    = new UpdatedOfficeBindingModel();
            var response = await controller.PutOfficeAsync(model);

            Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult));
        }
        public async Task TestPutOfficeAsync()
        {
            userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(new Business.Service.User(1));
            var model    = new UpdatedOfficeBindingModel();
            var response = await controller.PutOfficeAsync(model);

            userProvider.Verify(x => x.GetCurrentUser(), Times.Once());
            userProvider.Verify(x => x.GetBusinessUser(It.IsAny <IWebApiUser>()), Times.Once);
            serviceMock.Verify(x => x.UpdateOfficeAsync(It.IsAny <UpdatedOffice>()), Times.Once);
            serviceMock.Verify(x => x.SaveChangesAsync(), Times.Once());
            serviceMock.Verify(x => x.GetOfficeByIdAsync(It.IsAny <int>()), Times.Once());
        }
        public async Task <IHttpActionResult> PutOfficeAsync([FromBody] UpdatedOfficeBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var currentUser  = userProvider.GetCurrentUser();
                var businessUser = userProvider.GetBusinessUser(currentUser);
                await service.UpdateOfficeAsync(model.ToUpdatedOffice(businessUser));

                await service.SaveChangesAsync();

                var updatedOffice = await service.GetOfficeByIdAsync(model.OfficeId);

                return(Ok(updatedOffice));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }