Exemple #1
0
        public int GetLoginPageTag(ActionExecutingContext context)
        {
            int            result = 0;
            string         IP     = context.HttpContext.Request.UserHostAddress;
            LoginPageTrail tmpLPT = db.LoginPageTrails.FirstOrDefault(r => r.ClientIP.CompareTo(IP) == 0);

            if (tmpLPT != null)
            {
                if (tmpLPT.ErrorCount > LOGINLOCK)
                {
                    result = -2;
                    DateTime tmpDT = DateTime.Parse(tmpLPT.LogDate);
                    tmpDT = tmpDT.AddSeconds(LOCKTIME);
                    TimeSpan tmpTS = tmpDT - DateTime.Now;
                    if (tmpTS.TotalSeconds < 0)
                    {
                        tmpLPT.ErrorCount = 0;
                        db.SaveChanges();
                        result      = 0;
                        waitSeconds = 0;
                    }
                    else
                    {
                        waitSeconds = (int)tmpTS.TotalSeconds;
                    }
                }
                else if (tmpLPT.ErrorCount > CHECKCODESHOW)
                {
                    result = -1;
                }
            }
            return(result);
        }
Exemple #2
0
        public ActionResult Create(Role role)
        {
            if (ModelState.IsValid)
            {
                db.Roles.Add(role);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(role));
        }
Exemple #3
0
        public ActionResult Create(Column column)
        {
            if (ModelState.IsValid)
            {
                db.Columns.Add(column);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(column));
        }
Exemple #4
0
        public ActionResult Cart()
        {
            OrderVM tmpVM = new OrderVM();
            //设置订单为其用户的订单
            MyUser user = HttpContext.User as MyUser;

            if (HttpContext.User.Identity.IsAuthenticated && user != null)
            {
                tmpVM.Client = db.Users.FirstOrDefault(r => r.UID == user.UID);
                if (tmpVM.Client.DefaultAddress == null && tmpVM.Client.Addresses.Count > 0)
                {
                    tmpVM.Client.DefaultAddress = tmpVM.Client.Addresses.First();
                }
                tmpVM.OrderArr = new List <Order>();
                bool       hasCookie = Request.Cookies.AllKeys.Contains("Order");
                HttpCookie cookie    = null;
                int        OrderID   = -1;
                if (hasCookie)
                {
                    cookie = Request.Cookies["Order"];
                    string tmpStr    = Server.UrlDecode(cookie.Value);
                    Regex  cookieRgx = new Regex(ProductController.ORDERCOOKIERGX);
                    Match  tmpMatch  = cookieRgx.Match(tmpStr);
                    if (!string.IsNullOrEmpty(tmpMatch.Value))
                    {
                        Group gi = tmpMatch.Groups["ORDERID"];
                        OrderID = int.Parse(gi.Value);
                        Order order = db.Orders.FirstOrDefault(r => r.OID == OrderID);
                        if (order != null)
                        {
                            if (order.Status >= (int)Order.EOrderStatus.OS_Subscription)
                            {
                                //已支付,不能修改订单,不能重新支付
                                return(Redirect("/Order/HasPayed/" + OrderID));
                            }
                            else if (order.Status == (int)Order.EOrderStatus.OS_Order)
                            {
                                //已确认订单,不能修改了,只能整个删除
                                return(Redirect("/Order/Submit"));
                            }
                            order.UID = user.UID;
                            db.SaveChanges();
                            tmpVM.OrderArr.Add(order);
                        }
                    }
                }
                List <Order> tmpOArr = db.Orders.Where(r => (r.OID != OrderID && r.UID == user.UID && r.Status == (int)Order.EOrderStatus.OS_Init)).OrderByDescending(r => r.OrderDate).ToList();
                tmpVM.OrderArr.AddRange(tmpOArr);
            }
            return(View(tmpVM));
        }
