public HttpResponseMessage PurchaseVipNews([FromUri] int quantity)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             SponsoredNewsOrder sno = new SponsoredNewsOrder();
             sno.UserID = HttpContext.Current.User.Identity.GetUserId();
             sno.SponsoredNewsOrderDate = DateTime.Now;
             sno.Quantity = quantity;
             sno.SumPrice = sno.Quantity * 50000;
             entities.SponsoredNewsOrders.Add(sno);
             entities.UserInfos.Where(x => x.UserID == sno.UserID).FirstOrDefault().VipNewsCount =
                 entities.UserInfos.Where(x => x.UserID == sno.UserID).FirstOrDefault().VipNewsCount
                 + quantity;
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "PURCHASE OK"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
示例#2
0
 public HttpResponseMessage ChangetoRead(int rid)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             var result = entities.Reports.FirstOrDefault(x => x.ReportID == rid);
             if (result != null)
             {
                 result.IsRead = true;
                 entities.SaveChanges();
                 return(Request.CreateResponse(HttpStatusCode.OK));
             }
             else
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Có lỗi"));
             }
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
 public HttpResponseMessage Delete(int id)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             var entity = entities.BanAccounts.FirstOrDefault(e => e.BanAccountID == id);
             if (entity == null)
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                    "Order item with Id = " + id.ToString() + " not found to delete"));
             }
             else
             {
                 entities.BanAccounts.Remove(entity);
                 entities.SaveChanges();
                 return(Request.CreateResponse(HttpStatusCode.OK, "Delete OK"));
             }
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
示例#4
0
 public HttpResponseMessage DeleteMyRating([FromUri] int pid)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             string currentUserID = User.Identity.GetUserId();
             var    checkIfRated  = entities.Ratings.FirstOrDefault(x => x.ProductID == pid && x.UserID == currentUserID);
             if (checkIfRated != null)
             {
                 entities.Ratings.Remove(checkIfRated);
                 entities.SaveChanges();
                 return(Request.CreateResponse(HttpStatusCode.OK, "Đã xóa Rating"));
             }
             else
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, "Có lỗi xảy ra"));
             }
         }
     }
     catch
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, "Có lỗi xảy ra"));
     }
 }
