Ejemplo n.º 1
0
        public void TestPostCreateAndPutPatchInOut()
        {
            var documentNumber = Guid.NewGuid().ToString();
            //var inOutApplicationService = _inOutApplicationServiceFactory.InOutApplicationService;

            var createInOut = new CreateOrMergePatchOrDeleteInOutDto();

            createInOut.DocumentNumber = documentNumber;
            createInOut.CommandId      = Guid.NewGuid().ToString();

            var endpointUrl = ProxyTemplate.GetEndpointUrl();
            var client      = new HttpClient {
                BaseAddress = new Uri(endpointUrl)
            };
            //var attrSetInstId = Guid.NewGuid().ToString();

            var postUrl = "InOuts";

            var postReq = new HttpRequestMessage(HttpMethod.Post, postUrl);

            SetAuthenticationHeader(postReq);
            postReq.Content = new ObjectContent <CreateOrMergePatchOrDeleteInOutDto>(createInOut, new JsonMediaTypeFormatter());
            var postRsp = client.SendAsync(postReq).GetAwaiter().GetResult();

            Console.WriteLine(postRsp.Content);
            Console.WriteLine(postRsp.Headers);
            Console.WriteLine(postRsp.StatusCode);
            Console.WriteLine(postRsp.ReasonPhrase);

            var inOutId = createInOut.DocumentNumber;
            var url     = "InOuts/{id}";

            url = url.Replace("{id}", inOutId);
            var updateInOut = new CreateOrMergePatchOrDeleteInOutDto();

            updateInOut.Version    = 1;
            updateInOut.InOutLines = new CreateOrMergePatchOrRemoveInOutLineDto[] {
                new CreateOrMergePatchOrRemoveInOutLineDto()
                {
                    LineNumber             = "1",
                    ProductId              = Guid.NewGuid().ToString(),
                    LocatorId              = "1-Test-1-1",
                    MovementQuantity       = 1,
                    AttributeSetInstanceId = "EMPTY"
                }
            };

            var req = new HttpRequestMessage(HttpMethod.Put, url);

            SetAuthenticationHeader(req);
            req.Content = new ObjectContent <CreateOrMergePatchOrDeleteInOutDto>(updateInOut, new JsonMediaTypeFormatter());
            var response = client.SendAsync(req).GetAwaiter().GetResult();

            Console.WriteLine(response.Content);
            Console.WriteLine(response.Headers);
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.ReasonPhrase);
        }
Ejemplo n.º 2
0
        public static void SetNullIdOrThrowOnInconsistentIds(string id, CreateOrMergePatchOrDeleteInOutDto value)
        {
            var idObj = id;

            if (value.DocumentNumber == null)
            {
                value.DocumentNumber = idObj;
            }
            else if (!((ICreateOrMergePatchOrDeleteInOut)value).DocumentNumber.Equals(idObj))
            {
                throw DomainError.Named("inconsistentId", "Argument Id {0} NOT equals body Id {1}", id, value.DocumentNumber);
            }
        }
Ejemplo n.º 3
0
        public void Put(string id, [FromBody] CreateOrMergePatchOrDeleteInOutDto value)
        {
            try {
                // ///////////////////////////////
                if (value.Version != default(long))
                {
                    value.CommandType = CommandType.MergePatch;
                    InOutsControllerUtils.SetNullIdOrThrowOnInconsistentIds(id, value);
                    _inOutApplicationService.When(value as IMergePatchInOut);
                    return;
                }
                // ///////////////////////////////

                InOutsControllerUtils.SetNullIdOrThrowOnInconsistentIds(id, value);
                _inOutApplicationService.When(value as ICreateInOut);
            } catch (Exception ex) { var response = HttpServiceExceptionUtils.GetErrorHttpResponseMessage(ex); throw new HttpResponseException(response); }
        }