Exemple #5
0
 public ActionResult SaveBannerManager(List <BannerItem> AddArr, List <BannerItem> EditArr, List <BannerItem> DelArr)
 {
     if (AddArr != null)
     {
         foreach (BannerItem item in AddArr)
         {
             BannerItem tmpObj = item;
             PubFunction.NotNullObj(ref tmpObj);
             db.BannerItems.Add(tmpObj);
         }
     }
     if (EditArr != null)
     {
         foreach (BannerItem item in EditArr)
         {
             BannerItem tmpObj = item;
             //奇怪,传进来的明明是""但是在后台获取就是null,只能做转换了
             PubFunction.NotNullObj(ref tmpObj);
             BannerItem tmpItem = db.BannerItems.FirstOrDefault(r => r.BIID == tmpObj.BIID);
             //tmpItem.Description = tmpObj.Description;
             //tmpItem.HrefPath = tmpObj.HrefPath;
             //tmpItem.ImgPath = tmpObj.ImgPath;
             //tmpItem.Index = tmpObj.Index;
             //tmpItem.Title = tmpObj.Title;
             PubFunction.CopyObj(tmpObj, ref tmpItem);
         }
     }
     if (DelArr != null)
     {
         foreach (BannerItem item in DelArr)
         {
             BannerItem tmpItem = db.BannerItems.FirstOrDefault(r => r.BIID == item.BIID);
             if (tmpItem != null)
             {
                 db.BannerItems.Remove(tmpItem);
             }
         }
     }
     db.SaveChanges();
     if (Request.IsAjaxRequest())
     {
         string jsonStr = PubFunction.BuildResult("OK");
         return(Content(jsonStr));
     }
     else
     {
         return(View());
     }
 }
        public void WriteTrail(HttpRequest request)
        {
            ClientTrail tmpCT = new ClientTrail();

            tmpCT.URL = request.Url.ToString();
            if (request.RequestContext.RouteData.Route != null)
            {
                object tmpObj = request.RequestContext.RouteData.Route.GetRouteData(request.RequestContext.HttpContext).Values["controller"];
                tmpCT.ControllerName = tmpObj != null?tmpObj.ToString() : "";

                tmpObj           = request.RequestContext.RouteData.Route.GetRouteData(request.RequestContext.HttpContext).Values["action"];
                tmpCT.ActionName = tmpObj != null?tmpObj.ToString() : "";
            }
            else
            {
                tmpCT.ControllerName = "";
                tmpCT.ActionName     = "";
            }
            tmpCT.ClientIP = request.UserHostAddress;
            tmpCT.LogDate  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            MyUser tmpUser = request.RequestContext.HttpContext.User as MyUser;

            if (tmpUser != null && tmpUser.Identity.IsAuthenticated)
            {
                tmpCT.UID = tmpUser.UID;
            }
            db.ClientTrails.Add(tmpCT);
            db.SaveChanges();
        }
Exemple #7
0
 public ActionResult submitEvaluation(Evaluation evaluation)
 {
     if (HttpContext.User.Identity.IsAuthenticated)
     {
         MyUser user = HttpContext.User as MyUser;
         if (user != null)
         {
             evaluation.UID = user.UID;
         }
         evaluation.DataTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
         db.Evaluations.Add(evaluation);
         db.SaveChanges();
         evaluation.User  = db.Users.FirstOrDefault(r => r.UID == evaluation.UID);
         evaluation.Order = db.Orders.FirstOrDefault(r => r.OID == evaluation.OID);
         EvaluationVM tmpEVM = new EvaluationVM(evaluation);
         if (Request.IsAjaxRequest())
         {
             string jsonStr = PubFunction.BuildResult(tmpEVM);
             return(Content(jsonStr));
         }
         else
         {
             return(View(tmpEVM));
         }
     }
     else
     {
         string jsonStr = PubFunction.BuildResult("Err");
         return(Content(jsonStr));
     }
 }
Exemple #8
0
 public ActionResult SetSelectBrandsInColum(int id, List <ReColumnBrand> Par)
 {
     db.m_objcontext.ExecuteStoreCommand("DELETE ReColumnBrands WHERE ColumnID = " + id);
     foreach (ReColumnBrand item in Par)
     {
         db.ReColumnBrands.Add(item);
     }
     db.SaveChanges();
     if (Request.IsAjaxRequest())
     {
         string jsonStr = PubFunction.BuildResult("OK");
         return(Content(jsonStr));
     }
     else
     {
         return(View());
     }
 }
