コード例 #1
0
        public ActionResult Details(int id)
        {
            ViewDetails perfume = (from p in db.perfume
                                   join b in db.brand on p.id_brand equals b.id
                                   where p.id == id
                                   select new ViewDetails()
            {
                id = p.id,
                image = p.image,

                name = p.name,
                brand = b.name,
                origin = b.origin,
                detail = p.details,
                price = p.price,
                price_sale = p.price - p.saleoff * p.price / 100
            }).FirstOrDefault();

            var gallery = (from i in db.image where i.id_perfume == id select i).ToList();

            var comments = (from c in db.feedback where c.id_perfume == id select c).ToList();
            //var comments = db.feedback.OrderByDescending(c => c.id).ToList().Where(c => c.id_perfume == id);
            PerfumeAndComment pac = new PerfumeAndComment();

            pac.img_gallery = gallery;
            pac.perfumeView = perfume;
            pac.comments    = comments;

            return(View(pac));
            //return View(perfume);
        }
コード例 #2
0
 private void Remove()
 {
     try
     {
         ErrorMessage = WarningMessage = InfoMessage = string.Empty;
         var studentObj = new Student
         {
             RollNo         = _rollNo,
             StudentName    = _studentname,
             BranchName     = _branchName,
             RegistrationID = _registrationId
         };
         var Student = ViewDetails.GetStudentDetails(RollNo).FirstOrDefault();
         if (RemoveDetails.RemoveStudentDetails(Student))
         {
             InfoMessage = studentObj.ToString();
             GetAllStudents();
         }
         else
         {
             WarningMessage = "Data is already removed from database.";
         }
     }
     catch (Exception e)
     {
         ErrorMessage = e.Message.ToString();
         logmsg.Log(LogMessage.LogType.Error, e.ToString());
     }
 }
コード例 #3
0
        // GET: perfumes_backend/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewDetails perfume = (from p in db.perfume
                                   join b in db.brand on p.id_brand equals b.id
                                   where p.id == id
                                   select new ViewDetails()
            {
                id = p.id,
                image = p.image,

                name = p.name,
                brand = b.name,
                origin = b.origin,
                detail = p.details,
                price = p.price,
                quantity = p.quantity,
                rating = p.rating,
                saleoff = p.saleoff,
                status = p.status,
                price_sale = p.price - p.saleoff * p.price / 100
            }).FirstOrDefault();

            if (perfume == null)
            {
                return(HttpNotFound());
            }
            return(View(perfume));
        }
コード例 #4
0
        private void OnOpenRegionView(ViewDetails details)
        {
            if (viewManager.ActivateView(details))
            {
                return;
            }

            viewManager.OpenView(details);
        }
コード例 #5
0
        public ViewResult DataFriend(int?id)
        {
            ViewDetails details = new ViewDetails();

            details.Friend = friendStore.friendGetData(id ?? 1);
            details.Title  = "Data from DataFriend<ViewDetails>";

            return(View(details));
        }
        protected void ShowViewController(MvxViewModelRequest request, int cacheKey = -1)
        {
            ViewDetails viewDetails = IdentifyView(request);

            if (viewDetails.category == ViewCategory.Fragment)
            {
                ShowFragment(request, cacheKey);
            }
            else
            {
                ShowActivity(request, cacheKey);
            }
        }
コード例 #7
0
        private void DoubleClick([NotNull] object sender, [NotNull] MouseButtonEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var command = new ViewDetails();
            var context = GetContext();

            if (command.CanExecute(context))
            {
                AppHost.Usage.ReportCommand(command, context);
                command.Execute(context);
            }
        }
コード例 #8
0
 private void root_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     if (Parent.EditEnabled)
     {
         // Get Point relative to this Control (relative position of the cursor on the control)
         controlPoint = e.GetPosition(this);
         var element = sender as FrameworkElement;
         element.CaptureMouse();
         StartDrag();
         e.Handled = true;
     }
     else
     {
         ViewDetails?.Invoke(this);
     }
 }
コード例 #9
0
 private void GetAllStudents()
 {
     try
     {
         ErrorMessage = WarningMessage = InfoMessage = string.Empty;
         Students     = ViewDetails.GetAllStudentsDetails();
         if (Students.Count < 1)
         {
             WarningMessage = "No data found.";
         }
     }
     catch (Exception e)
     {
         ErrorMessage = e.Message.ToString();
         logmsg.Log(Logger.LogMessage.LogType.Error, e.ToString());
     }
 }
コード例 #10
0
 private void GetStudent()
 {
     try
     {
         ErrorMessage = WarningMessage = InfoMessage = string.Empty;
         Students     = ViewDetails.GetStudentDetails(RollNo);
         if (Students.Count < 1)
         {
             WarningMessage = "No data found with selected roll number.";
         }
     }
     catch (Exception e)
     {
         ErrorMessage = e.Message.ToString();
         logmsg.Log(LogMessage.LogType.Error, e.ToString());
     }
 }
コード例 #11
0
        private MenuItem CreateItem(ViewDetails details)
        {
            var result = new MenuItem
            {
                Header           = details.Name,
                Command          = OpenRegionView,
                CommandParameter = details
            };

            if (details.ImageUri != null)
            {
                var image = new Image
                {
                    Source = details.ImageUri.CreateSource(),
                    Width  = 16,
                    Height = 16
                };
                result.Icon = image;
            }
            return(result);
        }
