private static void ReturnImage(HttpContext context, string imageNameQuery) { if (!string.IsNullOrWhiteSpace(imageNameQuery)) { using (var db = new AvensiaWebshopEntities()) { var imageQuery = db.ProductPhoto.FirstOrDefault(i => i.LargePhotoFileName == imageNameQuery); if (imageQuery == null) { Return404(context); return; } context.Response.ContentType = "image/gif"; Stream strm = new MemoryStream(imageQuery.LargePhoto); byte[] buffer = new byte[4096]; int byteSeq = strm.Read(buffer, 0, 4096); while (byteSeq > 0) { context.Response.OutputStream.Write(buffer, 0, byteSeq); byteSeq = strm.Read(buffer, 0, 4096); } } } }
private static void ReturnTumbNail(HttpContext context, string thumbNailProductIDQuery) { int productID; if (!string.IsNullOrWhiteSpace(thumbNailProductIDQuery) && int.TryParse(thumbNailProductIDQuery, out productID)) { using (var db = new AvensiaWebshopEntities()) { var imageQuery = db.Product.FirstOrDefault(p => p.ProductID == productID); if (imageQuery == null) { Return404(context); return; } context.Response.ContentType = "image/gif"; Stream strm = new MemoryStream(imageQuery.ThumbNailPhoto); byte[] buffer = new byte[4096]; int byteSeq = strm.Read(buffer, 0, 4096); while (byteSeq > 0) { context.Response.OutputStream.Write(buffer, 0, byteSeq); byteSeq = strm.Read(buffer, 0, 4096); } } } }
private void FillShopingCart() { using (var db = new AvensiaWebshopEntities()) { var shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart] ?? new ShopingCart(); WebShopController.UppdateMiniCart(this, shopingCart); } }
private void PopulateMenu() { using (var db = new AvensiaWebshopEntities()) { var categoryQuery = db.ProductCategory.Where(p => p.ParentProductCategoryID == null); repNavigation.DataSource = categoryQuery.ToList(); repNavigation.DataBind(); } }
protected void BannerTwoAnnons(int kampanjId) { using (var db = new AvensiaWebshopEntities()) { //Random random = new Random(); //var selectedCampID = random.Next(1, 5); var selectedCamp = db.Kampanj.FirstOrDefault(k => k.KampanjID == kampanjId); Campaign_2.ImageUrl = "~/Images/Annonser/" + selectedCamp.KampanjImageName; Campaign_2.NavigateUrl = selectedCamp.KampanjURL; } }
private void FillOrderConfirm() { int orderId = -1; var lastOrderIDObject = Session["LastOrderID"]; if (lastOrderIDObject != null) { orderId = int.Parse(lastOrderIDObject.ToString()); } else if (lastOrderIDObject == null || orderId == -1) { Response.Redirect("/Hem.aspx"); } using (var db = new AvensiaWebshopEntities()) { var orderQuerry = db.SalesOrderHeader.SingleOrDefault(o => o.SalesOrderID == orderId); repProductList.DataSource = orderQuerry.SalesOrderDetail; repProductList.DataBind(); ltFreigtLabel.Text = $"{orderQuerry.ShipMethod} Shipping"; ltFreightPrice.Text = $"{orderQuerry.Freight:N2}"; ltTax.Text = $"{orderQuerry.TaxAmt:N2}"; name.Text = $"{orderQuerry.Customer.FirstName} {orderQuerry.Customer.LastName}"; var addressQuery = db.Address.FirstOrDefault(a => a.AddressID == orderQuerry.ShipToAddressID); if (addressQuery.AddressLine2 == "") { adress.Text = $"{addressQuery.AddressLine1} <br/> {addressQuery.City} <br/> {addressQuery.PostalCode}"; } else { adress.Text = $"{addressQuery.AddressLine1} <br/> C/o {addressQuery.AddressLine2} <br/> {addressQuery.City} <br/> {addressQuery.PostalCode}"; } pris.Text = $"   {orderQuerry.TotalDue:N2} kr"; legendText.Text = $"order id: <span>{orderId}</span>"; var customerQuery = db.Customer.FirstOrDefault(c => c.CustomerID == orderQuerry.CustomerID); mail.Text = $"{customerQuery.EmailAddress}"; SendComfirmationMail(orderQuerry, orderQuerry.Customer); } }
protected void GetCampaigns(int numberOfCampaigns) { var campaignsList = new List<Kampanj>(); using (var db = new AvensiaWebshopEntities()) { campaignsList = db.Kampanj.Where(c => c.KampanjStatus == "active").ToList(); if (campaignsList.Count > numberOfCampaigns) { int numberToRemove = campaignsList.Count - numberOfCampaigns; campaignsList.RemoveRange(numberOfCampaigns, numberToRemove); } } repCampaign.DataSource = campaignsList; repCampaign.DataBind(); }
private bool GetActiveUser(out Customer customer) { var activeUserID = Session[WebShopController.SessionKeyActiveUserID]; customer = null; if (activeUserID != null) { using (var db = new AvensiaWebshopEntities()) { customer = db.Customer.FirstOrDefault(c => c.CustomerID == (int)activeUserID); return customer != null; } } return false; }
protected void btnLogIn_Click(object sender, EventArgs e) { using (var db = new AvensiaWebshopEntities()) { var activeUser = db.Customer.SingleOrDefault(c => c.EmailAddress == txtUserName.Text.ToLower().Trim() && c.PasswordHash == txtPassword.Text.Trim()); if (activeUser != null) { Session[WebShopController.SessionKeyActiveUserID] = activeUser.CustomerID; Response.Redirect("/Hem.aspx"); } lblStatus.Text = "Felaktigt lösenord eller användarnamn"; lblStatus.Visible = true; } }
internal static bool AddOrUpdateProductToCart(ref ShopingCart cart, int productID, short productQty, bool replaceQuantity = false) { using (var db = new AvensiaWebshopEntities()) { var vProduct = db.vProductAndDescripttionExtendedENOnly.FirstOrDefault(p => p.ProductID == productID); if (vProduct == null) { // TODO: Implementera felkod om Product är null (inte finns i database). return false; } var cartItem = cart.CartItems.FirstOrDefault(i => i.ProductID == vProduct.ProductID); if (cartItem == null) { cartItem = new CartItem() { ProductID = vProduct.ProductID, ProductModelID = vProduct.ProductModelID, ProductName = vProduct.Name, ProductImage = vProduct.LargePhotoFileName, Price = Math.Round(WebShopController.GetProductPrice(vProduct), 2), Quantity = 0, Dricounted = vProduct.DiscountActive ?? false, OriginalPrice = Math.Round(vProduct.ListPrice, 2) }; cart.CartItems.Insert(0, cartItem); } if (replaceQuantity) cartItem.Quantity = productQty; else cartItem.Quantity += productQty; } return true; }
private void GetActiveUser() { var activeUserID = Session[WebShopController.SessionKeyActiveUserID]; if (activeUserID != null) { using (var db = new AvensiaWebshopEntities()) { var customer = db.Customer.FirstOrDefault(c => c.CustomerID == (int)activeUserID); if (customer != null && customer.CustomerID > 0) { txtFirstName.Text = customer.FirstName; txtForLastName.Text = customer.LastName; txtEmail.Text = customer.EmailAddress; txtFirstName.Enabled = false; txtForLastName.Enabled = false; txtEmail.Enabled = false; } } } }
protected void btnRegister_Click(object sender, EventArgs e) { using (var db = new AvensiaWebshopEntities()) { var customerExistQuery = db.Customer.FirstOrDefault(c => c.EmailAddress == txtUserName.Text); if (customerExistQuery != null) { lblStatus.Text = "E-postadressen finns redan"; return; } else if (txtPassword.Text != txtConfirmPassword.Text) { lblStatus.Text = "Password must match"; return; } var customer = new Customer() { NameStyle = false, FirstName = txtFirstName.Text.Trim(), LastName = txtLastName.Text.Trim(), EmailAddress = txtUserName.Text, PasswordHash = txtPassword.Text, PasswordSalt = "", rowguid = Guid.NewGuid(), ModifiedDate = DateTime.Now }; db.Customer.Add(customer); db.SaveChanges(); Session[WebShopController.SessionKeyActiveUserID] = customer.CustomerID; Response.Redirect("/Hem.aspx"); } }
private void FillCategoryRepeaterAndDescrition(int parentCategoryId, bool showCategoryDescription = false) { using (var db = new AvensiaWebshopEntities()) { IQueryable<vProductCategoryWithDescription> categoryQuery = db.vProductCategoryWithDescription; if (CategoryIDQueryString >= parentCategoryId) categoryQuery = categoryQuery.Where(cat => cat.ParentProductCategoryID == CategoryIDQueryString); repSubMenu.DataSource = categoryQuery.ToList(); repSubMenu.DataBind(); var parentCategory = db.vProductCategoryWithDescription.Where(cat => cat.ProductCategoryID == parentCategoryId) .FirstOrDefault(); ltPageHeader.Text = parentCategory.Name; if (showCategoryDescription && parentCategory.CategoryImageName != null) { imgCategoryImage.ImageUrl = "~/images/products/" + parentCategory.CategoryImageName; panelCategoryDescription.Visible = true; } if (showCategoryDescription && parentCategory.CategoryDescription != null) { ltCategoryDescripton.Text = parentCategory.CategoryDescription; panelCategoryDescription.Visible = true; } } }
private void FillProductInfo(int productModelId, int productID) { using (var db = new AvensiaWebshopEntities()) { var products = db.vProductAndDescripttionExtendedENOnly.Where(p => p.ProductModelID == productModelId) .OrderBy(product => product.Name); var activeProduct = (productID < 0) ? products.FirstOrDefault() : products.SingleOrDefault(p => p.ProductID == productID); hfActiveProduct.Value = activeProduct.ProductID.ToString(); ltPageHeader.Text = $"{activeProduct.ProductModel} {(activeProduct.Size != null ? $"Storlek {activeProduct.Size} " : string.Empty)}{(activeProduct.Color ?? string.Empty)}"; imgMainImage.ImageUrl = $"/Media.ashx?image={activeProduct.LargePhotoFileName}"; imgMainImage.AlternateText = activeProduct.Name; lbArticlePrice.Text = $"{activeProduct.ListPrice:N2}"; if (activeProduct.DiscountActive != null && activeProduct.DiscountActive.Value) { ltArticleOrginalPrice.Text = $"{activeProduct.ListPrice:N2}"; lbArticlePrice.Text = $"{WebShopController.GetProductPrice(activeProduct):N2}"; lbArticlePrice.CssClass = "articleDiscountedPrice"; panelArticleOriginalPrice.Visible = true; } else { lbArticlePrice.CssClass = string.Empty; panelArticleOriginalPrice.Visible = false; } ltArticleDescription.Text = activeProduct.Description; ltArticleNumber.Text = activeProduct.ProductNumber; if (products.Count() > 1 && (activeProduct.Color != null || activeProduct.Size != null)) { UpdateArticleChoiseDropDown(products, activeProduct); } } }
private void DisplaySearchResult(string searchQueryFromUrl) { var searchStrings = new List<string>(); var searchQuery = new List<vProductAndDescripttionExtendedENOnly>(); if (searchQueryFromUrl.Length > 0) searchStrings.AddRange(searchQueryFromUrl.Split(' ').ToList()); if (searchStrings.Count > 0) { string sqlQuery = "SELECT *" + " FROM [AvensiaWebShop].[dbo].[vProductAndDescripttionExtendedENOnly]" + " WHERE Name LIKE '%" + searchStrings[0] + "%'" + " OR Description LIKE '%" + searchStrings[0] + "%'" + " OR ProductNumber LIKE '%" + searchStrings[0] + "%'"; for (int i = 1; i < searchStrings.Count; i++) { sqlQuery += " OR Name LIKE '%" + searchStrings[i] + "%'" + " OR Description LIKE '%" + searchStrings[i] + "%'" + " OR ProductNumber LIKE '%" + searchStrings[0] + "%'"; } using (var db = new AvensiaWebshopEntities()) { searchQuery = db.vProductAndDescripttionExtendedENOnly.SqlQuery(sqlQuery).ToList(); } } ltPageHeader.Text = "Search results"; if (searchQuery.ToList().Count > 0) { FillProductListAndFilter(searchQuery); panelProductList.Visible = true; PanelCategoryMenu.Visible = true; panelCategories.Visible = true; } else { panelNoProducts.Visible = true; } }
protected void btnConfirmOrder_Click(object sender, EventArgs e) { try { var shopingCart = (ShopingCart)Session[WebShopController.SessionKeyShopingCart]; using (var db = new AvensiaWebshopEntities()) { var customer = new Customer() { NameStyle = false, FirstName = txtFNamn.Text.Trim(), LastName = txtENamn.Text.Trim(), EmailAddress = txtEPost.Text.Trim(), PasswordHash = "", PasswordSalt = "", rowguid = Guid.NewGuid(), ModifiedDate = DateTime.Now }; db.Customer.Add(customer); var address = new Address() { AddressLine1 = txtAdress.Text.Trim(), AddressLine2 = txtCoAdress.Text.Trim(), City = txtOrt.Text.Trim(), StateProvince = "", CountryRegion = "", PostalCode = txtPostNr.Text.Trim(), rowguid = Guid.NewGuid(), ModifiedDate = DateTime.Now }; db.Address.Add(address); db.SaveChanges(); var salesOrderHeader = new SalesOrderHeader() { OrderDate = DateTime.Today, DueDate = DateTime.Today.AddDays(14), SalesOrderNumber = "Number", CustomerID = customer.CustomerID, ShipToAddressID = address.AddressID, ShipMethod = rblDeliveryOptions.SelectedItem.Text, TaxAmt = shopingCart.SumTotal * (decimal)0.2, ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid(), Freight = GetFreightPrice() }; db.SalesOrderHeader.Add(salesOrderHeader); db.SaveChanges(); foreach (var cartItem in shopingCart.CartItems) { db.SalesOrderDetail.Add(new SalesOrderDetail() { SalesOrderID = salesOrderHeader.SalesOrderID, OrderQty = cartItem.Quantity, ProductID = cartItem.ProductID, UnitPrice = cartItem.Price * (decimal)0.8, UnitPriceDiscount = (decimal)0, rowguid = Guid.NewGuid(), ModifiedDate = DateTime.Now }); db.SaveChanges(); } Session["LastOrderID"] = salesOrderHeader.SalesOrderID; } } catch (Exception ex) { Session["LastOrderID"] = null; throw; } Session[WebShopController.SessionKeyShopingCart] = new ShopingCart(); Response.Redirect("/Bekraftelse.aspx"); }
internal static List<Kampanj> GetCampaigns(int numberOfCampaigns) { var campaignsList = new List<Kampanj>(); using (var db = new AvensiaWebshopEntities()) { campaignsList = db.Kampanj.Where(c => c.KampanjStatus == "active").ToList(); if (campaignsList.Count > numberOfCampaigns) { int numberToRemove = campaignsList.Count - numberOfCampaigns; campaignsList.RemoveRange(numberOfCampaigns, numberToRemove); } } return campaignsList; }
internal static List<vProductAndDescripttionExtendedENOnly> GetPopularProducts(int numberOfProducts) { var result = new List<vProductAndDescripttionExtendedENOnly>(); using (var db = new AvensiaWebshopEntities()) { var popularItemIdsQuery = db.SalesOrderDetail .GroupBy(p => p.ProductID) .OrderByDescending(g => g.Count()) .Select(g => g.FirstOrDefault().Product.ProductID) .Take(numberOfProducts); result = db.vProductAndDescripttionExtendedENOnly .Where(p => popularItemIdsQuery.Contains(p.ProductID)).ToList(); if (result.Count < numberOfProducts) { result.AddRange(db.vProductAndDescripttionExtendedENOnly.GroupBy(p => p.ProductModelID) .Where((p, index) => index % 5 == 0) .Select(group => group.FirstOrDefault()) .Take(numberOfProducts - result.Count) .ToList() ); } } return result; }
private void FillProductRepeater(int productParentCategory) { var products = new List<vProductAndDescripttionExtendedENOnly>(); using (var db = new AvensiaWebshopEntities()) { var categoryQuery = db.ProductCategory.FirstOrDefault(cat => cat.ProductCategoryID == productParentCategory); if (categoryQuery != null && !string.IsNullOrEmpty(categoryQuery.Name)) ltPageHeader.Text = categoryQuery.Name; products = db.vProductAndDescripttionExtendedENOnly .Where(product => product.ProductCategoryID == productParentCategory) .ToList(); } products = FillProductListAndFilter(products); }
internal void IsUserActive() { var activeUserID = Session[WebShopController.SessionKeyActiveUserID]; if (activeUserID == null) { panelAuthorized.Visible = false; panelNonAuthorized.Visible = true; } else { using (var db = new AvensiaWebshopEntities()) { var customer = db.Customer.FirstOrDefault(c => c.CustomerID == (int)activeUserID); lblCustomerName.Text = customer.FirstName; } panelAuthorized.Visible = true; panelNonAuthorized.Visible = false; } }