private void sendReceipt(Order order, List <Order_Artwork> oaList, string emailAddress) { string subject = "Thank you for your purchase!"; string body = "<h1>Your order has been successfully confirmed</h1>" + "\n<h2>Order ID: " + order.OrderId + "</h2>" + "\n<h2>Order Date: " + order.OrderDate + "</h2>" + "\n<h3>Delivering to: " + order.DeliveryAddress + "</h2>" + "\n<hr/>" + "\n<h4>Order Items</h5>"; foreach (Order_Artwork oa in oaList) { // Get artpiece name ArtpieceDao artpieceDao = new ArtpieceDao(); Classes.Artpiece artpiece = artpieceDao.Get("ARTPIECEID", oa.ArtpieceId); // Get artist name ArtistDao artistDao = new ArtistDao(); Classes.Artist artist = artistDao.Get("ARTISTID", artpiece.ArtistId); body += "<b>" + artpiece.Title + "</b> by <i>" + artist.DisplayName + "</i> ( x" + oa.Quantity + " )<br/>"; } // Display total body += "\n<h4>Total: RM" + Quick.FormatPrice(order.TotalPrice) + "</h4>"; // Send email Email.SendEmail(emailAddress, subject, body); }
public static void RegisterArtist(string Id, string Username, string DisplayName, string Email, string Password) { Hasher hash = new Hasher(Password); Artist artist = new Artist(Id, Username, DisplayName, Email, hash.GetHashedPassword(), hash.GetSalt(), "Tell us about yourself."); ArtistDao dao = new ArtistDao(); dao.Add(artist); }
private bool ErrorInEdit(Artist artist) { bool hasError = false; // Check for existing username from both tables CustomerDao custUsernameDao = new CustomerDao(); Customer checkCust = custUsernameDao.Get("USERNAME", username.Text); ArtistDao artistUsernameDao = new ArtistDao(); Artist checkArtist = artistUsernameDao.Get("USERNAME", username.Text); if (checkArtist != null) { if (checkArtist.Username == artist.Username) { checkArtist = null; } } if (checkCust != null || checkArtist != null) { // There is an existing username lblEditError = FormatLbl.Error("An account with this username already exists."); lblEditError.ID = "lblEditError"; hasError = true; } // Reset values checkCust = null; checkArtist = null; // Check for existing email CustomerDao custEmailDao = new CustomerDao(); checkCust = custEmailDao.Get("EMAIL", email.Text); ArtistDao artistEmailDao = new ArtistDao(); checkArtist = artistEmailDao.Get("EMAIL", email.Text); if (checkArtist != null) { if (checkArtist.Email == artist.Email) { checkArtist = null; } } if (checkCust != null || checkArtist != null) { // There is an existing email lblEditError = FormatLbl.Error("An account with this email already exists."); lblEditError.ID = "lblEditError"; hasError = true; } return(hasError); }
public void select_ReturnsArtistInDb() { //Arrange ArtistDao testDao = new ArtistDao(mockDb); Artist expectedArtist = new Artist(1, "Fun."); //Act Artist actualArtist = testDao.select(expectedArtist.ArtistId); //Assert Assert.AreEqual(expectedArtist.ArtistId, actualArtist.ArtistId); Assert.AreEqual(expectedArtist.Name, actualArtist.Name); }
public void update_UpdatesArtistInDb() { //Arrange ArtistDao testDao = new ArtistDao(mockDb); Artist updateArtist = new Artist(1, "Not Fun."); //Act testDao.update(updateArtist); //Assert IEnumerable <Artist> artists = testDao.select(); Assert.IsTrue(artists.ToList().Contains(updateArtist)); }
public void delete_RemovesArtistFromDb() { //Arrange ArtistDao testDao = new ArtistDao(mockDb); Artist deleteArtist = new Artist(1, "Fun."); //Act testDao.delete(deleteArtist); //Assert IEnumerable <Artist> artists = testDao.select(); Assert.IsTrue(!artists.ToList().Contains(deleteArtist)); }
public void insert_InsertsArtistInDb() { //Arrange ArtistDao testDao = new ArtistDao(mockDb); Artist newArtist = new Artist(3, "Prince"); //Act testDao.insert(newArtist); //Assert IEnumerable <Artist> artists = testDao.select(); Assert.IsTrue(artists.ToList().Contains(newArtist)); }
protected void btnEdit_Click(object sender, EventArgs e) { Artist OldArtist = (Artist)Session["artist"]; // Check for empty fields if (Quick.IsEmpty(username, email, displayName, bio)) { // There are empty fields lblEditError = FormatLbl.Error("Ensure you do not have empty fields (except for password)."); lblEditError.ID = "lblEditError"; } else { // Check for valid email if (!Quick.CheckRegex(email.Text, @".+\@.+\..+")) { lblEditError = FormatLbl.Error("Email must be valid."); lblEditError.ID = "lblEditError"; } else { if (!ErrorInEdit(OldArtist)) { string NewPass = OldArtist.Passwd; byte[] NewSalt = OldArtist.PasswordSalt; // If password is not empty, update password if (password.Text != String.Empty) { Hasher hash = new Hasher(password.Text); NewPass = hash.GetHashedPassword(); NewSalt = hash.GetSalt(); } Artist newArtist = new Artist(OldArtist.Id, username.Text, displayName.Text, email.Text, NewPass, NewSalt, bio.Text); ArtistDao dao = new ArtistDao(); dao.Update(newArtist, OldArtist.Id); //Update the record based on original ID Session["artist"] = newArtist; // Update the one in the session Response.Redirect("ArtistAccount.aspx?Edit=Success"); // Refreshes the page } } } }
protected void Page_Load(object sender, EventArgs e) { FormatLbl = new FormatLabel(lblEditError); if (Session["artist"] == null) { Response.Redirect("~/Pages/LoginRegister.aspx"); } else { // Clear error message lblEditError.Text = ""; if (!IsPostBack) { ArtistDao dao = new ArtistDao(); Artist artist = (Artist)Session["artist"]; // Update the one in the session and page artist = dao.Get("ARTISTID", artist.Id); Session["artist"] = artist; //nameLbl.Text = artist.Username + " " + artist.DisplayName; //usernameLbl.Text = artist.Id; lblName.Text = artist.DisplayName; lblUsername.Text = "@" + artist.Username; lblBio.Text = artist.Bio; username.Text = artist.Username; displayName.Text = artist.DisplayName; email.Text = artist.Email; bio.Text = artist.Bio; } } if (Request.QueryString["Edit"] != null) { lblEditError = FormatLbl.Success("Account successfully updated"); } }
public void CreateTest() { SongManager songMng = new SongManager(); AlbumDao albumDao = new AlbumDao(); ArtistDao artistDao = new ArtistDao(); Album album = albumDao.SelectAll().First(); Artist artist = artistDao.SelectAll().First(); Song song = new Song() { title = "Canción de prueba", genre = "genero de prueba", fk_album_id = album.album_id, fk_artist_id = artist.artist_id }; var actual = songMng.Create(song); var expected = true; Console.WriteLine(actual.Message); Assert.AreEqual(expected, actual.Status); }
protected void Page_Load(object sender, EventArgs e) { // Redirects if (Request.QueryString["username"] == null) { Net.Redirect("~/Pages/Home.aspx"); } if (Request.QueryString["username"].ToString().Equals("session") && Net.GetSession("artist") == null && Net.GetSession("customer") == null) { Net.Redirect("~/Pages/LoginRegister.aspx"); } Net.AllowOnly("artist"); /*if (Net.GetSession("artist") == null && Net.GetSession("customer") != null) * { * Net.Redirect("~/Pages/CustomerProfile.aspx?username=session"); * }*/ // To ensure that a valid username is entered try { username = Request.QueryString["username"].ToString(); } catch (Exception ex) { // Show error msg } int offsetAmt = 0; int ItemLimit = 9; // How many items per page // Convert page into number try { pageNo = Convert.ToInt32(Request.QueryString["page"].ToString()); LoadButtons(ItemLimit); } catch (Exception ex) { Net.Redirect("~/Pages/ArtistProfile.aspx?username="******"&page=1"); } if (pageNo < 1) { Net.Redirect("~/Pages/ArtistProfile.aspx?username="******"&page=1"); } offsetAmt = CalculateOffset(ItemLimit); // Clear parameters GallerySource.SelectParameters.Clear(); GallerySource.SelectCommand = "SELECT ARTPIECE.TITLE, ARTPIECE.IMAGELINK AS URL, ARTPIECE.ArtpieceId, ARTIST.USERNAME, ARTIST.DisplayName FROM ARTPIECE INNER JOIN ARTIST ON ARTPIECE.ARTISTID = ARTIST.ARTISTID WHERE (ARTPIECE.ISPUBLIC = 1) AND ARTIST.USERNAME = @USERNAME ORDER BY ARTPIECE.ARTPIECEID DESC OFFSET @OFFSETAMT ROWS FETCH NEXT @ItemLimit ROWS ONLY"; GallerySource.SelectParameters.Add("offsetAmt", System.Data.DbType.Int32, offsetAmt + ""); GallerySource.SelectParameters.Add("ItemLimit", System.Data.DbType.Int32, ItemLimit + ""); GallerySource.SelectParameters.Add("USERNAME", username); //Fetch from DB Artist Artist = null; if (username.Equals("session")) { Artist = (Artist)Net.GetSession("artist"); } else { ArtistDao Dao = new ArtistDao(); Artist = Dao.Get("username", username); } if (Artist == null) { lblName.Text = "Artist does not exist."; } else { lblHandle.Text = "@" + Artist.Username; lblName.Text = Artist.DisplayName; lblBio.Text = Artist.Bio + "<br><span style='font-size: 20px; color: grey;'>Viewing " + Artist.DisplayName + "'s artworks.</span>"; } ArtRepeater.DataSource = GallerySource; ArtRepeater.DataBind(); }
public bool ArtistExists(Artist artist) { return(ArtistDao.ArtistExists(artist)); }
protected void Page_Load(object sender, EventArgs e) { // Initialize FormatLbl = new FormatLabel(lblEditError); artpiece = new Classes.Artpiece(); // To ensure that a valid username is entered string artpieceId = ""; try { artpieceId = Request.QueryString["id"].ToString(); } catch (Exception ex) { //Show error msg } // Get from DB ArtpieceDao dao = new ArtpieceDao(); artpiece = dao.Get("ARTPIECEID", artpieceId); // Validate artpiece ID if (artpiece == null) { Net.Redirect("Artpiece.aspx?id=UNKNOWN"); } else { // Get Artist info ArtistDao artistDao = new ArtistDao(); artist = artistDao.Get("ARTISTID", artpiece.ArtistId); // Will be null if currently logged in user is not an artist Artist currentArtist = (Artist)Session["Artist"]; // Redirect if not original artist if (currentArtist == null || artpiece.ArtistId != currentArtist.Id) { Net.Redirect("Artpiece.aspx?id=" + artpiece.ArtpieceId); } else { // Show private artpiece to the original artist if (!artpiece.IsPublic && currentArtist.Id == artist.Id) { if (!IsPostBack) { //Display artpiece details lblArtist.Text = artist.DisplayName; lblDescription.Text = artpiece.About; lblTitle.Text = artpiece.Title + "(PRIVATE ARTPIECE)"; txtStocks.Text = artpiece.Stocks + ""; artpieceImg.ImageUrl = artpiece.ImageLink; lblArtpiecePrice.Text = Quick.FormatPrice(artpiece.Price); if (!artpiece.IsForSale) { lblForSale.Text = "NOT FOR SALE"; lblForSale.CssClass = "notforsale"; } } } else // Show public artpiece { if (!IsPostBack) { //Display artpiece details lblArtist.Text = artist.DisplayName; lblDescription.Text = artpiece.About; lblTitle.Text = artpiece.Title; txtStocks.Text = artpiece.Stocks + ""; lblArtpiecePrice.Text = Quick.FormatPrice(artpiece.Price); artpieceImg.ImageUrl = artpiece.ImageLink; if (!artpiece.IsForSale) { lblForSale.Text = "NOT FOR SALE"; lblForSale.CssClass = "notforsale"; } } } } } }
protected void Page_Load(object sender, EventArgs e) { artpiece = new Classes.Artpiece(); // Hide edit button first btnEdit.Visible = false; //Hide buttons first btnAddToWishlist.Visible = false; btnAddToCart.Visible = false; btnViewArtist.Visible = false; // To ensure that a valid username is entered string artpieceId = ""; try { artpieceId = Request.QueryString["id"].ToString(); } catch (Exception ex) { //Show error msg } // Get from DB ArtpieceDao dao = new ArtpieceDao(); artpiece = dao.Get("ARTPIECEID", artpieceId); // Validate artpiece ID if (artpiece == null) { lblTitle.Text = "Artpiece does not exist"; } else { // Get Artist info ArtistDao artistDao = new ArtistDao(); artist = artistDao.Get("ARTISTID", artpiece.ArtistId); // Will be null if currently logged in user is not an artist Artist currentArtist = (Artist)Session["Artist"]; // Block private artpiece from customer if (!artpiece.IsPublic && currentArtist == null) { lblTitle.Text = "Artpiece is private"; } else { // Block private artpiece from other artists if (!artpiece.IsPublic && currentArtist.Id != artist.Id) { lblTitle.Text = "Artpiece is private"; } // Show private artpiece to the original artist else if (!artpiece.IsPublic && currentArtist.Id == artist.Id) { //Display artpiece details lblArtist.Text = artist.DisplayName; lblDescription.Text = artpiece.About; lblTitle.Text = artpiece.Title + "(PRIVATE ARTPIECE)"; lblStocks.Text = artpiece.Stocks + ""; artpieceImg.ImageUrl = artpiece.ImageLink; lblArtpiecePrice.Text = Quick.FormatPrice(artpiece.Price); if (!artpiece.IsForSale) { lblForSale.Text = "NOT FOR SALE"; lblForSale.CssClass = "notforsale"; } } else // Show public artpiece { LoadBt(); // Make buttons visible btnViewArtist.Visible = true; //Display artpiece details lblArtist.Text = artist.DisplayName; lblDescription.Text = artpiece.About; lblTitle.Text = artpiece.Title; lblStocks.Text = artpiece.Stocks + ""; lblArtpiecePrice.Text = Quick.FormatPrice(artpiece.Price); artpieceImg.ImageUrl = artpiece.ImageLink; if (!artpiece.IsForSale) { lblForSale.Text = "NOT FOR SALE"; lblForSale.CssClass = "notforsale"; } } // Show edit button if this is the original artist if (currentArtist != null && currentArtist.Id == artist.Id) { btnEdit.Visible = true; } } } }
protected void Page_Load(object sender, EventArgs e) { Net.AllowOnly("customer"); // Check for out of stock error if any string errorMsg = (string)Net.GetSession("cartOutOfStocks"); if (errorMsg != null) { lblErrorMsg.Text = errorMsg; } bool cartSaved = false; // Get orders from Session List <Order_Artwork> oaList = (List <Order_Artwork>)Net.GetSession("oaList"); Order order = (Order)Net.GetSession("order"); if (Net.GetSession("cartSaved") == null || errorMsg != null) { checkoutBt.Visible = false; } else { cartSaved = (bool)Net.GetSession("cartSaved"); } if (!cartSaved) { checkoutBt.Visible = false; } /* ---------------------------------------------------------------------------------------------------- * Get session attributes to manipulate * ---------------------------------------------------------------------------------------------------- */ Customer customer = (Customer)Net.GetSession("customer"); if (customer == null) { Net.Redirect("~/Pages/LoginRegister.aspx"); // Redirect if not logged in as customer } /* FOR DEBUG PURPOSES */ //oaList = new List<Order_Artwork>(); //oaList.Add(new Order_Artwork("testorder", "MILO", 1, oaList)); //oaList.Add(new Order_Artwork("testorder", "LILO", 5, oaList)); /* END */ /* ---------------------------------------------------------------------------------------------------- * Initialise daos to use * ---------------------------------------------------------------------------------------------------- */ ArtpieceDao artpieceDao = new ArtpieceDao(); ArtistDao artistDao = new ArtistDao(); /* ---------------------------------------------------------------------------------------------------- * Display statics in page header * ---------------------------------------------------------------------------------------------------- */ // TODO TODO TODO // TODO TODO TODO // TODO TODO TODO // TODO TODO TODO // TODO TODO TODO /* ---------------------------------------------------------------------------------------------------- * Display items in cart * ---------------------------------------------------------------------------------------------------- */ Control gallery = this.FindControl("gallery"); int loopCounter = 0; // if cart is empty if (oaList == null || oaList.Count == 0) { // Don't show checkout button checkoutBt.Visible = false; } else { lblItems.Text = oaList.Count + ""; gallery.Controls.Add(new LiteralControl("<table class='gallery'>")); foreach (Order_Artwork orderArtwork in oaList) { // Get corresponding artpiece and artist Classes.Artpiece artpiece = artpieceDao.Get("ArtpieceId", orderArtwork.ArtpieceId); Artist artist = artistDao.Get("ArtistId", artpiece.ArtistId); if (loopCounter % 3 == 0) { if (loopCounter != 0) { gallery.Controls.Add(new LiteralControl("</tr>")); } gallery.Controls.Add(new LiteralControl("<tr>")); } // --- gallery.Controls.Add(new LiteralControl("" + "<td>" + "<a href='#'>")); // --- Image image = new Image(); image.ImageUrl = artpiece.ImageLink; gallery.Controls.Add(image); // --- gallery.Controls.Add(new LiteralControl("" + "</a>" + "<div class='details'>" + "<div class='of_artpiece'>")); // --- /*Label lblTitle = new Label(); * lblTitle.ID = "lblTitle" + loopCounter.ToString(); * lblTitle.Text = artpiece.Title; * lblTitle.CssClass = "label title"; * * gallery.Controls.Add(lblTitle);*/ //gallery.Controls.Add(new LiteralControl("<asp:Label ID='lblTitle" + loopCounter + "' runat='server' Text='" + artpiece.Title + "' CssClass='label title'></asp:Label>")); gallery.Controls.Add(new LiteralControl("<a class='title'>" + artpiece.Title + "</a>")); /*Label lblArtist = new Label(); * lblArtist.ID = "lblArtist" + loopCounter.ToString(); * lblArtist.Text = artist.DisplayName; * lblTitle.CssClass = "label artist"; * * gallery.Controls.Add(lblArtist);*/ //gallery.Controls.Add(new LiteralControl("<asp:Label ID='lblArtist" + loopCounter + "' runat='server' Text='" + artist.DisplayName + "' CssClass='label artist'></asp:Label>")); gallery.Controls.Add(new LiteralControl("<a class='artist'>" + artist.DisplayName + "</a>")); // --- gallery.Controls.Add(new LiteralControl("" + "</div>" + "<div class='of_order'>" + "<div class='quantity'>")); // --- /*Button btnDecrement = new Button(); * btnDecrement.ID = "btnDecrement" + (loopCounter + 1).ToString(); * btnDecrement.Text = "-"; * btnDecrement.CssClass = "decrement"; * //btnDecrement.Click += Decrement; * * gallery.Controls.Add(btnDecrement);*/ gallery.Controls.Add(new LiteralControl("<input type='button' id='btnDecrement" + (loopCounter + 1).ToString() + "' class='decrement' value='-'>")); Label lblQuantity = new Label(); lblQuantity.ID = "lblQuantity" + (loopCounter + 1).ToString(); lblQuantity.Text = orderArtwork.Quantity.ToString() + " PCS"; lblQuantity.CssClass = "label"; lblQuantity.Visible = false; gallery.Controls.Add(lblQuantity); gallery.Controls.Add(new LiteralControl("<a id='quantity" + (loopCounter + 1).ToString() + "'>" + orderArtwork.Quantity.ToString() + " PCS</a>")); /*Button btnIncrement = new Button(); * btnIncrement.ID = "btnIncrement" + (loopCounter + 1).ToString(); * btnIncrement.Text = "+"; * btnIncrement.CssClass = "increment"; * //btnIncrement.Click += Increment; * * gallery.Controls.Add(btnIncrement);*/ gallery.Controls.Add(new LiteralControl("<input type='button' id='btnIncrement" + (loopCounter + 1).ToString() + "' class='increment' value='+'>")); // --- gallery.Controls.Add(new LiteralControl("" + "</div>" + "<div class='subtotal'>" + "<a class='caption'>SUBTOTAL</a>")); // --- Label priceHidden = new Label(); priceHidden.ID = "priceHidden" + (loopCounter + 1).ToString(); priceHidden.Text = Convert.ToString(artpiece.Price); priceHidden.CssClass = "label value"; priceHidden.Visible = false; gallery.Controls.Add(priceHidden); HiddenField quantityHidden = new HiddenField(); quantityHidden.ID = "quantityHidden" + (loopCounter + 1).ToString(); quantityHidden.Value = Convert.ToString(orderArtwork.Quantity); gallery.Controls.Add(quantityHidden); gallery.Controls.Add(new LiteralControl("<input type='hidden' class='value' value='" + artpiece.Price + "' id='hiddenPriceHTML" + (loopCounter + 1).ToString() + "'/>")); //string priceStr = (artpiece.Price * (double)orderArtwork.Quantity).ToString(); gallery.Controls.Add(new LiteralControl("<a class='value' id='subtotal" + (loopCounter + 1).ToString() + "'>RM " + Quick.FormatPrice((artpiece.Price * (double)orderArtwork.Quantity)) + "</a>")); // --- gallery.Controls.Add(new LiteralControl("" + "</div>" + "</div>" + "</div>" + "</td>")); // --- loopCounter++; } if (oaList.Count > 0) { gallery.Controls.Add(new LiteralControl("</tr>")); } gallery.Controls.Add(new LiteralControl("</table>")); // Set total price lblPrice.Text = "RM " + Quick.FormatPrice(order.TotalPrice); } }