コード例 #12
0
        public ActionResult Details(int id, PerfumeAndComment model)
        {
            var         user    = db.AspNetUsers.Find(HttpContext.User.Identity.GetUserId());
            ViewDetails perfume = (from p in db.perfume
                                   join b in db.brand on p.id_brand equals b.id
                                   where p.id == id
                                   select new ViewDetails()
            {
                id = p.id,
                image = p.image,
                name = p.name,
                brand = b.name,
                origin = b.origin,
                detail = p.details,
                price = p.price,
                price_sale = p.price - p.saleoff * p.price / 100
            }).FirstOrDefault();
            var gallery = (from i in db.image where i.id_perfume == id select i).ToList();

            var comments = (from c in db.feedback where c.id_perfume == id select c).ToList();

            model.img_gallery = gallery;
            model.perfumeView = perfume;
            model.comments    = comments;
            string query = "Insert into dbo.feedback(subject,message,email,hoten,phone,id_perfume) values('comment','" + model.newcomment.message + "','" + user.Email + "','" + user.FullName + "','" + user.PhoneNumber + "'," + id + ")";

            db.Database.ExecuteSqlCommand(query);

            //model.subject = "comment";
            //model.email = user.Email;
            //model.hoten = user.FullName;
            //model.phone = user.PhoneNumber;
            //model.id_perfume = id;
            //db.feedback.Add(model);
            //return View(model);
            ViewBag.number = "100";
            return(RedirectToAction("Details"));
        }
コード例 #13
0
        public ViewDetails GetViewDetails(int ProductId, int UserId)
        {
            ViewDetails vd = new ViewDetails();

            vd.ProductId = ProductId;
            vd.UserId    = UserId;
            var           query1 = from m in Db.ProductVieweds where m.Product.Id == ProductId select m;
            var           query2 = from m in query1 where m.User.Id == UserId select m;
            ViewedProduct view   = null;

            foreach (var it in query2)
            {
                view = it;
            }

            if (view != null)
            {
                vd.ViewId         = view.Id;
                vd.CurrentEpisode = view.Current;
            }
            vd.MaxEpisode = 0;
            vd.AvatarURI  = view.Product.AvatarURI;
            vd.Year       = 0;
            vd.Names      = new List <string>();
            vd.Names.Add(view.Product.Name);
            vd.FromURI       = null;
            vd.PosterFromURI = null;

            if (view != null)
            {
                vd.Reminder  = view.Reminder;
                vd.Condition = view.Condition;
                vd.Star      = view.Star;
            }

            foreach (var it in view.Product.MetaData)
            {
                switch (it.Type)
                {
                case TypeOfMetaProduct.NumberOfEpisode:
                    vd.MaxEpisode = it.Int;
                    break;

                case TypeOfMetaProduct.Begin:
                    vd.Year = it.Date.Year;
                    break;

                case TypeOfMetaProduct.Name:
                    vd.Names.Add(it.String);
                    break;

                case TypeOfMetaProduct.FromURI:
                    vd.FromURI = it.String;
                    break;

                case TypeOfMetaProduct.PosterFromURI:
                    vd.PosterFromURI = it.String;
                    break;
                }
            }
            return(vd);
        }
コード例 #14
0
 public void ViewDetails_Click(object sender, EventArgs e)
 {
     viewDialog = new ViewDetails();
     viewDialog.DisplayDetails(detailElement);
     if (sender is Button)
     {
         viewDialog.ShowDialog();
     }
 }
コード例 #15
0
        public ActionResult Details(int id)
        {
            ViewDetails perfume = (from p in db.perfume
                                   join b in db.brand on p.id_brand equals b.id
                                   where p.id == id
                                   select new ViewDetails()
            {
                id = p.id,
                image = p.image,

                name = p.name,
                brand = b.name,
                origin = b.origin,
                detail = p.details,
                price = p.price,
                status = p.status,
                price_sale = p.price - p.saleoff * p.price / 100
            }).FirstOrDefault();

            var gallery = (from i in db.image where i.id_perfume == id select i).ToList();

            var comments = (from c in db.feedback where c.id_perfume == id select c).ToList();

            var correl = (from c in db.ItemCorrel where c.product_1 == id || c.product_2 == id orderby c.correl descending select c).Take(5).ToArray();
            var it     = new List <ViewItem>();

            foreach (var i in correl)
            {
                if (i.product_1 != id)
                {
                    var itm = (from p in db.perfume
                               where p.id == i.product_1
                               select new ViewItem()
                    {
                        id = p.id,
                        image = p.image,
                        name = p.name,
                        price = p.price
                    }).FirstOrDefault();
                    if (itm != null)
                    {
                        it.Add(itm);
                    }
                }
                else if (i.product_2 != id)
                {
                    var itm = (from p in db.perfume
                               where p.id == i.product_2
                               select new ViewItem()
                    {
                        id = p.id,
                        image = p.image,
                        name = p.name,
                        price = p.price
                    }).FirstOrDefault();
                    if (itm != null)
                    {
                        it.Add(itm);
                    }
                }
            }
            it.OrderByDescending(i => i.correl).ToArray();

            var br     = (from i in db.perfume where i.id == id select i).FirstOrDefault();
            var br_per = (from p in db.perfume where p.id_brand == br.id_brand select p).ToList();



            PerfumeAndComment pac = new PerfumeAndComment();

            pac.img_gallery = gallery;
            pac.perfumeView = perfume;
            pac.comments    = comments;
            pac.item_correl = new List <ViewItem>();
            pac.item_correl = it;
            pac.it_brand    = new List <perfume>();
            pac.it_brand    = br_per;
            if (HttpContext.User.Identity != null)
            {
                var user_id     = HttpContext.User.Identity.GetUserId();
                var user_rating = (from p in db.UserRating where p.user_id == user_id && p.product_id == id select p.rating).FirstOrDefault();
                pac.your_rating = user_rating;
            }

            var all_rating = (from i in db.UserRating where i.product_id == id select i.rating).ToList();

            pac.rates = new ProductRatings();
            if (all_rating.Count() > 0)
            {
                pac.rates.all = all_rating.Count();
                foreach (var rating in all_rating)
                {
                    if (rating == 5)
                    {
                        pac.rates.five++;
                    }
                    if (rating == 4.5)
                    {
                        pac.rates.four_half++;
                    }
                    if (rating == 4)
                    {
                        pac.rates.four++;
                    }
                    if (rating == 3.5)
                    {
                        pac.rates.three_half++;
                    }
                    if (rating == 3)
                    {
                        pac.rates.three++;
                    }
                    if (rating == 2.5)
                    {
                        pac.rates.two_half++;
                    }
                    if (rating == 1)
                    {
                        pac.rates.two++;
                    }
                    if (rating == 1.5)
                    {
                        pac.rates.one_half++;
                    }
                    if (rating == 1)
                    {
                        pac.rates.one++;
                    }
                    if (rating == 0.5)
                    {
                        pac.rates.half++;
                    }
                }
            }
            else
            {
                pac.rates.all = 1;
            }

            return(View(pac));
        }
