public IHttpActionResult DefaultRating(string cartid) { try { using (var entity = new RoseFashionDBEntities()) { var items = entity.Cart_Product.Where(cp => cp.CartID == cartid).ToList(); for (int i = 0; i < items.Count; i++) { string pid = items[i].ProductID; string userid = items[i].Cart.UserID; var existed = entity.Ratings.Where(r => r.UserID == userid && r.ProductID == pid).FirstOrDefault(); if (existed == null) { entity.Ratings.Add(new Rating() { UserID = userid, ProductID = pid, Star = 3 }); } } entity.SaveChanges(); return(Ok()); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetUserBills(string userid) { try { using (var entity = new RoseFashionDBEntities()) { var cartidlist = entity.Carts.Where(c => c.UserID == userid && c.IsUsing == false) .Select(c => c.CartID).ToList(); List <BillModel> result = new List <BillModel>(); for (int i = 0; i < cartidlist.Count(); i++) { string cartid = cartidlist[i]; var bill = entity.Bills.Where(b => b.CartID == cartid) .Select(b => new BillModel { BillID = b.BillID, OrderDate = b.OrderDate, TotalPrice = b.TotalPrice, Status = b.Status }).FirstOrDefault(); result.Add(bill); } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Register(UserModel user) { try { using (var entity = new RoseFashionDBEntities()) { int existedemail = entity.Users.Count(u => u.Email.Equals(user.Email)); if (existedemail > 0) { return(BadRequest("Email already in use.")); } entity.Users.Add(new User() { UserID = Guid.NewGuid().ToString(), FullName = user.FullName, Email = user.Email, Password = Md5Encryption(user.Password), Role = "user" }); entity.SaveChanges(); return(Ok("Register successfully.")); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult CreateGuestUser() { try { using (var entity = new RoseFashionDBEntities()) { //string guestname = "GUEST-" + (entity.Users.Count(u => u.Role == "guest") + 1); string newid = Guid.NewGuid().ToString(); entity.Users.Add(new User() { UserID = newid, FullName = "GUEST", Password = Md5Encryption(newid), Role = "guest" }); entity.SaveChanges(); return(Ok(newid)); //return Ok(guestname + "@gmail.com"); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetNewestProducts() { try { using (var entity = new RoseFashionDBEntities()) { var topsale = entity.fn_GetNewestProduct(8).Select(p => p.PID).ToList(); List <ProductModel> result = new List <ProductModel>(); for (int i = 0; i < topsale.Count(); i++) { string pid = topsale[i]; var product = entity.Products.Where(p => p.ProductID == pid) .Select(p => new ProductModel { ProductID = p.ProductID, Name = p.Name, Image = p.Image, Price = p.Price, DiscountPercent = p.DiscountPercent }).FirstOrDefault(); result.Add(product); } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetStatisticMonth(int year) { try { using (var entity = new RoseFashionDBEntities()) { List <StatisticalModel> result = new List <StatisticalModel>(); Double[] arrSum = new double[12]; int n = 0; for (int i = 1; i < 13; i++) { double sum = 0; try { sum = entity.Bills.Where(c => c.OrderDate.Year == year && c.OrderDate.Month == i).Sum(c => c.TotalPrice); } catch { sum = 0; } arrSum[n++] = sum; } return(Ok(arrSum)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
bool UpdateQuantity(string action, CartModel[] items) { using (var entity = new RoseFashionDBEntities()) { for (int i = 0; i < items.Count(); i++) { string pid = items[i].ProductID; string size = items[i].Size; var product = entity.Product_Size_Quantity.Where(p => p.ProductID == pid && p.Size == size).FirstOrDefault(); if (action.Equals("add")) { product.Quantity += items[i].Amount; } else { if (product.Quantity >= items[i].Amount) { product.Quantity -= items[i].Amount; } else { return(false); } } } entity.SaveChanges(); } return(true); }
public IHttpActionResult AddBill(BillModel billinfo) { try { using (var entity = new RoseFashionDBEntities()) { entity.Bills.Add(new Bill { BillID = "BL-" + (entity.Bills.Count() + 1), CartID = billinfo.CartID, PaymentMethod = billinfo.PaymentMethod, OrderDate = DateTime.Now.Date, DeliveryDate = DateTime.Now.Date, ReceiverName = billinfo.ReceiverName, ReceiverPhone = billinfo.ReceiverPhone, DeliveryAddress = billinfo.DeliveryAddress, ProvinceName = billinfo.ProvinceName, DistrictName = billinfo.DistrictName, TotalPrice = billinfo.TotalPrice, DeliveryFee = billinfo.DeliveryFee, Status = billinfo.Status, IsDeleted = false }); var usercart = entity.Carts.Where(c => c.CartID == billinfo.CartID).FirstOrDefault(); usercart.IsUsing = false; entity.SaveChanges(); return(Ok("OK")); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetLastUsedCartID(string userid) { try { using (var entity = new RoseFashionDBEntities()) { var oldcartid = entity.Carts.Where(c => c.UserID == userid && c.IsUsing == true).Select(c => c.CartID).FirstOrDefault(); if (oldcartid == null) { string newcartid = "CR-" + (entity.Carts.Count() + 1); entity.Carts.Add(new Cart { CartID = newcartid, UserID = userid, IsUsing = true }); entity.SaveChanges(); return(Ok(newcartid)); } return(Ok(oldcartid)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetYears() { try { using (var entity = new RoseFashionDBEntities()) { var yearlist = entity.Bills.Select(c => c.OrderDate.Year).Distinct().ToList(); List <StatisticalModel> result = new List <StatisticalModel>(); for (int i = 0; i < yearlist.Count(); i++) { int year = yearlist[i]; var years = new StatisticalModel { Year = year }; result.Add(years); } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetRecommendedProduct(string userid) { try { using (var entity = new RoseFashionDBEntities()) { //chọn top 10 sp mà user có rating dự đoán cao var recommendedproducts = entity.fn_GetRecommendedProduct(userid).ToList(); var result = new List <ProductModel>(); foreach (string productid in recommendedproducts) { var item = entity.Products.Where(p => p.ProductID == productid) .Select(p => new ProductModel() { ProductID = p.ProductID, Name = p.Name, Image = p.Image, Price = p.Price, CategoryID = p.CategoryID, DiscountPercent = p.DiscountPercent }).FirstOrDefault(); result.Add(item); } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetBillOneInfo(string billid) { try { using (var entity = new RoseFashionDBEntities()) { var result = entity.Bills.Where(b => b.BillID == billid) .Select(b => new BillModel { BillID = b.BillID, CartID = b.CartID, PaymentMethod = b.PaymentMethod, ReceiverName = b.ReceiverName, ReceiverPhone = b.ReceiverPhone, DeliveryAddress = b.DeliveryAddress, ProvinceName = b.ProvinceName, DistrictName = b.DistrictName, OrderDate = b.OrderDate, DeliveryDate = b.DeliveryDate, DiscountCode = b.DiscountCode, DeliveryFee = b.DeliveryFee, TotalPrice = b.TotalPrice, Status = b.Status }).FirstOrDefault(); return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetOneUserRating(string userid, string pid) { try { using (var entity = new RoseFashionDBEntities()) { var result = entity.Ratings.Where(r => r.UserID == userid && r.ProductID == pid) .Select(r => new RatingModel() { UserID = r.UserID, ProductID = r.ProductID, Title = r.Title, Comment = r.Comment, Star = r.Star }).FirstOrDefault(); if (result == null) { result = new RatingModel(); result.UserID = userid; result.ProductID = pid; } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult RegisterSocial(UserModel user) { try { using (var entity = new RoseFashionDBEntities()) { int existedemail = entity.Users.Count(u => u.UserID.Equals(user.UserID)); if (existedemail < 1) { entity.Users.Add(new User() { UserID = user.UserID, FullName = user.FullName, Password = user.UserID, Email = user.Email, Role = "user" }); } entity.SaveChanges(); return(Ok("Register successfully.")); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult FindProduct(string keyword) { try { using (var entity = new RoseFashionDBEntities()) { var result = entity.Products.Where(c => c.Name.Contains(keyword) && c.IsDeleted == false) .Select(c => new ProductModel { ProductID = c.ProductID, Name = c.Name, Image = c.Image, Price = c.Price, CategoryID = c.CategoryID, DiscountPercent = c.DiscountPercent }).ToList(); //.Select(p => p.ProductID).ToList(); return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult UpdateCart(string cartid, CartModel[] items) { try { using (var entity = new RoseFashionDBEntities()) { entity.Cart_Product.RemoveRange(entity.Cart_Product.Where(cp => cp.CartID == cartid).ToList()); entity.SaveChanges(); if (items.Length == 0) { return(Ok("OK")); } for (int i = 0; i < items.Length; i++) { var oneitem = items[i]; entity.Cart_Product.Add(new Cart_Product { CartID = cartid, ProductID = oneitem.ProductID, Size = oneitem.Size, Amount = oneitem.Amount, SalePrice = oneitem.SalePrice, OriginalPrice = oneitem.OriginalPrice }); } entity.SaveChanges(); } return(Ok("OK")); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult DeleteMultipleProduct(string[] pids) { try { using (var entity = new RoseFashionDBEntities()) { for (int i = 0; i < pids.Count(); i++) { string id = pids[i]; var existedproduct = entity.Products.Where(p => p.ProductID == id).FirstOrDefault(); if (existedproduct == null) { return(BadRequest("Product not found.")); } existedproduct.IsDeleted = true; entity.SaveChanges(); } return(Ok("Remove products successfully.")); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult ShowAllUser() { using (var entity = new RoseFashionDBEntities()) { return(Ok(entity.Users.Select(u => new UserModel { FullName = u.FullName, Password = u.Password }).ToList())); } }
public IHttpActionResult GetAllCategory() { using (var entity = new RoseFashionDBEntities()) { IList <CategoryModel> result = entity.Categories.OrderBy(ct => ct.Name).Select(ct => new CategoryModel { CategoryID = ct.CategoryID, Name = ct.Name, MainCategory = ct.MainCategory }).ToList(); return(Ok(result)); } }
public IHttpActionResult GetCategoryFromMainCategory(string maincategory) { using (var entity = new RoseFashionDBEntities()) { IList <CategoryModel> result = entity.Categories.Where(ct => ct.MainCategory == maincategory) .Select(ct => new CategoryModel { CategoryID = ct.CategoryID, Name = ct.Name, MainCategory = ct.MainCategory }).ToList(); return(Ok(result)); } }
public IHttpActionResult CheckEmail(string email) { try { using (var entity = new RoseFashionDBEntities()) { int checkemail = entity.Users.Count(u => u.Email.Equals(email)); return(Ok(checkemail)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetStatisticYear(int fromyear, int toyear) { try { using (var entity = new RoseFashionDBEntities()) { //List<StatisticalModel> result = new List<StatisticalModel>(); int n = 0, j = 0; if (fromyear > toyear) { int tem = fromyear; fromyear = toyear; toyear = tem; } for (int i = fromyear; i <= toyear; i++) { j++; } Double[] arrSum = new double[j]; for (int i = fromyear; i <= toyear; i++) { double sum = 0; try { sum = entity.Bills.Where(c => c.OrderDate.Year == i).Sum(c => c.TotalPrice); } catch { sum = 0; } arrSum[n++] = sum; } //var statistic = new StatisticalModel //{ // StaticYear = arrSum //}; //result.Add(statistic); return(Ok(arrSum)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult AddProduct(ProductModel newproduct) { try { using (var entity = new RoseFashionDBEntities()) { //kiểm tra sản phẩm đã tồn tại chưa bool existedproduct = entity.Products.Any(p => p.Name == newproduct.Name); if (existedproduct == true) { return(BadRequest("This product already exists.")); } newproduct.ProductID = "PR-" + (entity.Products.Count() + 1); var randomcode = Guid.NewGuid(); string imagename = newproduct.ProductID + "-" + randomcode + ".png"; string imagepath = serverAddress + "/images/" + imagename; entity.Products.Add(new Product { ProductID = newproduct.ProductID, Name = newproduct.Name, CategoryID = newproduct.CategoryID, Image = imagepath, Price = newproduct.Price, DiscountPercent = newproduct.DiscountPercent, ImportDate = DateTime.Now.Date }); entity.SaveChanges(); for (int i = 0; i < newproduct.Size.Count(); i++) { entity.Product_Size_Quantity.Add(new Product_Size_Quantity { ProductID = newproduct.ProductID, Size = newproduct.Size[i], Quantity = newproduct.Quantity[i] }); entity.SaveChanges(); } return(Ok(imagename)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
//tính độ tương thích giữa các user private void UserSimilarityCalculation() { using (var entity = new RoseFashionDBEntities()) { var userlist = entity.Users.Where(u => u.Role != "admin").ToList(); for (int i = 0; i < userlist.Count - 1; i++) //không cần xét user cuối { string userid1 = userlist[i].UserID; for (int j = i + 1; j < userlist.Count; j++) //duyệt qua từng người phía sau user đang xét { string userid2 = userlist[j].UserID; //lấy 2 vector của 2 user cần so sánh // vector chỉ lấy rate value của những sp mà cả 2 cùng đánh giá var vectors = entity.fn_GetTwoVetor(userid1, userid2).ToList(); double[] vector1 = new double[vectors.Count]; double[] vector2 = new double[vectors.Count]; for (int k = 0; k < vectors.Count; k++) { vector1[k] = (double)vectors[k].User1Rating; vector2[k] = (double)vectors[k].User2Rating; } //tính và lưu lại độ tương thích của 2 user vào database Similarity newrecord = new Similarity(); newrecord.UserID1 = userid1; newrecord.UserID2 = userid2; newrecord.SimilarityRate = Cosine_Similarity(vector1, vector2); var existedrecord = entity.Similarities.FirstOrDefault(r => r.UserID1 == newrecord.UserID1 && r.UserID2 == newrecord.UserID2); if (existedrecord != null) { existedrecord.SimilarityRate = newrecord.SimilarityRate; } else { entity.Similarities.Add(newrecord); } entity.SaveChanges(); } } } }
public IHttpActionResult EditProduct(ProductModel editedproduct) { try { using (var entity = new RoseFashionDBEntities()) { //kiểm tra sản phẩm có tồn tại hay không var existedproduct = entity.Products.Where(p => p.ProductID == editedproduct.ProductID).FirstOrDefault(); if (existedproduct == null) { return(BadRequest("Product not found.")); } //nếu có => thay đổi các thuộc tính //bỏ ảnh cũ thay ảnh mới string imagename = ""; if (editedproduct.Image.Equals("changed")) { if (RemoveOldImage(existedproduct.Image) == false) { return(BadRequest("Fail to remove image")); } var randomcode = Guid.NewGuid(); imagename = editedproduct.ProductID + "-" + randomcode + ".png"; existedproduct.Image = serverAddress + "/images/" + imagename; } existedproduct.Name = editedproduct.Name; existedproduct.CategoryID = editedproduct.CategoryID; existedproduct.Price = editedproduct.Price; existedproduct.DiscountPercent = editedproduct.DiscountPercent; for (int i = 0; i < editedproduct.Size.Count(); i++) { string size = editedproduct.Size[i]; var currentquantity = entity.Product_Size_Quantity.Where(p => p.ProductID == editedproduct.ProductID && p.Size == size).FirstOrDefault(); currentquantity.Quantity = editedproduct.Quantity[i]; } entity.SaveChanges(); return(Ok(imagename)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult EditCategory(CategoryModel updatecategory) { if (!ModelState.IsValid) { return(BadRequest("Invalid data.")); } using (var entity = new RoseFashionDBEntities()) { var IDCategory = entity.Categories.Where(c => c.CategoryID.Equals(updatecategory.CategoryID)).FirstOrDefault(); if (IDCategory != null) { IDCategory.Name = updatecategory.Name; IDCategory.MainCategory = updatecategory.MainCategory; entity.SaveChanges(); return(Ok("Edit category successfully!")); } return(NotFound()); } }
public IHttpActionResult UpdateBill(BillModel billinfo) { try { using (var entity = new RoseFashionDBEntities()) { var bill = entity.Bills.Where(s => s.BillID == billinfo.BillID).FirstOrDefault(); string oldstatus = bill.Status; bill.Status = billinfo.Status; bill.DeliveryDate = billinfo.DeliveryDate; entity.SaveChanges(); return(Ok(oldstatus)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult ChangePass(UserModel account, string email) { if (!ModelState.IsValid) { return(BadRequest("Invalid data.")); } string pwrHash = GetMd5Hash(account.Password); using (var entity = new RoseFashionDBEntities()) { var Email = entity.Users.Where(c => c.Email.Equals(email)).FirstOrDefault(); if (Email != null) { Email.Password = account.Password; entity.SaveChanges(); return(Ok("Edit password successfully!")); } return(NotFound()); } }
public IHttpActionResult CheckingPurchasedProduct(string userid, string productid) { try { using (var entity = new RoseFashionDBEntities()) { bool result = false; var existed = entity.fn_CheckingIfProductWasPurchasedByUser(userid, productid).FirstOrDefault(); if (existed != null) { result = true; } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetTotalRatingOfProduct(string pid) { try { using (var entity = new RoseFashionDBEntities()) { double result = 0; var ratinglist = entity.Ratings.Where(r => r.ProductID == pid).ToList(); if (ratinglist.Count > 0) { result = ratinglist.Sum(r => r.Star) / ratinglist.Count; } return(Ok(result)); } } catch (Exception ex) { return(InternalServerError(ex)); } }