Ejemplo n.º 1
0
        public void SendToSales()
        {
            if (Status != EAlbumStatus.InLab)
            {
                StatusChangeException(EAlbumStatus.InSales);
            }

            Status = EAlbumStatus.InLab;

            AddDomainEvent(new AlbumSentToSalesDomainEvent(Id));
        }
Ejemplo n.º 2
0
        public void SendToLab()
        {
            if (Status != EAlbumStatus.Pending)
            {
                StatusChangeException(EAlbumStatus.InLab);
            }

            Status = EAlbumStatus.InLab;

            AddDomainEvent(new AlbumSentToLabDomainEvent(Id));
        }
Ejemplo n.º 3
0
        public void Close()
        {
            if (Status != EAlbumStatus.InSales)
            {
                StatusChangeException(EAlbumStatus.Closed);
            }

            Status = EAlbumStatus.Closed;

            AddDomainEvent(new AlbumClosedDomainEvent(Id));
        }
Ejemplo n.º 4
0
        public void Cancel()
        {
            if (Status != EAlbumStatus.Pending)
            {
                StatusChangeException(EAlbumStatus.Canceled);
            }

            Status = EAlbumStatus.Canceled;

            AddDomainEvent(new AlbumCanceledDomainEvent(Id));
        }
Ejemplo n.º 5
0
        private Album(int albumTypeId, string name, string description, Author author, List <string> tags)
        {
            Id           = Guid.NewGuid().ToString();
            Name         = name;
            Description  = description;
            Author       = author;
            _albumTypeId = albumTypeId;
            _tags        = tags;
            _songs       = new List <Song>();
            Audit        = Audit.Create(DateTimeOffset.Now, author.UserName);
            Status       = EAlbumStatus.Pending;

            AddAlbumCreatedDomainEvent(_albumTypeId, Id, Name, Description, Author, _tags);
        }
Ejemplo n.º 6
0
 private void StatusChangeException(EAlbumStatus albumStatusToChange)
 {
     throw new AlbumDomainException($"Is not possible to change the order status from {Status.Name} to {albumStatusToChange.Name}.");
 }