コード例 #16
0
 private void MenuItem_ViewDetails_Click(object sender, RoutedEventArgs e)
 {
     ViewDetails?.Invoke(this);
 }
コード例 #17
0
        /// <summary>
        /// Updates the view and shows a new navigation according to
        /// SettingsManager.CurrentSelectedNavigation.
        /// Assumes that the navigation pane already is up-to-date.
        /// </summary>
        public void SwitchNavigation()
        {
            FrameworkElement content = null;
            FrameworkElement info = null;
            ViewDetailsConfig vdc = null;
            string header, subtitle, tracks, time;
            header = subtitle = tracks = time = null;

            RefreshDetails();

            switch (SettingsManager.CurrentSelectedNavigation)
            {
                case "Now playing":
                case "Music":
                case "Playlists":
                    return;

                case "Video":
                    if (VideoContainer == null)
                        InitVideo();
                    content = VideoContainer;
                    header = SettingsManager.CurrentTrack == null ? U.T("PlaybackEmpty") : SettingsManager.CurrentTrack.Title;
                    subtitle = SettingsManager.CurrentTrack == null ? "" : SettingsManager.CurrentTrack.Artist;
                    break;

                case "Visualizer":
                    if (VisualizerContainer == null)
                    {
                        VisualizerContainer = new Platform.Windows7.GUI.Controls.Visualizer();
                        Grid.SetRow(VisualizerContainer, 1);
                        ContentContainer.Children.Add(VisualizerContainer);
                        UpdateSelectedVisualizer();
                    }
                    content = VisualizerContainer;
                    info = VisualizerList;
                    header = VisualizerContainer.Title;
                    subtitle = VisualizerContainer.Description;
                    break;

                case "YouTube":
                    vdc = SettingsManager.YouTubeListConfig;
                    if (YouTubeTracks == null)
                        YouTubeTracks = (YouTubeTracks)InitTrackList(new YouTubeTracks(), vdc);
                    content = YouTubeTracks;
                    header = U.T("NavigationYouTubeTitle");
                    subtitle = U.T("NavigationYouTubeDescription");
                    break;

                case "SoundCloud":
                    vdc = SettingsManager.SoundCloudListConfig;
                    if (SoundCloudTracks == null)
                        SoundCloudTracks = (SoundCloudTracks)InitTrackList(new SoundCloudTracks(), vdc);
                    content = SoundCloudTracks;
                    header = U.T("NavigationSoundCloudTitle");
                    subtitle = U.T("NavigationSoundCloudDescription");
                    break;

                case "Jamendo":
                    vdc = SettingsManager.JamendoListConfig;
                    if (JamendoTracks == null)
                        JamendoTracks = (JamendoTracks)InitTrackList(new JamendoTracks(), vdc);
                    content = JamendoTracks;
                    header = U.T("NavigationJamendoTitle");
                    subtitle = U.T("NavigationJamendoDescription");
                    break;

                case "Library":
                case "Files":
                    vdc = SettingsManager.FileListConfig;
                    if (FileTracks == null)
                        FileTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.FileTracks);
                    content = FileTracks;
                    header = U.T("NavigationFilesTitle");
                    time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)LibraryTime));
                    tracks = String.Format(U.T("HeaderTracks"), SettingsManager.FileTracks.Count);
                    break;

                case "Radio":
                    vdc = SettingsManager.RadioListConfig;
                    if (RadioTracks == null)
                        RadioTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.RadioTracks);
                    content = RadioTracks;
                    header = U.T("NavigationRadioTitle");
                    time = "";
                    tracks = String.Format(U.T("HeaderStations"), SettingsManager.RadioTracks.Count);
                    break;

                case "Disc":
                    vdc = SettingsManager.DiscListConfig;
                    if (DiscTracks == null)
                        DiscTracks = InitTrackList(new ViewDetails(), vdc);
                    content = DiscTracks;
                    header = U.T("NavigationDiscTitle");
                    time = U.TimeSpanToLongString(new TimeSpan(0, 0, 0));
                    tracks = String.Format(U.T("HeaderTracks"), 0);
                    break;

                case "History":
                    vdc = SettingsManager.HistoryListConfig;
                    if (HistoryTracks == null)
                        HistoryTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.HistoryTracks);
                    content = HistoryTracks;
                    header = U.T("NavigationHistoryTitle");
                    time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)HistoryTime));
                    tracks = String.Format(U.T("HeaderTracks"), SettingsManager.HistoryTracks.Count);
                    break;

                case "Queue":
                    vdc = SettingsManager.QueueListConfig;
                    if (QueueTracks == null)
                        QueueTracks = InitTrackList(new ViewDetails(), vdc, SettingsManager.QueueTracks);
                    content = QueueTracks;
                    header = U.T("NavigationQueueTitle");
                    time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)QueueTime));
                    tracks = String.Format(U.T("HeaderTracks"), SettingsManager.QueueTracks.Count);
                    break;

                // playlist
                default:
                    foreach (DictionaryEntry pltl in PlaylistTrackLists)
                    {
                        PlaylistData playlist = PlaylistManager.FindPlaylist((string)pltl.Key);
                        if (playlist != null && SettingsManager.CurrentSelectedNavigation == "Playlist:"+playlist.Name)
                        {
                            vdc = playlist.ListConfig;
                            if (pltl.Value == null)
                                PlaylistTrackLists[pltl.Key] = InitTrackList(new ViewDetails(), vdc, playlist.Tracks);
                            content = (ViewDetails)PlaylistTrackLists[pltl.Key];
                            header = U.T("NavigationPlaylistTitle") + " '" + playlist.Name + "'";
                            time = U.TimeSpanToLongString(new TimeSpan(0, 0, (int)playlist.Time));
                            tracks = String.Format(U.T("HeaderTracks"), playlist.Tracks.Count);
                            break;
                        }
                    }
                    break;
            }

            // switch back from ControlPanel if needed

            if (MainContainer.Children.Contains(ControlPanel))
                MainContainer.Children.Remove(ControlPanel);

            PlaybackControls.Search.Box.IsEnabled = true;
            MusicPanel.Visibility = System.Windows.Visibility.Visible;

            // set visibility of content elements
            var contentElements = new FrameworkElement[] { FileTracks, HistoryTracks, QueueTracks,
                RadioTracks, SoundCloudTracks, JamendoTracks, YouTubeTracks, VideoContainer, VisualizerContainer };
            foreach (FrameworkElement e in contentElements)
                if (e != null)
                    e.Visibility = e == content ? Visibility.Visible : Visibility.Collapsed;
            foreach (DictionaryEntry pltl in PlaylistTrackLists)
                if (pltl.Value != null)
                    ((ViewDetails)pltl.Value).Visibility = ((ViewDetails)pltl.Value) == content ? Visibility.Visible : Visibility.Collapsed;

            // set visibility of info elements
            var infoElements = new FrameworkElement[] { VisualizerList };
            foreach (FrameworkElement e in infoElements)
                e.Visibility = e == info ? Visibility.Visible : Visibility.Collapsed;

            // set info text
            InfoPaneTitle.Text = header;
            if (subtitle != null)
            {
                InfoPaneDuration.Visibility = Visibility.Collapsed;
                InfoPaneTracks.Visibility = Visibility.Collapsed;
                InfoPaneSubtitle.Visibility = Visibility.Visible;
                InfoPaneSubtitle.Text = subtitle;
            }
            else
            {
                InfoPaneDuration.Visibility = Visibility.Visible;
                InfoPaneTracks.Visibility = Visibility.Visible;
                InfoPaneSubtitle.Visibility = Visibility.Collapsed;
                InfoPaneDuration.Text = time;
                InfoPaneTracks.Text = tracks;
            }

            // set search text
            if (vdc == null || vdc.Filter == null || vdc.Filter == "" || vdc.Filter == U.T("PlaybackSearch"))
                PlaybackControls.Search.IsActive = false;
            else
            {
                PlaybackControls.Search.IsActive = true;
                PlaybackControls.Search.IsConnected = false;
                PlaybackControls.Search.Text = vdc.Filter;
                PlaybackControls.Search.IsConnected = true;
            }

            RefreshViewButton();
        }
