public List <string> CreateTrack(CreateTrackViewModel model, string albumId) { ICollection <string> errorModel = this.Validator.ValidateModel(model); if (errorModel == null || errorModel.Count != 0) { return(errorModel.ToList()); } var album = this.Data.Albums.FirstOrDefault(x => x.Id == albumId); var track = new Track { Name = model.Name, Price = model.Price, Link = model.Link, Album = album, AlbumId = albumId, }; album.Tracks.Add(track); this.Data.Tracks.Add(track); this.Data.SaveChanges(); return(errorModel.ToList()); }
public ActionResult Create(CreateTrackViewModel model) { var imageContent = this.processImageHelper.ProcessImage(model.UploadedImage); var imageFileExtension = model.UploadedImage.FileName.Split(new[] { '.' }).Last(); this.tracks.Create(model.Name, model.Length, model.Difficulty, imageContent, imageFileExtension); return this.View(); }
public HttpResponse Create(string albumId) { var model = new CreateTrackViewModel() { AlbumId = albumId }; return(this.View(model)); }
public CreateTrackViewModel GetTrackViewModel(CreateTrackViewModel trackView) { trackView.SelectListSingers = new SelectList(singerDomainService.GetListSingers(), "Id", "Name"); trackView.SelectListGenre = new SelectList(genreDomainService.GetListGenre(), "Id", "Name"); trackView.SelectListAlbums = new SelectList(singerDomainService.GetAlbumsBySingerId(trackView.SingerId), "Id", "Name"); trackView.PlaylistList = playlistDomainService.GetDictionaryPlaylist(); trackView.NoveltyList = noveltyDomainService.GetDictionaryNovelty(); trackView.PopularList = popularDomainService.GetDictionaryPopular(); return(trackView); }
public virtual ActionResult CreateTrack(CreateTrackViewModel trackModel) { if (ModelState.IsValid) { adminTrack.AddTrack(trackModel, Server); return(Redirect("/Admin/Admin/AdminLayout")); } return(View("CreateTrack", adminTrack.GetTrackViewModel(trackModel))); }
public IActionResult Create(CreateTrackViewModel viewModel) { var trackId = this.trackService.AddTrack(viewModel); var trackDetailsViewModel = new TrackDetailsViewModel() { AlbumId = viewModel.AlbumId, TrackId = trackId }; return(this.Details(trackDetailsViewModel)); }
public HttpResponse Create(CreateTrackViewModel model) { var errors = this.validatorService.TrackValidator(model); if (errors.Any()) { return(this.View(model)); } this.trackService.CreateTrack(model); return(this.Redirect($"/Albums/Details?id={model.AlbumId}")); }
public HttpResponse Create(string albumId) { if (!this.IsUserLoggedIn()) { return(this.Redirect("/Users/Login")); } var viewModel = new CreateTrackViewModel { AlbumId = albumId }; return(this.View(viewModel)); }
public void CreateTrack(CreateTrackViewModel model) { var track = new Track() { Name = model.Name, Link = model.Link, Price = model.Price, AlbumId = model.AlbumId }; this.db.Tracks.Add(track); this.db.SaveChanges(); AlbumPrice(model.AlbumId, model.Price); }
public IHttpResponse CreateTrack() { string albumId = this.Request.QueryData["albumId"].ToString(); string path = StringExtensions.UrlDecode($"'/Albums/Details?id={albumId}'"); string postPath = StringExtensions.UrlDecode($"/Tracks/Create?albumId={albumId}"); CreateTrackViewModel viewModel = new CreateTrackViewModel() { BackToAlbum = path, CreatePath = postPath, ErrorMessage = string.Empty }; return(this.View("createTrack", HttpResponseStatusCode.Ok, viewModel)); }
public HttpResponse Create(string albumId, CreateTrackViewModel model) { if (!User.IsAuthenticated) { return(Redirect("Users/Login")); } var checkForerrors = TrackService.CreateTrack(model, albumId); if (checkForerrors.Count != 0) { return(Error(checkForerrors)); } return(Redirect($"/Albums/Details?id={albumId}")); }
public IEnumerable <string> TrackValidator(CreateTrackViewModel input) { if (input.Name == null) { this.errorMessage.Add(string.Format(REQUIRED, "username")); } else if (input.Name.ToString().Length < 4 || input.Name.ToString().Length > 20) { this.errorMessage.Add(string.Format(MaxMinLength, "Username")); } if (input.Link == null) { this.errorMessage.Add(string.Format(REQUIRED, "username")); } return(this.errorMessage); }
public IActionResult Create(CreateTrackViewModel model, string albumId) { var trackNameIsInvalid = string.IsNullOrWhiteSpace(model.TrackName); var linkIsInvalid = string.IsNullOrWhiteSpace(model.Link); var priceIsInvalid = string.IsNullOrWhiteSpace(model.Price); if (trackNameIsInvalid || linkIsInvalid || priceIsInvalid) { return(this.RedirectToAction($"/tracks/create?albumId={albumId}")); } var album = this.DbContext.Albums.FirstOrDefault(a => a.Id == albumId); var track = new Track() { Name = model.TrackName, Link = WebUtility.UrlDecode(model.Link), Price = decimal.Parse(model.Price) }; var trackAlbum = new TrackAlbum() { Track = track, AlbumId = albumId }; if (album.TrackAlbums.Any(ta => ta.Album.Id == albumId && ta.Track.Name == track.Name)) { return(this.RedirectToAction("/tracks/create")); } album.TrackAlbums.Add(trackAlbum); try { this.DbContext.SaveChanges(); } catch (Exception e) { throw new InternalServerException(e.Message); } return(this.RedirectToAction($"/Albums/Details?albumId={albumId}")); }
public void AddTrack(CreateTrackViewModel trackModel, HttpServerUtilityBase server) { Track track = Mapper.Map <CreateTrackViewModel, Track>(trackModel); track.Singer = singerDomainService.GetSingerById(trackModel.SingerId); track.Album = albumDomainService.GetAlbumById(trackModel.AlbumId); track.Genre = genreDomainService.GetGenreById(trackModel.GenreId); track.Popular = popularDomainService.GetPopularById(trackModel.PopularId); track.Novelty = noveltyDomainService.GetNoveltyById(trackModel.NoveltyId); track.TrackImage.ImageData = GetArray(trackModel.TrackImage); trackModel.PlaylistArrayId .ForEach(x => track.Playlists.Add(playlistDomainService.GetPlaylistById(x))); string name = trackModel.TrackFile.FileName; trackModel.TrackFile.SaveAs(server.MapPath(PathServerBefore + name)); track.TrackFile.FileLocation = PathServerAfter + name; trackDomainService.Entry(track).State = EntityState.Added; trackDomainService.SaveChanges(); }
public string AddTrack(CreateTrackViewModel viewModel) { var track = new Track() { Name = viewModel.Name, Link = viewModel.Link, Price = viewModel.Price, }; var albumTrack = new AlbumTrack() { Track = track, AlbumId = viewModel.AlbumId }; this.dbContext .AlbumTracks .Add(albumTrack); this.dbContext .SaveChanges(); return(albumTrack.TrackId); }
public IActionResult Create(CreateTrackViewModel model) { //if (!this.IsAuthenticated()) //{ // return this.RedirectToAction("/Users/Login"); //} if (!this.ModelState.IsValid.HasValue || !this.ModelState.IsValid.Value) { return(this.RedirectToAction("/Tracks/Create")); } var name = model.Name.Trim(); var link = WebUtility.UrlDecode(model.Link).Replace("watch?v=", "embed/"); // src="https://www.youtube.com/watch?v=_avb2ikX-rQ<iframe width="640" height="480" src="https://www.youtube.com/embed/_avb2ikX-rQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>" var price = decimal.Parse(model.Price); var albumId = this.Request.QueryData["albumId"].ToString().ToUpper(); var track = new Track { Name = name, Link = link, Price = price }; if (!this.TrackService.CreateTrack(track, albumId)) { this.Model.Data["Error"] = "Something went wrong when trying to create track in database."; return(this.RedirectToAction("/Tracks/Create")); } //TODO: add success message handle in viewEngine!!! this.Model.Data["Success"] = $"Successfully create track in database for album with id {albumId}."; return(this.RedirectToAction($"/Albums/Details?id={albumId}")); }
public IHttpResponse PostCreateTrack(DoTrackViewModel model) { Regex trackNameRegex = new Regex(@"^\w{3,30}$"); Regex linkUrlRegex = new Regex(@"^\b((http|https):\/\/?)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))$"); string albumId = this.Request.QueryData["albumId"].ToString(); string backToAlbumPath = StringExtensions.UrlDecode($"'/Albums/Details?id={albumId}'"); model.Link = StringExtensions.UrlDecode(model.Link); decimal trackPrice = 0; bool IsDecimal = decimal.TryParse(model.Price.ToString(), out trackPrice); Track track = new Track() { Id = Guid.NewGuid().ToString(), Name = model.Name, Price = trackPrice, Link = model.Link }; AlbumTrack albumTrack = new AlbumTrack() { AlbumId = albumId, TrackId = track.Id }; if (!IsDecimal || !linkUrlRegex.Match(model.Link).Success || !trackNameRegex.Match(model.Name).Success || track.Price < 0 ) { CreateTrackViewModel createTrackViewModel = new CreateTrackViewModel() { BackToAlbum = backToAlbumPath, ErrorMessage = InvalidTrackInformationError, CreatePath = WebUtility.UrlDecode($"/Tracks/Create?albumId={albumId}") }; return(this.View("createTrack", HttpResponseStatusCode.BadRequest, createTrackViewModel)); } else if (this.Context.AlbumTracks.Where(at => at.AlbumId == albumId).Any(tr => tr.Track.Name == model.Name)) { CreateTrackViewModel createTrackViewModel = new CreateTrackViewModel() { BackToAlbum = backToAlbumPath, ErrorMessage = TrackAlreadyExistsError, CreatePath = WebUtility.UrlDecode($"/Tracks/Create?albumId={albumId}") }; return(this.View("createTrack", HttpResponseStatusCode.BadRequest, createTrackViewModel)); } using (this.Context) { this.Context .Add(track); this.Context .Add(albumTrack); this.Context .Albums .First(album => album.Id == albumId) .Tracks .Add(albumTrack); this.Context .SaveChanges(); } TrackViewModel viewModel = new TrackViewModel() { Link = track.Link, Name = track.Name, Price = $"{track.Price.ToString(CultureInfo.InvariantCulture):f2}", BackToAlbum = backToAlbumPath, CreatePath = StringExtensions.UrlDecode($"/Tracks/Create?albumId={albumId}") }; return(this.View("track", HttpResponseStatusCode.Ok, viewModel)); }