Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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, .... И.Т.Д
- 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;
- }
- public async void ImportMeteringDataAdd()
- {
- IsBusy = true;
- try
- {
- bool resultImport = await ImportIPU();
- if (resultImport)
- {
- BrushSend = System.Windows.Media.Brushes.LimeGreen;
- IsBusy = false;
- }
- }
- catch (Exception e)
- {
- System.Windows.Forms.MessageBox.Show(e.Message.ToString());
- BrushSend = System.Windows.Media.Brushes.Red;
- inserted++;
- updateProgress(inserted);
- }
- }
- private async Task<bool> ImportIPU()
- {
- AuthClass auth = new Data.AuthClass();
- var service = await GetService(auth);
- soapEntities db = new soapEntities();
- var ress = db.eias_MeteringDevice
- .Include("eias_MeteringDevice_Account")
- .Select(c => c)
- .ToList();
- count = ress.Count;
- inserted = 0;
- List<string> accGuid;
- foreach (var res in ress)
- {
- accGuid = await GetListAccountGUID(res);
- var request = await GetMeteringDeviceDataRequest(auth, res, accGuid);
- var result = service.importMeteringDeviceData(request);
- SaveGuidService(result, db);
- SaveImportMeteringDevice(result, db, accGuid.Count);
- inserted++;
- updateProgress(inserted);
- }
- return true;
- }
- //Вместо object нужно подставить тип res
- private Task<List<string>> GetListAccountGUID(object res)
- {
- var result = new List<string>();
- foreach (var item in res.eias_MeteringDevice_Account())
- {
- result.Add(item.AccountGUID.ToString());
- }
- return Task.FromResult(result);
- }
- //Вместо object нужно подставить тип service
- private Task<object> GetService(AuthClass auth)
- {
- var service = new HouseManagementPortsTypeAsyncClient();
- service.ClientCredentials.UserName.UserName = auth.LoginEais;
- service.ClientCredentials.UserName.Password = auth.PasswordEais;
- return Task.FromResult(service);
- }
- //Вместо object нужно подставить тип res
- private Task<importMeteringDeviceDataRequest1> GetMeteringDeviceDataRequest(AuthClass auth, object res, List<string> accGuid)
- {
- var result = new importMeteringDeviceDataRequest1
- {
- RequestHeader = GetRequestHeader(auth),
- importMeteringDeviceDataRequest = GetCoreRequest(res, accGuid)
- };
- return Task.FromResult(result);
- }
- private RequestHeader GetRequestHeader(AuthClass auth)
- {
- var result = new RequestHeader
- {
- Date = DateTime.Now,
- MessageGUID = Guid.NewGuid().ToString(),
- ItemElementName = ItemChoiceType.orgPPAGUID,
- Item = auth.GuidORG,
- IsOperatorSignature = true,
- IsOperatorSignatureSpecified = true
- };
- return result;
- }
- //Вместо object нужно подставить тип res
- private importMeteringDeviceDataRequest GetCoreRequest(object res, List<string> accGuid)
- {
- var result = new importMeteringDeviceDataRequest
- {
- FIASHouseGuid = res.FIASHouseGUID.ToString(),
- MeteringDevice = GetArrayMeteringDevice(res, accGuid)
- };
- return result;
- }
- private importMeteringDeviceDataRequestMeteringDevice[] GetArrayMeteringDevice(object res, List<string> accGuid)
- {
- var result = new importMeteringDeviceDataRequestMeteringDevice[]
- {
- //Принцип надеюсь вам понятен
- //Далее я думаю, вы справитесь самостоятельно:)
- };
- return result;
- }
- //Вместо object нужно подставить тип result
- private void SaveGuidService(object result, soapEntities db)
- {
- 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();
- }
- //Вместо object нужно подставить тип
- private void SaveImportMeteringDevice(object result, soapEntities db, int count)
- {
- for (int i = 0; i < 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();
- }
- }
- }
Add Comment
Please, Sign In to add comment