Beispiel #1
0
 public ActionResult DeleteCard(int id, string returnUrl)
 {
     using (var db = new MKContext())
     {
         var user = db.GetUserProfile(User.Identity.Name);
         var card = db.CardDetailsSet.Find(id);
         if (card == null)
         {
             return(HttpNotFound());
         }
         if (!user.CardDetailsSet.Any(i => i.Id == id))
         {
             return(HttpNotFound());
         }
         db.CardDetailsSet.Remove(card);
         db.SaveChanges();
         if (user.DefaultCardId == id)
         {
             if (db.CardDetailsSet.Count() != 0)
             {
                 user.DefaultCardId = db.CardDetailsSet.First().Id;
             }
             else
             {
                 user.DefaultCardId = null;
             }
             db.SaveChanges();
         }
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #2
0
        public IActionResult AddResult(NewHeatResult heat)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            var newHeat = new Heat
            {
                Date = DateTime.Now,
            };

            _mkContext.Heats.Add(newHeat);
            _mkContext.SaveChanges();

            var scores = heat.Scores
                         .Where(x => x.Player.HasValue)
                         .Select(x => new HeatScore
            {
                PlayerId = _mkContext.Players.Single(p => p.Id == x.Player).Id,
                Score    = x.Points.Value,
                HeatId   = newHeat.Id
            })
                         .ToList();

            _mkContext.HeatScores.AddRange(scores);
            _mkContext.SaveChanges();

            return(RedirectToAction("Index"));
        }
Beispiel #3
0
 public ActionResult DeleteAddress(int id, string returnUrl)
 {
     using (var db = new MKContext())
     {
         var user    = db.GetUserProfile(User.Identity.Name);
         var address = db.AddressBooks.Find(id);
         if (address == null)
         {
             return(HttpNotFound());
         }
         if (!user.AddressBooks.Any(i => i.Id == id))
         {
             return(HttpNotFound());
         }
         db.AddressBooks.Remove(address);
         db.SaveChanges();
         if (user.DefaultAddressId == id)
         {
             if (db.AddressBooks.Count() != 0)
             {
                 user.DefaultAddressId = db.AddressBooks.First().Id;
             }
             else
             {
                 user.DefaultAddressId = null;
             }
             db.SaveChanges();
         }
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #4
0
        public ActionResult DeleteItem(int id)
        {
            var sets = db.GetUserProfile(User.Identity.Name).UserData.ShoppingCart.ItemSets;
            var set  = sets.Where(s => s.ItemId == id).FirstOrDefault();

            //从表中删除
            db.ItemSets.Remove(set);

            db.SaveChanges();
            return(RedirectToAction("Manage"));
        }
Beispiel #5
0
        public ActionResult Create(Artist artist, HttpPostedFileBase image)
        {
            if (ModelState.IsValid)
            {
                this.SaveFile(image, artist.Id, "Image/Artist");
                db.Artists.Add(artist);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(artist));
        }
Beispiel #6
0
            public DatabaseInitializer()
            {
                try
                {
                    using (var context = new MKContext())
                    {
                        if (context.GetUserProfile("meno") == null)
                        {
                            var user = new UserProfile(context)
                            {
                                Email = "*****@*****.**", UserName = "******"
                            };
                            context.SaveChanges();

                            if (!WebSecurity.Initialized)
                            {
                                WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
                            }
                            WebSecurity.CreateAccount(user.UserName, "111111");

                            Roles.CreateRole("Admin");
                            Roles.CreateRole("Master");

                            Roles.AddUserToRoles(user.UserName, Roles.GetAllRoles());

                            user = new UserProfile(context)
                            {
                                Email = "*****@*****.**", UserName = "******"
                            };
                            context.SaveChanges();
                            WebSecurity.CreateAccount(user.UserName, "111111");
                            Roles.AddUserToRole(user.UserName, "admin");
                        }

                        if (!context.Database.Exists())
                        {
                            // 创建不包含 Entity Framework 迁移架构的 SimpleMembership 数据库
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    if (!WebSecurity.Initialized)
                    {
                        WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
                    }
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("无法初始化 ASP.NET 数据库。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
Beispiel #7
0
        public ActionResult Create(Item item, HttpPostedFileBase image, HttpPostedFileBase audition, HttpPostedFileBase download)
        {
            if (ModelState.IsValid)
            {
                db.Items.Add(item);
                db.SaveChanges();
                SaveDataEx(item, image, audition, download);
                return(RedirectToAction("Index"));
            }

            ViewBag.AlbumId    = new SelectList(db.Items, "Id", "ItemName", item.AlbumId);
            ViewBag.ArtistId   = new SelectList(db.Artists, "Id", "ArtistName", item.ArtistId);
            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", item.CategoryId);
            return(View(item));
        }
Beispiel #8
0
 public ActionResult AddCard(CardDetails model, string returnUrl)
 {
     if (!ModelState.IsValid)
     {
         return(View(model));
     }
     using (var db = new MKContext())
     {
         var user = db.GetUserProfile(User.Identity.Name);
         user.CardDetailsSet.Add(model);
         model.UserProfile = user;
         //先保存数据,model的Id会进行更改
         db.SaveChanges();
         if (user.DefaultCard == null)
         {
             user.DefaultCardId = model.Id;
         }
         db.SaveChanges();
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #9
0
 public ActionResult ModifyAddress(AddressBook model, string returnUrl)
 {
     if (!ModelState.IsValid)
     {
         return(View(model));
     }
     using (var db = new MKContext())
     {
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #10
0
 public ActionResult Edit(UserEditModel model)
 {
     if (ModelState.IsValid)
     {
         db.Entry(model.User).State = EntityState.Modified;
         db.SaveChanges();
         if (model.IsAdmin)
         {
             if (!Roles.IsUserInRole(model.User.UserName, "Admin"))
             {
                 Roles.AddUserToRole(model.User.UserName, "Admin");
             }
         }
         else
         {
             if (Roles.IsUserInRole(model.User.UserName, "Admin"))
             {
                 Roles.RemoveUserFromRole(model.User.UserName, "Admin");
             }
         }
         return(RedirectToAction("Index"));
     }
     return(View(model));
 }
Beispiel #11
0
        public ActionResult ConfirmPay(int?addressId, int?cardId)
        {
            var cart = db.GetUserProfile(User.Identity.Name).UserData.ShoppingCart;
            //新建订单
            var order = new Order()
            {
                CreateDate = DateTime.Now, UserData = cart.UserData, ItemRecordSets = new List <ItemRecordSet>()
            };

            db.Orders.Add(order);
            //将购物车数据添加到订单并生成历史记录
            foreach (var set in cart.ItemSets)
            {
                var r = new ItemRecord {
                    Item = set.Item, HistoryPrice = set.Price, IsDigital = set.IsDigital
                };
                var rset = new ItemRecordSet {
                    ItemRecord = r, Count = set.Count
                };
                order.ItemRecordSets.Add(rset);
            }
            //查找是否数字版,添加到个人拥有的数字列表
            foreach (var set in cart.ItemSets)
            {
                if (set.IsDigital)
                {
                    cart.UserData.OwnedDigitalItems.Add(new OwnedDigitalItem {
                        Item = set.Item, UserData = cart.UserData
                    });
                }
            }
            //清空购物车数据
            var list = cart.ItemSets.ToList();

            foreach (var item in list)
            {
                db.ItemSets.Remove(item);
            }

            db.SaveChanges();

            return(RedirectToAction("Details", "Order", new { id = order.Id }));
        }
Beispiel #12
0
 public ActionResult SetDefaultCard(int id, string returnUrl)
 {
     using (var db = new MKContext())
     {
         var card = db.CardDetailsSet.Find(id);
         if (card == null)
         {
             return(HttpNotFound());
         }
         var user = db.GetUserProfile(User.Identity.Name);
         //非法访问
         if (!user.CardDetailsSet.Any(i => i.Id == id))
         {
             return(HttpNotFound());
         }
         user.DefaultCardId = card.Id;
         db.SaveChanges();
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #13
0
 public ActionResult SetDefaultAddress(int id, string returnUrl)
 {
     using (var db = new MKContext())
     {
         var address = db.AddressBooks.Find(id);
         if (address == null)
         {
             return(HttpNotFound());
         }
         var user = db.GetUserProfile(User.Identity.Name);
         //非法访问
         if (!user.AddressBooks.Any(i => i.Id == id))
         {
             return(HttpNotFound());
         }
         user.DefaultAddressId = address.Id;
         db.SaveChanges();
     }
     return(RedirectToLocal(returnUrl));
 }
Beispiel #14
0
        public ActionResult Delete(int id = 0)
        {
            var   userId = db.GetUserProfile(User.Identity.Name).Id;
            Order order  = db.Orders.Where(o => o.UserData.Id == userId && o.Id == id).FirstOrDefault();

            if (order == null)
            {
                return(HttpNotFound());
            }
            else
            {
                //删除对应的购买数量组信息,但保留历史价格记录以便进行统计
                var list = order.ItemRecordSets.ToList();
                foreach (var item in list)
                {
                    db.ItemRecordSets.Remove(item);
                }
                //删除订单
                db.Orders.Remove(order);
                db.SaveChanges();
            }
            return(RedirectToAction("List"));
        }
Beispiel #15
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                while (true)
                {
                    using (var db = new MKContext())
                    {
                        var user = db.UserProfiles.Where(u => u.UserName == model.UserName || u.Email == model.Email).FirstOrDefault();
                        if (user != null)
                        {
                            ViewBag.ErrorMessage = "Email or username is already exist";
                            ModelState.AddModelError("", ViewBag.ErrorMessage);
                            break;
                        }
                        model.AddUserProfile(db);
                        db.SaveChanges();
                    }
                    // 尝试注册用户
                    try
                    {
                        WebSecurity.CreateAccount(model.UserName, model.Password);
                        WebSecurity.Login(model.UserName, model.Password);
                        return(RedirectToAction("Index", "Home"));
                    }
                    catch (MembershipCreateUserException e)
                    {
                        ViewBag.ErrorMessage = ErrorCodeToString(e.StatusCode);
                        ModelState.AddModelError("", ViewBag.ErrorMessage);
                    }
                }
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(View(model));
        }
Beispiel #16
0
        public ActionResult RefreshDataCheck()
        {
            foreach (var item in db.TroubleDataSet.ToList())
            {
                db.TroubleDataSet.Remove(item);
            }

            foreach (var item in db.Artists)
            {
                if (string.IsNullOrEmpty(item.Introduction))
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Introduction:艺术家建议拥有介绍"));
                }
                if (string.IsNullOrEmpty(item.About))
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Introduction:艺术家建议拥有About"));
                }
                if (item.ImageUrl == MKContextHelper.NoData)
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Introduction:艺术家建议拥有Image"));
                }
            }
            foreach (var item in db.Items.ToList())
            {
                if (!item.HasDigital && !item.HasEntity)
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Edition:至少拥有数字版或者实体版"));
                }
                if (!item.HasDigital && item.DigitalPrice != 0)
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Edition:不拥有数字版的商品价格应该为0"));
                }
                if (!item.HasEntity && item.Price != 0)
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Edition:不拥有实体版的商品价格应该为0"));
                }
                if (item.HasEntity && !item.IsAlbum)
                {
                    db.TroubleDataSet.Add(TroubleData.Create(item, "Edition:单曲不能拥有实体版"));
                }
                //-----------------------------
                if (item.IsSingle)
                {
                    if (item.TrackId == null)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "TrackId:单曲应该拥有音轨号"));
                    }
                }
                else
                {
                    if (item.TrackId != null)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "TrackId:非单行曲的专辑不应该拥有音轨号"));
                    }
                }
                //-----------------------------
                if (item.IsAlbum)
                {
                    if (item.ReleaseDate == null)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "ReleaseDate:专辑应该拥有发行日期"));
                    }
                }
                else
                {
                    if (item.ReleaseDate != null)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "ReleaseDate:不应该拥有发行日期"));
                    }
                }
                //-----------------------------
                if (item.IsAlbum)
                {
                    if (string.IsNullOrEmpty(item.Introduction))
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Introduction:专辑建议拥有介绍"));
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(item.Introduction))
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Introduction:不建议拥有介绍"));
                    }
                }
                //-----------------------------
                if (item.IsAlbum && !item.IsSingleAlbum)
                {
                    if (item.SongList.Where(s => s.TrackId != null).Select(s => s.TrackId.Value).Distinct().Count() != item.SongList.Count)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Album:专辑有重复TrackId"));
                    }
                    if (item.SongList.Max(s => s.TrackId) != item.SongList.Count)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Album:Track有缺失"));
                    }
                }
                //-----------------------------
                if (item.IsSingle)
                {
                    if (item.AuditionUrl == MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Audition:单曲建议拥有Audition"));
                    }
                }
                else
                {
                    if (item.AuditionUrl != MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Audition:不建议拥有Audition"));
                    }
                }
                //-----------------------------
                if (item.IsAlbum)
                {
                    if (item.ImageUrl == MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Cover:专辑建议拥有Cover"));
                    }
                }
                else
                {
                    if (item.ImageUrl != MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Cover:不建议拥有Cover"));
                    }
                }
                //-----------------------------
                if (item.IsSingle && item.HasDigital)
                {
                    if (item.DLUrl == MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "DL:数字版单曲应该拥有DL"));
                    }
                }
                else
                {
                    if (item.DLUrl != MKContextHelper.NoData)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "DL:不应该拥有DL"));
                    }
                }
                //------------
                if (!item.IsAlbum)
                {
                    if (!item.Album.IsAlbum)
                    {
                        db.TroubleDataSet.Add(TroubleData.Create(item, "Album:单曲的专辑不是专辑"));
                    }
                }
            }
            db.SaveChanges();
            return(RedirectToAction("DataCheck"));
        }