public string ApplyUpdates(Delta delta) { string updateResult = "Apply Updates Report:\r\n"; System.Globalization.CultureInfo culture = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); if ((delta != null) && (delta.NumberOfOperations != 0)) { _networkModelServiceProxy = new NetworkModelServiceProxy(ConfigurationManager.AppSettings["NMS"]); updateResult = _networkModelServiceProxy.ApplyDelta(delta).ToString(); _networkModelServiceProxy = null; } Thread.CurrentThread.CurrentCulture = culture; return(updateResult); }
public async Task <bool> ModelUpdate(AffectedEntities model) { ServiceEventSource.Current.ServiceMessage(_context, "CE ModelUpdate!"); var proxy = new NetworkModelServiceProxy(ConfigurationReader.ReadValue(_context, "Settings", "NMS") ?? "net.tcp://localhost:22330/NetworkModelServiceSF"); var storage = new CEStorageProxy(ConfigurationReader.ReadValue(_context, "Settings", "CES") ?? "fabric:/ServiceFabricApp/CEStorageService"); var ceModel = await storage.GetModel(); if (ceModel == null) { ceModel = new Dictionary <DMSType, Container>(); } Console.WriteLine("New update request!"); model.Insert = model.Insert.Where(x => GetDMSType(x) == DMSType.ASYNCHRONOUSMACHINE).ToList(); model.Update = model.Update.Where(x => GetDMSType(x) == DMSType.ASYNCHRONOUSMACHINE).ToList(); model.Delete = model.Delete.Where(x => GetDMSType(x) == DMSType.ASYNCHRONOUSMACHINE).ToList(); if (model.Insert.Count > 0) { var dataInsert = await proxy.GetValues(model.Insert); foreach (var item in dataInsert) { var dmsType = GetDMSType(item.GID); if (!ceModel.ContainsKey(dmsType)) { ceModel.Add(dmsType, new Container()); } ceModel[dmsType].AddEntity(item); } } if (model.Update.Count > 0) { var dataUpdate = await proxy.GetValues(model.Update); foreach (var item in dataUpdate) { var dmsType = GetDMSType(item.GID); if (!ceModel.ContainsKey(dmsType)) { ceModel.Add(dmsType, new Container()); } ceModel[dmsType].RemoveEntity(item.GID); ceModel[dmsType].AddEntity(item); } } if (model.Delete.Count > 0) { var dataDelete = await proxy.GetValues(model.Delete); foreach (var item in dataDelete) { var dmsType = GetDMSType(item.GID); if (!ceModel.ContainsKey(dmsType)) { ceModel.Add(dmsType, new Container()); } ceModel[dmsType].RemoveEntity(item.GID); } } await storage.SetTransactionalModel(ceModel); EnList(); return(true); }
public async Task <bool> ModelUpdate(AffectedEntities model) { ServiceEventSource.Current.ServiceMessage(_context, "NDS - ModelUpdate"); var nms = new NetworkModelServiceProxy(ConfigurationReader.ReadValue(_context, "Settings", "NMS") ?? "net.tcp://localhost:22330/NetworkModelServiceSF"); ScadaStorageProxy storage = new ScadaStorageProxy(ConfigurationReader.ReadValue(_context, "Settings", "Storage")); var cimModel = await storage.GetCimModel(); if (cimModel == null) { cimModel = new Dictionary <DMSType, Container>(); } model.Insert = model.Insert.Where(x => this.GetDMSType(x) == DMSType.ANALOG || this.GetDMSType(x) == DMSType.DISCRETE || this.GetDMSType(x) == DMSType.BREAKER || this.GetDMSType(x) == DMSType.DISCONNECTOR).ToList(); model.Update = model.Update.Where(x => this.GetDMSType(x) == DMSType.ANALOG || this.GetDMSType(x) == DMSType.DISCRETE || this.GetDMSType(x) == DMSType.BREAKER || this.GetDMSType(x) == DMSType.DISCONNECTOR).ToList(); model.Delete = model.Delete.Where(x => this.GetDMSType(x) == DMSType.ANALOG || this.GetDMSType(x) == DMSType.DISCRETE || this.GetDMSType(x) == DMSType.BREAKER || this.GetDMSType(x) == DMSType.DISCONNECTOR).ToList(); if (model.Insert.Count > 0) { var dataInsert = await nms.GetValues(model.Insert); foreach (var item in dataInsert) { var dmsType = GetDMSType(item.GID); if (!cimModel.ContainsKey(dmsType)) { cimModel.Add(dmsType, new Container()); } cimModel[dmsType].AddEntity(item); } } if (model.Update.Count > 0) { var dataUpdate = await nms.GetValues(model.Update); foreach (var item in dataUpdate) { var dmsType = GetDMSType(item.GID); if (!cimModel.ContainsKey(dmsType)) { cimModel.Add(dmsType, new Container()); } cimModel[dmsType].RemoveEntity(item.GID); cimModel[dmsType].AddEntity(item); } } if (model.Delete.Count > 0) { var dataDelete = await nms.GetValues(model.Delete); foreach (var item in dataDelete) { var dmsType = GetDMSType(item.GID); if (!cimModel.ContainsKey(dmsType)) { cimModel.Add(dmsType, new Container()); } cimModel[dmsType].RemoveEntity(item.GID); } } await storage.SetCimModel(cimModel); EnList(); return(true); }