Exemple #9
0
        public ActionResult Save(CustomOrder customOrder)
        {
            db.CustomOrders.Add(customOrder);
            db.SaveChanges();

            if (Request.IsAjaxRequest())
            {
                string jsonStr = PubFunction.BuildResult("OK");
                return(Content(jsonStr));
            }
            else
            {
                return(View());
            }
        }
        public void WriteTrail(HttpRequestBase request)
        {
            if (!request.RequestContext.HttpContext.User.Identity.IsAuthenticated)
            {
                return;
            }
            MyUser tmpUser = request.RequestContext.HttpContext.User as MyUser;

            if (request.RequestContext.RouteData.Route != null && tmpUser != null)
            {
                object tmpObj = request.RequestContext.RouteData.Route.GetRouteData(request.RequestContext.HttpContext).Values["controller"];
                if (tmpObj == null || tmpObj.ToString() != "Product")
                {
                    return;
                }
                tmpObj = request.RequestContext.RouteData.Route.GetRouteData(request.RequestContext.HttpContext).Values["action"];
                if (tmpObj == null || tmpObj.ToString() != "Detail")
                {
                    return;
                }
            }
            else
            {
                return;
            }
            RecentView tmpRV  = new RecentView();
            string     tmpStr = request.Url.ToString();
            int        tmpI;

            if (int.TryParse(tmpStr.Substring(tmpStr.LastIndexOf('/') + 1), out tmpI))
            {
                tmpRV.PID = tmpI;
            }
            else
            {
                return;
            }
            tmpRV.UID    = tmpUser.UID;
            tmpRV.ViewDT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            db.RecentViews.Add(tmpRV);
            db.SaveChanges();
        }
        public ActionResult Delete(int id)
        {
            int        removeIndex = id;
            bool       hasCookie   = Request.Cookies.AllKeys.Contains("Order");
            HttpCookie cookie      = null;
            string     tmpStr      = "";

            if (hasCookie)
            {
                cookie = Request.Cookies["Order"];
                tmpStr = Server.UrlDecode(cookie.Value);
                Regex cookieRgx = new Regex(ProductController.ORDERCOOKIERGX);
                Match tmpMatch  = cookieRgx.Match(tmpStr);
                if (!string.IsNullOrEmpty(tmpMatch.Value))
                {
                    Group gi      = tmpMatch.Groups["ORDERID"];
                    int   OrderID = int.Parse(gi.Value);
                    Order order   = db.Orders.FirstOrDefault(r => r.OID == OrderID);
                    if (order != null && order.Packets != null && order.Packets.Count > removeIndex)
                    {
                        //删除
                        OrderPacket delOP = order.Packets[removeIndex];
                        db.OrderPackets.Remove(delOP);
                        db.SaveChanges();
                        tmpStr = tmpStr.Substring(0, tmpMatch.Groups["PID"].Captures[removeIndex].Index)
                                 + tmpStr.Substring(tmpMatch.Groups["IMG"].Captures[removeIndex].Index + tmpMatch.Groups["IMG"].Captures[removeIndex].Length + 1);
                    }
                    else
                    {
                        hasCookie = false;
                    }
                }
                else
                {
                    //Cookie格式错误
                    hasCookie = false;
                }
            }
            if (!hasCookie && HttpContext.User.Identity.IsAuthenticated)
            {
                //禁用了cookie或者cookie格式错误
                //从用户获得其订单
                tmpStr = "";
                MyUser myUser = HttpContext.User as MyUser;
                if (myUser != null)
                {
                    Order order = db.Orders.OrderByDescending(r => r.OID).FirstOrDefault(r => r.UID == myUser.UID && r.Status == (int)Order.EOrderStatus.OS_Init);
                    if (order != null && order.Packets != null && order.Packets.Count > removeIndex)
                    {
                        OrderPacket delOP = order.Packets[removeIndex];
                        db.OrderPackets.Remove(delOP);
                        db.SaveChanges();
                        tmpStr = order.GetCoookieStr();
                    }
                    //重新设置cookie
                    cookie         = new HttpCookie("Order");
                    cookie.Expires = DateTime.Now.AddMonths(1);
                }
            }
            cookie.Value = Server.UrlEncode(tmpStr);
            Response.Cookies.Add(cookie);
            if (Request.IsAjaxRequest())
            {
                string jsonStr = PubFunction.BuildResult("OK");
                return(Content(jsonStr));
            }
            else
            {
                return(View());
            }
        }
