There is a construction of classes
importMeteringDeviceDataRequest = new importMeteringDeviceDataRequest { FIASHouseGuid = res.FIASHouseGUID.ToString(), MeteringDevice = new importMeteringDeviceDataRequestMeteringDevice[] { new importMeteringDeviceDataRequestMeteringDevice { TransportGUID = Guid.NewGuid().ToString(), Item = new MeteringDeviceFullInformationType { BasicChatacteristicts = new MeteringDeviceBasicCharacteristicsType { MeteringDeviceNumber = res.MeteringDeviceNumber, MeteringDeviceModel = res.MeteringDeviceModel, MeteringDeviceStamp = res.MeteringDeviceStamp, .... И.Т.Д I am importMeteringDeviceDataRequestMeteringDevice[] this importMeteringDeviceDataRequestMeteringDevice[] array, but I still need to pass this parameter FIASHouseGuid = res.FIASHouseGUID.ToString() , It goes outside the array, and I don’t understand how to do it correctly. Initially, the task is to pass these parameters in a soap request, generate proxy classes and give them values, if you make one record at a time, everything is ok, but you can send 100 records at a time. Only here FIASHouseGuid from the array is knocked out and how to transfer it is not clear. The table is one there all records are stored.
Full text
public async void ImportMeteringDataAdd() { inserted = 0; var importIPU = Task.Factory.StartNew(() => { IsBusy = true; soapEntities db = new soapEntities(); AuthClass auth = new Data.AuthClass(); var service = new HouseManagementPortsTypeAsyncClient(); service.ClientCredentials.UserName.UserName = auth.LoginEais; service.ClientCredentials.UserName.Password = auth.PasswordEais; List<string> accGuid = new List<string>(); var r = db.eias_MeteringDevice.Include("eias_MeteringDevice_Account").Select(c => c).ToList(); count = r.Count; foreach (var res in r) { foreach (var item in res.eias_MeteringDevice_Account) { accGuid.Add(item.AccountGUID.ToString()); } try { var request = new importMeteringDeviceDataRequest1 { RequestHeader = new RequestHeader { Date = DateTime.Now, MessageGUID = Guid.NewGuid().ToString(), ItemElementName = ItemChoiceType.orgPPAGUID, Item = auth.GuidORG, IsOperatorSignature = true, IsOperatorSignatureSpecified = true }, importMeteringDeviceDataRequest = new importMeteringDeviceDataRequest { FIASHouseGuid = res.FIASHouseGUID.ToString(), MeteringDevice = new importMeteringDeviceDataRequestMeteringDevice[] { new importMeteringDeviceDataRequestMeteringDevice { TransportGUID = Guid.NewGuid().ToString(), Item = new MeteringDeviceFullInformationType { BasicChatacteristicts = new MeteringDeviceBasicCharacteristicsType { MeteringDeviceNumber = res.MeteringDeviceNumber, MeteringDeviceModel = res.MeteringDeviceModel, MeteringDeviceStamp = res.MeteringDeviceStamp, CommissioningDate = res.CommissioningDate.Value, CommissioningDateSpecified = true , // VerificationInterval = new nsiRef { } InstallationDate = res.InstallationDate.Value, RemoteMeteringMode = res.RemoteMeteringMode.Value, TemperatureSensor = res.TemperatureSensor.Value, PressureSensor =res.PressureSensor.Value , Item = new MeteringDeviceBasicCharacteristicsTypeResidentialPremiseDevice { AccountGUID = accGuid.ToArray() , PremiseGUID = res.Residential_PremiseGUID.ToString().ToLower() }, // // FirstVerificationDate = res.LastVerificationDate.Value }, Item = true, Items = new MunicipalResourceNotElectricType[] { new MunicipalResourceNotElectricType { MeteringValue = res.MeteringValueT1.Value,//Первоначальное значение MunicipalResource = new Gis.Infrastructure.HouseManagementService.nsiRef { Code = res.MunicipalResource, GUID = res.MunicipalResourceGUID.ToString().ToLower() } } } } // } } } } }; var result = service.importMeteringDeviceData(request); GuidService gs = new GuidService { GuidID = new Guid(result.AckRequest.Ack.MessageGUID), DateGuid = DateTime.Now, MetodId = 14, Descript = result.AckRequest.Ack.RequesterMessageGUID, State = 1 }; db.GuidServices.Add(gs); db.SaveChanges(); for (int i = 0; i < accGuid.Count; i++) { ImportMeteringDevice md = new Data.ImportMeteringDevice { GuidQ = new Guid(result.AckRequest.Ack.MessageGUID), AccountGUID = new Guid(accGuid[i].ToString()), // MetKey = res.met_key, State = 1 }; db.ImportMeteringDevices.Add(md); db.SaveChanges(); } inserted++; updateProgress(inserted); } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message.ToString()); BrushSend = System.Windows.Media.Brushes.Red; inserted++; updateProgress(inserted); } accGuid.Clear(); } BrushSend = System.Windows.Media.Brushes.LimeGreen; }); await importIPU; IsBusy = false; }