예제 #1
0
        private async Task Insert(string barcode, PackageEventType eventType, object data)
        {
            var evt = new EventStore
            {
                Barcode = barcode,
                Event   = eventType,
                Data    = new ObjectToBsonDocument(data).Convert()
            };

            await this.collection.InsertOneAsync(evt);
        }
        public IPackageEvent New(PackageEventType type, int id, long oldVersion, long?newVersion = null, decimal price = 0)
        {
            var model = new PackageEvent
            {
                Type       = type,
                PackageId  = id,
                OldVersion = oldVersion,
                NewVersion = newVersion,
                NewPrice   = price
            };

            context.PackageEvents.Add(model);
            return(model);
        }
예제 #3
0
 public Package(Guid id, string name, string description, State state, int version, decimal displayVersion, string owner, DateTime createdDateDate, DateTime? editedDateDate, PackageEventType? packageEventType, IEnumerable<Industry> industries)
     : base(Guid.NewGuid())
 {
     PackageId = id;
     Name = name;
     Description = description;
     State = state;
     Version = version;
     DisplayVersion = displayVersion;
     Owner = owner;
     CreatedDate = createdDateDate;
     EditedDate = editedDateDate;
     PackageEventType = packageEventType;
     Industries = industries;
 }
 public CreatePackage(Guid id, string name, string description, decimal costPrice, decimal salePrice, string notes, PackageEventType? packageEventType, IEnumerable<Industry> industries, State state, string owner, DateTime createdDate, DateTime? editedDate, IEnumerable<IDataProviderOverride> dataProviderValueOverrides)
     : base(id)
 {
     Name = name;
     Description = description;
     CostPrice = costPrice;
     SalePrice = salePrice;
     Notes = notes;
     PackageEventType = packageEventType;
     Industries = industries;
     State = state;
     Owner = owner;
     CreatedDate = createdDate;
     EditedDate = editedDate;
     DataProviderValueOverrides = dataProviderValueOverrides;
 }
 public PackageCreated(Guid id, string name, string description, decimal costPrice, decimal salePrice,PackageEventType? packageEventType, IEnumerable<Industry> industries, State state, decimal displayVersion, string owner, DateTime createdDate, DateTime? editedDate, IEnumerable<IDataProviderOverride> dataProviderValueOverrides)
 {
     Id = id;
     Name = name;
     Description = description;
     PackageEventType = packageEventType;
     Industries = industries;
     CostPrice = costPrice;
     SalePrice = salePrice;
     State = state;
     DisplayVersion = displayVersion;
     Owner = owner;
     CreatedDate = createdDate;
     EditedDate = editedDate;
     DataProviderValueOverrides = dataProviderValueOverrides;
 }
예제 #6
0
        /// <summary>
        /// Creates the log record.
        /// </summary>
        /// <param name="packageEventType">Type of the event.</param>
        /// <param name="comments">The comments.</param>
        public void CreateLogRecord(PackageEventType packageEventType, string comments)
        {
            if (IsInvalidated)
            {
                return;
            }
            var obs = ObjectSpace.FindObjectSpaceByObject(this);

            if (obs != null)
            {
                var nodeRecord = obs.CreateObject <PackageLogRecord>();
                nodeRecord.FileName         = FileName;
                nodeRecord.PackageEventType = packageEventType;
                nodeRecord.Comments         = comments;

                if (XafDeltaModule.Instance.UseTickets && TicketEventTypes.Contains(packageEventType))
                {
                    Ticket.CreateForLogRecord(obs, nodeRecord, this);
                }
            }
        }
예제 #7
0
파일: Ticket.cs 프로젝트: xafdelta/xafdelta
        /// <summary>
        /// Exports the ticket.
        /// </summary>
        /// <returns>Exported binary data</returns>
        public byte[] ExportTicket()
        {
            byte[] result = null;
            if (Package != null)
            {
                using (var ms = new MemoryStream())
                    using (var xml = XmlWriter.Create(ms))
                    {
                        xml.WriteStartDocument();
                        try
                        {
                            xml.WriteStartElement("Ticket");

                            xml.WriteElementString("TicketDateTime", TicketDateTime.ToUniversalTime().ToString("R"));
                            xml.WriteElementString("TicketNodeId", TicketNodeId);
                            xml.WriteElementString("EventType", PackageEventType.ToString());
                            xml.WriteElementString("PackageFileName", Package.FileName);
                            xml.WriteElementString("Comments", Comments);
                            xml.WriteElementString("UserName", UserName);

                            xml.WriteEndElement();

                            // if export is send then assume export moment is ProcessingDateTime
                            if (XafDeltaModule.Instance.ExportIsSend && ProcessingDateTime == DateTime.MinValue)
                            {
                                ProcessingDateTime = DateTime.UtcNow;
                            }
                        }
                        finally
                        {
                            xml.WriteEndDocument();
                            xml.Close();
                            ms.Close();
                            result = ms.ToArray();
                            result = XafDeltaModule.Instance.PackService.PackBytes(result, "");
                        }
                    }
            }
            return(result);
        }
