Пример #1
0
        public async Task <bool> Commit()
        {
            ServiceEventSource.Current.ServiceMessage(_context, "SCADA Transaction - Commit!");
            ScadaStorageProxy proxy = new ScadaStorageProxy(ConfigurationReader.ReadValue(_context, "Settings", "Storage"));
            await proxy.SetModel(await proxy.GetTransactionModel());

            var model = await proxy.GetModel();

            ushort aiCount = (ushort)(model.Values.Where(x => !String.IsNullOrEmpty(x.Mrid) && x.RegisterType == SCADA.Common.DataModel.RegisterType.ANALOG_INPUT).Count());
            ushort aoCount = (ushort)(model.Values.Where(x => !String.IsNullOrEmpty(x.Mrid) && x.RegisterType == SCADA.Common.DataModel.RegisterType.ANALOG_OUTPUT).Count());
            ushort biCount = (ushort)(model.Values.Where(x => !String.IsNullOrEmpty(x.Mrid) && x.RegisterType == SCADA.Common.DataModel.RegisterType.BINARY_INPUT).Count());
            ushort boCount = (ushort)(model.Values.Where(x => !String.IsNullOrEmpty(x.Mrid) && x.RegisterType == SCADA.Common.DataModel.RegisterType.BINARY_OUTPUT).Count());

            try
            {
                SimulatorProxy sim = new SimulatorProxy();
                sim.UpdateConfig(Tuple.Create <ushort, ushort, ushort, ushort>(biCount, boCount, aiCount, aoCount), result.MridIndexPairs);
            } catch { }
            DomServiceProxy dom = new DomServiceProxy(ConfigurationReader.ReadValue(_context, "Settings", "Dom"));
            await dom.Add((await proxy.GetModel()).Values.ToList().ToDbModel());

            return(true);
        }