예제 #1
0
        private async void Download(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(TrackTitle.Text) || string.IsNullOrEmpty(AlbumTitle.Text) ||
                string.IsNullOrEmpty(ArtistTitle.Text) || string.IsNullOrWhiteSpace(TrackTitle.Text) ||
                string.IsNullOrWhiteSpace(AlbumTitle.Text) || string.IsNullOrWhiteSpace(ArtistTitle.Text))

            {
                Core.WinRt.Common.ToastManager.ShowError("Fill in all details.");
                return;
            }

            else
            {
                Save();
                SheetUtility.CloseEditTrackMetadataPage();
                await System.Threading.Tasks.Task.Delay(200);

                if (PassingValue is WebSong)
                {
                    await SongSavingHelper.SaveViezTrackLevel1(PassingValue as WebSong);
                }
                else if (PassingValue is FullTrack)
                {
                    await SongSavingHelper.SaveSpotifyTrackLevel1(PassingValue as FullTrack);
                }
                else if (PassingValue is LastTrack)
                {
                    await SongSavingHelper.SaveLastTrackLevel1(PassingValue as LastTrack);
                }
            }
        }
예제 #2
0
 //rematch
 private async void ManualMatch_Click(object sender, RoutedEventArgs e)
 {
     await DispatcherHelper.RunAsync(() =>
     {
         SheetUtility.OpenManualMatchPage(_song);
     });
 }
예제 #3
0
        public async void VideoClickExecuteAfter()
        {
            try
            {
                await Task.Factory.StartNew(async() =>
                {
                    string url = await GetOnlineUrl(VideoInfo.VideoId);
                    if (string.IsNullOrEmpty(url))
                    {
                        await DispatcherHelper.RunAsync(() =>
                        {
                            SheetUtility.CloseVideoPage();
                            MessageHelpers.ShowError("Url not found.", "Error");
                        });
                    }
                    else
                    {
                        VideoModel videoModel = new VideoModel(url, true);
                        StartPlaybackVideo?.Invoke(this, videoModel);
                    }
                });
            }

            catch
            {
                SheetUtility.CloseVideoPage();
            }
        }
        /// <summary>
        /// 获取查询条件
        /// </summary>
        /// <param name="Schema"></param>
        /// <param name="ListMethod"></param>
        /// <param name="Query"></param>
        /// <returns></returns>
        private OThinker.H3.BizBus.Filter.Filter GetFilter(DataModel.BizObjectSchema Schema, string ListMethod, DataModel.BizQuery Query)
        {
            // 构造查询条件
            OThinker.H3.BizBus.Filter.Filter filter = new OThinker.H3.BizBus.Filter.Filter();

            OThinker.H3.BizBus.Filter.And and = new OThinker.H3.BizBus.Filter.And();
            filter.Matcher = and;
            ItemMatcher propertyMatcher = null;

            if (Query.QueryItems != null)
            {
                foreach (DataModel.BizQueryItem queryItem in Query.QueryItems)
                { // 增加系统参数条件
                    if (queryItem.FilterType == DataModel.FilterType.SystemParam)
                    {
                        propertyMatcher = new OThinker.H3.BizBus.Filter.ItemMatcher(queryItem.PropertyName,
                                                                                    OThinker.Data.ComparisonOperatorType.Equal,
                                                                                    SheetUtility.GetSystemParamValue(this.UserValidator, queryItem.SelectedValues));
                        and.Add(propertyMatcher);
                    }
                    else if (queryItem.Visible == OThinker.Data.BoolMatchValue.False)
                    {
                        and.Add(new ItemMatcher(queryItem.PropertyName,
                                                queryItem.FilterType == DataModel.FilterType.Contains ? OThinker.Data.ComparisonOperatorType.Contain
                                : OThinker.Data.ComparisonOperatorType.Equal,
                                                queryItem.DefaultValue));
                    }
                }
            }
            return(filter);
        }
