示例#1
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
     if (name.StartsWith("A"))
     {
         e.SkipThisRecord = true;
     }
 }
示例#2
0
 private void BeforeWriteEvent(EngineBase engine, BeforeWriteEventArgs <OrdersFixed> e)
 {
     //  We only want clients with large frieght values
     if (e.Record.Freight < 40)
     {
         e.SkipThisRecord = true;
     }
 }
示例#3
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
     //  We only want clients with large frieght values
     if (Freight < 40)
     {
         e.SkipThisRecord = true;
     }
 }
示例#4
0
        public void VerifythatPropertiesAreSet()
        {
            var eventArgs1 = new BeforeWriteEventArgs(this.operationContainer1, null);

            Assert.AreEqual(this.operationContainer1, eventArgs1.OperationContainer);
            Assert.IsNull(eventArgs1.Files);

            var eventArgs2 = new BeforeWriteEventArgs(this.operationContainer2, this.files);

            Assert.AreEqual(this.operationContainer2, eventArgs2.OperationContainer);
            Assert.AreEqual(this.files, eventArgs2.Files);
        }
示例#5
0
        /// <summary>
        /// Before a write is executed perform this check to see
        /// if we want to modify or reject the record.
        /// </summary>
        /// <param name="record">Instance to process</param>
        /// <param name="lineNumber">Number of line within file</param>
        /// <returns>true if record is to be dropped</returns>
        protected bool OnBeforeWriteRecord(T record, int lineNumber)
        {
            var e = new BeforeWriteEventArgs <T>(this, record, lineNumber);

            if (RecordInfo.NotifyWrite)
            {
                ((INotifyWrite)record).BeforeWrite(e);
            }

            if (BeforeWriteRecord != null)
            {
                BeforeWriteRecord(this, e);
            }

            return(e.SkipThisRecord);
        }
示例#6
0
        /// <summary>
        /// Write all the <see cref="Operation"/>s from an <see cref="OperationContainer"/> asynchronously.
        /// </summary>
        /// <param name="operationContainer">
        /// The provided <see cref="OperationContainer"/> to write
        /// </param>
        /// <param name="files">List of file paths for files to be sent to the datastore</param>
        /// <returns>
        /// an await-able <see cref="Task"/>
        /// </returns>
        public async Task Write(OperationContainer operationContainer, IEnumerable <string> files)
        {
            if (this.ActivePerson == null)
            {
                throw new InvalidOperationException("The Write operation cannot be performed when the ActivePerson is null; The Open method must be called prior to performing a Write.");
            }

            var filesList = files?.ToList();

            if (filesList != null && filesList.Any())
            {
                foreach (var file in filesList)
                {
                    if (!System.IO.File.Exists(file))
                    {
                        throw new FileNotFoundException($"File {file} was not found.");
                    }
                }
            }

            var eventArgs = new BeforeWriteEventArgs(operationContainer, filesList);

            this.BeforeWrite?.Invoke(this, eventArgs);

            if (eventArgs.Cancelled)
            {
                throw new OperationCanceledException("The Write operation was canceled.");
            }

            this.Dal.Session = this;
            var dtoThings = await this.Dal.Write(operationContainer, filesList);

            var enumerable = dtoThings as IList <CDP4Common.DTO.Thing> ?? dtoThings.ToList();

            await this.AfterReadOrWriteOrUpdate(enumerable);
        }
 public void BeforeWrite(BeforeWriteEventArgs <SampleType> e)
 {
 }
 public void BeforeWrite(BeforeWriteEventArgs <SampleType> e)
 {
     BeforeWriteNotif = true;
 }
示例#9
0
 private void engine_BeforeWriteRecord(EngineBase sender, BeforeWriteEventArgs <SampleType> e)
 {
     before++;
 }
示例#10
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
     mCityEventCount++;
 }
示例#11
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
     BeforeWriteNotif = true;
 }
示例#12
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
 }
示例#13
0
 public void BeforeWrite(BeforeWriteEventArgs e)
 {
     // prevent output of [FieldOptional] Size field
     Size = null;
 }
示例#14
0
        public override void Write(Entities.DiagnosticEvent de)
        {
            var text = Formatter.Format(de, new TypeDescriptorCollection());

            if (BeforeWrite != null)
            {
                // todo: this may need to support different encoding types)
                var args = new BeforeWriteEventArgs(text.Length);

                BeforeWrite(this, args);
            }

            using (var lockToken = FileLockingStrategy.AcquireLock(LogFile.FullName))
            {
                lockToken.Write(text);
            }
        }
 public void BeforeWrite(BeforeWriteEventArgs <User> e)
 {
 }
 public void BeforeWrite(BeforeWriteEventArgs <Person> e)
 {
 }