public void CreateCost(ScAddress node) { //ищем адресс узла стоимость var costAddress = this.FindElementAddress(nrel_cost); // ищем адрес узла цена var priceAddress = this.FindElementAddress(nrel_price); //ищем значение узла по предикату double price = this.FindValueByPredicate(node, priceAddress); //ищем адрес узла количество var quantityAddress = this.FindElementAddress(nrel_quantity); //ищем значение узла по предикату double quantity = this.FindValueByPredicate(node, quantityAddress); //если все найдено, делаем стоимость if (price != double.NaN && quantity != double.NaN) { //создаем ссылку, и задаем ей значение в виде произведения var cmdCreateLink = new CreateLinkCommand(); var rspCreateLink = (CreateLinkResponse)client.Send(cmdCreateLink); var cmdSetValue = new SetLinkContentCommand(rspCreateLink.CreatedLinkAddress, new LinkContent(price * quantity)); var rspSetValue = (SetLinkContentResponse)client.Send(cmdSetValue); // соединяем все дугами var commonArcAdr = this.CreateArcCommand(ElementType.ConstantCommonArc, node, rspCreateLink.CreatedLinkAddress); this.CreateArcCommand(ElementType.PositiveConstantPermanentAccessArc, costAddress, commonArcAdr); } }
public void CreateCost(ScAddress node) { //ищем адресс узла стоимость var costAddress = this.FindElementAddress(nrel_cost); // ищем адрес узла цена var priceAddress = this.FindElementAddress(nrel_price); //ищем значение узла по предикату double price = this.FindValueByPredicate(node, priceAddress); //ищем адрес узла количество var quantityAddress = this.FindElementAddress(nrel_quantity); //ищем значение узла по предикату double quantity = this.FindValueByPredicate(node, quantityAddress); //если все найдено, делаем стоимость if (price != double.NaN && quantity != double.NaN) { //создаем ссылку, и задаем ей значение в виде произведения var cmdCreateLink = new CreateLinkCommand(); var rspCreateLink = (CreateLinkResponse)client.Send(cmdCreateLink); var cmdSetValue = new SetLinkContentCommand(rspCreateLink.CreatedLinkAddress, new LinkContent(price * quantity)); var rspSetValue = (SetLinkContentResponse)client.Send(cmdSetValue); // соединяем все дугами var commonArcAdr = this.CreateArcCommand(ElementType.ConstantCommonArc, node, rspCreateLink.CreatedLinkAddress); this.CreateArcCommand(ElementType.PositiveConstantPermanentAccessArc, costAddress, commonArcAdr); } }
/// <summary> /// Задание содержимого для ссылки. /// </summary> /// <param name="linkAddress">SC-адрес ссылки</param> /// <param name="content">содержимое для ссылки</param> /// <returns><b>true</b>, если контент задан</returns> public bool SetLinkContent(ScAddress linkAddress, LinkContent content) { bool isSet = false; if (knowledgeBase.IsAvaible) { var command = new SetLinkContentCommand(linkAddress, content); var response = (SetLinkContentResponse)knowledgeBase.ExecuteCommand(command); isSet = response.ContentIsSet; } return(isSet); }