Beispiel #1
0
        public ActionResult Create(Album album)
        {
            XOUNDContext ctx = new XOUNDContext();

            Bitmap bmp = new Bitmap(1, 1);

            System.Net.WebRequest request =
            System.Net.WebRequest.Create(album.ArtworkImageURL);
            System.Net.WebResponse response = request.GetResponse();
            System.IO.Stream responseStream = response.GetResponseStream();
            Bitmap orig = new Bitmap(responseStream);

            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(orig, new Rectangle(0, 0, 1, 1));
            }
            Color pixel = bmp.GetPixel(0, 0);
            string avg = System.Drawing.ColorTranslator.ToHtml(pixel);

            album.ArtworkDominantColor = avg;
            //Color backgroundColor = (Color)value;

            var blackContrast = LuminosityContrast(Color.Black, pixel);
            var whiteContrast = LuminosityContrast(Color.White, pixel);

            album.ArtworkContrastColor = blackContrast >= whiteContrast ? ColorTranslator.ToHtml(Color.Black) : ColorTranslator.ToHtml(Color.White);
            album.InsertDate = DateTime.Now;
            album.Active = true;

            ctx.Albums.Add(album);
            ctx.SaveChanges();

            return View();
        }
Beispiel #2
0
        protected bool SaveTrack(Models.Track track, XOUNDContext ctx)
        {
            Mp3FileReader reader = new Mp3FileReader(track.AudioFile.InputStream);

            track.DurationMinutes = reader.TotalTime.Minutes;
            track.DurationSeconds = reader.TotalTime.Seconds;

            ctx.Tracks.Add(track);
            ctx.SaveChanges();

            byte[] fileData = null;
            using (var binaryReader = new BinaryReader(track.AudioFile.InputStream))
            {
                fileData = binaryReader.ReadBytes(track.AudioFile.ContentLength);
            }

            Models.TrackFile file = new Models.TrackFile()
            {
                TrackID = track.ID,
                Track   = fileData
            };

            ctx.TrackFiles.Add(file);
            ctx.SaveChanges();

            return(true);
        }
Beispiel #3
0
        protected bool SaveTrack(Models.Track track, XOUNDContext ctx)
        {
            Mp3FileReader reader = new Mp3FileReader(track.AudioFile.InputStream);

            track.DurationMinutes = reader.TotalTime.Minutes;
            track.DurationSeconds = reader.TotalTime.Seconds;

            ctx.Tracks.Add(track);
            ctx.SaveChanges();

            byte[] fileData = null;
            using (var binaryReader = new BinaryReader(track.AudioFile.InputStream))
            {
                fileData = binaryReader.ReadBytes(track.AudioFile.ContentLength);
            }

            Models.TrackFile file = new Models.TrackFile()
            {
                TrackID = track.ID,
                Track = fileData
            };

            ctx.TrackFiles.Add(file);
            ctx.SaveChanges();

            return true;
        }
Beispiel #4
0
 public ActionResult CreateMulti(int id)
 {
     XOUNDContext ctx = new XOUNDContext();
     var items = ctx.Albums.Where(x => x.ID == id).ToList().Select(x => new SelectListItem()
     {
         Text = x.Title,
         Value = x.ID.ToString()
     });
     ViewBag.Albums = items;
     Session["albums"] = items;
     return View();
 }
Beispiel #5
0
        public ActionResult CreateMulti(int id)
        {
            XOUNDContext ctx   = new XOUNDContext();
            var          items = ctx.Albums.Where(x => x.ID == id).ToList().Select(x => new SelectListItem()
            {
                Text  = x.Title,
                Value = x.ID.ToString()
            });

            ViewBag.Albums    = items;
            Session["albums"] = items;
            return(View());
        }
Beispiel #6
0
        public ActionResult Index()
        {
            XOUNDContext ctx = new XOUNDContext();
            AlbumViewModel avm = new AlbumViewModel();
            avm.Albums = ctx.Albums.ToList();

            foreach(Album album in avm.Albums)
            {
                album.Tracks = ctx.Tracks.Where(x => x.AlbumID == album.ID).ToList();
            }

            return View(avm);
        }
Beispiel #7
0
        public ActionResult CreateByFiles(Album album, IEnumerable <HttpPostedFileBase> files)
        {
            album.TrackCount = files.Count();
            XOUNDContext ctx = new XOUNDContext();

            Bitmap bmp = new Bitmap(1, 1);

            System.Net.WebRequest request =
                System.Net.WebRequest.Create(album.ArtworkImageURL);
            System.Net.WebResponse response       = request.GetResponse();
            System.IO.Stream       responseStream = response.GetResponseStream();
            Bitmap orig = new Bitmap(responseStream);

            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(orig, new Rectangle(0, 0, 1, 1));
            }
            Color  pixel = bmp.GetPixel(0, 0);
            string avg   = System.Drawing.ColorTranslator.ToHtml(pixel);

            album.ArtworkDominantColor = avg;
            //Color backgroundColor = (Color)value;

            var blackContrast = LuminosityContrast(Color.Black, pixel);
            var whiteContrast = LuminosityContrast(Color.White, pixel);

            album.ArtworkContrastColor = blackContrast >= whiteContrast?ColorTranslator.ToHtml(Color.Black) : ColorTranslator.ToHtml(Color.White);

            album.InsertDate = DateTime.Now;
            album.Active     = true;

            ctx.Albums.Add(album);
            ctx.SaveChanges();
            int ctr = 1;

            foreach (var file in files)
            {
                Track tr = new Track()
                {
                    Title     = file.FileName.Replace(".mp3", ""),
                    AudioFile = file,
                    TrackNo   = ctr,
                    AlbumID   = album.ID
                };
                SaveTrack(tr, ctx);
                ctr++;
            }

            return(View());
        }
