예제 #1
0
        /* ======================================================================================== */
        /// <summary>
        /// Делает полную копию текущего объекта.
        /// </summary>
        /// <returns></returns>
        public TagValueReport Copy()
        {
            // Создаем новый объект.
            TagValueReport result = new TagValueReport();

            // Производим прямое копирование значений.
            result.IsSuccessful            = this.IsSuccessful;
            result.ServerRequestTimeStamp  = this.ServerRequestTimeStamp;
            result.ServerResponseTimeStamp = this.ServerResponseTimeStamp;
            result.ServerReplyTime         = this.ServerReplyTime;
            result.ActualUpdateRate        = this.ActualUpdateRate;
            result.ValueChanged            = this.ValueChanged;

            // Копируем данные тэга.
            if (this.Data != null)
            {
                // Создаем копию текущих данных путем создания новых объектов.
                result.Data = this.Data.Select(elem => elem.ToArray()).ToList();
            }
            else
            {
                // Возвращаем Null.
                result.Data = null;
            }

            return(result);
        }
예제 #2
0
 /// <summary>
 /// Производит инициализацию переменных внутри редактируемого отчета перед началом работы с ним.
 /// </summary>
 internal virtual void BeginEdition()
 {
     if (this.editedReport == null)
     {
         this.editedReport = new TagValueReport();
     }
     this.editedReport.Init();
 }
예제 #3
0
        private TagDataTypeDefinition type;     // Представляет собой определение типа данных.
        /// <summary>
        /// Создает новый буфер значений тэга.
        /// </summary>
        public TagValueControl(TagDataTypeDefinition type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("Class='TagDataTypeDefinition', Argument='type' can not be Null", "type");
            }

            this.type         = type;
            this.Report       = new TagValueReport();
            this.editedReport = new TagValueReport();
        }
예제 #4
0
 /// <summary>
 /// Производит завершение процесса редактирования отчета с установкой значения об успешности оперции.
 /// После завершения выполнения данного метода редактируемый элемент становится доступный в поле
 /// Completed готовый к чтению.
 /// </summary>
 /// <param name="isSuccessful">Значение успешности операции.</param>
 internal virtual void FinalizeEdition(bool isSuccessful)
 {
     this.editedReport.IsSuccessful = isSuccessful;
     this.Report = this.editedReport.Copy();
 }