コード例 #18
0
        /// <summary>
        /// Reapply the sorting on a tracklist
        /// </summary>
        /// <param name="tl">The tracklist to re-sort</param>
        /// <param name="paths">A list of the paths that was changed</param>
        private void ResortTracklist(ViewDetails tl, List<string> paths)
        {
            if (tl == null) return;

            bool resort = false;
            foreach (TrackData t in SettingsManager.FileTracks)
            {
                if (paths.Contains(t.Path))
                {
                    resort = true;
                    break;
                }
            }
            if (resort)
            {
                if (tl.Items.SortDescriptions.Count > 0)
                {
                    SortDescription sd = tl.Items.SortDescriptions[0];
                    tl.Items.SortDescriptions.Remove(sd);
                    tl.Items.SortDescriptions.Insert(0, sd);
                    tl.UpdateScrollPosition();
                }
            }
        }
コード例 #19
0
        /// <summary>
        /// Initializes a track list control.
        /// </summary>
        /// <param name="list">The track list to initialize</param>
        /// <param name="config">The configuration for the list</param>
        /// <param name="tracks">The track collection</param>
        /// <returns>The initialized list</returns>
        private ViewDetails InitTrackList(ViewDetails list, ViewDetailsConfig config, ObservableCollection<TrackData> tracks = null)
        {
            list.Config = config;
            list.ContextMenu = listMenu;
            list.Visibility = Visibility.Collapsed;
            list.BorderThickness = new Thickness(0);
            list.Config.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            list.MouseDoubleClick += new MouseButtonEventHandler(TrackList_MouseDoubleClick);
            list.SelectionChanged += new SelectionChangedEventHandler(TrackList_SelectionChanged);
            list.ContextMenuOpening += new ContextMenuEventHandler(TrackList_ContextMenuOpening);
            list.GotFocus += new RoutedEventHandler(TrackList_GotFocus);
            list.MoveItem += new MoveItemEventHandler(TrackList_MoveItem);
            list.SelectIndices(config.SelectedIndices);

            if (config == SettingsManager.SoundCloudListConfig)
            {
                SoundCloudTracks sct = list as SoundCloudTracks;
                if (sct != null)
                    sct.Search(config.Filter);
                list.Primary = "Title";
                list.Secondary1 = "Artist";
                list.Secondary2 = "Genre";
                list.Tertiary1 = "Length";
                list.Tertiary2 = "PlayCount";
                list.Tertiary1Converter = "Duration";
            }
            else if (config == SettingsManager.YouTubeListConfig)
            {
                YouTubeTracks ytt = list as YouTubeTracks;
                if (ytt != null)
                    ytt.Search(config.Filter);
                list.Primary = "Title";
                list.Secondary1 = "Artist";
                list.Secondary2 = "Views";
                list.Tertiary1 = "Length";
                list.Tertiary2 = "Path";
                list.Secondary2Format = U.T("ColumnViews", "Format");
                list.Secondary2Converter = "Number";
                list.Tertiary1Converter = "Duration";
            }
            else if (config == SettingsManager.JamendoListConfig)
            {
                JamendoTracks jt = list as JamendoTracks;
                if (jt != null)
                    jt.Search(config.Filter);
                list.Primary = "Title";
                list.Secondary1 = "Artist";
                list.Secondary2 = "Album";
                list.Tertiary1 = "Genre";
                list.Tertiary2 = "Length";
                list.Tertiary2Converter = "Duration";
            }
            else
            {
                if (config == SettingsManager.RadioListConfig)
                {
                    list.Primary = "Title";
                    list.Secondary1 = "Genre";
                    list.Secondary2 = "URL";
                    list.Tertiary1 = "PlayCount";
                    list.Tertiary2 = "LastPlayed";
                    list.Tertiary2Converter = "DateTime";
                }
                else
                {
                    list.Primary = "Title";
                    list.Secondary1 = "Artist";
                    list.Secondary2 = "Album";
                    list.Tertiary1 = "Genre";
                    list.Tertiary2 = "Length";
                    list.Tertiary2Converter = "Duration";
                }

                list.FilterMatch = TrackList_SearchMatch;
                list.ItemsSource = tracks;
                list.FilesDropped += new FileDropEventHandler(TrackList_FilesDropped);
                list.PropertyChanged += new PropertyChangedEventHandler(TrackList_PropertyChanged);
                if (tracks != null)
                    tracks.CollectionChanged +=
                        new NotifyCollectionChangedEventHandler(list.ItemsSource_CollectionChanged);
            }

            Grid.SetRow(list, 1);
            ContentContainer.Children.Add(list);

            return list;
        }