示例#5
0
        public HttpResponseMessage ExtendTime([FromUri] int SponsoredItemID)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string        currentUserID = User.Identity.GetUserId();
                    SponsoredItem sno           = entities.SponsoredItems.FirstOrDefault(x => x.SponsoredItemID == SponsoredItemID);
                    if (sno != null)
                    {
                        var user = entities.UserInfos.FirstOrDefault(x => x.UserID == currentUserID);
                        if (user.VipNewsCount == 0)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Hết số lượng được đăng"));
                        }

                        sno.EndDate       = sno.EndDate.Value.AddDays(7);
                        user.VipNewsCount = user.VipNewsCount - 1;
                        entities.SaveChanges();
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#6
0
        public HttpResponseMessage Put(int id, [FromBody] Order order)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    var entity = entities.Orders.FirstOrDefault(e => e.OrderID == id);
                    if (entity == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                           "Order with Id " + id.ToString() + " not found to update"));
                    }
                    else
                    {
                        entity.UserID       = order.UserID;
                        entity.OrderDate    = order.OrderDate;
                        entity.OrderAddress = order.OrderAddress;

                        entities.SaveChanges();

                        return(Request.CreateResponse(HttpStatusCode.OK, entity));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#7
0
        public HttpResponseMessage Put(int id, [FromBody] Brand brand)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    var entity = entities.Brands.FirstOrDefault(e => e.BrandID == id);
                    if (entity == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                           "Product with Id " + id.ToString() + " not found to update"));
                    }
                    else
                    {
                        entity.BrandName = brand.BrandName;
                        entity.Detail    = brand.Detail;

                        entities.SaveChanges();

                        return(Request.CreateResponse(HttpStatusCode.OK, entity));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public HttpResponseMessage EditCurrentUserInfo([FromBody] UserinfoModel userinfo)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string uid    = User.Identity.GetUserId();
                    var    entity = entities.UserInfos.FirstOrDefault(e => e.UserID == uid);
                    if (entity == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Có lỗi xảy ra"));
                    }
                    else
                    {
                        entity.Name        = userinfo.Name;
                        entity.HomeAddress = userinfo.HomeAddress;
                        entity.Email       = userinfo.Email;
                        entity.PhoneNumber = userinfo.PhoneNumber;
                        entity.CMND        = userinfo.CMND;
                        entities.SaveChanges();

                        return(Request.CreateResponse(HttpStatusCode.OK, "Đã sửa"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#9
0
 public HttpResponseMessage Post([FromBody] Rating rating)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             string currentUserID = User.Identity.GetUserId();
             var    checkIfRated  = entities.Ratings.FirstOrDefault(x => x.ProductID == rating.Rating1 && x.UserID == currentUserID);
             if (checkIfRated != null)
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Bạn đã rate rồi"));
             }
             entities.Configuration.ProxyCreationEnabled = false;
             rating.UserID = currentUserID;
             entities.Ratings.Add(rating);
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
示例#10
0
        public async Task <IHttpActionResult> Register2(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new ApplicationUser()
            {
                UserName = model.Email, Email = model.Email
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (result.Succeeded != true)
            {
                return(GetErrorResult(result));
            }
            using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
            {
                entities.Configuration.ProxyCreationEnabled = false;
                string newID             = entities.AspNetUsers.Where(x => x.Email == model.Email).FirstOrDefault().Id.ToString();
                string confirmationToken = UserManager.GenerateEmailConfirmationTokenAsync(newID).Result;

                //Tạo 1 Userinfo trống cho tài khoản mới tạo:
                UserInfo newuserinfo = new UserInfo();
                newuserinfo.UserID       = newID;
                newuserinfo.Name         = "";
                newuserinfo.HomeAddress  = "";
                newuserinfo.Email        = "";
                newuserinfo.Cart         = "[]";
                newuserinfo.VipNewsCount = 0;
                entities.UserInfos.Add(newuserinfo);
                entities.SaveChanges();

                //Gửi email yêu cầu kích hoạt
                SmtpClient client = new SmtpClient();
                client.Port                  = 587;
                client.Host                  = "smtp.gmail.com";
                client.EnableSsl             = true;
                client.Timeout               = 10000;
                client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = false;
                client.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "hoahoa123");
                MailMessage mm = new MailMessage("*****@*****.**", model.Email, "Kích hoạt tài khoản", "http://localhost:8000/emailconfirm?userid=" + newID + "&token=" + confirmationToken.Replace("+", "%252b"));
                mm.BodyEncoding = UTF8Encoding.UTF8;
                mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

                client.Send(mm);
            }
            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
示例#11
0
        public HttpResponseMessage AddToCart([FromUri] int pid = 1, int q = 1)
        {
            using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
            {
                entities.Configuration.ProxyCreationEnabled = false;

                string            userid       = HttpContext.Current.User.Identity.GetUserId();
                List <CartEntity> CartItemList = new List <CartEntity>();
                CartItemList = JsonConvert.DeserializeObject <List <CartEntity> >(entities.UserInfos.FirstOrDefault(e => e.UserID == userid).Cart);

                //Kiểm tra xem sản phẩm đang định bỏ vào giỏ hàng có phải của chính mình hay không:
                var producttoCheck = entities.Products.Where(x => x.ProductID == pid).FirstOrDefault();
                if (producttoCheck.UserID == userid)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Không được mua hàng của chính mình."));
                }

                //Kiểm tra xem sản phẩm đang định bỏ vào giỏ hàng có phải nhỏ hơn stock hay không:
                var checkCart = CartItemList.FirstOrDefault(x => x.productID == pid);
                if (checkCart != null)
                {
                    if (q + checkCart.quantity > producttoCheck.Stock)
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Chỉ được đặt mua số lượng nhỏ hơn stock."));
                    }
                }

                if (q > producttoCheck.Stock)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Chỉ được đặt mua số lượng nhỏ hơn stock."));
                }

                //Tìm thử xem có sẵn chưa, nếu có rồi thì chỉ cộng thêm số lượng
                bool flag = false;
                foreach (CartEntity item in CartItemList)
                {
                    if (item.productID == pid)
                    {
                        item.quantity = item.quantity + q;
                        flag          = true;
                    }
                }
                if (flag == false)
                {
                    CartItemList.Add(new CartEntity {
                        productID = pid, quantity = q
                    });
                }

                var entity = entities.UserInfos.FirstOrDefault(e => e.UserID == userid);
                entity.Cart = JsonConvert.SerializeObject(CartItemList);

                entities.SaveChanges();
            }
            return(Request.CreateResponse(HttpStatusCode.OK, "Đã thêm vào giỏ hàng"));
        }
示例#12
0
        public HttpResponseMessage Put(int id, [FromBody] ProductModel product)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                //Kiểm tra giá phải nhỏ hơn giá cũ
                if (product.Price > product.OldPrice)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Giá cũ phải cao hơn giá mới"));
                }

                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    var entity = entities.Products.FirstOrDefault(e => e.ProductID == id);
                    if (entity == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                           "Product with Id " + id.ToString() + " not found to update"));
                    }
                    else
                    {
                        if (entity.UserID == User.Identity.GetUserId())
                        {
                            entity.ProductTypeID = product.ProductTypeID;
                            entity.BrandID       = product.BrandID;
                            entity.ProductName   = product.ProductName;
                            entity.Detail        = product.Detail;
                            entity.Stock         = product.Stock;
                            entity.OldPrice      = product.OldPrice;
                            entity.Price         = product.Price;
                            entity.ProductImage  = product.ProductImage;

                            entities.SaveChanges();

                            return(Request.CreateResponse(HttpStatusCode.OK, "Đã sửa"));
                        }
                        else
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Có lỗi xảy ra"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public HttpResponseMessage SetToShipping([FromUri] int oid)
        {
            try
            {
                //Lát sau viết lại ràng buộc cho method này!!!
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string currentUserID = User.Identity.GetUserId();

                    var    result      = entities.OrderItems.Include("Order").Include("Product").Where(x => x.OrderItemID == oid).FirstOrDefault();
                    string emailtoSend = entities.AspNetUsers.FirstOrDefault(x => x.Id == result.Order.UserID).Email;

                    if (result != null)
                    {
                        if (result.Product.UserID == currentUserID)
                        {
                            result.OrderState = "Shipping";
                            entities.SaveChanges();

                            //Gửi Email thông báo đã mua hàng
                            SmtpClient client = new SmtpClient();
                            client.Port                  = 587;
                            client.Host                  = "smtp.gmail.com";
                            client.EnableSsl             = true;
                            client.Timeout               = 10000;
                            client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                            client.UseDefaultCredentials = false;
                            client.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "hoahoa123");
                            MailMessage mm = new MailMessage("*****@*****.**", emailtoSend, "Tình trạng đơn hàng", "Sản phẩm có mã đặt hàng là: #" + result.OrderItemID + " đang được vận chuyển.");
                            mm.BodyEncoding = UTF8Encoding.UTF8;
                            mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                            client.Send(mm);
                            //Hết phần gửi email.

                            return(Request.CreateResponse(HttpStatusCode.OK, "Đã chuyển sang Shipping"));
                        }
                        else
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Không sửa được vì không phải chủ của sản phẩm này"));
                        }
                    }
                    else
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Không tìm thấy"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#14
0
        public HttpResponseMessage Post([FromBody] ProductModel product)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                //Kiểm tra giá cũ có lớn hơn giá mới không
                if (product.Price > product.OldPrice)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Giá cũ phải cao hơn giá mới"));
                }

                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    product.CreationDate = DateTime.Now;
                    product.UserID       = User.Identity.GetUserId();

                    //Kiểm tra xem có đang bị ban hay không
                    string currentUserID = User.Identity.GetUserId();
                    var    list          = entities.BanAccounts.Where(x => x.UserID == currentUserID && x.LiftDate > DateTime.Now).ToList();
                    if (list.Count != 0)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Bạn đang bị ban, lý do: " + list[0].Reason));
                    }
                    //Hết kiểm tra bị ban

                    Product newproduct = new Product();
                    newproduct.UserID        = product.UserID;
                    newproduct.ProductTypeID = product.ProductTypeID;
                    newproduct.BrandID       = product.BrandID;
                    newproduct.ProductName   = product.ProductName;
                    newproduct.Detail        = product.Detail;
                    newproduct.Stock         = product.Stock;
                    newproduct.ProductImage  = product.ProductImage;
                    newproduct.Price         = product.Price;
                    newproduct.OldPrice      = product.OldPrice;
                    newproduct.CreationDate  = DateTime.Now;

                    entities.Products.Add(newproduct);
                    entities.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#15
