yallie / MdlpClient

Честный знак. ИС «Маркировка». MDLP REST API Client
https://честныйзнак.рф/business/projects/medicines/documents/for_developers/
MIT License
22 stars 8 forks source link

416 схема Order_Details is read only #16

Closed sa13m closed 3 years ago

sa13m commented 3 years ago

Добрый вечер, спасибо за вашу работу!

Необходимо отправить 416 документ, делаю так:

            Documents doc = new Documents
            //416
            {
                Version = "1.35",
                Receive_Order = new Receive_Order
                {
                    Subject_Id = "00000000151840",
                    Shipper_Id = "00000000000290",
                    Operation_Date = DateTime.Now,
                    Doc_Num = "6893219-30",
                    Doc_Date = "18.08.2020",
                    Receive_Type = Receive_Type_Enum.Item1,
                    Source = Source_Type.Item1,
                    Contract_Type = Contract_Type_Enum.Item1, 

                    Order_Details = new System.Collections.ObjectModel.Collection<Receive_OrderOrder_DetailsUnion>
                    {
                        new Receive_OrderOrder_DetailsUnion
                        {
                            Sgtin = "046071552100304097238557409",
                            Cost = 1628.58m,
                            Vat_Value = 148.05m
                        },
                    }
                }
            };

Order_Details установить не могу, так как свойство только для чтения. То же самое и в 701 Accept -> Order_Details -> Sgtin только для чтения:

                Accept = new Accept
                {
                    Operation_Date = DateTime.Now,
                    Action_Id = 701,
                    Order_Details = new AcceptOrder_Details
                    {
                        Sgtin = new Collection<string>(sgtins)
                    }
                }

252 - Refusal_Receiver.Order_Details так же. Где-то еще встречал свойства только для чтения, которые должны заполняться. Редактировал MdlpApiClient.Xsd.cs, убирал private set. Я что-то не понимаю?

Могли бы Вы выложить исходники 1.4.1? Как можно сгенерировать MdlpApiClient.Xsd.cs на основе xsd схем? Спасибо.

yallie commented 3 years ago

Добрый день!

Да, есть такая неприятность с коллекциями. Я так понимаю, private set генерируется, чтобы нельзя было записать туда null. Так что приходится коллекции заполнять отдельным шагом, уже после инициализатора. Ну, это обычно ведь все равно в цикле делается, строчки копируются откуда-нибудь.

Могли бы Вы выложить исходники 1.4.1?

Выложил

Как можно сгенерировать MdlpApiClient.Xsd.cs на основе xsd схем?

Добавил инструкцию: Docs/updating_xsd.md

Если будете перегенерировать схемы из нового архива — закиньте пулл-реквест, плиз.

Спасибо.