示例#1
0
        public TrackViewModel(Model.Track track)
        {
            Sessions = new ObservableCollection<SessionViewModel>();
            Speakers = new ObservableCollection<SpeakerViewModel>();

            this.track = track;

            var sessions =
                (from s in App.Event.Sessions
                 where s.Track == track.Name
                 select s).ToList();

            foreach (Model.Session session in sessions)
                Sessions.Add(new SessionViewModel(session));

            var speakerNames =
                (from s in sessions select s.Speaker).Distinct();

            foreach (string name in speakerNames)
            {
                Model.Speaker speaker = 
                    (from s in App.Event.Speakers 
                     where s.Name == name
                     select s).FirstOrDefault();

                if (speaker != null)
                    Speakers.Add(new SpeakerViewModel(speaker, false));
            }
        }
示例#2
0
        public void Delete(Track model)
        {
            #region 取資料
            Model.Track query = this.Get(model.ID_Track);
            //var queryoverseastaff = this._overseaService.GetForOverType(query.ID_OverType);
            #endregion

            #region 邏輯驗證
            if (query == null)//沒有資料
            {
                throw new Exception("MessageNoData".ToLocalized());
            }

            //驗證
            //if (queryoverseastaff == null)//沒有資料
            //    throw new Exception("MessageDataHasLinking".ToLocalized());
            #endregion

            #region 變為Models需要之型別及邏輯資料

            #endregion

            #region Models資料庫
            this._repository.Delete(query);
            this._unitOfWork.SaveChange();
            #endregion
        }
        private void btnAddTrack_Click(object sender, EventArgs e)
        {
            try
            {
                var selectedRow = dgvAllTracks.CurrentRow;
                if (!_albumTracks.Select(i => i.ID).ToList().Contains(Convert.ToInt32(selectedRow.Cells["ID"].Value)))
                {
                    var track = new Model.Track()
                    {
                        ID     = Convert.ToInt32(selectedRow.Cells["ID"].Value),
                        Name   = Convert.ToString(selectedRow.Cells["Name"].Value),
                        Length = Convert.ToString(selectedRow.Cells["Length"].Value)
                    };
                    _albumTracks.Add(track);

                    var request = new TrackSearchRequest()
                    {
                        Page         = _albumTracksPage,
                        ItemsPerPage = _itemsPerPage
                    };
                    LoadListAlbumTracks(request);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
示例#4
0
 public UninitializedTrackData GetData(Model.Track track)
 {
     if (m_uninitializedTrackData.TryGetValue(track, out var data))
     {
         return(data);
     }
     return(null);
 }
示例#5
0
 private void Configure(Model.Track track, GameObject instance)
 {
     instance.hideFlags = HideFlags.DontSaveInEditor;
     instance.GetOrCreateComponent <OnSelectionProxy>().Component = track;
     foreach (Transform child in instance.transform)
     {
         Configure(track, child.gameObject);
     }
 }
        public TrackViewModel(SequencerViewModel sequencer, Model.Track model)
        {
            this.sequencer = sequencer;
            this.model     = model;

            ForwardPropertyEvents(nameof(model.Label), model, nameof(Label));
            ForwardPropertyEvents(nameof(sequencer.SelectedTrack), sequencer, nameof(IsSelected));

            Blocks = model.Blocks.Select(b => BlockViewModel.FromModel(sequencer, b));
        }
示例#7
0
        public MusicPlayerPage(Model.Track track, IEnumerable <Model.Track> tracks, Image coverImage)
        {
            InitializeComponent();
            ObservableCollection <Model.Track> queue = null;

            if (tracks != null)
            {
                queue = new ObservableCollection <Model.Track>(tracks);
            }
            BindingContext = model = new MusicPlayerViewModel(track, queue, coverImage);
        }
示例#8
0
            public void Update(Model.Track track)
            {
                var reqUpdate = TrackWheels.Length != track.Wheels.Length ||
                                Track.NumberOfNodes != track.NumberOfNodes ||
                                !Math.Approximately(Track.Width, track.Width) ||
                                !Math.Approximately(Track.Thickness, track.Thickness) ||
                                !Math.Approximately(Track.InitialTensionDistance, track.InitialTensionDistance);

                if (!reqUpdate)
                {
                    for (int i = 0; !reqUpdate && i < TrackWheels.Length; ++i)
                    {
                        var trackWheelDef = TrackWheels[i];
                        var trackWheel    = track.Wheels[i];
                        reqUpdate = trackWheelDef.WheelModel != trackWheel.Model ||
                                    !Math.Approximately(trackWheelDef.Radius, trackWheel.Radius) ||
                                    Vector3.SqrMagnitude(trackWheelDef.Position - trackWheel.transform.position) > 1.0E-5f ||
                                    Vector3.SqrMagnitude(trackWheelDef.LocalPosition - trackWheel.Frame.LocalPosition) > 1.0E-5f ||
                                    (Quaternion.Inverse(trackWheelDef.Rotation) * trackWheel.transform.rotation).eulerAngles.sqrMagnitude > 1.0E-5f ||
                                    (Quaternion.Inverse(trackWheelDef.LocalRotation) * trackWheel.Frame.LocalRotation).eulerAngles.sqrMagnitude > 1.0E-5f;
                    }
                }

                if (!reqUpdate)
                {
                    return;
                }

                Track = new TrackDesc()
                {
                    NumberOfNodes          = track.NumberOfNodes,
                    Width                  = track.Width,
                    Thickness              = track.Thickness,
                    InitialTensionDistance = track.InitialTensionDistance
                };
                TrackWheels = new TrackWheelDesc[track.Wheels.Length];
                for (int i = 0; i < TrackWheels.Length; ++i)
                {
                    TrackWheels[i].WheelModel    = track.Wheels[i].Model;
                    TrackWheels[i].Radius        = track.Wheels[i].Radius;
                    TrackWheels[i].Position      = track.Wheels[i].transform.position;
                    TrackWheels[i].Rotation      = track.Wheels[i].transform.rotation;
                    TrackWheels[i].LocalPosition = track.Wheels[i].Frame.LocalPosition;
                    TrackWheels[i].LocalRotation = track.Wheels[i].Frame.LocalRotation;
                }

                var nodes = agxVehicle.agxVehicleSWIG.findTrackNodeConfiguration(new agxVehicle.TrackDesc((ulong)Track.NumberOfNodes,
                                                                                                          Track.Width,
                                                                                                          Track.Thickness,
                                                                                                          Track.InitialTensionDistance),
                                                                                 new agxVehicle.TrackWheelDescVector((from wheelDef in TrackWheels select wheelDef.Native).ToArray()));

                TrackNodes = (from node in nodes select TrackNodeDesc.Create(node)).ToArray();
            }
示例#9
0
        public bool DrawGizmosUninitialized(Model.Track track, Color color)
        {
            if (track == null)
            {
                return(false);
            }

            var data = GetData(track);

            if (data == null)
            {
                return(false);
            }

            if (m_gizmosMesh == null)
            {
                if (Resource == null)
                {
                    return(false);
                }

                var filters = Resource.GetComponentsInChildren <MeshFilter>();
                if (filters.Length == 0)
                {
                    return(false);
                }

                var combines = new CombineInstance[filters.Length];
                for (int i = 0; i < combines.Length; ++i)
                {
                    combines[i].mesh      = filters[i].sharedMesh;
                    combines[i].transform = filters[i].transform.localToWorldMatrix;
                }

                m_gizmosMesh = new Mesh();
                m_gizmosMesh.CombineMeshes(combines);
            }

            Gizmos.color = color;
            foreach (var node in data.TrackNodes)
            {
                Gizmos.DrawWireMesh(m_gizmosMesh,
                                    node.Position + node.Rotation * (node.HalfExtents.z * Vector3.forward),
                                    node.Rotation,
                                    2.0f * node.HalfExtents);
            }

            return(true);
        }
示例#10
0
        /// <summary>
        /// Writes track to stream
        /// </summary>
        /// <param name="track">track to write</param>
        private void Write(Model.Track track)
        {
            var settings = new XmlWriterSettings();

            using var writer = XmlWriter.Create(this.stream, settings);
            writer.WriteStartDocument();

            writer.WriteStartElement("gpx", "http://www.topografix.com/GPX/1/1");
            writer.WriteAttributeString("version", "1.1");
            writer.WriteAttributeString("creator", "Where-to-fly");

            writer.WriteStartElement("trk");
            writer.WriteElementString("name", track.Name);

            writer.WriteStartElement("trkseg");

            var numberFormat = System.Globalization.CultureInfo.InvariantCulture.NumberFormat;

            foreach (var trackPoint in track.TrackPoints)
            {
                writer.WriteStartElement("trkpt");

                writer.WriteAttributeString("lat", trackPoint.Latitude.ToString(numberFormat));
                writer.WriteAttributeString("lon", trackPoint.Longitude.ToString(numberFormat));

                if (trackPoint.Altitude.HasValue)
                {
                    writer.WriteElementString("ele", trackPoint.Altitude.Value.ToString(numberFormat));
                }

                if (trackPoint.Time.HasValue)
                {
                    writer.WriteElementString("time", trackPoint.Time.Value.ToString("o"));
                }

                // unfortunately there's no way to store trackPoint.Heading
                writer.WriteEndElement(); // trkpt
            }

            writer.WriteEndElement(); // trkseg
            writer.WriteEndElement(); // trk
            writer.WriteEndElement(); // gpx

            writer.WriteEndDocument();
        }
示例#11
0
        /*
         * // Handling Drag drop files event
         * private async void Grid_Drop(object sender, System.Windows.DragEventArgs e)
         * {
         *  // Get all dropped files/folders
         *  string[] _files = (string[])e.Data.GetData(System.Windows.DataFormats.FileDrop, false);
         *  List<string> _directories = new List<string>();
         *
         *  Parallel.ForEach(_files, f =>
         *  {
         *      if (Directory.Exists(f))
         *      {
         *          // If f is an directory => scan f
         *          _directories.AddRange(Core.Utils.ScanFolder(f));
         *      }
         *      else
         *      {
         *          // If f is a file => collect
         *          _directories.Add(f);
         *      }
         *  });
         *
         *  // Handle tracks
         *  await Core.Utils.TrackProcess(this, _directories);
         *
         *  MainWindowViewModel.Instance.MusicManager.LoadApplicationPlaylist();
         * }
         *
         * // Handling Effect when it has drag enter event
         * private void Grid_DragEnter(object sender, System.Windows.DragEventArgs e)
         * {
         *  e.Effects = System.Windows.DragDropEffects.Move;
         * }
         */
        #endregion


        // Handling ToggleButton is clicked event
        private void ToggleButton_Click(object sender, RoutedEventArgs e)
        {
            //ToggleButton _heart = (ToggleButton)sender;
            var instance = this.DataContext as MainWindowViewModel;

            // Push value down to model
            Model.Track _track = ((ToggleButton)sender).DataContext as Model.Track;
            Updater.UpdateOnlyFavourite2DB(_track.ID, _track.IsFavourite);

            if (instance.MusicManager.SelectedPlaylist.Prio == Playlist.Priority.User)
            {
                instance.MusicManager.AllSongs.ListTrack.FirstOrDefault(item => item.ID == _track.ID).IsFavourite = _track.IsFavourite;

                for (int i = 0; i < instance.MusicManager.Playlists.Count; i++)
                {
                    if (instance.MusicManager.Playlists[i].Name != instance.MusicManager.SelectedPlaylist.Name)
                    {
                        for (int j = 0; j < instance.MusicManager.Playlists[i].ListTrack.Count; j++)
                        {
                            if (instance.MusicManager.Playlists[i].ListTrack[i].ID == _track.ID)
                            {
                                instance.MusicManager.Playlists[i].ListTrack[j].IsFavourite = _track.IsFavourite;
                            }
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < instance.MusicManager.Playlists.Count; i++)
                {
                    if (instance.MusicManager.Playlists[i].Name != instance.MusicManager.SelectedPlaylist.Name)
                    {
                        for (int j = 0; j < instance.MusicManager.Playlists[i].ListTrack.Count; j++)
                        {
                            if (instance.MusicManager.Playlists[i].ListTrack[i].ID == _track.ID)
                            {
                                instance.MusicManager.Playlists[i].ListTrack[j].IsFavourite = _track.IsFavourite;
                            }
                        }
                    }
                }
            }
        }
示例#12
0
        public Track Map(Model.Track track, SoundCloudMusicProvider musicProvider, string user, bool mapArtists = false)
        {
            var trackLink   = track.id;
            var trackResult = new Track
            {
                Link                 = trackLink.ToString(CultureInfo.InvariantCulture),
                Name                 = track.title,
                IsAvailable          = track.streamable,
                Duration             = new TimeSpan(0, 0, 0, 0, track.duration),
                DurationMilliseconds = track.duration,
                MusicProvider        = musicProvider.Descriptor,
                TrackArtworkUrl      = track.artwork_url ?? "content/styles/Images/soundcloud-icon.png",
                ExternalLink         = new Uri(track.permalink_url)
            };

            alreadyQueuedHelper.ResetAlreadyQueued((trackResult), user);

            return(trackResult);
        }
示例#13
0
        private async void ucTrackEdit_Load(object sender, EventArgs e)
        {
            var artists = await _artistApiService.Get <List <Model.Artist> >(null);

            var featuredArtists = new List <Model.Artist>(artists);
            var genres          = await _genreApiService.Get <List <Model.Genre> >(null);

            BindComboList(cbMainArtist, artists);
            BindComboList(cbFeaturedArtist, featuredArtists);
            BindComboList(cbGenre, genres);

            BindListBox <Model.Artist>(lbFeaturedArtists, null);
            BindListBox <Model.Genre>(lbGenres, null);

            if (_ID.HasValue)
            {
                _track = await _trackApiService.GetById <Model.Track>(_ID);

                txtName.Text   = _track.Name;
                txtLength.Text = _track.Length;

                //Set Main Artist
                cbMainArtist.SelectedValue = _track.TrackArtists
                                             .Where(i => i.TrackArtistRole == "Main")
                                             .SingleOrDefault().ArtistID;

                //Get Track Featured Artists IDs
                var trackFeaturedArtistsIDs = _track.TrackArtists
                                              .Where(i => i.TrackArtistRole == "Feature")
                                              .Select(i => i.ArtistID)
                                              .ToList();

                //Filter Artists by Track Featured Artists IDs
                var trackFeaturedArtists = artists
                                           .Where(i => trackFeaturedArtistsIDs.Any(id => id.Equals(i.ID)))
                                           .ToList();

                BindListBox(lbFeaturedArtists, trackFeaturedArtists);

                //Get Track Genres IDs
                var trackGenresIDs = _track.TrackGenres
                                     .Select(i => i.GenreID)
                                     .ToList();

                //Filter Genres by Track Genres IDs
                var trackGenres = genres
                                  .Where(i => trackGenresIDs.Any(id => id.Equals(i.ID)))
                                  .ToList();

                BindListBox(lbGenres, trackGenres);

                //Load Track
                if (_track.MP3File.Length != 0)
                {
                    Guid   g    = Guid.NewGuid();
                    string file = _track.Name + "-" + g.ToString() + ".mp3";
                    File.WriteAllBytes(file, _track.MP3File);
                    MediaPlayer.URL = file;
                    MediaPlayer.Ctlcontrols.stop();
                }
            }
        }
示例#14
0
        protected override void Seed(SeminarDbContext context)
        {
            #region Locations

            var locationLondon = new Model.Location {
                Name = "London", Building = "Central Building", RoomNumber = "B101"
            };
            var locationVienna = new Model.Location {
                Name = "Vienna", Building = "Central Building", RoomNumber = "B102"
            };
            var locationSydney = new Model.Location {
                Name = "Sydney", Building = "Central Building", RoomNumber = "B103"
            };
            var locationNewYork = new Model.Location {
                Name = "New York", Building = "Central Building", RoomNumber = "B104"
            };
            var locationMoscow = new Model.Location {
                Name = "Moscow", Building = "Central Building", RoomNumber = "B105"
            };

            context.Locations.Add(locationLondon);
            context.Locations.Add(locationVienna);
            context.Locations.Add(locationSydney);
            context.Locations.Add(locationNewYork);
            context.Locations.Add(locationMoscow);
            context.SaveChanges();

            #endregion

            #region Tracks

            var trackWebDevelopment = new Model.Track {
                Name = "Web Development"
            };
            var trackMobileDevelopment = new Model.Track {
                Name = "Mobile Development"
            };
            var trackClientSide = new Model.Track {
                Name = "Client Side Development"
            };
            var trackServerSide = new Model.Track {
                Name = "Server Side Development"
            };
            var trackJavascript = new Model.Track {
                Name = "Javascript Frameworks"
            };

            context.Tracks.Add(trackWebDevelopment);
            context.Tracks.Add(trackMobileDevelopment);
            context.Tracks.Add(trackClientSide);
            context.Tracks.Add(trackServerSide);
            context.Tracks.Add(trackJavascript);
            context.SaveChanges();

            #endregion

            #region Levels

            var levelBeginner = new Model.Level {
                Name = "Beginner", Scaling = 1
            };
            var levelIntermediate = new Model.Level {
                Name = "Intermediate", Scaling = 2
            };
            var levelExpert = new Model.Level {
                Name = "Expert", Scaling = 3
            };
            var levelMaster = new Model.Level {
                Name = "Master", Scaling = 4
            };

            context.Levels.Add(levelBeginner);
            context.Levels.Add(levelIntermediate);
            context.Levels.Add(levelExpert);
            context.Levels.Add(levelMaster);
            context.SaveChanges();

            #endregion

            #region Seminars

            context.Seminars.Add(new Seminar {
                Title       = "AngularJS 101", Code = "AJS101",
                Description = "An overview of AngularJS", Level = levelIntermediate,
                Location    = locationSydney, Track = trackJavascript, Date = DateTime.Now.AddDays(5)
            });

            context.Seminars.Add(new Seminar {
                Title       = "Introduction to MVC", Code = "MVC101",
                Description = "An overview of ASP.NET MVC", Level = levelIntermediate,
                Location    = locationMoscow, Track = trackServerSide, Date = DateTime.Now.AddDays(2)
            });

            context.Seminars.Add(new Seminar {
                Title       = "Windows Phone Fundamentals", Code = "WPH101",
                Description = "An overview of Windows Phone", Level = levelBeginner,
                Location    = locationNewYork, Track = trackMobileDevelopment, Date = DateTime.Now.AddDays(-2)
            });

            context.Seminars.Add(new Seminar {
                Title       = "Advanced AngularJS", Code = "AJS789",
                Description = "An advanced look at AngularJS", Level = levelMaster,
                Location    = locationLondon, Track = trackJavascript, Date = DateTime.Now.AddDays(10)
            });

            context.Seminars.Add(new Seminar {
                Title       = "Advanced MVC", Code = "MVC987",
                Description = "An advanced look at ASP.NET MVC", Level = levelExpert,
                Location    = locationVienna, Track = trackServerSide, Date = DateTime.Now.AddDays(6)
            });

            context.SaveChanges();

            #endregion

            base.Seed(context);
        }
示例#15
0
        /// <summary>
        /// Writes a track to a stream
        /// </summary>
        /// <param name="stream">stream to write to</param>
        /// <param name="track">track to write</param>
        public static void WriteTrack(Stream stream, Model.Track track)
        {
            var writer = new GpxWriter(stream);

            writer.Write(track);
        }
示例#16
0
 /// <summary>
 /// Writes a track to a file
 /// </summary>
 /// <param name="filename">filename to write to</param>
 /// <param name="track">track to write</param>
 public static void WriteTrack(string filename, Model.Track track)
 {
     using var fileStream = new FileStream(filename, FileMode.Create);
     WriteTrack(fileStream, track);
 }