0
        public HttpResponseMessage RateaProduct([FromUri] int pid, int r)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string currentUserID = User.Identity.GetUserId();

                    //Kiểm tra r (điểm) phải >0 và < 10
                    if (r < 0 || r > 10)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, "Phải rate từ 0-> 10"));
                    }
                    //Kiểm tra xem người đó đã mua hàng hay chưa, nếu chưa mua thì không được rate
                    var checkBought = entities.OrderItems.Where(x => x.Order.UserID == currentUserID && x.ProductID == pid).FirstOrDefault();
                    if (checkBought == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Bạn chưa mua sản phẩm này nên không được đánh giá"));
                    }

                    //Kiểm tra người Rate có phải chủ của Product không. Chủ product ko hể rate sản phẩm của chính mình
                    string IDofProductOwner = entities.Products.FirstOrDefault(x => x.ProductID == pid).UserID;
                    if (currentUserID == IDofProductOwner)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, "Bạn không thể rate sản phẩm của chính mình"));
                    }

                    //Kiểm tra xem đã vote chưa, 1 người chỉ được vote sản phẩm 1 lần
                    var checkIfRated = entities.Ratings.FirstOrDefault(x => x.ProductID == pid && x.UserID == currentUserID);
                    if (checkIfRated != null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Bạn đã rate rồi"));
                    }

                    Rating newRating = new Rating();
                    newRating.ProductID = pid;
                    newRating.Rating1   = r;
                    newRating.UserID    = currentUserID;
                    entities.Ratings.Add(newRating);
                    entities.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
                }
            }
            catch
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, "Có lỗi xảy ra"));
            }
        }