Exemple #12
0
        public void LoginSuccess(User user)
        {
            try
            {
                StringBuilder tmpRPStr  = new StringBuilder("," + user.Permission + ",");
                StringBuilder tmpRIDStr = new StringBuilder(",");
                StringBuilder tmpRNStr  = new StringBuilder(",");
                user.ReUserRoleLST = db.ReUserRoles.Where(r => r.UID == user.UID).ToList();
                foreach (ReUserRole reur in user.ReUserRoleLST)
                {
                    tmpRIDStr.Append(reur.Role.RID + ",");
                    tmpRNStr.Append(reur.Role.RoleName + ",");
                    tmpRPStr.Append(reur.Role.Permission + ",");
                }
                string tmpStr = string.Format("<USERID>{0}</USERID><USERNAME>{1}</USERNAME><RIDARR>{2}</RIDARR><RNARR>{3}</RNARR><PERMISSION>{4}</PERMISSION>", user.UID, user.UserName, tmpRIDStr.ToString(), tmpRNStr.ToString(), tmpRPStr.ToString());

                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                    1,
                    user.UserName,
                    DateTime.Now,
                    DateTime.Now.AddMinutes(30),
                    true,
                    tmpStr);
                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

                //设置cookie(不能合在一起,奇怪)
                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                Response.Cookies.Add(authCookie);

                authCookie = new HttpCookie("UserInfo");
                authCookie.Values.Add("UID", user.UID.ToString());
                authCookie.Values.Add("UserName", user.UserName);
                authCookie.Values.Add("RID", tmpRIDStr.ToString());
                authCookie.Values.Add("Permission", tmpRPStr.ToString());
                authCookie.Expires = DateTime.Now.AddMinutes(30);
                Response.Cookies.Add(authCookie);
                ViewBag.LoginFail = 0;

                //把购物车的东西给予该用户
                bool       hasCookie = Request.Cookies.AllKeys.Contains("Order");
                HttpCookie cookie    = null;
                if (hasCookie)
                {
                    hasCookie = false;
                    cookie    = Request.Cookies["Order"];
                    tmpStr    = Server.UrlDecode(cookie.Value);
                    Regex cookieRgx = new Regex(ProductController.ORDERCOOKIERGX);
                    Match tmpMatch  = cookieRgx.Match(tmpStr);
                    if (!string.IsNullOrEmpty(tmpMatch.Value))
                    {
                        Group gi      = tmpMatch.Groups["ORDERID"];
                        int   OrderID = int.Parse(gi.Value);
                        Order order   = db.Orders.FirstOrDefault(r => r.OID == OrderID);
                        hasCookie = order != null && order.Packets.Count > 0;
                    }
                }
                if (!hasCookie)
                {
                    //从数据库里取出最后的未完成的购物任务
                    Order order = db.Orders.OrderByDescending(r => r.OID).FirstOrDefault(r => r.UID == user.UID && r.Status == (int)Order.EOrderStatus.OS_Init);
                    if (order != null)
                    {
                        cookie         = new HttpCookie("Order");
                        cookie.Expires = DateTime.Now.AddMonths(1);
                        cookie.Value   = Server.UrlEncode(order.GetCoookieStr());
                        Response.Cookies.Add(cookie);
                    }
                }
                //处理收藏夹的东西
                hasCookie = Request.Cookies.AllKeys.Contains("Keeps");
                string KStr = "";
                cookie = null;
                List <int> PIDArr = new List <int>();
                if (hasCookie)
                {
                    cookie = Request.Cookies["Keeps"];
                    tmpStr = Server.UrlDecode(cookie.Value);
                    Regex           cookieRgx = new Regex(KeepController.KEEPCOOKIERGX);
                    MatchCollection tmpMC     = cookieRgx.Matches(tmpStr);
                    if (tmpMC.Count > 0)
                    {
                        foreach (Match tmpMatch in tmpMC)
                        {
                            if (!string.IsNullOrEmpty(tmpMatch.Value))
                            {
                                Group gi       = tmpMatch.Groups["PRODUCTID"];
                                int   PID      = -1;
                                Keep  inDBKeep = null;
                                if (int.TryParse(gi.Value, out PID))
                                {
                                    inDBKeep = db.Keeps.FirstOrDefault(r => r.PID == PID && r.UID == user.UID);
                                    KStr    += tmpMatch.Groups["PRODUCTID"] + "," + tmpMatch.Groups["TITLE"] + "," + tmpMatch.Groups["IMG"] + ",";
                                    if (inDBKeep != null)
                                    {
                                        PIDArr.Add(inDBKeep.PID);
                                    }
                                    else
                                    {
                                        Keep keep = new Keep();
                                        keep.PID      = PID;
                                        keep.UID      = user.UID;
                                        keep.LastDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                                        db.Keeps.Add(keep);
                                    }
                                }
                            }
                        }
                        db.SaveChanges();
                    }
                }
                else
                {
                    cookie         = new HttpCookie("Keeps");
                    cookie.Expires = DateTime.Now.AddMonths(1);
                }
                List <Keep> keepArr = db.Keeps.Where(r => r.UID == user.UID && !PIDArr.Contains(r.PID)).ToList();
                //从数据库里取出该用户的收藏夹
                foreach (Keep item in keepArr)
                {
                    if (item.Product != null)
                    {
                        KStr += item.Product.PID + "," + item.Product.Title.Substring(0, Math.Min(20, item.Product.Title.Length)) + "," + item.Product.ImgPathArr[0] + ",";
                    }
                }
                cookie.Value = Server.UrlEncode(KStr);
                Response.Cookies.Add(cookie);
            }
            catch (Exception ex)
            {
            }
        }
