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); }
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); } }
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); } }