예제 #5
0
        private async void SongClickExecute(ItemClickEventArgs item)
        {
            var track = item.ClickedItem;

            if (track is Advert || track is ListAdvert)
            {
                return;
            }

            if (track is WebSong)
            {
                if (foundInViez)
                {
                    SheetUtility.OpenEditTrackMetadataPage(track as WebSong);
                }
                else
                {
                    await SongSavingHelper.SaveViezTrackLevel1(track as WebSong);
                }
            }

            else if (track is FullTrack)
            {
                await SongSavingHelper.SaveSpotifyTrackLevel1(track as FullTrack);
            }
        }
예제 #6
0
        async void RepairMusicus(object sender, RoutedEventArgs e)
        {
            if (BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Playing)
            {
                ToastManager.ShowError("Stop playback first.");
                return;
            }
            else
            {
                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
                                                                                                            async() =>
                {
                    var md = new MessageDialog(
                        "This will delete everything from airstem and import your data again.",
                        "Are you sure you want to refresh?");
                    md.Commands.Add(new UICommand("Ok"));
                    md.Commands.Add(new UICommand("Cancel"));

                    var result = await md.ShowAsync();
                    if (result != null && result.Label.ToLower().Equals("ok"))
                    {
                        SheetUtility.OpenImportRefreshPage(3);
                    }
                });
            }
        }
예제 #7
0
 private void AddToMenuFlyoutItem_OnClick(object sender, RoutedEventArgs e)
 {
     AddToPlaylistPage.songs = new List <Song>()
     {
         _song
     };
     SheetUtility.OpenAddToPlaylistPage();
 }
