/* ======================================================================================== */ /// <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); }
/// <summary> /// Производит инициализацию переменных внутри редактируемого отчета перед началом работы с ним. /// </summary> internal virtual void BeginEdition() { if (this.editedReport == null) { this.editedReport = new TagValueReport(); } this.editedReport.Init(); }
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(); }
/// <summary> /// Производит завершение процесса редактирования отчета с установкой значения об успешности оперции. /// После завершения выполнения данного метода редактируемый элемент становится доступный в поле /// Completed готовый к чтению. /// </summary> /// <param name="isSuccessful">Значение успешности операции.</param> internal virtual void FinalizeEdition(bool isSuccessful) { this.editedReport.IsSuccessful = isSuccessful; this.Report = this.editedReport.Copy(); }