Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using System.Collections.Generic;
11 : using System.Runtime.Serialization;
12 : using Cqrs.Domain;
13 : using Cqrs.Messages;
14 :
15 : namespace Cqrs.Events
16 : {
17 : /// <summary>
18 : /// An <see cref="IEvent{TAuthenticationToken}"/> that informs the system that an operation resulted in a duplicate.
19 : /// </summary>
20 : [Serializable]
21 : [DataContract]
22 : public class DuplicateCreateCommandEvent<TAuthenticationToken> : IEvent<TAuthenticationToken>
23 1 : {
24 : #region Implementation of IMessage
25 :
26 : /// <summary>
27 : /// The identifier of the command itself.
28 : /// In some cases this may be the <see cref="IAggregateRoot{TAuthenticationToken}"/> or <see cref="ISaga{TAuthenticationToken}"/> this command targets.
29 : /// </summary>
30 : [DataMember]
31 : public Guid Id { get; set; }
32 :
33 : /// <summary>
34 : /// The new version number the targeted <see cref="IAggregateRoot{TAuthenticationToken}"/> or <see cref="ISaga{TAuthenticationToken}"/> that raised this.
35 : /// </summary>
36 : [DataMember]
37 : public int Version { get; set; }
38 :
39 : /// <summary>
40 : /// The date and time the event was raised or published.
41 : /// </summary>
42 : [DataMember]
43 : public DateTimeOffset TimeStamp { get; set; }
44 :
45 :
46 : #endregion
47 :
48 : #region Implementation of IMessageWithAuthenticationToken<TAuthenticationToken>
49 :
50 : /// <summary>
51 : /// The <typeparamref name="TAuthenticationToken"/> of the entity that triggered the event to be raised.
52 : /// </summary>
53 : [DataMember]
54 : public TAuthenticationToken AuthenticationToken { get; set; }
55 :
56 : #endregion
57 :
58 : #region Implementation of IMessage
59 :
60 : /// <summary>
61 : /// An identifier used to group together several <see cref="IMessage"/>. Any <see cref="IMessage"/> with the same <see cref="CorrelationId"/> were triggered by the same initiating request.
62 : /// </summary>
63 : [DataMember]
64 : public Guid CorrelationId { get; set; }
65 :
66 : /// <summary>
67 : /// The originating framework this message was sent from.
68 : /// </summary>
69 : [DataMember]
70 : public string OriginatingFramework { get; set; }
71 :
72 : /// <summary>
73 : /// The frameworks this <see cref="IMessage"/> has been delivered to/sent via already.
74 : /// </summary>
75 : [DataMember]
76 : public IEnumerable<string> Frameworks { get; set; }
77 :
78 : #endregion
79 :
80 : /// <summary>
81 : /// The <see cref="Type"/> of <see cref="IAggregateRoot{TAuthenticationToken}"/> that already exists, but had another <see cref="DtoAggregateEventType.Created"/> event raised.
82 : /// </summary>
83 : [DataMember]
84 : public Type AggregateType { get; set; }
85 :
86 : /// <summary>
87 : /// The identifier of the <see cref="IAggregateRoot{TAuthenticationToken}"/> that already exists, but had another <see cref="DtoAggregateEventType.Created"/> event raised.
88 : /// </summary>
89 : [DataMember]
90 : public Guid AggregateRsn { get; set; }
91 : }
92 : }
|