public void Handle(MouseAction domainEvent)
        {
            var session  = domainEvent.Session.ToString();
            var brushURI = domainEvent.BrushID.ToString();

            var brush = brushRepository.Find(brushURI);

            if (brush == null)
            {
                throw new ArgumentException("Brush #" + brushURI + " does not exist!");
            }

            if (session != brush.Artist.Session.ToString())
            {
                throw new ArgumentException("Unauthorized; session \"" + session + "\" does not exist!");
            }

            var segment = new Segment();

            segment.Brush      = brush;
            segment.Index      = domainEvent.Index;
            segment.State      = domainEvent.State;
            segment.Position   = domainEvent.Position;
            segment.OccurredAt = domainEvent.QueuedAt;
            segmentRepository.Insert(segment);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Insert aggregate root.
        /// Return new identifier.
        /// Aggregate is modified in place.
        /// </summary>
        /// <typeparam name="TRoot">aggregate type</typeparam>
        /// <param name="repository">persistable repository</param>
        /// <param name="data">new aggregate</param>
        /// <returns>assigned identifier</returns>
        public static string Insert <TRoot>(this IPersistableRepository <TRoot> repository, TRoot data)
            where TRoot : IAggregateRoot
        {
            Contract.Requires(repository != null);
            Contract.Requires(data != null);

            return(repository.Insert(new[] { data })[0]);
        }
Exemplo n.º 3
0
        public Guid Execute(String name)
        {
            var artist = new Artist();

            artist.Name = name;
            artistRepository.Insert(artist);
            return(artist.Session);            // random Guid
        }
Exemplo n.º 4
0
 public static Task <string> Insert <T>(this IPersistableRepository <T> repository, T data)
     where T : class, IAggregateRoot
 {
     if (repository == null)
     {
         throw new ArgumentNullException("repository can't be null");
     }
     return(repository.Insert(new[] { data }).ContinueWith(t => t.Result.First()));
 }
Exemplo n.º 5
0
        private void CreateNew(object sender, ExecutedRoutedEventArgs ea)
        {
            var item = new TRoot();

            SetCurrent(item);
            CollectionView.MoveCurrentTo(item);
            StateChanged(InEdit = true);
            SaveAction          = () => Repository.Insert(GetCurrent());
        }
Exemplo n.º 6
0
        public void Handle(Registracija domainEvent)
        {
            var salt  = Guid.NewGuid().ToString().Replace("-", "").Substring(10, 15);
            var sifra = domainEvent.sifra + salt;

            var sha1     = new SHA1CryptoServiceProvider();
            var korisnik = new Korisnik
            {
                username  = domainEvent.username,
                hashSifra = sha1.ComputeHash(Encoding.UTF8.GetBytes(sifra)),
                salt      = salt
            };

            Korisnici.Insert(korisnik);
        }
        public void Handle(ChangeBrush domainEvent)
        {
            var session      = domainEvent.Session;
            var artistSearch = new Artist.GetArtistBySession(domainEvent.Session);
            var artists      = artistRepository.Search(artistSearch, 1, 0);

            if (artists.Length != 1)
            {
                throw new ArgumentException("Unauthorized; session \"" + session + "\" does not exist!");
            }

            var brush = new Brush();

            brush.Artist = artists[0];
            brush.Color  = domainEvent.Color;
            brushRepository.Insert(brush);

            // return new brush identifier via the event instance
            domainEvent.BrushID = brush.ID;
        }
Exemplo n.º 8
0
        public void Handle(KadaDodana domainEvent)
        {
            var slike = new SlikeKade
            {
                ID        = domainEvent.kadaID,
                original  = domainEvent.original,
                web       = domainEvent.web,
                email     = domainEvent.email,
                thumbnail = domainEvent.thumbnail,
                digest    = domainEvent.digest
            };

            SlikeKade.Insert(slike);

            var kada = new Kada
            {
                slikeKade = slike
            };

            Kade.Insert(kada);
        }