Exemple #13
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            //增加全局的Filter用于记录用户的Tracker
            GlobalFilters.Filters.Add(new UserTrackerLogAttribute());

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //从文件加载省份,城市,区域到数据库
            FCStoreDbContext db = new FCStoreDbContext();

            if (db.Province.Count() == 0)
            {
                //省份不存在
                string tmpFP = ConfigurationManager.AppSettings["PCTFilePath"];
                tmpFP = Server.MapPath(tmpFP);
                FileInfo tmpFI = new FileInfo(tmpFP);
                if (tmpFI.Exists)
                {
                    FileStream tmpFS  = tmpFI.OpenRead();
                    int        FLen   = (int)tmpFI.Length;
                    byte[]     buffer = new byte[FLen];
                    //格式:<Province><PName>北京</PName><PPC>22</PPC><CityArr><City><CName>北京市</CName><CPC>44</CPC><TownArr><TName>南山区</TName><TPC>66</TCP></TownArr></City></CityArr></Province>
                    if (tmpFS.Read(buffer, 0, FLen) > 0)
                    {
                        string          tmpStr    = Encoding.Unicode.GetString(buffer);
                        string          ProRgxStr = "<Province>\\s*?<PName>\\s*?(?<PName>\\w+?)\\s*?</PName>\\s*?<PPC>\\s*?(?<PPC>\\d+?)\\s*?</PPC>\\s*?<CityArr>\\s*?(?<PContent>.+?)\\s*?</CityArr>\\s*?</Province>";
                        Regex           ProRgx    = new Regex(ProRgxStr, RegexOptions.Singleline | RegexOptions.IgnoreCase);
                        MatchCollection tmpMC     = ProRgx.Matches(tmpStr);
                        foreach (Match tmpMatch in tmpMC)
                        {
                            Province tmpPro = new Province();
                            tmpPro.Name      = tmpMatch.Groups["PName"].Value;
                            tmpPro.PostCode1 = tmpMatch.Groups["PPC"].Value;
                            if (tmpPro.CityArr == null)
                            {
                                tmpPro.CityArr = new List <City>();
                            }
                            string          cityStr    = tmpMatch.Groups["PContent"].Value;
                            string          CityRgxStr = "<City>\\s*?<CName>\\s*?(?<CName>\\w+?)\\s*?</CName>\\s*?<CPC>\\s*?(?<CPC>\\d+?)\\s*?</CPC>\\s*?<TownArr>\\s*?(?<CContent>.+?)\\s*?</TownArr>\\s*?</City>";
                            Regex           cityRgx    = new Regex(CityRgxStr, RegexOptions.Singleline | RegexOptions.IgnoreCase);
                            MatchCollection tmpMC1     = cityRgx.Matches(cityStr);
                            foreach (Match tmpMatch1 in tmpMC1)
                            {
                                City tmpCity = new City();
                                tmpCity.Name      = tmpMatch1.Groups["CName"].Value;
                                tmpCity.PostCode2 = tmpMatch1.Groups["CPC"].Value;
                                if (tmpCity.TownArr == null)
                                {
                                    tmpCity.TownArr = new List <Town>();
                                }
                                string          townStr    = tmpMatch1.Groups["CContent"].Value;
                                string          TownRgxStr = "<Town>\\s*?<TName>\\s*?(?<TName>\\w+?)\\s*?</TName>\\s*?<TPC>\\s*?(?<TPC>\\d+?)\\s*?</TPC>\\s*?</Town>";
                                Regex           townRgx    = new Regex(TownRgxStr, RegexOptions.Singleline | RegexOptions.IgnoreCase);
                                MatchCollection tmpMC2     = townRgx.Matches(townStr);
                                foreach (Match tmpMatch2 in tmpMC2)
                                {
                                    Town tmpTown = new Town();
                                    tmpTown.Name      = tmpMatch2.Groups["TName"].Value;
                                    tmpTown.PostCode3 = tmpMatch2.Groups["TPC"].Value;
                                    tmpCity.TownArr.Add(tmpTown);
                                    db.Town.Add(tmpTown);
                                }
                                tmpPro.CityArr.Add(tmpCity);
                                db.City.Add(tmpCity);
                            }
                            db.Province.Add(tmpPro);
                        }
                        if (tmpMC.Count > 0)
                        {
                            db.SaveChanges();
                        }
                    }
                    tmpFS.Close();
                }
            }

            db.Dispose();

            //注册RouteDebug
            //RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
        }