Beispiel #8
0
        public ActionResult Index()
        {
            XOUNDContext   ctx = new XOUNDContext();
            AlbumViewModel avm = new AlbumViewModel();

            avm.Albums = ctx.Albums.OrderBy(x => x.Title).ToList();

            foreach (Album album in avm.Albums)
            {
                album.Tracks = ctx.Tracks.Where(x => x.AlbumID == album.ID).ToList();
            }

            return(View(avm));
        }
Beispiel #9
0
        public HttpResponseMessage GetAudioFile(int trackID)
        {
            XOUNDContext ctx = new XOUNDContext();
            var track = ctx.TrackFiles.Where(x => x.TrackID == trackID).FirstOrDefault();

            MemoryStream ms = new MemoryStream(track.Track);

            HttpResponseMessage Response = new HttpResponseMessage();
            Response.Content = new StreamContent(ms);
            Response.Content.Headers.ContentType = new MediaTypeHeaderValue("audio/mp3");
            Response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
            Response.Content.Headers.ContentDisposition.FileName = "play.mp3";
            return Response;
        }
Beispiel #10
0
        public HttpResponseMessage GetAudioFile(int trackID)
        {
            XOUNDContext ctx   = new XOUNDContext();
            var          track = ctx.TrackFiles.Where(x => x.TrackID == trackID).FirstOrDefault();

            MemoryStream ms = new MemoryStream(track.Track);

            HttpResponseMessage Response = new HttpResponseMessage();

            Response.Content = new StreamContent(ms);
            Response.Content.Headers.ContentType                 = new MediaTypeHeaderValue("audio/mp3");
            Response.Content.Headers.ContentDisposition          = new ContentDispositionHeaderValue("attachment");
            Response.Content.Headers.ContentDisposition.FileName = "play.mp3";
            return(Response);
        }
Beispiel #11
0
        public ActionResult CreateMulti(int id, Models.MultiTrackViewModel multi)
        {
            XOUNDContext ctx = new XOUNDContext();
            foreach(var tr in multi.Tracks.Where(x => x.Title != null))
            {
                SaveTrack(tr, ctx);
            }

            var items = ctx.Albums.Where(x => x.ID == id).ToList().Select(x => new SelectListItem()
            {
                Text = x.Title,
                Value = x.ID.ToString()
            });
            ViewBag.Albums = items;
            Session["albums"] = items;
            return View();
        }
Beispiel #12
0
 public ActionResult Create()
 {
     if (Session["albums"] != null)
         ViewBag.Albums = Session["albums"];
     else
     {
         XOUNDContext ctx = new XOUNDContext();
         var items = ctx.Albums.ToList().Select(x => new SelectListItem()
         {
             Text = x.Title,
             Value = x.ID.ToString()
         });
         ViewBag.Albums = items;
         Session["albums"] = items;
     }
     return View();
 }
Beispiel #13
0
        public ActionResult CreateMulti(int id, Models.MultiTrackViewModel multi)
        {
            XOUNDContext ctx = new XOUNDContext();

            foreach (var tr in multi.Tracks.Where(x => x.Title != null))
            {
                SaveTrack(tr, ctx);
            }

            var items = ctx.Albums.Where(x => x.ID == id).ToList().Select(x => new SelectListItem()
            {
                Text  = x.Title,
                Value = x.ID.ToString()
            });

            ViewBag.Albums    = items;
            Session["albums"] = items;
            return(View());
        }
Beispiel #14
0
 public ActionResult Create()
 {
     if (Session["albums"] != null)
     {
         ViewBag.Albums = Session["albums"];
     }
     else
     {
         XOUNDContext ctx   = new XOUNDContext();
         var          items = ctx.Albums.ToList().Select(x => new SelectListItem()
         {
             Text  = x.Title,
             Value = x.ID.ToString()
         });
         ViewBag.Albums    = items;
         Session["albums"] = items;
     }
     return(View());
 }
Beispiel #15
0
        public ActionResult Create(Album album)
        {
            XOUNDContext ctx = new XOUNDContext();

            Bitmap bmp = new Bitmap(1, 1);

            System.Net.WebRequest request =
                System.Net.WebRequest.Create(album.ArtworkImageURL);
            System.Net.WebResponse response       = request.GetResponse();
            System.IO.Stream       responseStream = response.GetResponseStream();
            Bitmap orig = new Bitmap(responseStream);

            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(orig, new Rectangle(0, 0, 1, 1));
            }
            Color  pixel = bmp.GetPixel(0, 0);
            string avg   = System.Drawing.ColorTranslator.ToHtml(pixel);

            album.ArtworkDominantColor = avg;
            //Color backgroundColor = (Color)value;

            var blackContrast = LuminosityContrast(Color.Black, pixel);
            var whiteContrast = LuminosityContrast(Color.White, pixel);

            album.ArtworkContrastColor = blackContrast >= whiteContrast?ColorTranslator.ToHtml(Color.Black) : ColorTranslator.ToHtml(Color.White);

            album.InsertDate = DateTime.Now;
            album.Active     = true;

            ctx.Albums.Add(album);
            ctx.SaveChanges();

            return(View());
        }