示例#16
0
 public HttpResponseMessage Post([FromBody] Brand brand)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             entities.Brands.Add(brand);
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
 public HttpResponseMessage Post([FromBody] UserInfo userinfo)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             userinfo.UserID = User.Identity.GetUserId();
             entities.UserInfos.Add(userinfo);
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
示例#18
0
        public HttpResponseMessage PurchaseVipNews([FromUri] int productID)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    //Check if product is currently being promoted:
                    string currentUserID = User.Identity.GetUserId();
                    var    listtoCheck   = entities.SponsoredItems.Where(x => x.Product.UserID == currentUserID).ToList();
                    foreach (var x in listtoCheck)
                    {
                        if (x.ProductID == productID && x.EndDate >= DateTime.Now)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Sản phẩm hiện đang được promte"));
                        }
                    }

                    SponsoredItem sno = new SponsoredItem();
                    sno.ProductID = productID;
                    sno.StartDate = DateTime.Now;
                    sno.EndDate   = sno.StartDate.Value.AddDays(7);
                    entities.SponsoredItems.Add(sno);
                    var user = entities.UserInfos.FirstOrDefault(x => x.UserID == currentUserID);

                    //Kiểm tra còn lượng tin đăng hay không
                    if (user.VipNewsCount == 0)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Hết số lượng được đăng"));
                    }


                    user.VipNewsCount = user.VipNewsCount - 1;
                    entities.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#19