예제 #8
0
        //private void TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
        //{
        //    //We only want to get results when it was a user typing,
        //    //otherwise we assume the value got filled in by TextMemberPath
        //    //or the handler for SuggestionChosen
        //    if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
        //        App.Locator.CollectionSearch.SearchInCollectionPhase1(sender.Text);
        //}



        private async void artistClicked(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
        {
            await DispatcherHelper.RunAsync(() =>
            {
                SheetUtility.CloseSearchCollectionPage();
                App.Navigator.GoTo <CollectionArtistPage, ZoomInTransition>(App.Locator.CollectionSearch.Artists.Id);
            });
        }
예제 #9
0
 private async void artistsSearchListClicked(object sender, ItemClickEventArgs e)
 {
     await DispatcherHelper.RunAsync(() =>
     {
         SheetUtility.CloseSearchCollectionPage();
         App.Navigator.GoTo <CollectionArtistPage, ZoomInTransition>(((Artist)e.ClickedItem).Id);
     });
 }
예제 #10
0
 private void AddToPlaylistFlyoutClick(object sender, RoutedEventArgs e)
 {
     AddToPlaylistPage.songs = new List <Song>()
     {
         App.Locator.Player.CurrentSong
     };
     SheetUtility.OpenAddToPlaylistPage();
 }
예제 #11
0
 private async void AddAll(object sender, RoutedEventArgs e)
 {
     await DispatcherHelper.RunAsync(() =>
     {
         var tracks = App.Locator.CollectionArtist.Artist.Songs.ToList();
         AddToPlaylistPage.songs = tracks;
         SheetUtility.OpenAddToPlaylistPage();
     });
 }
예제 #12
0
 void VideoClickExecute(ItemClickEventArgs obj)
 {
     if (obj.ClickedItem is Video)
     {
         SheetUtility.OpenVideoPage(obj.ClickedItem as Video);
     }
     else
     {
         App.Locator.VideoPlayer.InvokeOnline(obj.ClickedItem);
     }
 }
예제 #13
0
        private async void playlistitemclick(object sender, ItemClickEventArgs e)
        {
            var playlist = e.ClickedItem as Playlist;

            for (var i = 0; i < songs.Count; i++)
            {
                var song = songs[i];
                // only add if is not there already
                if (playlist.Songs.FirstOrDefault(p => p.Song.Id == song.Id) == null)
                {
                    await App.Locator.CollectionService.AddToPlaylistAsync(playlist, song).ConfigureAwait(false);
                }
            }
            SheetUtility.CloseAddToPlaylistPage();
        }
예제 #14
0
        private async void songsSearchListClicked(object sender, ItemClickEventArgs e)
        {
            await DispatcherHelper.RunAsync(async() =>
            {
                SheetUtility.CloseSearchCollectionPage();

                Song s         = e.ClickedItem as Song;
                var queueSongs = App.Locator.CollectionSearch.Songs.ToList();
                int index      = queueSongs.IndexOf(s);
                queueSongs     = queueSongs.Skip(index).ToList();

                if (queueSongs != null && queueSongs.Count > 0)
                {
                    await PlayAndQueueHelper.PlaySongsAsync(s, queueSongs, true);
                }
            });
        }
예제 #15
0
        private async void SongClickExecute(ItemClickEventArgs obj)
        {
            var track = obj.ClickedItem;

            if (track is Advert || track is ListAdvert)
            {
                return;
            }

            if (Popular.Contains(track as WebSong))
            {
                await SongSavingHelper.SaveViezTrackLevel1(track as WebSong);
            }
            else
            {
                SheetUtility.OpenEditTrackMetadataPage(track as WebSong);
            }
        }
예제 #16
0
        async void ImportVideos()
        {
            ScreenTimeoutHelper.PreventTimeout();

            Message.Text        = "Collecting information about videos.";
            Bar.IsIndeterminate = true;

            var failedCount = 0;

            LocalMusicHelper localMusicHelper = new LocalMusicHelper();
            var localVideos = await localMusicHelper.GetFilesInVideoAsync();

            App.Locator.CollectionService.Videos.SuppressEvents = true;

            Bar.IsIndeterminate = false;

            await Task.Delay(10);

            Message.Text = "Working on video files.";
            Bar.Maximum  = localVideos.Count;

            App.Locator.SqlService.BeginTransaction();
            for (var i = 0; i < localVideos.Count; i++)
            {
                Bar.Value = i + 1;
                try
                {
                    await localMusicHelper.SaveVideoAsync(localVideos[i]);
                }
                catch
                {
                    failedCount++;
                }
            }

            App.Locator.SqlService.Commit();
            App.Locator.CollectionService.Videos.Reset();

            ScreenTimeoutHelper.AllowTimeout();
            SheetUtility.CloseImportRefreshPage();
        }
예제 #17
0
        private async void Create(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(PlaylistTextBox.Text))
            {
                Core.WinRt.Common.ToastManager.ShowError("Enter a name.");
            }
            else
            {
                if (App.Locator.CollectionService.
                    Playlists.FirstOrDefault(p =>
                                             string.Equals(p.Name, PlaylistTextBox.Text, StringComparison.CurrentCultureIgnoreCase)) != null)
                {
                    PlaylistTextBox.Text = "";
                    Core.WinRt.Common.ToastManager.ShowError("Already exists.");
                }
                else
                {
                    var playlist = await App.Locator.CollectionService.CreatePlaylistAsync(FirstCharToUpper(PlaylistTextBox.Text));

                    SheetUtility.CloseAddAPlaylistPage();
                }
            }
        }
예제 #18
0
        private async void SaveClicked(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            var clickedItem = (sender as MenuFlyoutItem).DataContext as WebSong;

            if (clickedItem == null)
            {
                return;
            }
            if (clickedItem.IsLinkDeath)
            {
                Core.WinRt.Common.ToastManager.ShowError("Link dead.");
                return;
            }

            var song = App.Locator.Manual.CurrentSong;

            song.AudioUrl  = clickedItem.AudioUrl;
            song.CloudId   = clickedItem.AudioUrl;
            song.RadioId   = clickedItem.ProviderNumber;
            song.SongState = SongState.DownloadListed;
            await App.Locator.SqlService.UpdateItemAsync(song);

            SheetUtility.CloseManualMatchPage();
        }