Exemple #14
0
 public ActionResult Add(string id)
 {
     //保存到Cookie
     bool hasCookie = Request.Cookies.AllKeys.Contains("Keeps");
     HttpCookie cookie = null;
     string tmpStr = "";
     if (hasCookie)
     {
         cookie = Request.Cookies["Keeps"];
         tmpStr = Server.UrlDecode(cookie.Value);
     }
     else
     {
         cookie = new HttpCookie("Keeps");
         cookie.Expires = DateTime.Now.AddMonths(1);
     }
     string[] strArr = id.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
     foreach(string IDStr in strArr)
     {
         int PID = int.Parse(IDStr);
         Product product = db.Products.FirstOrDefault(r => r.PID == PID);
         if (product != null)
         {
             bool eTag = true;
             if (HttpContext.User.Identity.IsAuthenticated)
             {
                 //已登录
                 MyUser tmpUser = HttpContext.User as MyUser;
                 if (tmpUser != null)
                 {
                     //登陆用户
                     Keep exsisKeep = db.Keeps.FirstOrDefault(r => r.PID == PID && r.UID == tmpUser.UID);
                     if (exsisKeep == null)
                     {
                         if(db.Keeps.Local.FirstOrDefault(r => r.PID == PID && r.UID == tmpUser.UID) == null)
                         {
                             Keep keep = new Keep();
                             keep.PID = PID;
                             keep.UID = tmpUser.UID;
                             keep.LastDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                             db.Keeps.Add(keep);
                             eTag = false;
                         }
                     }
                     else
                     {
                         exsisKeep.LastDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                     }
                 }
             }
             else
             {
                 eTag = false;
                 Regex cookieRgx = new Regex(KEEPCOOKIERGX);
                 Match tmpMatch = cookieRgx.Match(tmpStr);
                 if (!string.IsNullOrEmpty(tmpMatch.Value))
                 {
                     int tmpC = tmpMatch.Groups["KITEM"].Captures.Count;
                     for (int i = 0; i < tmpC; i++)
                     {
                         if (int.Parse(tmpMatch.Groups["PRODUCTID"].Captures[i].Value) == PID)
                         {
                             eTag = true;
                             break;
                         }
                     }
                 }
             }
             if (!eTag)
                 tmpStr += product.PID + "," + product.Title.Substring(0, Math.Min(20, product.Title.Length)) + "," + product.ImgPathArr[0] + ",";
         }
     }
     if (HttpContext.User.Identity.IsAuthenticated)
         db.SaveChanges();
     cookie.Value = Server.UrlEncode(tmpStr);
     Response.Cookies.Add(cookie);
     if (Request.IsAjaxRequest())
     {
         string jsonStr = PubFunction.BuildResult("OK");
         return Content(jsonStr);
     }
     else
     {
         return View();
     }
 }
