Example #1
0
        public ActionResult PassVerification(FormCollection form)
        {
            if (Session["AdminID"] != null)
            {
                ViewBag.AdminLogined = true;

                string   userName        = form["userName"];
                string   modelId         = form["modelId"];
                decimal  printPrice      = Convert.ToDecimal(form["printPrice"]);
                int      downloadTickets = Convert.ToInt32(form["downloadTickets"]);
                string   newTags         = form["modelTags"];
                string[] Tags            = newTags.Split(' ');
                var      user            = db.Users.Where(n => n.UserName == userName).FirstOrDefault();
                user.UserDownloadTickets += downloadTickets;
                db.Entry(user).State      = EntityState.Modified;
                db.SaveChanges();

                var model = db.ModelLibrary.Where(n => n.ModelID == modelId).FirstOrDefault();
                foreach (var tag in Tags)
                {
                    model.ModelKeyWords += tag + ",";
                }
                model.ModelState      = true;
                model.ModelPrintPrice = printPrice;
                db.Entry(model).State = EntityState.Modified;
                db.SaveChanges();

                //modify part model's print price
                var priceString     = form["partPrintPrice"];
                var filesNameString = form["fileName"];
                if (priceString != null && filesNameString != null)
                {
                    var fileNames    = filesNameString.Split(',');
                    var prices       = priceString.Split(',');
                    var modelDetails = db.ModelPartsDetail.Where(n => n.ModelID == modelId);
                    for (int i = 0; i < fileNames.Count(); i++)
                    {
                        foreach (var item in modelDetails)
                        {
                            if (item.ModelFileName == fileNames[i])
                            {
                                item.ModelPartPrintPrice = Convert.ToDecimal(prices[i]);

                                break;
                            }
                        }
                    }
                    db.SaveChanges();
                }
                return(RedirectToAction("Verification"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Example #2
0
        //model details
        public ActionResult Detail(string modelId, string partName)
        {
            //judge if user is logined
            if (Session["UserID"] != null)
            {
                ViewBag.UserId = Session["UserID"];
                int userId = Convert.ToInt32(Session["UserID"].ToString());
                var user   = db.Users.Find(userId);
                ViewBag.UserName = user.UserName;
            }

            var model = db.ModelLibrary.Where(n => (n.ModelID == modelId)).FirstOrDefault();

            //update scan number
            model.ModelScanNumbers++;
            db.Entry(model).State = EntityState.Modified;
            db.SaveChanges();

            Detail detail = new Detail();
            //select popular model
            var popularModel = db.ModelLibrary.OrderByDescending(n => (n.ModelDownloadNumbers)).Take(3);

            foreach (var pModel in popularModel)
            {
                detail.PopularModels.Add(pModel);
            }
            if (partName == null)
            {
                //detail.DetailModelImagePath.Add(path);
                detail.DetailModel   = model;
                detail.DetailModelID = modelId;
                var modelDetails = db.ModelPartsDetail.Where(n => n.ModelID == modelId);
                foreach (var item in modelDetails)
                {
                    detail.DetailModelParts.Add(item);
                }
                if (model.ModelPartCounts < 2)
                {
                    //calculate the optional ratio
                    var modelDetail = db.ModelPartsDetail.Where(n => (n.ModelID == modelId) && (n.ModelFileName == model.ModelFileNames)).FirstOrDefault();
                    for (decimal x = modelDetail.Width / 2, y = modelDetail.Length / 2, z = modelDetail.Height / 2, i = 1; x >= 30 && x <= 300 && y >= 30 && y <= 300 && z >= 20 && z <= 550; x /= 2, y /= 2, z /= 2, i += 1)
                    {
                        detail.DetailModelRatio.Add(1 / (2 * i));
                        detail.DetailModelRatio.Sort();
                    }
                    detail.DetailModelRatio.Add(1);
                    for (decimal x = modelDetail.Width * 2, y = modelDetail.Length * 2, z = modelDetail.Height * 2, i = 1; x >= 30 && x <= 300 && y >= 30 && y <= 300 && z >= 20 && z <= 550; x *= 2, y *= 2, z *= 2, i += 1)
                    {
                        detail.DetailModelRatio.Add(2 * i);
                    }
                }
                //add evaluation and trade records
                var orderDetails = db.OrderDetail.Where(n => n.ModelID == modelId).OrderByDescending(n => n.OrderID).ToList();
                for (int i = 0; i < orderDetails.Count(); i++)
                {
                    var orderId = orderDetails[i].OrderID;
                    var order   = db.Orders.Where(n => n.OrderID == orderId).FirstOrDefault();
                    var user    = db.Users.Where(n => n.UserID == order.UserID).FirstOrDefault();
                    if (orderDetails.ElementAt(i).Evaluation != "")
                    {
                        var evaluation = new TradeEvaluation();
                        evaluation.Content        = orderDetails[i].Evaluation;
                        evaluation.EvatuationTime = DateTime.Now;
                        evaluation.Consumer       = user.UserName;
                        detail.ModelTradeEvaluations.Add(evaluation);
                    }
                    var tradeRecord = new TradeRecord();
                    tradeRecord.Consumer = user.UserName;
                    tradeRecord.Sum      = order.Sums;
                    tradeRecord.BuyTime  = order.OrderTime;
                    detail.ModelTradeRecords.Add(tradeRecord);
                }
            }
            else
            {
                //detail.DetailModelImagePath.Add(path);
                detail.IsPart        = true;
                detail.DetailModel   = model;
                detail.DetailModelID = modelId;
                //calculate the optional ratio
                var modelDetail = db.ModelPartsDetail.Where(n => (n.ModelID == modelId) && (n.ModelFileName == partName)).FirstOrDefault();
                detail.DetailModelParts.Add(modelDetail);
                for (decimal x = modelDetail.Width / 2, y = modelDetail.Length / 2, z = modelDetail.Height / 2, i = 1; x >= 30 && x <= 300 && y >= 30 && y <= 300 && z >= 20 && z <= 550; x /= 2, y /= 2, z /= 2, i += 1)
                {
                    detail.DetailModelRatio.Add(1 / (2 * i));
                    detail.DetailModelRatio.Sort();
                }
                detail.DetailModelRatio.Add(1);
                for (decimal x = modelDetail.Width * 2, y = modelDetail.Length * 2, z = modelDetail.Height * 2, i = 1; x >= 30 && x <= 300 && y >= 30 && y <= 300 && z >= 20 && z <= 550; x *= 2, y *= 2, z *= 2, i += 1)
                {
                    detail.DetailModelRatio.Add(2 * i);
                }
            }
            return(View(detail));
        }