コード例 #20
0
ファイル: MainWindow.xaml.cs プロジェクト: uQr/stoffi
        /// <summary>
        /// Creates a playlist track list and navigation items
        /// </summary>
        /// <param name="playlist">The data for the playlist to create</param>
        /// <param name="select">Whether to select the playlist after it has been created</param>
        private void CreatePlaylist(PlaylistData playlist, bool select = true)
        {
            Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
            {
                // create track list
                ViewDetails vd = new ViewDetails();
                Grid.SetRow(vd, 1);
                ContentContainer.Children.Add(vd);
                vd.ItemsSource = playlist.Tracks;
                playlist.Tracks.CollectionChanged +=
                    new NotifyCollectionChangedEventHandler(vd.ItemsSource_CollectionChanged);
                playlist.Tracks.CollectionChanged +=
                    new NotifyCollectionChangedEventHandler(PlaylistTracks_CollectionChanged);
                if (playlist.ListConfig == null)
                {
                    ViewDetailsConfig vdc = SettingsManager.CreateListConfig();
                    SettingsManager.InitViewDetailsConfig(vdc);
                    vdc.HasNumber = true;
                    vdc.Sorts.Add("asc:Title");
                    vdc.Sorts.Add("asc:Track");
                    vdc.Sorts.Add("asc:Album");
                    vdc.Sorts.Add("asc:Artist");

                    if (SettingsManager.SearchPolicy == SearchPolicy.Global)
                        vdc.Filter = SettingsManager.FileListConfig.Filter;
                    else if (SettingsManager.SearchPolicy == SearchPolicy.Partial && SettingsManager.Playlists.Count > 1)
                        vdc.Filter = SettingsManager.Playlists[0].ListConfig.Filter;

                    playlist.ListConfig = vdc;
                }
                if (PlaylistTrackLists.ContainsKey(playlist.Name))
                    PlaylistTrackLists.Remove(playlist.Name);
                PlaylistTrackLists.Add(playlist.Name, vd);
                vd.ContextMenu = listMenu;
                vd.Visibility = Visibility.Collapsed;
                vd.BorderThickness = new Thickness(0);
                vd.ItemsSource = playlist.Tracks;
                vd.FilterMatch = TrackList_SearchMatch;
                vd.Config = playlist.ListConfig;
                vd.SelectionChanged += new SelectionChangedEventHandler(TrackList_SelectionChanged);
                vd.MouseDoubleClick += new MouseButtonEventHandler(TrackList_MouseDoubleClick);
                vd.ContextMenuOpening += new ContextMenuEventHandler(TrackList_ContextMenuOpening);
                vd.GotFocus += new RoutedEventHandler(TrackList_GotFocus);
                vd.FilesDropped += new FileDropEventHandler(TrackList_FilesDropped);
                vd.MoveItem += new MoveItemEventHandler(TrackList_MoveItem);

                playlist.PropertyChanged += new PropertyChangedEventHandler(Playlist_PropertyChanged);
                vd.Config.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);

                // create the item in the navigation tree
                TreeViewItem item = new TreeViewItem();
                item.Selected += NavigationPane.Playlist_Selected;
                item.Drop += NavigationPane.Playlist_Drop;
                item.KeyDown += NavigationPlaylist_KeyDown;
                item.Tag = playlist.Name;
                item.Padding = new Thickness(8, 0, 0, 0);
                item.HorizontalAlignment = HorizontalAlignment.Stretch;
                item.HorizontalContentAlignment = HorizontalAlignment.Stretch;

                DockPanel dp = new DockPanel();
                dp.LastChildFill = false;
                dp.HorizontalAlignment = HorizontalAlignment.Stretch;

                Image img = new Image();
                img.Source = Utilities.GetIcoImage("pack://application:,,,/Platform/Windows 7/GUI/Images/Icons/DiscAudio.ico", 16, 16);
                img.Width = 16;
                img.Height = 16;
                img.Style = (Style)TryFindResource("HandHover");
                dp.Children.Add(img);

                EditableTextBlock etb = new EditableTextBlock();
                etb.EnteredEditMode += new EventHandler(EditableTextBlock_EnteredEditMode);
                etb.Text = playlist.Name;
                etb.Margin = new Thickness(5, 0, 5, 0);
                etb.Edited += NavigationPane.Playlist_Edited;
                etb.Canceled += NavigationPane.Playlist_Canceled;
                etb.HandHover = true;
                dp.Children.Add(etb);

                Image simg = new Image();
                simg.Source = Utilities.GetIcoImage("pack://application:,,,/Platform/Windows 7/GUI/Images/Icons/Search.ico", 16, 16);
                simg.Width = 16;
                simg.Height = 16;
                simg.Margin = new Thickness(5, 0, 5, 0);
                simg.Visibility = Visibility.Collapsed;
                DockPanel.SetDock(simg, Dock.Right);
                dp.Children.Add(simg);

                item.Header = dp;
                item.ContextMenuOpening += new ContextMenuEventHandler(NavigationPane.Playlist_ContextMenuOpening);
                item.ContextMenuClosing += new ContextMenuEventHandler(NavigationPane.Playlist_ContextMenuClosing);
                item.ContextMenu = NavigationPane.playlistMenu;
                NavigationPane.Playlists.Items.Insert(NavigationPane.Playlists.Items.Count - 1, item);
                if (select)
                    item.Focus();

                // create list context menu items
                MenuItem miAdd = new MenuItem();
                miAdd.Header = playlist.Name;
                miAdd.Click += new RoutedEventHandler(listMenuAddToPlaylist_Click);
                listMenuAddToPlaylist.Visibility = System.Windows.Visibility.Visible;
                listMenuAddToPlaylist.Items.Insert(listMenuAddToPlaylist.Items.Count - 1, miAdd);

                MenuItem miDel = new MenuItem();
                miDel.Header = playlist.Name;
                miDel.Click += new RoutedEventHandler(listMenuRemoveFromPlaylist_Click);
                listMenuRemoveFromPlaylist.Visibility = System.Windows.Visibility.Visible;
                listMenuRemoveFromPlaylist.Items.Add(miDel);

                PlaybackControls.Search.AddPlaylist(playlist);

                NavigationPane.SetSearchIndicator("Playlist:" + playlist.Name, vd.Config);
            }));
        }
