Example #1
0
        public async Task <Result <AlbumDto> > UpdateAlbumAsync(int albumId, Album newAlbum)
        {
            var result = new AlbumValidator().Validate(newAlbum);

            if (!result.IsValid)
            {
                return(new Result <AlbumDto>(ResultType.Invalid, string.Join("; ", result.Errors)));
            }

            var albums = await _unitOfWork.AlbumRepository
                         .GetAsync(a => a.Id == albumId)
                         .ConfigureAwait(false);

            var album = albums.FirstOrDefault();

            if (album == null)
            {
                return(new Result <AlbumDto>(ResultType.Invalid, "Could not find album!"));
            }

            album.Id          = albumId;
            album.Name        = newAlbum.Name;
            album.TotalTime   = newAlbum.TotalTime;
            album.ReleaseYear = newAlbum.ReleaseYear;
            album.Rate        = newAlbum.Rate;

            _unitOfWork.AlbumRepository.Edit(album);
            await _unitOfWork.SaveAsync().ConfigureAwait(false);

            return(new Result <AlbumDto>(Auto.Mapper.Map <AlbumDto>(album)));
        }
Example #2
0
 public AlbumAppService(
     IAlbumRepository repository,
     AlbumValidator validator
     ) : base(repository)
 {
     Validator = validator;
 }
        private void ReleaseYear_Validating(object sender, CancelEventArgs e)
        {
            var validator = new AlbumValidator();
            var result    = validator.ReleaseYearCheck(txtReleaseYear.Text);

            errorProviderReleaseYear.SetError(txtReleaseYear, result.Message);
            e.Cancel = !result.IsValid;
        }
        private void Name_Validating(object sender, CancelEventArgs e)
        {
            var validator = new AlbumValidator();
            var result    = validator.NameCheck(txtName.Text);

            errorProviderName.SetError(txtName, result.Message);
            e.Cancel = !result.IsValid;
        }
Example #5
0
        public async Task <Result <AlbumDto> > AddAlbumAsync(Album album)
        {
            var result = new AlbumValidator().Validate(album);

            if (!result.IsValid)
            {
                return(new Result <AlbumDto>(ResultType.Invalid, string.Join("; ", result.Errors)));
            }

            _unitOfWork.AlbumRepository.Add(album);
            await _unitOfWork.SaveAsync().ConfigureAwait(false);

            return(new Result <AlbumDto>(Auto.Mapper.Map <AlbumDto>(album)));
        }
Example #6
0
 public AlbumForEditContract(Album album, ContentLanguagePreference languagePreference)
     : base(album, languagePreference)
 {
     ArtistLinks     = album.Artists.Select(a => new ArtistForAlbumContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
     Deleted         = album.Deleted;
     Description     = album.Description;
     Names           = new NameManagerEditContract(album.Names);
     OriginalRelease = (album.OriginalRelease != null ? new AlbumReleaseContract(album.OriginalRelease) : null);
     Pictures        = album.Pictures.Select(p => new EntryPictureFileContract(p)).ToArray();
     PVs             = album.PVs.Select(p => new PVContract(p)).ToArray();
     Songs           = album.Songs
                       .OrderBy(s => s.TrackNumber).OrderBy(s => s.DiscNumber)
                       .Select(s => new SongInAlbumEditContract(s, languagePreference)).ToArray();
     TranslatedName   = new TranslatedStringContract(album.TranslatedName);
     UpdateNotes      = string.Empty;
     ValidationResult = AlbumValidator.Validate(album);
     WebLinks         = album.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();
 }
Example #7
0
        public int UpdateEntryStatuses()
        {
            VerifyAdmin();

            SysLog("updating entry statuses");

            return(HandleTransaction(session => {
                int count = 0;

                var artists = session.Query <Artist>().Where(a => !a.Deleted).ToArray();

                foreach (var artist in artists)
                {
                    var result = ArtistValidator.Validate(artist);

                    if (result.Passed && artist.Status == EntryStatus.Draft)
                    {
                        artist.Status = EntryStatus.Finished;
                        session.Update(artist);
                        count++;
                    }
                    else if (!result.Passed && artist.Status == EntryStatus.Finished)
                    {
                        artist.Status = EntryStatus.Draft;
                        session.Update(artist);
                        count++;
                    }
                }

                var albums = session.Query <Album>().Where(a => !a.Deleted).ToArray();

                foreach (var album in albums)
                {
                    var result = AlbumValidator.Validate(album);

                    if (result.Passed && album.Status == EntryStatus.Draft)
                    {
                        album.Status = EntryStatus.Finished;
                        session.Update(album);
                        count++;
                    }
                    else if (!result.Passed && album.Status == EntryStatus.Finished)
                    {
                        album.Status = EntryStatus.Draft;
                        session.Update(album);
                        count++;
                    }
                }

                var songs = session.Query <Song>().Where(a => !a.Deleted).ToArray();

                foreach (var song in songs)
                {
                    var result = SongValidator.Validate(song);

                    if (result.Passed && song.Status == EntryStatus.Draft)
                    {
                        song.Status = EntryStatus.Finished;
                        session.Update(song);
                        count++;
                    }
                    else if (!result.Passed && song.Status == EntryStatus.Finished)
                    {
                        song.Status = EntryStatus.Draft;
                        session.Update(song);
                        count++;
                    }
                }

                return count;
            }));
        }