private static void EnqueueCoverRequest(AudioAlbum target) { lock (_syncRoot) { if (_requestQueue.ContainsKey(target.Id)) { if (_requestQueue[target.Id].All(t => t != target)) { _requestQueue[target.Id].Add(target); } } else { _requestQueue.Add(target.Id, new List <AudioAlbum>() { target }); } } if (!_isQueueWorking) { Task.Run(() => StartQueueProcessing()); //вся обработка очереди производится в 1 потоке } }
private void ProcessInputParameters() { AudioAlbum pickedAlbum = ParametersRepository.GetParameterForIdAndReset("PickedAlbum") as AudioAlbum; if (pickedAlbum == null || !this.IsInMultiSelectMode) { return; } List <AudioHeader> headersToMove = this.GetSelectedAudioHeaders(); this.IsInMultiSelectMode = false; this.ViewModel.MoveTracksToAlbum(headersToMove, pickedAlbum, (Action <bool>)(result => Execute.ExecuteOnUIThread((Action)(() => { if (!result) { ExtendedMessageBox.ShowSafe(CommonResources.GenericErrorText); } else { if (MessageBox.Show(UIStringFormatterHelper.FormatNumberOfSomething(headersToMove.Count, AudioResources.OneAudioMovedFrm, AudioResources.TwoFourAudiosMovedFrm, AudioResources.FiveAudiosMovedFrm, true, pickedAlbum.title, false), AudioResources.MoveAudios, MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } Navigator.Current.NavigateToAudio(0, this.CommonParameters.UserOrGroupId, this.CommonParameters.IsGroup, pickedAlbum.album_id, 0, pickedAlbum.title); } })))); }
internal void MoveTracksToAlbum(List <AudioHeader> headersToMove, AudioAlbum pickedAlbum, Action <bool> callback) { AudioService.Instance.MoveToAlbum((List <long>)Enumerable.ToList <long>(Enumerable.Select <AudioHeader, long>(headersToMove, (Func <AudioHeader, long>)(h => h.Track.aid))), pickedAlbum.album_id, (Action <BackendResult <object, ResultCode> >)(res => { if (res.ResultCode == ResultCode.Succeeded) { callback(true); } else { callback(false); } })); }
public AudioAlbum GetAccountAudioAlbumByTitle(int account, string title) { AudioAlbum result; try { AudioAlbum audioAlbum = this.db.AudioAlbums.Single((AudioAlbum a) => a.ArtistId == (int?)account && a.Title == title); result = audioAlbum; } catch { result = new AudioAlbum { AudioAlbumId = -1 }; } return result; }
private void ShowEditAlbum(AudioAlbum album) { DialogService dc = new DialogService(); dc.SetStatusBarBackground = true; dc.HideOnNavigation = false; EditAlbumUC editAlbum = new EditAlbumUC(); editAlbum.textBlockCaption.Text = (album.album_id == 0L ? AudioResources.CreateAlbum : AudioResources.EditAlbum); dc.Child = (FrameworkElement)editAlbum; ((UIElement)editAlbum.buttonSave).Tap += ((EventHandler <System.Windows.Input.GestureEventArgs>)((s, e) => { album.title = editAlbum.textBoxText.Text; this.ViewModel.AllAlbumsVM.CreateEditAlbum(album); dc.Hide(); })); dc.Show((UIElement)this.mainPivot); }
private bool UpdateAlbum(AudioAlbum cachedAlbum, AudioAlbum updatedAlbum) { bool changed = false; if (cachedAlbum.Title != updatedAlbum.Title) { cachedAlbum.Title = updatedAlbum.Title; changed = true; } if (cachedAlbum.Artist != updatedAlbum.Artist) { cachedAlbum.Artist = updatedAlbum.Artist; changed = true; } if (cachedAlbum.ArtistId != updatedAlbum.ArtistId) { cachedAlbum.ArtistId = updatedAlbum.ArtistId; changed = true; } if (cachedAlbum.CoverPath != updatedAlbum.CoverPath) { cachedAlbum.CoverPath = updatedAlbum.CoverPath; changed = true; } if (cachedAlbum.Year != updatedAlbum.Year) { cachedAlbum.Year = updatedAlbum.Year; changed = true; } return(changed); }
public ActionResult Processupload(string uploads) { string[] array = uploads.Split(new char[] { ';' }); new AudioRepository(new yslDataContext()); Request.Cookies.Get("ysl"); int account = 1; string title = DateTime.Now.ToString("MMMM dd, yyyy"); IAudioAlbumRepository audioAlbumRepository = new AudioAlbumRepository(new yslDataContext()); new AudioAlbumItemRepository(new yslDataContext()); AudioAlbum audioAlbum; if (audioAlbumRepository.AccountAudioAlbumExists(account, title)) { audioAlbum = audioAlbumRepository.GetAccountAudioAlbumByTitle(account, title); } else { AudioAlbum a = new AudioAlbum { Created = DateTime.Now, Description = "", ArtistId = new int?(1), Title = DateTime.Now.ToString("MMMM dd, yyyy"), PhotoId = new int?(2), IsSingle = false, IsFeatured = false }; int audioAlbumId = audioAlbumRepository.addAudioAlbum(a); audioAlbum = audioAlbumRepository.getAudioAlbum(audioAlbumId); } for (int i = 0; i < array.Length; i++) { if (!string.IsNullOrWhiteSpace(array[i])) { string[] array2 = array[i].Split(new char[] { ',' }); string text = array2[0]; text = text.Replace("/temp", ""); string text2 = HostingEnvironment.MapPath(array2[0]); string destFileName = text2.Replace("\\temp", ""); try { System.IO.File.Move(text2, destFileName); Audio audio = new Audio { AccountId = 5, Title = array2[1], Description = "", Location = text }; EntitySet<AudioAlbumItem> arg_213_0 = audioAlbum.AudioAlbumItems; AudioAlbumItem audioAlbumItem = new AudioAlbumItem(); audioAlbumItem.Audio = audio; audioAlbumItem.Created = DateTime.Now; audioAlbumItem.AudioAlbumId = audioAlbum.AudioAlbumId; audioAlbumItem.Track = Math.Min(audioAlbum.AudioAlbumItems.Count + 1, audioAlbum.AudioAlbumItems.AsEnumerable<AudioAlbumItem>().Max((AudioAlbumItem s) => s.Track) + 1); arg_213_0.Add(audioAlbumItem); audioAlbumRepository.updateAudioAlbum(audioAlbum); } catch { } } } return base.RedirectToAction("ViewAlbum", new RouteValueDictionary(new { controller = "AudioController", action = "ViewAlbum", aid = audioAlbum.AudioAlbumId })); }
public ActionResult Processsingle(string meta, string uploads) { string[] array = uploads.Split(new char[] { ';' }); string[] array2 = meta.Split(new char[] { '~' }); new AudioRepository(new yslDataContext()); base.Request.Cookies.Get("ysl"); int value = 1; DateTime.Now.ToString("MMMM dd, yyyy"); IAudioAlbumRepository audioAlbumRepository = new AudioAlbumRepository(new yslDataContext()); new AudioAlbumItemRepository(new yslDataContext()); IPhotoRepository photoRepository = new PhotoRepository(new yslDataContext()); string text = array2[2]; text = text.Replace("/temp", ""); string text2 = HostingEnvironment.MapPath(array2[2]); string destFileName = text2.Replace("\\temp", ""); int value2 = 0; try { System.IO.File.Move(text2, destFileName); value2 = photoRepository.addPhoto(new Photo { AccountId = 5, Location = text, Title = "", Description = "" }); } catch { } AudioAlbum audioAlbum = new AudioAlbum { ArtistId = new int?(value), Title = array2[0], Description = array2[1], PhotoId = new int?(value2), IsSingle = true, IsFeatured = bool.Parse(array2[3]) }; int audioAlbumId = audioAlbumRepository.addAudioAlbum(audioAlbum); AudioAlbum audioAlbum2 = audioAlbumRepository.getAudioAlbum(audioAlbumId); string[] array3 = array; for (int i = 0; i < array3.Length; i++) { string text3 = array3[i]; if (!string.IsNullOrWhiteSpace(text3)) { string[] array4 = text3.Split(new char[] { ',' }); text = array4[0]; text = text.Replace("/temp", ""); text2 = HostingEnvironment.MapPath(array4[0]); destFileName = text2.Replace("\\temp", ""); var dLink = text; if (!array2[4].Trim().Equals("autoGen")) dLink = array2[4].Trim(); try { System.IO.File.Move(text2, destFileName); Audio audio = new Audio { AccountId = 5, Title = array2[0], Description = array2[1], Location = text }; audioAlbum2.AudioAlbumItems.Add(new AudioAlbumItem { Audio = audio, Track = audioAlbum.AudioAlbumItems.Count + 1, AudioAlbum = audioAlbum, DownloadLink = dLink }); } catch { } } } audioAlbumRepository.updateAudioAlbum(audioAlbum2); return base.RedirectToAction("Index"); }
public AudioAlbumHeader(AudioAlbum album) { this._album = album; this.CreateMenuItems(); }
private async Task LoadSelectedArtist() { if (SelectedArtist == null) { return; } OnTaskStarted("artists"); try { if (Albums.IsNullOrEmpty()) { await LoadAlbums(); } var albums = await ServiceLocator.LocalMusicService.GetArtistAlbums(SelectedArtist.Id); if (!albums.IsNullOrEmpty()) { foreach (var album in albums) { var tracks = await ServiceLocator.LocalMusicService.GetAlbumTracks(album.Id); if (!tracks.IsNullOrEmpty()) { album.Tracks = tracks.Cast <Audio>().ToList(); } } } else { albums = new List <AudioAlbum>(); } if (SelectedArtist == null) { return; } var unsortedTracks = await ServiceLocator.LocalMusicService.GetArtistUnsortedTracks(SelectedArtist.Id); if (!unsortedTracks.IsNullOrEmpty()) { var unsortedAlbum = new AudioAlbum() { Tracks = unsortedTracks.OfType <Audio>().ToList() }; albums.Insert(0, unsortedAlbum); } SelectedArtistAlbums = albums; SelectedArtistTracks = albums.SelectMany(a => a.Tracks).Cast <LocalAudio>().ToList(); } catch (Exception ex) { OnTaskError("artists", ErrorResources.LoadArtistsErrorCommon); LoggingService.Log(ex); } OnTaskFinished("artists"); }
public AudioAlbum getAudioAlbum(int audioAlbumId) { AudioAlbum result; try { AudioAlbum audioAlbum = this.db.AudioAlbums.Single((AudioAlbum a) => a.AudioAlbumId == audioAlbumId); result = audioAlbum; } catch { result = new AudioAlbum { AudioAlbumId = -1 }; } return result; }
public int addAudioAlbum(AudioAlbum album) { this.db.AudioAlbums.InsertOnSubmit(album); this.db.SubmitChanges(); return album.AudioAlbumId; }
public bool updateAudioAlbum(AudioAlbum aAlbum) { AudioAlbum audioAlbum = this.db.AudioAlbums.Single((AudioAlbum a) => a.AudioAlbumId == aAlbum.AudioAlbumId); if (audioAlbum.AudioAlbumId > 0) { audioAlbum.Title = aAlbum.Title; audioAlbum.Description = aAlbum.Description; audioAlbum.Updated = new DateTime?(DateTime.Now); audioAlbum.PhotoId = aAlbum.PhotoId; audioAlbum.AudioAlbumItems = aAlbum.AudioAlbumItems; audioAlbum.ArtistId = aAlbum.ArtistId; this.db.SubmitChanges(); return true; } return false; }
/// <summary> /// Получить обложку /// </summary> /// <param name="target"></param> public static Task <ImageSource> GetCover(AudioAlbum target) { return(GetImage(target.CoverPath)); }
/// <summary> /// Ставит трек в очередь на получение обложки. Когда очередь подойдет, треку будет присвоена обложка. /// </summary> /// <param name="target"></param> public static void RequestCover(AudioAlbum target) { //ставим трек в очередь и сразу возвращаем null EnqueueCoverRequest(target); }
/// <summary> /// You can specify album by ID. Title value will not be set, of course. /// </summary> /// <param name="owner">Owner page unique identifier</param> /// <param name="localID">Local album id</param> public static AudioAlbum FromID(VK.UID owner, uint localID) { var album = new AudioAlbum(); album.ID = new DualID(owner, localID); return album; }