コード例 #21
0
 protected virtual void OnViewDetails(ViewDetailsEventArgs e)
 {
     ViewDetails?.Invoke(this, e);
 }
コード例 #22
0
ファイル: DashBoard.cs プロジェクト: utsavjain1408/Senpai
 private void ViewDetailButton_Click(object sender, EventArgs e)
 {
     ViewDetails ob = new ViewDetails(x);
     ob.Show();
 }
コード例 #23
0
        /// <summary>
        /// Initializes the GUI
        /// </summary>
        private void InitGUI()
        {
            // create glass effect
            RefreshGlassEffect();

            #region Events handlers

            NavigationPane.GotFocus += new RoutedEventHandler(NavigationPane_GotFocus);

            SettingsManager.QueueTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(QueueTracks_CollectionChanged);
            SettingsManager.HistoryTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(HistoryTracks_CollectionChanged);
            SettingsManager.FileTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(LibraryTracks_CollectionChanged);
            SettingsManager.RadioTracks.CollectionChanged += new NotifyCollectionChangedEventHandler(RadioTracks_CollectionChanged);
            if (SettingsManager.FileListConfig != null)
                SettingsManager.FileListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.YouTubeListConfig != null)
                SettingsManager.YouTubeListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.SoundCloudListConfig != null)
                SettingsManager.SoundCloudListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.RadioListConfig != null)
                SettingsManager.RadioListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.JamendoListConfig != null)
                SettingsManager.JamendoListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.QueueListConfig != null)
                SettingsManager.QueueListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);
            if (SettingsManager.HistoryListConfig != null)
                SettingsManager.HistoryListConfig.PropertyChanged += new PropertyChangedEventHandler(ViewDetailsConfig_PropertyChanged);

            FilesystemManager.SourceModified += new SourceModifiedEventHandler(FilesystemManager_SourceModified);
            FilesystemManager.TrackModified += new PropertyChangedEventHandler(FilesystemManager_TrackModified);
            FilesystemManager.PathModified += new PathModifiedEventHandler(FilesystemManager_PathModified);
            FilesystemManager.PathRenamed += new RenamedEventHandler(FilesystemManager_PathRenamed);
            FilesystemManager.ProgressChanged += new ProgressChangedEventHandler(FilesystemManager_ProgressChanged);
            FilesystemManager.SourceAdded += new SourcesModifiedEventHandler(FilesystemManager_SourceAdded);
            FilesystemManager.SourceRemoved += new SourcesModifiedEventHandler(FilesystemManager_SourceRemoved);

            MediaManager.TrackSwitched += new TrackSwitchedEventHandler(MediaManager_TrackSwitched);
            MediaManager.LoadedTrack += new LoadedTrackDelegate(MediaManager_LoadedTrack);
            MediaManager.Started += new EventHandler(MediaManager_Started);
            MediaManager.SearchMatch = TrackList_SearchMatch;

            UpgradeManager.Checked += new EventHandler(UpgradeManager_Checked);
            UpgradeManager.ErrorOccured += new Core.ErrorEventHandler(UpgradeManager_ErrorOccured);
            UpgradeManager.ProgressChanged += new ProgressChangedEventHandler(UpgradeManager_ProgressChanged);
            UpgradeManager.Upgraded += new EventHandler(UpgradeManager_Upgraded);
            UpgradeManager.UpgradeFound += new EventHandler(UpgradeManager_UpgradeFound);

            PluginManager.RefreshVisualizerSelector += new EventHandler(PluginManager_RefreshVisualizerSelector);
            PluginManager.Installed += new EventHandler<PluginEventArgs>(PluginManager_Installed);
            PluginManager.Uninstalled += new EventHandler<PluginEventArgs>(PluginManager_Uninstalled);
            PluginManager.Initialize();

            SettingsManager.PropertyChanged += new PropertyChangedWithValuesEventHandler(SettingsManager_PropertyChanged);
            ServiceManager.ModifyTracks += new EventHandler<ModifiedEventArgs>(ServiceManager_ModifyTracks);

            NavigationPane.CreateNewPlaylistETB.EnteredEditMode += new EventHandler(EditableTextBlock_EnteredEditMode);
            SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);

            resortDelay.Interval = new TimeSpan(0, 0, 0, 0, 500);
            resortDelay.Tick += new EventHandler(ResortDelay_Tick);

            sourceModifiedDelay.Tick += new EventHandler(SourceModifiedDelay_Tick);
            sourceModifiedDelay.Interval = new TimeSpan(0, 0, 0, 1, 500);

            #endregion

            #region Tray icon

            // create system tray icon
            trayIcon = (TaskbarIcon)FindResource("NotifyIcon");
            trayIcon.TrayToolTip = new TrayToolTip(this);
            trayIcon.TrayLeftMouseUp += TaskbarClicked;
            trayMenu = new ContextMenu();
            trayMenuShow = new MenuItem();
            trayMenuExit = new MenuItem();
            trayMenuPlay = new MenuItem();
            trayMenuNext = new MenuItem();
            trayMenuPrev = new MenuItem();
            trayMenuShow.Header = U.T("TrayShow");
            trayMenuExit.Header = U.T("TrayExit");
            trayMenuPlay.Header = U.T("TrayPlay");
            trayMenuNext.Header = U.T("TrayNext");
            trayMenuPrev.Header = U.T("TrayPrev");
            trayMenuShow.Click += TrayShow_Clicked;
            trayMenuExit.Click += TrayExit_Clicked;
            trayMenuPlay.Click += TrayPlayPause_Clicked;
            trayMenuNext.Click += TrayNext_Clicked;
            trayMenuPrev.Click += TrayPrevious_Clicked;
            trayMenu.Items.Add(trayMenuShow);
            trayMenu.Items.Add(new Separator());
            trayMenu.Items.Add(trayMenuPlay);
            trayMenu.Items.Add(trayMenuNext);
            trayMenu.Items.Add(trayMenuPrev);
            trayMenu.Items.Add(new Separator());
            trayMenu.Items.Add(trayMenuExit);
            trayIcon.ContextMenu = trayMenu;

            #endregion

            #region Thumbnail buttons

            //// create thumbnail buttons
            taskbarPrev = new ThumbnailToolbarButton(Properties.Resources.Previous, U.T("TaskbarPrev"));
            taskbarPrev.Enabled = true;
            taskbarPrev.Click += TaskbarPrevious_Clicked;
            taskbarPlay = new ThumbnailToolbarButton(Properties.Resources.Play, U.T("TaskbarPlay"));
            taskbarPlay.Enabled = true;
            taskbarPlay.Click += TaskbarPlayPause_Clicked;
            taskbarNext = new ThumbnailToolbarButton(Properties.Resources.Next, U.T("TaskbarNext"));
            taskbarNext.Enabled = true;
            taskbarNext.Click += TaskbarNext_Clicked;
            TaskbarManager.Instance.ThumbnailToolbars.AddButtons(
                new WindowInteropHelper(this).Handle,
                new ThumbnailToolbarButton[] { taskbarPrev, taskbarPlay, taskbarNext }
            );

            #endregion

            #region Jump lists

            jumpTaskPlay = new JumpTask()
            {
                Title = U.T("JumpPlay", "Title"),
                Arguments = "/play",
                Description = U.T("JumpPlay", "Description"),
                IconResourceIndex = -1,
                ApplicationPath = Assembly.GetEntryAssembly().CodeBase,
            };

            jumpTaskNext = new JumpTask()
            {
                Title = U.T("JumpNext", "Title"),
                Arguments = "/next",
                Description = U.T("JumpNext", "Description"),
                IconResourceIndex = -1,
                ApplicationPath = Assembly.GetEntryAssembly().CodeBase,
            };

            jumpTaskPrev = new JumpTask()
            {
                Title = U.T("JumpPrev", "Title"),
                Arguments = "/previous",
                Description = U.T("JumpPrev", "Description"),
                IconResourceIndex = -1,
                ApplicationPath = Assembly.GetEntryAssembly().CodeBase,
            };

            jumpList = new System.Windows.Shell.JumpList();
            jumpList.JumpItems.Add(jumpTaskPlay);
            jumpList.JumpItems.Add(jumpTaskNext);
            jumpList.JumpItems.Add(jumpTaskPrev);
            jumpList.ShowRecentCategory = true;
            jumpList.ShowFrequentCategory = true;
            System.Windows.Shell.JumpList.SetJumpList(Application.Current, jumpList);

            #endregion

            #region Style

            Utilities.DefaultAlbumArt = "/Platform/Windows 7/GUI/Images/AlbumArt/Default.jpg";

            // rough detection of aero vs classic
            // you'll se a lot more of these around the code
            if (System.Windows.Forms.VisualStyles.VisualStyleInformation.DisplayName == "")
            {
                // applying classic theme
                SolidColorBrush scb = (SolidColorBrush)FindResource("DetailsPaneKey");
                scb.Color = SystemColors.ControlTextColor;
                scb = (SolidColorBrush)FindResource("DetailsPaneValue");
                scb.Color = SystemColors.ControlTextColor;
                scb = (SolidColorBrush)FindResource("InfoPaneTitle");
                scb.Color = SystemColors.ControlTextColor;
                scb = (SolidColorBrush)FindResource("InfoPaneText");
                scb.Color = SystemColors.ControlTextColor;

                MainFrame.BorderBrush = SystemColors.ControlBrush;
                MainFrame.Background = SystemColors.ControlBrush;
                MainContainer.Background = SystemColors.ControlBrush;
                InfoPane.Background = SystemColors.WindowBrush;
                VerticalSplitter.Background = SystemColors.ControlBrush;

                TopToolbar.Style = null;
                DetailsPane.Style = (Style)FindResource("ClassicDetailsPaneStyle");

                OuterBottomRight.BorderBrush = SystemColors.ControlLightLightBrush;
                OuterTopLeft.BorderBrush = SystemColors.ControlDarkBrush;
                InnerBottomRight.BorderBrush = SystemColors.ControlDarkBrush;
                InnerTopLeft.BorderBrush = SystemColors.ControlLightLightBrush;

                ControlPanel.AboutTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle");
                ControlPanel.ShortcutTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle");
                ControlPanel.GeneralTitle.Style = (Style)FindResource("ClassicControlPanelTitleStyle");
                Utilities.DefaultAlbumArt = "/Platform/Windows 7/GUI/Images/AlbumArt/Classic.jpg";
            }

            #endregion

            VisualizerList.ItemsSource = PluginManager.VisualizerSelector;

            LibraryTime = 0;
            QueueTime = 0;
            HistoryTime = 0;
            if (SettingsManager.FileTracks != null)
                foreach (TrackData track in SettingsManager.FileTracks)
                    LibraryTime += track.Length;
            if (SettingsManager.QueueTracks != null)
                foreach (TrackData track in SettingsManager.QueueTracks)
                    QueueTime += track.Length;
            if (SettingsManager.HistoryTracks != null)
                foreach (TrackData track in SettingsManager.HistoryTracks)
                    HistoryTime += track.Length;

            NavigationColumn.Width = new GridLength(SettingsManager.NavigationPaneWidth);
            double h = SettingsManager.DetailsPaneHeight;
            DetailsRow.Height = new GridLength(h);

            UpdateVisibility("menubar");
            UpdateVisibility("details");

            RefreshStrings();
            U.ListenForShortcut = true;

            FilesystemManager.AddSystemFolders(true);

            #region Create playlists

            foreach (PlaylistData playlist in SettingsManager.Playlists)
                CreatePlaylist(playlist, false);

            PlaylistManager.PlaylistModified += new ModifiedEventHandler(PlaylistManager_PlaylistModified);
            PlaylistManager.PlaylistRenamed += new RenamedEventHandler(PlaylistManager_PlaylistRenamed);

            if (SettingsManager.CurrentSelectedNavigation == "YouTube")
                NavigationPane.Youtube.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "SoundCloud")
                NavigationPane.SoundCloud.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "Radio")
                NavigationPane.Radio.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "Jamendo")
                NavigationPane.Jamendo.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "Queue")
                NavigationPane.Queue.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "History")
                NavigationPane.History.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "Video")
                NavigationPane.Video.Focus();
            else if (SettingsManager.CurrentSelectedNavigation == "Visualizer")
                NavigationPane.Visualizer.Focus();
            else if (!SettingsManager.CurrentSelectedNavigation.StartsWith("Playlist:"))
                NavigationPane.Files.Focus();
            else
            {
                string name = SettingsManager.CurrentSelectedNavigation.Split(new[] { ':' }, 2)[1];
                foreach (TreeViewItem tvi in NavigationPane.Playlists.Items)
                {
                    if ((string)tvi.Tag == name)
                    {
                        tvi.Focus();
                        break;
                    }
                }
            }

            #endregion

            #region Load track lists

            U.L(LogLevel.Debug, "main", "Initialize track lists");
            switch (SettingsManager.CurrentActiveNavigation)
            {
                case "Queue":
                    if (FileTracks == null)
                        FileTracks = InitTrackList(new ViewDetails(), SettingsManager.FileListConfig, SettingsManager.FileTracks);
                    break;

                case "Radio":
                    if (RadioTracks == null)
                        RadioTracks = InitTrackList(new ViewDetails(), SettingsManager.RadioListConfig, SettingsManager.RadioTracks);
                    break;

                case "YouTube":
                    if (YouTubeTracks == null)
                        YouTubeTracks = (YouTubeTracks)InitTrackList(new YouTubeTracks(), SettingsManager.YouTubeListConfig);
                    break;

                case "SoundCloud":
                    if (SoundCloudTracks == null)
                        SoundCloudTracks = (SoundCloudTracks)InitTrackList(new SoundCloudTracks(), SettingsManager.SoundCloudListConfig);
                    break;

                case "Jamendo":
                    if (JamendoTracks == null)
                        JamendoTracks = (JamendoTracks)InitTrackList(new JamendoTracks(), SettingsManager.JamendoListConfig);
                    break;

                default:
                    if (SettingsManager.CurrentActiveNavigation.StartsWith("Playlist:"))
                    {
                        string pname = SettingsManager.CurrentActiveNavigation.Split(new[] { ':' }, 2)[1];
                        PlaylistData p = PlaylistManager.FindPlaylist(pname);
                        if (p != null)
                        {
                            ViewDetails vd = (ViewDetails)PlaylistTrackLists[pname];
                            if (vd == null)
                                vd = InitTrackList(new ViewDetails(), p.ListConfig, p.Tracks);
                        }
                    }
                    break;
            }
            if (FileTracks == null)
                FileTracks = InitTrackList(new ViewDetails(), SettingsManager.FileListConfig, SettingsManager.FileTracks);

            #endregion

            #region File association prompt

            if (SettingsManager.FirstRun)
            {
                Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                {
                    // Show welcome dialog
                    TaskDialogResult tdr = Welcome.Show(new WindowInteropHelper(this).Handle);
                    Associations a = new Associations();

                    ProcessStartInfo assProcInfo = new ProcessStartInfo();
                    assProcInfo.FileName = U.FullPath;
                    assProcInfo.Verb = "runas";
                    string assProcArgs = "--associate {0}";

                    try
                    {
                        switch (tdr)
                        {
                            case TaskDialogResult.Yes:
                                assProcInfo.Arguments = String.Format(assProcArgs,
                                    string.Join(",", a.FullFileList.ToArray()));
                                Process.Start(assProcInfo);
                                break;

                            case TaskDialogResult.CustomButtonClicked:
                                a.ShowDialog();
                                assProcInfo.Arguments = String.Format(assProcArgs,
                                    string.Join(",", a.FileList.ToArray()));
                                Process.Start(assProcInfo);
                                break;

                            case TaskDialogResult.Cancel:
                                break;
                        }
                    }
                    catch (Exception e)
                    {
                        U.L(LogLevel.Warning, "MAIN", "Could not set associations: " + e.Message);
                    }
                }));

                SettingsManager.FirstRun = false;
            }

            #endregion

            #region Commented
            //System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal);
            #endregion
        }