Exemple #15
0
        public ActionResult Buy(int id, int count)
        {
            Product     product = db.Products.First(r => r.PID == id);
            OrderPacket packet  = new OrderPacket();

            packet.PID        = id;
            packet.Product    = product;
            packet.Univalence = product.Price;
            packet.Discount   = product.Discount;
            packet.Count      = count;
            Order  order  = null;
            string tmpStr = "";
            //添加到cookie里
            bool       hasCookie = Request.Cookies.AllKeys.Contains("Order");
            HttpCookie cookie    = null;

            if (hasCookie)
            {
                cookie = Request.Cookies["Order"];
                tmpStr = Server.UrlDecode(cookie.Value);
                Regex cookieRgx = new Regex(ORDERCOOKIERGX);
                Match tmpMatch  = cookieRgx.Match(tmpStr);
                if (!string.IsNullOrEmpty(tmpMatch.Value))
                {
                    Group gi      = tmpMatch.Groups["ORDERID"];
                    int   OrderID = int.Parse(gi.Value);
                    order = db.Orders.FirstOrDefault(r => r.OID == OrderID);
                    if (order != null)
                    {
                        if (order.Packets == null)
                        {
                            order.Packets = new List <OrderPacket>();
                        }
                        //添加到数据库
                        order.Packets.Add(packet);
                        db.OrderPackets.Add(packet);
                        db.SaveChanges();
                        tmpStr += product.PID + "," + count.ToString() + "," + product.Title.Substring(0, Math.Min(20, product.Title.Length)) + "," + product.ImgPathArr[0] + ",";
                    }
                    else
                    {
                        order = new Order();
                        db.Orders.Add(order);
                        order.Packets      = new List <OrderPacket>();
                        order.UID          = null;
                        order.Postage      = 0;
                        order.Subscription = 0;
                        order.Status       = (int)Order.EOrderStatus.OS_Init;
                        order.SendType     = (int)Order.ESendType.ST_Direct;
                        order.PayType      = (int)Order.EPayType.PT_Alipay;
                        order.OrderDate    = null;
                        order.CompleteDate = null;
                        order.Packets.Add(packet);
                        db.OrderPackets.Add(packet);
                        db.SaveChanges();
                        tmpStr = order.OID + "," + product.PID + "," + count.ToString() + "," + product.Title.Substring(0, Math.Min(20, product.Title.Length)) + "," + product.ImgPathArr[0] + ",";
                    }
                }
                else
                {
                    hasCookie = false;
                }
            }
            if (!hasCookie)
            {
                cookie             = new HttpCookie("Order");
                cookie.Expires     = DateTime.Now.AddMonths(1);
                order              = new Order();
                order.Packets      = new List <OrderPacket>();
                order.UID          = null;
                order.Postage      = 0;
                order.Subscription = 0;
                order.Status       = (int)Order.EOrderStatus.OS_Init;
                order.SendType     = (int)Order.ESendType.ST_Direct;
                order.PayType      = (int)Order.EPayType.PT_Alipay;
                order.OrderDate    = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                order.CompleteDate = null;
                order.Packets.Add(packet);
                if (HttpContext.User.Identity.IsAuthenticated)
                {
                    //已登录
                    MyUser tmpUser = HttpContext.User as MyUser;
                    if (tmpUser != null)
                    {
                        //登陆用户
                        order.UID = tmpUser.UID;
                    }
                }
                //添加到数据库
                db.Orders.Add(order);
                db.OrderPackets.Add(packet);
                db.SaveChanges();
                tmpStr = order.OID.ToString() + "," + product.PID + "," + count.ToString() + "," + product.Title.Substring(0, Math.Min(20, product.Title.Length)) + "," + product.ImgPathArr[0] + ",";
            }
            cookie.Value = Server.UrlEncode(tmpStr);
            Response.Cookies.Add(cookie);
            if (Request.IsAjaxRequest())
            {
                string jsonStr = PubFunction.BuildResult("OK");
                return(Content(jsonStr));
            }
            else
            {
                return(View());
            }
        }