Ejemplo n.º 1
0
        public ActionResult Index(Members member)
        {
            //先做一個salt再存Password
            System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
            byte[] buf = new byte[15];
            rng.GetBytes(buf);
            string salt = Convert.ToBase64String(buf);

            string Password = member.Password;

            Password        = FormsAuthentication.HashPasswordForStoringInConfigFile(Password + salt, "sha1");
            member.Password = Password;

            db.Members.Add(member);
            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw;
            }

            return(View());
        }
Ejemplo n.º 2
0
 public ActionResult CancelAd(Members member)
 {
     //get member with the email, save adok to false
     if (ModelState.IsValid)
     {
         var user = db.Members.Where(c => c.Email == member.Email).First();
         if (user != null)
         {
             user.AdOK            = false;
             db.Entry(user).State = EntityState.Modified;
             db.SaveChanges();
         }
     }
     return(RedirectToAction("CancelEmailAd", new { Confirmed = true }));
 }
Ejemplo n.º 3
0
        public ActionResult AddItem(string item)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                ShoppingList slist = new Models.ShoppingList();
                if (System.Web.HttpContext.Current.Session["PListID"] == null)
                {
                    slist.PList_ID = db.PList.Where(m => m.Member_ID == MemberID).Select(m => m.PList_ID).First();;
                }
                else
                {
                    slist.PList_ID = (int)System.Web.HttpContext.Current.Session["PListID"];
                }

                slist.ListName = item;
                slist.Active   = true;

                db.Entry(slist).State = EntityState.Added;
                db.SaveChanges();
                return(RedirectToAction("ShoppingListP", new { id = slist.PList_ID }));
            }
        }
Ejemplo n.º 4
0
        public ActionResult ShoppingCategoryPartial()
        {
            //讀取Member的父類別
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                var q = from s in db.PList
                        where s.Member_ID == MemberID
                        select s;
                if (q.FirstOrDefault() == null)
                {
                    PList pl = new PList();
                    pl.Member_ID = MemberID;
                    pl.ListName  = "我的購物清單";
                    //pl.PList_ID = db.PList.Max(m => m.PList_ID) + 1;

                    db.Entry(pl).State = EntityState.Added;
                    db.SaveChanges();
                }

                return(PartialView("ShoppingCategoryPartial", q.ToList()));
            }
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // 如需如何啟用帳戶確認和密碼重設的詳細資訊,請造訪 http://go.microsoft.com/fwlink/?LinkID=320771
                    // 傳送包含此連結的電子郵件
                    string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "確認您的帳戶", "請按一下此連結確認您的帳戶 <a href=\"" + callbackUrl + "\">這裏</a>");


                    //存進我們的member表
                    Members member = new Members();
                    member.Email    = user.Email;
                    member.Username = user.Email;
                    member.Id       = user.Id;
                    member.IsActive = true;
                    //給他預設的圖
                    var q = db.Members.Where(m => m.Member_ID == 1).Select(m => m.M_Picture).FirstOrDefault();
                    member.M_Picture = q;

                    db.Members.Add(member);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }


                    return(RedirectToAction("RoleSelect", "LogIn"));
                }
                AddErrors(result);
            }

            // 如果執行到這裡,發生某項失敗,則重新顯示表單
            return(View(model));
        }
Ejemplo n.º 6
0
        public ActionResult Added(string title, DateTime date)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                ShoppingList shoppinglist = new ShoppingList();
                //categoryname?
                shoppinglist.NextDate        = date;
                db.Entry(shoppinglist).State = EntityState.Modified;
                db.SaveChanges();
                //修改訂單資料如果是需要出貨的

                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 7
0
        public ActionResult AddFromDetail(int id, int?no, int?by)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }
                //存到我的購物清單

                int plistID = db.PList.Where(m => m.Member_ID == MemberID && m.ListName == "我的購物清單").Select(p => p.PList_ID).FirstOrDefault();
                if (plistID == 0)//幫他創一個
                {
                    PList pl = new PList();
                    pl.Member_ID       = MemberID;
                    pl.ListName        = "我的購物清單";
                    pl.PList_ID        = db.PList.Max(m => m.PList_ID) + 1;
                    plistID            = pl.PList_ID;
                    db.Entry(pl).State = EntityState.Added;
                }
                ShoppingList sl = new Models.ShoppingList();
                sl.PList_ID     = plistID;
                sl.Products     = db.Products.Where(p => p.Product_ID == id).First();
                sl.RepeatNumber = no;
                sl.RepeatBy     = by;
                sl.ListName     = sl.Products.Categories.CategoryName;
                sl.Active       = true;
                if (no != 0)
                {
                    if (by == 1)//月
                    {
                        sl.NextDate = DateTime.Today.AddMonths((int)no);
                    }
                    else if (by == 2)//周
                    {
                        sl.NextDate = DateTime.Today.AddDays((int)(7 * no));
                    }
                    else if (by == 3)//日
                    {
                        sl.NextDate = DateTime.Today.AddDays((int)no);
                    }
                }

                db.Entry(sl).State = EntityState.Added;
                db.SaveChanges();

                return(Content(sl.Products.ProductName + "已加入您的智慧清單"));
            }
        }
