public static Device GetDevice(Project project, int index) { DeviceComposition allDevices = project.Devices; Device device = allDevices[index]; return(device); }
private static void IterDevice(IList <HmiTarget> hmi, DeviceComposition devices) { foreach (Device d in devices) { HandleDevice(hmi, d); } }
private static void IterDevice(NodeHandler handler, DeviceComposition devices) { foreach (Device d in devices) { HandleDevice(handler, d); } }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } DeviceComposition = await _context.DeviceCompositions.FirstOrDefaultAsync(m => m.ID == id); if (DeviceComposition == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } DeviceComposition = await _context.DeviceCompositions.FindAsync(id); if (DeviceComposition != null) { _context.DeviceCompositions.Remove(DeviceComposition); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public static void connectToMPI(Project project, int sourceDevice, int targetDevice) { DeviceComposition allDevices = project.Devices; //creating subnet to not connected SubnetComposition subnets = project.Subnets; Subnet newSubnet = subnets.Create("System:Subnet.Mpi", "MPI Subnet" + Guid.NewGuid().ToString()); //subnet typeIdentifiers can be .Profibus, .Mpi, .Asi //source device Device device2 = DeviceMethods.GetDevice(project, targetDevice); Device device1 = DeviceMethods.GetDevice(project, sourceDevice); DeviceItem head1 = DeviceItemMethods.GetPlcHead(device1); DeviceItem interface1 = (from DeviceItem di in head1.DeviceItems where di.Name.Contains("MPI") select di).First(); NetworkInterface interfacePN1 = interface1.GetService <NetworkInterface>(); NodeComposition networkNodes1 = interfacePN1.Nodes; networkNodes1.First().ConnectToSubnet(newSubnet); //connection to the subnet //target device DeviceItem head2 = DeviceItemMethods.GetPlcHead(device2); DeviceItem interface2 = (from DeviceItem di in head2.DeviceItems where di.Name.Contains("MPI") select di).First(); NetworkInterface interfacePN2 = interface2.GetService <NetworkInterface>(); NodeComposition networkNodes2 = interfacePN2.Nodes; networkNodes2.First().ConnectToSubnet(newSubnet); //second device connection Console.WriteLine("Connected to " + newSubnet.GetAttribute("Name")); }
public static void DeleteDevice(Project project, string DeviceName) //It doesn't work, in construction { DeviceComposition devices = project.Devices; Device foundDevice = devices.Find(DeviceName); //find first devices.Contains(foundDevice); //then try with if statement foreach (Device device in devices) //ERROR: System.InvalidOperationException: 'Collection was modified; enumeration operation may not execute.' { if (device.Name == DeviceName) { Console.WriteLine("Found"); device.Delete(); Console.WriteLine("And Deleted..."); } else { Console.WriteLine("Not Found..."); } } }
public InnovationRatesBinder(DeviceComposition deviceComposition, IEnumerable <OkrInnovationProperty> okrInnovationProperties) { this.deviceComposition = deviceComposition ?? throw new ArgumentNullException("deviceComposition"); this.okrInnovationProperties = okrInnovationProperties ?? throw new ArgumentNullException("okrInnovationProperties"); }
public void Initialize() { var dcREFU = new DeviceComposition("РЭФУ"); var dcREU = new DeviceComposition("РЭУ"); var dcSREU = new DeviceComposition("СРЭУ"); dbContext.DeviceCompositions.AddRange(dcREFU, dcREU, dcSREU); var dcRange_1_5 = new DeviceCountRange("1 .. 5"); var dcRange_6_10 = new DeviceCountRange("6 .. 10"); var dcRange_11_20 = new DeviceCountRange("11 .. 20"); dbContext.DeviceCountRanges.AddRange(dcRange_1_5, dcRange_6_10, dcRange_11_20); dbContext.DeviceComplexityRates.AddRange( new DeviceComplexityRate(dcREFU, dcRange_1_5, 1.0), new DeviceComplexityRate(dcREFU, dcRange_6_10, 1.5), new DeviceComplexityRate(dcREFU, dcRange_11_20, 2.0), new DeviceComplexityRate(dcREU, dcRange_1_5, 1.0), new DeviceComplexityRate(dcREU, dcRange_6_10, 1.25), new DeviceComplexityRate(dcREU, dcRange_11_20, 1.5), new DeviceComplexityRate(dcSREU, dcRange_1_5, 1.0), new DeviceComplexityRate(dcSREU, dcRange_6_10, 1.4), new DeviceComplexityRate(dcSREU, dcRange_11_20, 1.8) ); OkrInnovationProperty[] okrInoProps = { new OkrInnovationProperty("Заданные значения основных технических характеристик превышают достигнутые в мировой практике для изделий аналогичного назначения**"), new OkrInnovationProperty("Заданные значения 1-2 основных технических характеристик превышают достигнутые в мировой практике для изделий аналогичного назначения**"), new OkrInnovationProperty("Заданные значения основных технических характеристик соответствуют достигнутым в мировой практике для изделий аналогичного назначения**"), new OkrInnovationProperty("Изделие не имеющее аналогов в практике исполнителя"), new OkrInnovationProperty("Ужесточение требовний к двум и более основным техническим характеристикам*"), new OkrInnovationProperty("Ужесточение требований по подавлению НЭМИ*"), new OkrInnovationProperty("Ужесточение требования к основной технической характеристике* и условиям эксплуатации*"), new OkrInnovationProperty("Ужесточение требования к основной технической характеристике*"), new OkrInnovationProperty("Ужесточение требований по надежности*"), new OkrInnovationProperty("Ужесточение 1-2 неосновных тежнических характеристик*"), new OkrInnovationProperty("Новая конструкция аналога по техническим характеристикам"), new OkrInnovationProperty("Заимствование конструкции, наличие ранее созданного аналога по техническим характеристикам"), new OkrInnovationProperty("25% заимствование ранее созданного аналога"), new OkrInnovationProperty("50% заимствование ранее созданного аналога"), new OkrInnovationProperty("75% заимствование ранее созданного аналога"), new OkrInnovationProperty("Повторное изготовление изделия без изменений в ТД и КД") }; dbContext.OkrInnovationProperties.AddRange(okrInoProps); double[] refuRatesValues = { 3.0, 2.5, 2.0, 1.8, 1.6, 1.4, 1.2, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5 }; double[] reuRatesValues = { 3.0, 2.5, 2.0, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 0.9, 0.9, 0.8, 0.7, 0.6 }; double[] sreuRatesValues = { 4.0, 3.0, 2.5, 2.0, 1.5, 1.4, 1.3, 1.2, 1.1, 1.05, 1.0, 0.95, 0.9, 0.85, 0.8, 0.7 }; var REFU_ratesBinder = new InnovationRatesBinder(dcREFU, okrInoProps.TakeLast(13)); IEnumerable <OkrInnovationRate> refuRates = REFU_ratesBinder.Bind(refuRatesValues); dbContext.OkrInnovationRates.AddRange(refuRates); var REU_ratesBinder = new InnovationRatesBinder(dcREU, okrInoProps.TakeLast(14)); IEnumerable <OkrInnovationRate> reuRates = REU_ratesBinder.Bind(reuRatesValues); dbContext.OkrInnovationRates.AddRange(reuRates); var SREU_ratesBinder = new InnovationRatesBinder(dcSREU, okrInoProps); IEnumerable <OkrInnovationRate> sreuRates = SREU_ratesBinder.Bind(sreuRatesValues); dbContext.OkrInnovationRates.AddRange(sreuRates); StageForOkr[] okrStages = SeedOkrStages(); SeedOkrLabors(okrStages); SeedOkrSoftwareDevLaborGroups(okrStages); }