public Boolean isRAMPropertiesFilled(RAM ram) { //Checks if the properties of the components ram has been filled in by the end-user. Boolean isFilled = false; if (ram.Geheugen.Length > 0) { isFilled = true; } return(isFilled); }
public void queryReadProcessor(Motherboard motherboardNode, Processor processorNode, RAM RAMNode, List <Processor> listProcessor) { // This query is to return the CPU node. initClientConnection(); var result = this.client.Cypher .Match(" (m:Moederbord)-[a]-(p:Processor),(g:Geheugen)") .Where((Motherboard m) => m.Geheugenslots == motherboardNode.Geheugenslots) .AndWhere((Processor p) => p.Model == processorNode.Model && p.Cores == processorNode.Cores) .AndWhere((RAM g) => g.Geheugen == RAMNode.Geheugen) .AndWhere("p.Kloksnelheid >= " + processorNode.MinimumKloksnelheid + " AND p.Kloksnelheid <= " + processorNode.MaximumKloksnelheid) .AndWhere("g.Geheugentype = m.Geheugentype") .ReturnDistinct((p) => new { listP = p.As <Processor>(), }) .Results; foreach (var a in result) { listProcessor.Add(a.listP); } //if the first query did not yield any result. if (listProcessor.Count == 0) { result = this.client.Cypher .Match(" (m:Moederbord)-[a]-(p:Processor),(g:Geheugen)") .Where((Motherboard m) => m.Geheugenslots == motherboardNode.Geheugenslots) .AndWhere((Processor p) => p.Model == processorNode.Model && p.Cores == processorNode.Cores) .AndWhere((RAM g) => g.Geheugen == RAMNode.Geheugen) .AndWhere("p.Kloksnelheid >= " + processorNode.MinimumKloksnelheid + " AND p.Kloksnelheid <= " + processorNode.MaximumKloksnelheid) .ReturnDistinct((p) => new { listP = p.As <Processor>(), }) .Results; foreach (var a in result) { listProcessor.Add(a.listP); } } }
public void runAllQuery(SearchPropertiesModel searchPropertiesModel, List <Motherboard> listMotherboard, List <Processor> listProcessor, List <RAM> listRAM, List <OpticalDrive> listOpticalDrive, List <HardDrive> listHardDrive, List <GraphicCard> listGraphicCard, List <ProcessorCooler> listProcessorCooler, List <PowerSupply> listPowerSupply, List <ComputerCase> listComputerCase) { //Create objects With the properties needed to run the queries. Motherboard motherboardNode = new Motherboard(); motherboardNode.Geheugenslots = searchPropertiesModel.memorySlots; Processor processorNode = new Processor(); processorNode.Cores = searchPropertiesModel.processorcores; processorNode.Model = searchPropertiesModel.processorType; processorNode.MinimumKloksnelheid = processorNode.setMinimumRange(searchPropertiesModel.processorClockSpeed); processorNode.MaximumKloksnelheid = processorNode.setMaximumRange(searchPropertiesModel.processorClockSpeed); RAM ramNode = new RAM(); ramNode.Geheugenslots = searchPropertiesModel.memorySlots; ramNode.Geheugen = searchPropertiesModel.memorySpeed; HardDrive hardDriveNode = new HardDrive(); hardDriveNode.Soort = searchPropertiesModel.hardDrivetype; hardDriveNode.MinimumOpslag = hardDriveNode.setMinimumRange(searchPropertiesModel.hardDriveCapacity); hardDriveNode.MaximumOpslag = hardDriveNode.setMaximumRange(searchPropertiesModel.hardDriveCapacity); GraphicCard graphicCardNode = new GraphicCard(); graphicCardNode.Videogeheugen = searchPropertiesModel.graphicCardSpeed; graphicCardNode.Typegeheugen = searchPropertiesModel.graphicCardType; OpticalDrive opticalDriveNode = new OpticalDrive(); opticalDriveNode.Categorie = searchPropertiesModel.opticalDriveCategory; //Check if the cpu if ((isMotherboardPropertiesFilled(motherboardNode)) && (isRAMPropertiesFilled(ramNode)) && (isCPUPropertiesFilled(processorNode))) { queryReadMotherboard(motherboardNode, processorNode, ramNode, listMotherboard); queryReadProcessor(motherboardNode, processorNode, ramNode, listProcessor); queryReadRAM(motherboardNode, processorNode, ramNode, listRAM); } else if (isCPUPropertiesFilled(processorNode)) { if (isMotherboardPropertiesFilled(motherboardNode)) { //Run Query with CPU and Motherboard defined queryReadProcessorMotherboardDefined(processorNode, motherboardNode, listProcessor, listMotherboard, listRAM); } else if (isRAMPropertiesFilled(ramNode)) { //Run Query with CPU and RAM defined queryReadProcessorRAMDefined(processorNode, ramNode, listProcessor, listMotherboard, listRAM); } else { //Run Query with CPU only defined. queryReadProcessorOnlyDefined(processorNode, listProcessor, listMotherboard, listRAM); } } else { //Abort operation. } //Run all the queries necesary to retrieve the nodes /* * queryReadMotherboard(motherboardNode, processorNode, ramNode, listMotherboard); * queryReadProcessor(motherboardNode, processorNode, ramNode, listProcessor); * queryReadRAM(motherboardNode, processorNode, ramNode, listRAM); */ queryReadComputerCase(motherboardNode, processorNode, listComputerCase); queryReadHardDrive(hardDriveNode, listHardDrive); queryReadGraphicCard(graphicCardNode, listGraphicCard); queryReadOpticalDrive(opticalDriveNode, listOpticalDrive); queryReadCooler(processorNode, listProcessorCooler); queryReadPowerSupply(listPowerSupply); }
public void queryReadProcessorRAMDefined(Processor processorNode, RAM RAMNode, List <Processor> listProcessor, List <Motherboard> listMotherboard, List <RAM> listRAM) { //this query is run only when the processor and motherboard are defined and we are missing the //ram component(not defined). initClientConnection(); var resultMotherboard = this.client.Cypher .Match(" (p:Processor)-[a]-(m:Moederbord),(g:Geheugen)") .Where((Processor p) => p.Model == processorNode.Model && p.Cores == processorNode.Cores) .AndWhere("p.Kloksnelheid >= " + processorNode.MinimumKloksnelheid + " AND p.Kloksnelheid <= " + processorNode.MaximumKloksnelheid) .AndWhere((RAM g) => g.Geheugen == RAMNode.Geheugen) .AndWhere("g.Geheugen = m.Geheugenslots") .ReturnDistinct((m) => new { listM = m.As <Motherboard>(), }) .Results; foreach (var a in resultMotherboard) { listMotherboard.Add(a.listM); } var resultProcessor = this.client.Cypher .Match(" (p:Processor)-[a]-(m:Moederbord),(g:Geheugen)") .Where((Processor p) => p.Model == processorNode.Model && p.Cores == processorNode.Cores) .AndWhere("p.Kloksnelheid >= " + processorNode.MinimumKloksnelheid + " AND p.Kloksnelheid <= " + processorNode.MaximumKloksnelheid) .AndWhere((RAM g) => g.Geheugen == RAMNode.Geheugen) .AndWhere("g.Geheugen = m.Geheugenslots") .ReturnDistinct((p) => new { listP = p.As <Processor>(), }) .Results; foreach (var a in resultProcessor) { listProcessor.Add(a.listP); } var resultRAM = this.client.Cypher .Match(" (p:Processor)-[a]-(m:Moederbord),(g:Geheugen)") .Where((Processor p) => p.Model == processorNode.Model && p.Cores == processorNode.Cores) .AndWhere("p.Kloksnelheid >= " + processorNode.MinimumKloksnelheid + " AND p.Kloksnelheid <= " + processorNode.MaximumKloksnelheid) .AndWhere((RAM g) => g.Geheugen == RAMNode.Geheugen) .AndWhere("g.Geheugen = m.Geheugenslots") .ReturnDistinct((g) => new { listR = g.As <RAM>(), }) .Results; foreach (var a in resultRAM) { listRAM.Add(a.listR); } }