Beispiel #1
0
        private void UpdateSong(SongDetail songDetail)
        {
            var song = _songRepository.Get(songDetail.Id);
            var members = _bandRepository.GetMembers(songDetail.BandId).ToArray();
            var instruments = _instrumentRepository.GetAll();
            var genre = _bandRepository.GetGenre(songDetail.GenreId);
            var tempo = _songRepository.GetTempo(songDetail.TempoId);

            if (song != null)
            {
                song.Title = songDetail.Title;
                song.Singer = songDetail.SingerId > 0
                    ? members.Single(x => x.Id == songDetail.SingerId)
                    : null;
                song.Key = _songRepository.GetKey(songDetail.KeyId);
                song.Composer = songDetail.Composer;
                song.Genre = genre;
                song.Tempo = tempo;
                song.NeverClose = songDetail.NeverClose;
                song.NeverOpen = songDetail.NeverOpen;
                song.IsDisabled = songDetail.Disabled;
                song.UserUpdate = _currentUser;
                song.DateUpdate = DateTime.Now;

                song.SongMemberInstruments.Clear();

                foreach (var mi in songDetail.SongMemberInstrumentDetails
                    .Where(mi => mi.InstrumentId > 0))
                {
                    song.SongMemberInstruments.Add(new SongMemberInstrument
                    {
                        Song = song,
                        Member = members.Single(x => x.Id == mi.MemberId),
                        Instrument = instruments.Single(x => x.Id == mi.InstrumentId)
                    });
                }
            };

            _songRepository.Update(song);
        }
Beispiel #2
0
        private int AddSong(SongDetail songDetail)
        {
            var band = _bandRepository.Get(songDetail.BandId);
            var members = _bandRepository.GetMembers(songDetail.BandId).ToArray();
            var instruments = _instrumentRepository.GetAll();
            var genre = _bandRepository.GetGenre(songDetail.GenreId);
            var tempo = _songRepository.GetTempo(songDetail.TempoId);

            var newSong = new Song
            {
                Band = band,
                Title = songDetail.Title,
                Singer = songDetail.SingerId > 0
                    ? members.Single(x => x.Id == songDetail.SingerId)
                    : null,
                Key = _songRepository.GetKey(songDetail.KeyId),
                Composer = songDetail.Composer,
                Genre = genre,
                Tempo = tempo,
                NeverClose = songDetail.NeverClose,
                NeverOpen = songDetail.NeverOpen,
                IsDisabled = songDetail.Disabled,
                UserCreate = _currentUser,
                UserUpdate = _currentUser,
                DateCreate = DateTime.Now,
                DateUpdate = DateTime.Now,
                SongMemberInstruments = new List<SongMemberInstrument>()
            };

            foreach (var mi in songDetail.SongMemberInstrumentDetails
                .Where(mi => mi.InstrumentId > 0))
            {
                newSong.SongMemberInstruments.Add(
                    new SongMemberInstrument
                    {
                        Song = newSong,
                        Member = members.Single(x => x.Id == mi.MemberId),
                        Instrument = instruments.Single(x => x.Id == mi.InstrumentId)
                    });
            }

            return _songRepository.Add(newSong);
        }