예제 #8
0
 /// <summary>
 /// Gets the event date time.
 /// </summary>
 /// <param name="packageEventType">Type of the event.</param>
 /// <returns>Event date and time</returns>
 public DateTime GetEventDateTime(PackageEventType packageEventType)
 {
     return(GetEventDateTime(new[] { packageEventType }));
 }
 public UpdatePackage(Guid id, string name, string description, decimal costPrice, decimal salePrice, string notes, PackageEventType? packageEventType, IEnumerable<Industry> industries, State state, int version, string owner, DateTime createdDate, DateTime editedDate, IEnumerable<IDataProviderOverride> dataProviderValueOverrides)
     : base(id, name, description, costPrice, salePrice, notes, packageEventType, industries, state, owner, createdDate, editedDate, dataProviderValueOverrides)
 {
     Version = version;
 }
예제 #10
0
 /// <summary>
 /// Creates the log record.
 /// </summary>
 /// <param name="packageEventType">Type of the event.</param>
 public void CreateLogRecord(PackageEventType packageEventType)
 {
     CreateLogRecord(packageEventType, "");
 }
예제 #11
0
 public Package(Guid id, string name, string description, PackageEventType? packageEventType, IEnumerable<Industry> industries, decimal costPrice, decimal salePrice, State state, decimal displayVersion, string owner, DateTime createdDate, DateTime? editedDate, IEnumerable<IDataProviderOverride> dataProviders)
     : this(id)
 {
     RaiseEvent(new PackageCreated(id, name, description, costPrice, salePrice, packageEventType, industries, state, displayVersion, owner, createdDate, editedDate, dataProviders));
 }
예제 #12
0
        public void CreatePackageRevision(Guid id, string name, string description, decimal costPrice, decimal salePrice, string notes, PackageEventType? packageEventType, IEnumerable<Industry> industries, State state, string owner, DateTime createdDate, DateTime? editedDate, IEnumerable<IDataProviderOverride> dataProviders)
        {
            if (state.Name == StateName.Published)
                DisplayVersion = Math.Ceiling(DisplayVersion);
            else
            {
                DisplayVersion += 0.1m;
                Name = name;
            }

            RaiseEvent(new PackageUpdated(id, name, description, costPrice, salePrice, notes, packageEventType, industries, state, Version + 1, DisplayVersion, owner, createdDate, editedDate, dataProviders));
        }
예제 #13
0
 /// <summary>
 /// Creates the log record.
 /// </summary>
 /// <param name="packageEventType">Type of the event.</param>
 public void CreateLogRecord(PackageEventType packageEventType)
 {
     CreateLogRecord(packageEventType, "");
 }
예제 #14
0
        /// <summary>
        /// Creates the log record.
        /// </summary>
        /// <param name="packageEventType">Type of the event.</param>
        /// <param name="comments">The comments.</param>
        public void CreateLogRecord(PackageEventType packageEventType, string comments)
        {
            if(IsInvalidated) return;
            var obs = ObjectSpace.FindObjectSpaceByObject(this);
            if (obs != null)
            {
                var nodeRecord = obs.CreateObject<PackageLogRecord>();
                nodeRecord.FileName = FileName;
                nodeRecord.PackageEventType = packageEventType;
                nodeRecord.Comments = comments;

                if (XafDeltaModule.Instance.UseTickets && TicketEventTypes.Contains(packageEventType))
                {
                    Ticket.CreateForLogRecord(obs, nodeRecord, this);
                }
            }
        }
예제 #15
0
 /// <summary>
 /// Gets the event date time.
 /// </summary>
 /// <param name="packageEventType">Type of the event.</param>
 /// <returns>Event date and time</returns>
 public DateTime GetEventDateTime(PackageEventType packageEventType)
 {
     return GetEventDateTime(new[] {packageEventType});
 }
예제 #16
0
 public async Task DriverScan(DriverScanEvent driverScanEvent, PackageEventType packageEventType)
 {
     await this.Insert(driverScanEvent.Barcode, packageEventType, driverScanEvent);
 }
예제 #17
0
 public async Task NetworkScan(NetworkScanEvent networkScanEvent, PackageEventType packageEventType)
 {
     await this.Insert(networkScanEvent.Barcode, packageEventType, networkScanEvent);
 }
 public ReadPackageBuilder With(PackageEventType packageEventType)
 {
     _packageEventType = packageEventType;
     return this;
 }
예제 #19
0
 /// <summary>
 /// Gets the event date time.
 /// </summary>
 /// <param name="packageEventTypes">The event types.</param>
 /// <returns>Event date and time</returns>
 public DateTime GetEventDateTime(PackageEventType[] packageEventTypes)
 {
     var result = DateTime.MinValue;
     var logRecord = (from c in LogRecords where packageEventTypes.Contains(c.PackageEventType) select c).FirstOrDefault();
     if (logRecord != null)
         result = logRecord.EventDateTime;
     return result;
 }