public async Task UpsertAsync(MusicRecordingDTO work)
        {
            var originalWork = await FindAsync(work.Address).ConfigureAwait(false);

            if (originalWork != null)
            {
                //Because we don't have ids that relates to OtherArtists we are just dumping the original ones and adding new ones
                foreach (var otherArtist in originalWork.OtherArtists)
                {
                    otherArtist.ObjectState = ObjectState.Deleted;
                    //work.OtherArtists.Add(otherArtist);
                }
                //Then we do a map to reflect the changes
                //We may consider a DTO then map and update the graph
                Mapper.Map(work, originalWork);
                originalWork.ObjectState = ObjectState.Modified;
                _unitOfWork.RepositoryAsync <MusicRecording>().InsertOrUpdateGraph(originalWork);
            }
            else
            {
                var newWork = new MusicRecording();
                Mapper.Map(work, newWork);
                _unitOfWork.RepositoryAsync <MusicRecording>().InsertOrUpdateGraph(newWork);
            }
            await _unitOfWork.SaveChangesAsync().ConfigureAwait(false);
        }
Esempio n. 2
0
        public void ShouldBeAbleToMapDTOToModel()
        {
            MappingBootstrapper.Initialise();
            Mapper.AssertConfigurationIsValid();

            var address        = "XXXX";
            var musicRecording = new MusicRecordingDTO();

            musicRecording.Address = address;
            musicRecording.Name    = "my great track";
            var musicRecordingModel = new MusicRecording();

            Mapper.Map(musicRecording, musicRecordingModel);
            Assert.Equal(musicRecordingModel.Address, address);
        }
Esempio n. 3
0
        public void ShouldBeAbleToMapOtherArtitsDTOToModel()
        {
            MappingBootstrapper.Initialise();
            Mapper.AssertConfigurationIsValid();

            var address            = "XXXX";
            var otherArtitsAddress = "ArtistXXXXX";
            var musicRecording     = new MusicRecordingDTO();

            musicRecording.Address = address;
            musicRecording.OtherArtists.Add(new CreativeWorkArtistDTO()
            {
                ArtistAddres = otherArtitsAddress
            });
            var musicRecordingModel = new MusicRecording();

            Mapper.Map(musicRecording, musicRecordingModel);
            Assert.Equal(musicRecordingModel.Address, address);
            Assert.Equal(musicRecordingModel.OtherArtists.First().ArtistAddres, otherArtitsAddress);
        }
Esempio n. 4
0
 /// <summary>
 /// MusicRecordingOrItemList as a MusicRecording.
 /// </summary>
 /// <param name="musicRecording">MusicRecordingOrItemList as a MusicRecording.</param>
 public MusicRecordingOrItemList(MusicRecording musicRecording)
 {
     AsMusicRecording = musicRecording;
 }
Esempio n. 5
0
        static void Main(string[] args)
        {
            using (var db = new UjoContext())
            {
                System.Console.Write("Enter a name for a new Artist: ");
                var name = System.Console.ReadLine();

                var artist = new Artist()
                {
                    Name = name, Address = "XXX" + name
                };
                db.Artists.AddOrUpdate(artist);
                db.SaveChanges();

                var musicRecording = new MusicRecording()
                {
                    Address         = "xxxRec" + name,
                    Genre           = "Monkey Techno",
                    Name            = "Pooping head2",
                    ByArtistAddress = "XXX" + name
                };

                musicRecording.OtherArtists.Add(
                    new CreativeWorkArtist()
                {
                    ContributionType        = "Featured2",
                    Role                    = "Guitar",
                    NonRegisteredArtistName = "Simon",
                    CreativeWorkAddress     = musicRecording.Address
                });

                db.MusicRecordings.AddOrUpdate(musicRecording);
                db.CreativeWorkArtists.AddOrUpdate(musicRecording.OtherArtists.First());

                var creativeWorkArtist = new CreativeWorkArtist()
                {
                    ContributionType        = "Featured",
                    NonRegisteredArtistName = "Ujo",
                    CreativeWorkAddress     = "xxxRec" + name
                };

                db.CreativeWorkArtists.AddOrUpdate(creativeWorkArtist);
                db.SaveChanges();



                // Display all Blogs from the database
                var query = from b in db.Artists
                            orderby b.Name
                            select b;

                System.Console.WriteLine("All artists in the database:");
                foreach (var item in query)
                {
                    System.Console.WriteLine(item.Name);
                }

                System.Console.WriteLine("Press any key to exit...");
                System.Console.ReadKey();
            }
        }