public async Task <IActionResult> Create([FromQuery] CreateWorkOrderFromQuery query,
                                                 [FromBody] CreateWorkOrderFromBody body)
        {
            var request = new CreateWorkOrderRequest(query, body);

            var result = await _apiResult.Produce(request);

            return(result);
        }
        public void ConstructorShouldFailWhenBodyIsNull()
        {
            // Arrange
            var query = new CreateWorkOrderFromQuery();
            CreateWorkOrderFromBody body = null;

            // Act
            Action ctor = () => { new CreateWorkOrderRequest(query, body); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
        public void ConstructorShouldSucceed()
        {
            // Arrange
            var query = new CreateWorkOrderFromQuery();
            var body  = new CreateWorkOrderFromBody();

            // Act
            var obj = new CreateWorkOrderRequest(query, body);

            // Assert
            obj.Should().NotBeNull();
        }
        public void MemberQueryApiVersionShouldHaveCorrectValue()
        {
            // Arrange
            var apiVersion = "1.0";
            var query      = new CreateWorkOrderFromQuery()
            {
                ApiVersion = apiVersion
            };
            var body = new CreateWorkOrderFromBody();

            // Act
            var obj = new CreateWorkOrderRequest(query, body);

            // Assert
            obj.QueryApiVersion.Should().Be(apiVersion);
        }
        public static async Task <CreateWorkOrderResult> CreateWorkOrder(string userCreated)
        {
            using (var client = ControllerTestsHelper.GetClient())
            {
                var apiVersion = "1.0";

                var body = new CreateWorkOrderFromBody()
                {
                    Operation   = "anyOperation",
                    Department  = "any",
                    Site        = "any",
                    UserCreated = userCreated
                };

                var jsonBody = JsonConvert.SerializeObject(body);

                var response = await client.PostAsync(string.Format("api/workorders?api-version={0}", apiVersion), new StringContent(jsonBody, Encoding.UTF8, "application/json"));

                var id     = response.Headers.Location.GetId();
                var eTag   = response.Headers.ETag.Tag;
                var result = new CreateWorkOrderResult(id, eTag);
                return(await Task.FromResult(result));
            }
        }
 public CreateWorkOrderRequest(CreateWorkOrderFromQuery query, CreateWorkOrderFromBody body)
 {
     _query = query ?? throw new ArgumentNullException(nameof(query));
     _body  = body ?? throw new ArgumentNullException(nameof(body));
 }