Ejemplo n.º 8
0
        public ActionResult Dropped(string title, DateTime date, int id)
        {
            //存進List Update
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                ShoppingList shoppinglist = db.ShoppingList.Find(id);

                shoppinglist.NextDate        = date;
                db.Entry(shoppinglist).State = EntityState.Modified;
                db.SaveChanges();
                //修改訂單資料如果是需要出貨的

                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 9
0
        public ActionResult CategoryInsert(string item)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                PList plist = new PList();
                plist.ListName        = item;
                plist.Member_ID       = MemberID;
                db.Entry(plist).State = EntityState.Added;
                db.SaveChanges();
                return(RedirectToAction("ShoppingList"));
            }
        }
Ejemplo n.º 10
0
        public ActionResult SetProduct(int id)//PID 接收到他現在要換什麼但還沒確認
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                //存入shoppinglistinside
                int switching = (int)System.Web.HttpContext.Current.Session["switchingid"];

                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == switching
                             select s).First();

                slist.List_ID  = switching;
                slist.Products = db.Products.Where(p => p.Product_ID == id).First();//存整個product給他

                db.Entry(slist).State = EntityState.Modified;
                db.SaveChanges();

                System.Web.HttpContext.Current.Session["switchingid"]   = null;
                System.Web.HttpContext.Current.Session["switchingname"] = null;
                return(RedirectToAction("Detail", "ShoppingList", new { id = switching }));
            }
        }
Ejemplo n.º 11
0
        public ActionResult DeleteItem(int listid)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                //刪除shoppinglist& shoppinglistinside
                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == listid
                             select s).First();
                if (slist.Order_ID != null)
                {
                    //刪除order
                    int         orderid = (int)slist.Order_ID;
                    OrderDetail od      = db.OrderDetail.Where(o => o.Order_ID == orderid).First();
                    db.Entry(od).State = EntityState.Deleted;
                    Orders order = db.Orders.Where(o => o.Order_ID == orderid).First();
                    db.Entry(order).State = EntityState.Deleted;
                }

                db.Entry(slist).State = EntityState.Deleted;
                db.SaveChanges();
                return(RedirectToAction("ShoppingList"));
            }
        }
Ejemplo n.º 12
0
        public ActionResult SaveChanges(int listid, int repeatno, int repeatby, string nextdate, int quantity, string link1, string phone1, string address1)
        {
            DateTime date = Convert.ToDateTime(nextdate);

            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == listid
                             select s).First();
                slist.RepeatNumber    = repeatno;
                slist.RepeatBy        = repeatby;
                slist.NextDate        = date;
                slist.Quantity        = quantity;
                slist.Link            = link1;
                slist.Address         = address1;
                slist.Phone           = phone1;
                db.Entry(slist).State = EntityState.Modified;
                db.SaveChanges();
                ViewBag.Clicked = null;

                //存到order去
                //order跟著動 addOrUpdate
                if (slist.Products != null)
                {
                    int pid = slist.Products.Product_ID;

                    if (User.Identity.IsAuthenticated)
                    {
                        string aspid = User.Identity.GetUserId();
                        MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                    }

                    var order = (from o in db.OrderDetail
                                 where o.Orders.Status_ID == 7 && o.Orders.Member_ID == MemberID && o.Product_ID == pid
                                 select o).FirstOrDefault();
                    var originalOID = slist.Order_ID;
                    if (order == null)
                    {
                        //第一次設add
                        Orders neworder = new Orders();
                        neworder.ArrivalDate      = date;
                        neworder.Member_ID        = MemberID;
                        neworder.OrderDate        = DateTime.Today;
                        neworder.SubTotal         = slist.Products.UnitPrice;
                        neworder.ValueAddTax      = (int)Math.Round((neworder.SubTotal) * 0.05);
                        neworder.Amount           = neworder.SubTotal + neworder.ValueAddTax;
                        neworder.ShipMethod_ID    = 1;
                        neworder.PaymentMethod_ID = 4;
                        neworder.Status_ID        = 7;


                        neworder.Order_ID        = db.Orders.Max(o => o.Order_ID) + 1;
                        db.Entry(neworder).State = EntityState.Added;

                        //存orderid到slist
                        slist.Order_ID        = neworder.Order_ID;
                        db.Entry(slist).State = EntityState.Modified;



                        //save orderdetail
                        OrderDetail od = new OrderDetail();
                        od.Order_ID   = neworder.Order_ID;
                        od.Product_ID = pid;
                        od.UnitPrice  = slist.Products.UnitPrice;

                        od.Quantity        = quantity;
                        db.Entry(od).State = EntityState.Added;
                        db.SaveChanges();
                    }
                    if (order == null && originalOID != null)//是更換要把本來的訂單刪除
                    {
                        OrderDetail od = db.OrderDetail.Where(o => o.Order_ID == originalOID).First();
                        db.Entry(od).State = EntityState.Deleted;
                        Orders ord = db.Orders.Find(originalOID);
                        db.Entry(ord).State = EntityState.Deleted;

                        db.SaveChanges();
                    }
                    if (order != null && slist.Order_ID != null)
                    {
                        //修改既有訂單.表示只是修同一筆
                        Orders ord = db.Orders.Find((int)slist.Order_ID);
                        ord.ArrivalDate = date;
                        OrderDetail od = db.OrderDetail.Where(o => o.Order_ID == (int)slist.Order_ID).First();
                        od.Quantity         = quantity;
                        db.Entry(od).State  = EntityState.Modified;
                        db.Entry(ord).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }

                return(Content("success"));
            }
        }