public IHttpResponse CreateConfirm(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { var name = ((ISet <string>)httpRequest.FormData["name"]).FirstOrDefault(); var cover = ((ISet <string>)httpRequest.FormData["cover"]).FirstOrDefault(); var album = new Album { Id = Guid.NewGuid().ToString(), Name = name, Cover = cover, Price = 0m }; if (!this.IsValid(album)) { return(this.Redirect("/Albums/Create")); } context.Albums.Add(album); context.SaveChanges(); return(this.Redirect("/Albums/All")); } }
public IHttpResponse All(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { if (!context.Albums.Any()) { this.ViewData["Albums"] = "There are currently no albums."; } else { this.ViewData["Albums"] = string.Join("<br/>", context .Albums .Select(a => $"<a class=\"text-primary font-weight-bold\" href=/Albums/Details?albumId={a.Id}>{WebUtility.UrlDecode(a.Name)}</a>") .ToList()); } return(this.View()); } }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } var albumId = int.Parse(httpRequest.QueryData["albumId"].ToString()); var trackId = int.Parse(httpRequest.QueryData["trackId"].ToString()); using (var db = new RunesDbContext()) { var trackFromDb = db .Tracks .SingleOrDefault(x => x.Id == trackId); if (trackFromDb == null) { return(this.Redirect($"/Albums/Details?id={albumId}")); } this.ViewData["albumId"] = albumId; this.ViewData["track"] = trackFromDb.ToHtmlDetails(albumId.ToString()); } return(this.View()); }
public IHttpResponse All(IHttpRequest httpRequest) { if (!IsLoggedIn(httpRequest)) { return(Redirect("/")); } var sb = new StringBuilder(); sb.AppendLine("<div>"); using (var context = new RunesDbContext()) { if (!context.Albums.Any()) { sb.AppendLine("<p>No albums yet</p>"); } else { foreach (var album in context.Albums.ToList()) { sb.AppendLine($"<a class=\"text-primary font-weight-bold\" href=/Albums/Details?id={album.Id}>{WebUtility.UrlDecode(album.Name)}</a>"); } } } sb.AppendLine("</div>"); ViewData.Add("Albums", sb.ToString().TrimEnd()); return(View()); }
public IHttpResponse CreateConfirm(IHttpRequest httpRequest) { if (!this.IsLogedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } string albumId = httpRequest.QueryData["albumId"].ToString(); using (var context = new RunesDbContext()) { Track track = new Track() { Name = httpRequest.FormData["name"].ToString(), Link = httpRequest.FormData["link"].ToString(), Price = decimal.Parse(httpRequest.FormData["price"].ToString()) }; if (track == null) { return(this.Redirect($"/Tracks/Create?trackId{albumId}")); } Album albumFromDb = context.Albums.FirstOrDefault(album => album.Id == albumId); albumFromDb.Tracks.Add(track); albumFromDb.Price = ((albumFromDb.Tracks.Select(trackToSumm => trackToSumm.Price).Sum()) * 87) / 100; //context.Update(albumFromDb); context.SaveChanges(); } return(this.Redirect($"/Albums/Details?albumId={albumId}")); }
public IHttpResponse RegisterConfirm(IHttpRequest httpRequest) { using (var context = new RunesDbContext()) { string username = httpRequest.FormData["username"].ToString(); string password = httpRequest.FormData["password"].ToString(); string passwordConfirm = httpRequest.FormData["password"].ToString(); string email = httpRequest.FormData["email"].ToString(); if (password != passwordConfirm) { return(this.Redirect("/Users/Register")); } User user = new User() { Username = username, Password = this.HashPassword(password), Email = email }; context.Users.Add(user); context.SaveChanges(); return(this.Redirect("/Users/Login")); } }
public IHttpResponse CreatePost(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { string name = ((IList <string>)httpRequest.FormData["name"]).FirstOrDefault(); string cover = ((IList <string>)httpRequest.FormData["cover"]).FirstOrDefault(); Album album = new Album() { Name = name, Cover = cover, Price = 0m }; context.Albums.Add(album); context.SaveChanges(); } return(this.Redirect("/Albums/All")); }
public IHttpResponse CreateConfirm(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } var albumId = httpRequest.QueryData["albumId"].ToString(); using (var context = new RunesDbContext()) { var albumFromDb = context.Albums.SingleOrDefault(album => album.Id == albumId); if (albumFromDb == null) { return(this.Redirect("/Albums/All")); } var name = ((ISet <string>)(httpRequest.FormData["name"])).FirstOrDefault(); var link = ((ISet <string>)(httpRequest.FormData["link"])).FirstOrDefault(); var price = ((ISet <string>)(httpRequest.FormData["price"])).FirstOrDefault(); Track trackForDb = new Track { Name = name, Link = link, Price = decimal.Parse(price) }; albumFromDb.Tracks.Add(trackForDb); albumFromDb.Price = (albumFromDb.Tracks.Select(track => track.Price).Sum() * 87) / 100; context.Update(albumFromDb); context.SaveChanges(); } return(this.Redirect($"/Albums/Details?id={albumId}")); }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } string albumId = httpRequest.QueryData["id"].ToString(); using (var context = new RunesDbContext()) { Album albumFromDb = context.Albums .Include(album => album.Tracks)//to check cearfully this usage of Include .SingleOrDefault(album => album.Id == albumId); if (albumFromDb == null) { return(this.Redirect("/Albums/All")); } this.ViewData["Album"] = albumFromDb.ToHtmlDetails(); return(this.View()); } }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLogedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } string albumToReturn = ""; using (var context = new RunesDbContext()) { Album albumFromDb = context.Albums.FirstOrDefault(album => album.Id == httpRequest.QueryData["albumId"].ToString()); if (albumFromDb == null) { return(this.Redirect("/Albums/All")); } albumToReturn = albumFromDb.ToHtmlDetails(); } this.ViewData["AlbumDetails"] = albumToReturn; return(this.View()); }
public IHttpResponse CreateConfirm(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var db = new RunesDbContext()) { var name = ((ISet <string>)httpRequest.FormData["name"]).FirstOrDefault(); var cover = ((ISet <string>)httpRequest.FormData["cover"]).FirstOrDefault(); var album = new Album() { Name = name, Cover = cover, Price = 0M, }; db.Albums.Add(album); db.SaveChanges(); } return(this.Redirect("/Albums/All")); }
public void Configure(IServerRoutingTable serverRoutingTable) { using (var context = new RunesDbContext()) { context.Database.EnsureCreated(); } }
public IHttpResponse RegisterConfirm(IHttpRequest httpRequest) { using (var context = new RunesDbContext()) { var username = ((ISet <string>)httpRequest.FormData["username"]).FirstOrDefault(); var password = ((ISet <string>)httpRequest.FormData["password"]).FirstOrDefault(); var confirmPassword = ((ISet <string>)httpRequest.FormData["confirmPassword"]).FirstOrDefault(); var email = ((ISet <string>)httpRequest.FormData["email"]).FirstOrDefault(); if (password != confirmPassword) { return(this.Redirect("/Users/Register")); } var user = new User { Id = Guid.NewGuid().ToString(), Username = username, Password = this.HashPassword(password), Email = email }; if (!this.IsValid(user)) { return(this.Redirect("/Users/Register")); } context.Users.Add(user); context.SaveChanges(); } return(this.Redirect("/Users/Login")); }
public void Configure(IList <Route> serverRoutingTable) { using (var db = new RunesDbContext()) { db.Database.EnsureCreated(); } }
public bool Create(string albumId, string name, string link, decimal price) { using (RunesDbContext db = new RunesDbContext()) { Track track = new Track() { Id = Guid.NewGuid().ToString(), Name = name, Link = link, Price = price, }; if (!Validation.TryValidate(track)) { return(false); } AlbumTrack albumTrack = new AlbumTrack() { Track = track, AlbumId = albumId }; db.AlbumsTracks.Add(albumTrack); db.SaveChanges(); return(true); } }
public IHttpResponse RegisterPost(IHttpRequest httpRequest) { using (var context = new RunesDbContext()) { string username = ((IList <string>)httpRequest.FormData["username"]).FirstOrDefault(); string email = ((IList <string>)httpRequest.FormData["email"]).FirstOrDefault(); string password = ((IList <string>)httpRequest.FormData["password"]).FirstOrDefault(); string confirmPassword = ((IList <string>)httpRequest.FormData["confirmPassword"]).FirstOrDefault(); if (password != confirmPassword) { return(this.Redirect("/Users/Register")); } User user = new User() { Username = username, Email = email, Password = this.HashPassword(password) }; context.Users.Add(user); context.SaveChanges(); } return(this.Redirect("/Users/Login")); }
public IHttpResponse All(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { ICollection <Album> allAlbums = context.Albums.ToList(); if (allAlbums.Count == 0) { this.ViewData["Albums"] = "There are currently no albums."; } else { this.ViewData["Albums"] = string.Join("<br />", allAlbums.Select(album => album.ToHtmlAll()).ToList()); } return(this.View()); } }
public bool CreateUser(RegisterViewModel registerModel) { User user = new User() { Username = registerModel.Username, Id = Guid.NewGuid().ToString(), HashedPassword = this.hashService.StrongHash(registerModel.Password), Email = registerModel.Email }; using (RunesDbContext db = new RunesDbContext()) { if (db.Users.Any(u => u.Username == user.Username || u.Email == user.Email)) { return(false); } try { db.Users.Add(user); db.SaveChanges(); return(true); } catch (Exception e) { Console.WriteLine(e); throw; } } }
public IHttpResponse Details(IHttpRequest request) { if (!this.IsLoggedIn(request)) { return(this.Redirect("/Users/Login")); } string albumId = request.QueryData["id"].ToString(); using (var context = new RunesDbContext()) { Album albumFromDb = context.Albums .Include(a => a.Tracks) .FirstOrDefault(a => a.Id == albumId); if (albumFromDb == null) { return(this.Redirect("/Albums/All")); } this.ViewData["Album"] = albumFromDb.ToHtmlDetails(); } return(this.View()); }
public async Task SeedAsync(RunesDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(ApplicationDbContextSeeder)); var seeders = new List <ISeeder> { new RolesSeeder(), new SettingsSeeder(), }; foreach (var seeder in seeders) { await seeder.SeedAsync(dbContext, serviceProvider); await dbContext.SaveChangesAsync(); logger.LogInformation($"Seeder {seeder.GetType().Name} done."); } }
public IHttpResponse CreateConfirm(IHttpRequest httpRequest) { if (!this.IsLogedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { Album album = new Album() { Name = httpRequest.FormData["name"].ToString(), Cover = httpRequest.FormData["cover"].ToString() }; if (album == null) { return(this.Redirect("/Albums/Create")); } context.Albums.Add(album); context.SaveChanges(); } return(this.Redirect("/Albums/All")); }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } var albumId = int.Parse(httpRequest.QueryData["id"].ToString()); using (var db = new RunesDbContext()) { var albumFromDb = db .Albums .Include(x => x.Tracks) .SingleOrDefault(x => x.Id == albumId); if (albumFromDb == null) { return(this.Redirect("/Albums/All")); } this.ViewData["album"] = albumFromDb.ToHtmlDetails(); } return(this.View()); }
public void Configure(ServerRoutingTable serverRoutingTable) { using (var context = new RunesDbContext()) { context.Database.EnsureCreated(); } ////Index Routes //serverRoutingTable.Add(HttpRequestMethod.Get, "/", request => new RedirectResult("Home/Index")); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Home/Index", request => new HomeController().Index(request)); ////Users Routes //serverRoutingTable.Add(HttpRequestMethod.Get, "/Users/Login", request => new UsersController().Login()); //serverRoutingTable.Add(HttpRequestMethod.Post, "/Users/Login", request => new UsersController().LoginConfirm(request)); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Users/Register", request => new UsersController().Register()); //serverRoutingTable.Add(HttpRequestMethod.Post, "/Users/Register", request => new UsersController().RegisterConfirm(request)); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Users/Logout", request => new UsersController().Logout(request)); ////Track Routes //serverRoutingTable.Add(HttpRequestMethod.Get, "/Track/Create", request => new TrackController().Create(request)); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Track/Details", request => new TrackController().Details(request)); //serverRoutingTable.Add(HttpRequestMethod.Post, "/Track/Create", request => new TrackController().CreateConfirm(request)); ////Albums Routes //serverRoutingTable.Add(HttpRequestMethod.Get, "/Albums/All", request => new AlbumsController().AllAlbums(request)); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Albums/Create", request => new AlbumsController().Create(request)); //serverRoutingTable.Add(HttpRequestMethod.Post, "/Albums/Create", request => new AlbumsController().CreateConfirm(request)); //serverRoutingTable.Add(HttpRequestMethod.Get, "/Albums/Details", request => new AlbumsController().Details(request)); }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("../Users/Login")); } var albumId = httpRequest.QueryData["albumId"].ToString(); var trackId = httpRequest.QueryData["trackId"].ToString(); using (var db = new RunesDbContext()) { var albumFromDb = db.Albums.Find(albumId); var trackFromDb = db.Tracks.Find(trackId); if (albumFromDb == null || trackFromDb == null) { return(this.Redirect("../Albums/All")); } this.ViewData["Link"] = WebUtility.UrlDecode(trackFromDb.Link); this.ViewData["AlbumId"] = albumId; this.ViewData["Name"] = trackFromDb.Name; this.ViewData["Price"] = trackFromDb.Price; } return(this.View()); }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } string albumId = httpRequest.QueryData["albumId"].ToString(); string trackId = httpRequest.QueryData["trackId"].ToString(); using (var context = new RunesDbContext()) { Track trackFromDb = context.Tracks.SingleOrDefault(track => track.Id == trackId); if (trackFromDb == null) { return(this.Redirect($"/Albums/Details?id={albumId}")); } this.ViewData["AlbumId"] = albumId; this.ViewData["Track"] = trackFromDb.ToHtmlDetails(albumId); return(this.View()); } }
public IHttpResponse Details(IHttpRequest httpRequest) { if (!this.IsLoggedIn(httpRequest)) { return(this.Redirect("/Users/Login")); } using (var context = new RunesDbContext()) { var albumId = httpRequest.QueryData["albumId"].ToString(); var trackId = httpRequest.QueryData["trackId"].ToString(); var albumFromDb = context.Albums.FirstOrDefault(x => x.Id == albumId); var trackFromDb = context.Tracks.FirstOrDefault(x => x.Id == trackId); if (albumFromDb == null || trackFromDb == null) { return(this.Redirect("/Albums/All")); } this.ViewData["TrackName"] = WebUtility.UrlDecode(trackFromDb.Name); this.ViewData["TrackLink"] = WebUtility.UrlDecode(trackFromDb.Link); this.ViewData["TrackPrice"] = $"${trackFromDb.Price:f2}"; this.ViewData["AlbumId"] = albumFromDb.Id; return(this.View()); } }
public IHttpResponse All(IHttpRequest httpRequest) { using (var context = new RunesDbContext()) { this.ViewData["Albums"] = context.Albums.Select(album => album).ToList(); return(this.View()); } }
public Track GetById(string trackId) { using (RunesDbContext db = new RunesDbContext()) { return(db .Tracks .SingleOrDefault(t => t.Id == trackId)); } }
public List <Album> GetAll() { using (RunesDbContext db = new RunesDbContext()) { return(db .Albums .ToList()); } }
public List <Album> GetAllAlbums() { using (var context = new RunesDbContext()) { var allAlbums = context.Albums.ToList(); return(allAlbums); } }