예제 #19
0
        public JsonResult StartInstance(string paramString)
        {
            ActionResult result = new ActionResult(false, "");
            Dictionary <string, string> dicParams = JsonConvert.DeserializeObject <Dictionary <string, string> >(paramString);
            string WorkflowCode = string.Empty, SchemaCode = string.Empty, InstanceName = string.Empty; int WorkflowVersion = WorkflowTemplate.WorkflowDocument.NullWorkflowVersion; bool IsMobile = false;
            string SheetCode = string.Empty; string LoginName = string.Empty; string MobileToken = string.Empty;
            string WechatCode = string.Empty; string EngineCode = string.Empty;
            Dictionary <string, string> dicOtherParams = new Dictionary <string, string>();

            //读取URL参数
            foreach (string key in dicParams.Keys)
            {
                if (key == Param_WorkflowCode)
                {
                    WorkflowCode = dicParams[key]; continue;
                }
                if (key == Param_SchemaCode)
                {
                    SchemaCode = dicParams[key]; continue;
                }
                if (key == Param_WorkflowVersion)
                {
                    int.TryParse(dicParams[key], out WorkflowVersion); continue;
                }
                if (key == Param_IsMobile)
                {
                    bool.TryParse(dicParams[key], out IsMobile); continue;
                }
                if (key == Param_SheetCode)
                {
                    SheetCode = dicParams[key]; continue;
                }
                if (key == Param_InstanceName)
                {
                    InstanceName = dicParams[key]; continue;
                }
                if (key.ToLower() == "loginname")
                {
                    LoginName = dicParams[key]; continue;
                }
                if (key.ToLower() == "mobiletoken")
                {
                    MobileToken = dicParams[key]; continue;
                }
                if (key.ToLower() == "code")
                {
                    WechatCode = dicParams[key];
                }
                if (key.ToLower() == "state")
                {
                    EngineCode = dicParams[key];
                }
                dicOtherParams.Add(key, dicParams[key]);
            }
            //TODO:微信不需要做单点登录
            ////实现微信单点登录
            //if (!string.IsNullOrEmpty(WechatCode) && !string.IsNullOrEmpty(EngineCode)
            //    && System.Web.HttpContext.Current.Session[Sessions.GetUserValidator()] != null)
            //{
            //    IsMobile = true;
            //    UserValidatorFactory.LoginAsWeChat(EngineCode, WechatCode);
            //}
            //APP打开表单验证
            if (!string.IsNullOrEmpty(LoginName) && !string.IsNullOrEmpty(MobileToken) && this.UserValidator == null)
            {
                if (!SSOopenSheet(LoginName, MobileToken))
                {
                    result = new ActionResult(false, "登录超时!", null, ExceptionCode.NoAuthorize);
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }
            }
            else if (this.UserValidator == null)
            {
                result = new ActionResult(false, "登录超时!", null, ExceptionCode.NoAuthorize);
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            //计算 WorkflowCode
            if (WorkflowCode == string.Empty && !string.IsNullOrEmpty(SchemaCode))
            {
                WorkflowClause[] clauses = this.Engine.WorkflowManager.GetClausesBySchemaCode(SchemaCode);
                if (clauses != null)
                {
                    foreach (WorkflowClause clause in clauses)
                    {
                        if (clause.DefaultVersion > 0)
                        {
                            WorkflowCode = clause.WorkflowCode;
                        }
                    }
                }
            }
            //流程版本号
            if (WorkflowVersion == WorkflowTemplate.WorkflowDocument.NullWorkflowVersion || WorkflowVersion == 0)
            {
                WorkflowVersion = this.Engine.WorkflowManager.GetWorkflowDefaultVersion(WorkflowCode);
            }

            //流程优先级
            OThinker.H3.Instance.PriorityType Priority = OThinker.H3.Instance.PriorityType.Normal;
            if (dicParams.ContainsKey(Param_Priority))
            {
                string strPriority = dicParams[Param_Priority];

                Priority = (OThinker.H3.Instance.PriorityType)Enum.Parse(typeof(OThinker.H3.Instance.PriorityType), strPriority);
            }

            try
            {
                if (string.IsNullOrEmpty(WorkflowCode))
                {
                    result.Message = "StartInstance.StartInstance_Msg0";
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }
                // 获得工作流模板
                PublishedWorkflowTemplate workflow = this.Engine.WorkflowManager.GetPublishedTemplate(WorkflowCode, WorkflowVersion);
                if (workflow == null)
                {
                    result.Message = "StartInstance.StartInstance_Msg1";
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }
                DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(workflow.BizObjectSchemaCode);
                // 开始节点
                ClientActivity startActivity = null;
                // 开始的表单
                BizSheet startSheet = null;
                System.Text.StringBuilder instanceParamBuilder = new System.Text.StringBuilder();
                if (dicOtherParams.Count > 0)
                {
                    foreach (string key in dicOtherParams.Keys)
                    {
                        instanceParamBuilder.Append(string.Format("&{0}={1}", key, dicOtherParams[key]));
                    }
                }

                startActivity = workflow.GetActivityByCode(workflow.StartActivityCode) as ClientActivity;
                if (!string.IsNullOrEmpty(SheetCode))
                {
                    startSheet = this.Engine.BizSheetManager.GetBizSheetByCode(SheetCode);
                }
                if (startSheet == null)
                {
                    if (!string.IsNullOrEmpty(startActivity.SheetCode))
                    {
                        startSheet = this.Engine.BizSheetManager.GetBizSheetByCode(startActivity.SheetCode);
                    }
                    else
                    {
                        BizSheet[] sheets = this.Engine.BizSheetManager.GetBizSheetBySchemaCode(workflow.BizObjectSchemaCode);
                        if (sheets != null && sheets.Length > 0)
                        {
                            startSheet = sheets[0];
                        }
                    }
                }

                if (workflow.StartWithSheet &&
                    startActivity != null &&
                    startSheet != null)
                {
                    string url = this.GetSheetBaseUrl(
                        SheetMode.Originate,
                        IsMobile,
                        startSheet);
                    url = url +
                          SheetEnviroment.Param_Mode + "=" + SheetMode.Originate + "&" +
                          Param_WorkflowCode + "=" + System.Web.HttpUtility.UrlEncode(workflow.WorkflowCode) + "&" +
                          Param_WorkflowVersion + "=" + workflow.WorkflowVersion +
                          //(string.IsNullOrEmpty(SheetCode)?"":("&"+Param_SheetCode+"="+SheetCode))+
                          (instanceParamBuilder.Length == 0 ? string.Empty : ("&" + instanceParamBuilder.ToString()));
                    //URL
                    result.Message = url;
                }
                else
                {
                    // 发起流程
                    string instanceId = Guid.NewGuid().ToString().ToLower();
                    string workItemId = null;
                    string error      = null;
                    OThinker.H3.DataModel.BizObject bo = new DataModel.BizObject(this.UserValidator.Engine, schema, this.UserValidator.UserID);
                    bo.Create();

                    if (!SheetUtility.OriginateInstance(
                            this.Engine,
                            bo.ObjectID,
                            workflow,
                            schema,
                            ref instanceId,
                            this.UserValidator.UserID,
                            null,
                            null,
                            OThinker.H3.Instance.PriorityType.Unspecified,
                            null,
                            null,
                            null,
                            ref workItemId,
                            ref error, false))
                    {
                        result.Message = error;
                    }
                    string startInstanceUrl = this.GetInstanceUrl(instanceId, workItemId);
                    startInstanceUrl += (instanceParamBuilder.Length == 0 ? null : ("&" + instanceParamBuilder.ToString()));
                    result.Message    = startInstanceUrl;
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            result.Success = true;
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #20
0
 private void OpenSearchCollection(object sender, RoutedEventArgs e)
 {
     SheetUtility.OpenSearchCollectionPage();
 }
예제 #21
0
 private void Close(object sender, RoutedEventArgs e)
 {
     SheetUtility.CloseAddAPlaylistPage();
 }
예제 #22
0
        /// <summary>
        /// 获取联动规则的数据,数据源来自 BizBus
        /// </summary>
        protected void GetLinkageData()
        {
            string targetId           = Request["TargetID"];
            string schemaCode         = Request["SchemaCode"];
            string filterMethod       = Request["FilterMethod"];
            string queryCode          = Request["QueryCode"];
            string queryPropertyName  = Request["QueryPropertyName"];
            string queryPropertyValue = Request["QueryPropertyValue"];
            string textDataField      = Request["TextDataField"];
            string valueDataField     = Request["ValueDataField"];

            // 获取查询对象
            //BizQuery query = OThinker.H3.WorkSheet.AppUtility.Engine.BizBus.GetBizQuery(schemaCode, queryCode);
            DataModel.BizQuery query = AppUtility.Engine.BizObjectManager.GetBizQuery(queryCode);
            // 构造查询条件
            OThinker.H3.BizBus.Filter.Filter filter = new BizBus.Filter.Filter();
            OThinker.H3.BizBus.Filter.And    and    = new And();
            filter.Matcher = and;
            ItemMatcher propertyMatcher = null;

            if (query.QueryItems != null)
            {
                string[] values = queryPropertyValue.Split(new string[] { "," }, StringSplitOptions.None);
                int      i      = 0;
                foreach (DataModel.BizQueryItem queryItem in query.QueryItems)
                { // 增加系统参数条件
                    if (queryItem.FilterType == DataModel.FilterType.SystemParam)
                    {
                        propertyMatcher = new OThinker.H3.BizBus.Filter.ItemMatcher(queryItem.PropertyName,
                                                                                    OThinker.Data.ComparisonOperatorType.Equal,
                                                                                    SheetUtility.GetSystemParamValue(UserValidatorFactory.CurrentUser, queryItem.SelectedValues));
                        and.Add(propertyMatcher);
                        continue;
                    }
                    else if (values.Length > 1)
                    {
                        if (values.Length > i)
                        {
                            propertyMatcher = new OThinker.H3.BizBus.Filter.ItemMatcher(queryItem.PropertyName,
                                                                                        queryItem.FilterType == DataModel.FilterType.Contains ? OThinker.Data.ComparisonOperatorType.Contain : OThinker.Data.ComparisonOperatorType.Equal,
                                                                                        values[i]);
                            and.Add(propertyMatcher);
                        }
                    }
                    else if (queryItem.PropertyName == queryPropertyName)
                    {
                        propertyMatcher = new OThinker.H3.BizBus.Filter.ItemMatcher(queryPropertyName,
                                                                                    queryItem.FilterType == DataModel.FilterType.Contains ? OThinker.Data.ComparisonOperatorType.Contain : OThinker.Data.ComparisonOperatorType.Equal,
                                                                                    queryPropertyValue);
                        and.Add(propertyMatcher);
                    }
                    i++;
                }
            }
            DataModel.BizObjectSchema   schema      = AppUtility.Engine.BizObjectManager.GetPublishedSchema(schemaCode);
            Dictionary <string, string> SelectItems = new Dictionary <string, string>();

            if (schema != null)
            {
                // 调用查询获取数据源
                //OThinker.H3.DataModel.BizObject[] objs = schema.GetList(OThinker.H3.WorkSheet.AppUtility.Engine.BizBus,
                //    this.UserValidator.UserID,
                //    filterMethod,
                //    filter);
                DataModel.BizObject[] objs = schema.GetList(
                    AppUtility.Engine.Organization,
                    AppUtility.Engine.MetadataRepository,
                    AppUtility.Engine.BizObjectManager,
                    UserValidatorFactory.CurrentUser != null ? UserValidatorFactory.CurrentUser.UserID : string.Empty,
                    filterMethod,
                    filter);

                DataTable dtSource = DataModel.BizObjectUtility.ToTable(schema, objs);
                foreach (DataRow row in dtSource.Rows)
                {
                    SelectItems.Add(row[valueDataField] + string.Empty, row[textDataField] + string.Empty);
                }
            }

            Response.Clear();
            Response.Write(JSSerializer.Serialize(SelectItems));
            Response.Buffer = true;
        }
예제 #23
0
 private void OpenQueue(object sender, RoutedEventArgs e)
 {
     SheetUtility.OpenNowPlaying();
 }
예제 #24
0
 private void AddANewPlaylist_OnClick(object sender, RoutedEventArgs e)
 {
     SheetUtility.OpenAddAPlaylistPage();
 }
예제 #25
0
 private void ColorListViewClicked(object sender, ItemClickEventArgs e)
 {
     _colorPicker.ChangeColor(e.ClickedItem as ColorName);
     SheetUtility.CloseColorViewPage();
 }
예제 #26
0
 void HardwareButtonsOnBackPressedForVideoPage(object sender, BackRequestedEventArgs e)
 {
     SheetUtility.CloseVideoPage();
 }
예제 #27
0
        async void StartControlForPlayback(VideoModel videoModel)
        {
            try
            {
                if (videoModel.IsWebVideo)
                {
                    await DispatcherHelper.RunAsync(() =>
                    {
                        Player.Source = new Uri(videoModel.Url);
                        Player.Play();
                    });
                }

                else if (!videoModel.IsWebVideo)
                {
                    try
                    {
                        var file = await InitializeFromFilePath(videoModel.Url);

                        IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read);

                        Player.SetSource(stream, file.ContentType);
                        Player.Play();
                    }
                    catch
                    {
                        await DispatcherHelper.RunAsync(async() =>
                        {
                            var file = await InitializeFromFilePath(videoModel.Url);
                            IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read);
                            Player.SetSource(stream, file.ContentType);
                            Player.Play();
                        });
                    }
                }

                else
                {
                    try
                    {
                        progressRing.IsActive = false;
                        MessageHelpers.ShowError(Core.StringMessage.SomethinWentWrong, "Error");
                        SheetUtility.CloseVideoPage();
                    }
                    catch
                    {
                        await DispatcherHelper.RunAsync(() =>
                        {
                            SheetUtility.CloseVideoPage();
                        });
                    }
                }
            }
            catch (Exception)
            {
                try
                {
                    progressRing.IsActive = false;
                    MessageHelpers.ShowError(Core.StringMessage.SomethinWentWrong, "Error");
                    SheetUtility.CloseVideoPage();
                }

                catch
                {
                    await DispatcherHelper.RunAsync(() =>
                    {
                        SheetUtility.CloseVideoPage();
                    });
                }
            }
        }
예제 #28
0
        async void ImportMusic(bool importVideo = false)
        {
            ScreenTimeoutHelper.PreventTimeout();

            Bar.IsIndeterminate = true;

            Message.Text = "Collecting information about music.";

            LocalMusicHelper localMusicHelper = new LocalMusicHelper();
            var localMusic = await localMusicHelper.GetFilesInMusicAsync();

            var failedCount = 0;

            Bar.IsIndeterminate = false;

            App.Locator.CollectionService.Songs.SuppressEvents   = true;
            App.Locator.CollectionService.Artists.SuppressEvents = true;
            App.Locator.CollectionService.Albums.SuppressEvents  = true;

            await Task.Delay(10);

            Message.Text = "Working on music files.";

            Bar.Maximum = localMusic.Count;

            App.Locator.SqlService.BeginTransaction();
            for (var i = 0; i < localMusic.Count; i++)
            {
                Bar.Value = i + 1;
                try
                {
                    await localMusicHelper.SaveTrackAsync(localMusic[i]);
                }
                catch
                {
                    failedCount++;
                }
            }
            App.Locator.SqlService.Commit();

            App.Locator.CollectionService.Songs.Reset();
            App.Locator.CollectionService.Artists.Reset();
            App.Locator.CollectionService.Albums.Reset();

            if (importVideo)
            {
                if (App.Locator.Setting.SpotifyArtworkSync)
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsyncFromSpotify();
                }
                else
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsync();
                }
                await DownloadArtworks.DownloadAlbumsArtworkAsync();

                ImportVideos();
            }
            else
            {
                if (App.Locator.Setting.SpotifyArtworkSync)
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsyncFromSpotify();
                }
                else
                {
                    await DownloadArtworks.DownloadArtistsArtworkAsync();
                } await DownloadArtworks.DownloadAlbumsArtworkAsync();

                ScreenTimeoutHelper.AllowTimeout();
                SheetUtility.CloseImportRefreshPage();
            }

            App.Locator.HomePage.SongColletionChanged();
        }
예제 #29
0
 private void Cancel(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     SheetUtility.CloseEditTrackMetadataPage();
 }
예제 #30
0
 private static void HardwareButtons_BackPressed(object sender, BackRequestedEventArgs e)
 {
     UiBlockerUtility.Unblock();
     App.SupressBackEvent -= HardwareButtons_BackPressed;
     SheetUtility.CloseAddToPlaylistPage();
 }