0
 public HttpResponseMessage Post([FromBody] Report rp)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             string uid = User.Identity.GetUserId();
             rp.UserID = uid;
             rp.IsRead = false;
             entities.Reports.Add(rp);
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "Report made"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
示例#20
0
        public HttpResponseMessage RemoveFromCart([FromUri] int pid = 1)
        {
            using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
            {
                entities.Configuration.ProxyCreationEnabled = false;

                string            userid       = HttpContext.Current.User.Identity.GetUserId();
                List <CartEntity> CartItemList = new List <CartEntity>();
                CartItemList = JsonConvert.DeserializeObject <List <CartEntity> >(entities.UserInfos.FirstOrDefault(e => e.UserID == userid).Cart);

                CartEntity removeItem = CartItemList.Where(x => x.productID == pid).FirstOrDefault();
                CartItemList.Remove(removeItem);

                var entity = entities.UserInfos.FirstOrDefault(e => e.UserID == userid);
                entity.Cart = JsonConvert.SerializeObject(CartItemList);

                entities.SaveChanges();
            }
            return(Request.CreateResponse(HttpStatusCode.OK, "Đã xóa khỏi giỏ hàng"));
        }
 public HttpResponseMessage RemoveBan(string uid)
 {
     try
     {
         using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
         {
             entities.Configuration.ProxyCreationEnabled = false;
             var list = entities.BanAccounts.Where(x => x.UserID == uid && x.LiftDate > DateTime.Now).ToList();
             foreach (var s in list)
             {
                 entities.BanAccounts.Remove(s);
             }
             entities.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, "Đã gỡ ban"));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
        public HttpResponseMessage Post([FromBody] BanAccountModel ba)
        {
            try
            {
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;

                    BanAccount banacc = new BanAccount();
                    banacc.UserID   = ba.UserID;
                    banacc.Reason   = ba.Reason;
                    banacc.LiftDate = Convert.ToDateTime(ba.LiftDate);
                    entities.BanAccounts.Add(banacc);

                    entities.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK, "POST OK"));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public HttpResponseMessage Put(int id, [FromBody] UserinfoModel userinfo)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }

                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    var entity = entities.UserInfos.FirstOrDefault(e => e.UserInfoID == id);
                    if (entity == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                           "User Info with Id " + id.ToString() + " not found to update"));
                    }
                    else
                    {
                        entity.Name        = userinfo.Name;
                        entity.HomeAddress = userinfo.HomeAddress;
                        entity.Email       = userinfo.Email;
                        entity.PhoneNumber = userinfo.PhoneNumber;
                        entity.CMND        = userinfo.CMND;
                        entities.SaveChanges();

                        return(Request.CreateResponse(HttpStatusCode.OK, "Edited"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public HttpResponseMessage SetToCancel([FromUri] int oid)
        {
            try
            {
                //Lát sau viết lại ràng buộc cho method này!!!
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string currentUserID = User.Identity.GetUserId();

                    var result = entities.OrderItems.Include("Product").Include("Order").Where(x => x.OrderItemID == oid).FirstOrDefault();
                    if (result != null)
                    {
                        if (result.Product.UserID == currentUserID || result.Order.UserID == currentUserID)
                        {
                            if (result.OrderState != "Done")
                            {
                                result.OrderState = "Canceled";
                                var producttoIncreaseBack = entities.Products.FirstOrDefault(x => x.ProductID == result.ProductID);
                                producttoIncreaseBack.Stock = producttoIncreaseBack.Stock + result.Quantity;
                                entities.SaveChanges();

                                //Gửi Email thông báo đã hủy cho khách hàng
                                SmtpClient client = new SmtpClient();
                                client.Port                  = 587;
                                client.Host                  = "smtp.gmail.com";
                                client.EnableSsl             = true;
                                client.Timeout               = 10000;
                                client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                                client.UseDefaultCredentials = false;
                                client.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "hoahoa123");
                                MailMessage mm = new MailMessage("*****@*****.**", User.Identity.Name, "Tình trạng đơn hàng", "Sản phẩm có mã đặt hàng là: #" + result.OrderItemID + " đã bị hủy.");
                                mm.BodyEncoding = UTF8Encoding.UTF8;
                                mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                                client.Send(mm);

                                //Hết phần gửi email.
                                //Gửi Email thông báo đã hủy cho người bán
                                string     emailtoSend = entities.AspNetUsers.FirstOrDefault(x => x.Id == result.Product.UserID).Email;
                                SmtpClient client2     = new SmtpClient();
                                client2.Port                  = 587;
                                client2.Host                  = "smtp.gmail.com";
                                client2.EnableSsl             = true;
                                client2.Timeout               = 10000;
                                client2.DeliveryMethod        = SmtpDeliveryMethod.Network;
                                client2.UseDefaultCredentials = false;
                                client2.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "hoahoa123");
                                MailMessage mm2 = new MailMessage("*****@*****.**", emailtoSend, "Thông báo khách hàng hủy đơn hàng", "Sản phẩm có mã đặt hàng là: #" + result.OrderItemID + " đã bị hủy.");
                                mm2.BodyEncoding = UTF8Encoding.UTF8;
                                mm2.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                                client2.Send(mm2);
                                //Hết phần gửi email.

                                return(Request.CreateResponse(HttpStatusCode.OK, "Đã chuyển sang 'Cancel'"));
                            }
                            else
                            {
                                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Sản phẩm đã hoàn thành thì không thể hủy"));
                            }
                        }
                        else
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Không sửa được vì không phải người liên quan của sản phẩm này"));
                        }
                        //Nhớ cộng lại vào số lượng sản phẩm
                    }
                    else
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Không tìm thấy"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
示例#25
0
        public HttpResponseMessage MakeOrder(InfoBindingModel info)
        {
            try
            {
                //Kiểm tra chuẩn
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }
                //Get cart
                string cart;
                using (WebbanhangDBEntities entities = new WebbanhangDBEntities())
                {
                    entities.Configuration.ProxyCreationEnabled = false;
                    string userid = HttpContext.Current.User.Identity.GetUserId();
                    cart = entities.UserInfos.FirstOrDefault(x => x.UserID == userid).Cart;
                    List <CartEntity> itemBuyList = JsonConvert.DeserializeObject <List <CartEntity> >(cart);
                    Order             newOrder    = new Order();
                    newOrder.UserID           = userid;
                    newOrder.OrderDate        = DateTime.Now;
                    newOrder.OrderAddress     = info.homeAddress;
                    newOrder.OrderNameofUser  = info.name;
                    newOrder.OrderPhoneNumber = info.phoneNumber;
                    entities.Orders.Add(newOrder);

                    entities.SaveChanges();

                    foreach (CartEntity item in itemBuyList)
                    {
                        int       maitem    = Convert.ToInt32(item.productID);
                        OrderItem orderitem = new OrderItem();
                        orderitem.OrderID = entities.Orders.ToList()[entities.Orders.ToList().Count - 1].OrderID;
                        orderitem.ShopID  = entities.Products.FirstOrDefault(x => x.ProductID == maitem).UserID.ToString();
                        //var temp = entities.Products.Where(x => x.ProductID == maitem).ToList();
                        orderitem.ProductID  = maitem;
                        orderitem.Quantity   = item.quantity;
                        orderitem.Price      = Convert.ToInt32(entities.Products.FirstOrDefault(x => x.ProductID == maitem).Price.ToString()) * item.quantity;
                        orderitem.FinalPrice = Convert.ToInt32(entities.Products.FirstOrDefault(x => x.ProductID == maitem).Price.ToString()) * item.quantity;
                        orderitem.OrderState = "Waiting";
                        orderitem.Paided     = false;
                        entities.OrderItems.Add(orderitem);

                        //Reduce quantity.
                        var reduceQuantity = entities.Products.FirstOrDefault(e => e.ProductID == maitem);
                        if (reduceQuantity.Stock < item.quantity)
                        {
                            throw new Exception("Quantity is higher than stock");
                        }
                        reduceQuantity.Stock = reduceQuantity.Stock - item.quantity;

                        //Mua xong thì xóa cart
                        var cartToDelete = entities.UserInfos.FirstOrDefault(x => x.UserID == userid);
                        cartToDelete.Cart = "[]";

                        //Save changes
                        entities.SaveChanges();
                    }

                    //Gửi Email thông báo đã mua hàng
                    SmtpClient client = new SmtpClient();
                    client.Port                  = 587;
                    client.Host                  = "smtp.gmail.com";
                    client.EnableSsl             = true;
                    client.Timeout               = 10000;
                    client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                    client.UseDefaultCredentials = false;
                    client.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "hoahoa123");
                    MailMessage mm = new MailMessage("*****@*****.**", User.Identity.Name, "Mua hàng", "Bạn đã đặt hóa đơn thành công, vào đây để xem lại hóa đơn: http://localhost:8000/bill");
                    mm.BodyEncoding = UTF8Encoding.UTF8;
                    mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                    client.Send(mm);
                    //Hết phần gửi email.

                    //Chuẩn bị biến để return về hóa đơn
                    int lastIDofOrder = entities.Orders.Max(x => x.OrderID);
                    var invoice       = entities.OrderItems.Where(x => x.OrderID == lastIDofOrder).GroupBy(x => new { x.OrderID, x.Order.OrderDate, x.Order.AspNetUser.Id, x.Order.OrderNameofUser, x.Order.OrderPhoneNumber, x.Order.OrderAddress, x.Order.AspNetUser.UserName }).Select(y => new { orderID = y.Key.OrderID, orderDate = y.Key.OrderDate, orderUser = y.Key.UserName, orderUserID = y.Key.Id, orderNameofUser = y.Key.OrderNameofUser, orderAddress = y.Key.OrderAddress, orderPhoneNumber = y.Key.OrderPhoneNumber, orderItemIDs = y.Select(z => new { orderItemID = z.OrderItemID, orderItemState = z.OrderState, orderItemQuantity = z.Quantity, orderItemPrice = z.FinalPrice, itemID = z.Product.ProductID, productName = z.Product.ProductName, productImage = z.Product.ProductImage, shopName = entities.UserInfos.FirstOrDefault(c => c.UserID == z.ShopID).Name, shopPhoneNumber = entities.UserInfos.FirstOrDefault(c => c.UserID == z.ShopID).PhoneNumber, shopAddress = entities.UserInfos.FirstOrDefault(c => c.UserID == z.ShopID).HomeAddress, shopEmail = entities.UserInfos.FirstOrDefault(c => c.UserID == z.ShopID).Email }).ToList() }).ToList();
                    return(Request.CreateResponse(HttpStatusCode.OK, invoice));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }