コード例 #1
0
        /// <summary>
        /// Получение ссылки по содержимому.
        /// </summary>
        /// <param name="linkContent">содержимое</param>
        /// <returns>список SC-адресов</returns>
        public List <ScAddress> GetLinksByContent(LinkContent linkContent)
        {
            var result = new List <ScAddress>();

            if (knowledgeBase.IsAvaible)
            {
                var command  = new FindLinksCommand(linkContent);
                var response = (FindLinksResponse)knowledgeBase.ExecuteCommand(command);
                result = response.Addresses;
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// Генерирация уникального системного идентификатора для узла на основе адреса узла и префикса.
        /// </summary>
        /// <param name="nodeAddress">SC-адрес узла</param>
        /// <param name="preffix">префикс для узла</param>
        /// <returns>уникальный идентификатор для узла</returns>
        public Identifier GenerateUniqueSysIdentifier(ScAddress nodeAddress, string preffix)
        {
            Identifier identifier         = Identifier.Invalid;
            Identifier probablyIdentifier = string.Format("{0}_{1}_{2}", preffix, UnixDateTime.FromDateTime(DateTime.Now).GetHashCode(), nodeAddress.GetHashCode());

            var content  = new LinkContent(probablyIdentifier.Value);
            var command  = new FindLinksCommand(content);
            var response = (FindLinksResponse)knowledgeBase.ExecuteCommand(command);

            if (response.Addresses.Count == 0)
            {
                identifier = probablyIdentifier;
            }
            return(identifier);
        }