示例#1
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            var sesi = base.HttpContext.Session.GetString("_Email");

            if (sesi == null)
            {
                return(RedirectToPage("/AdminLogin"));
            }
            if (sesi != "*****@*****.**")
            {
                return(RedirectToPage("/Index"));
            }
            ViewData["Session"] = sesi;

            if (id == null)
            {
                return(NotFound());
            }

            VoteItemModel = await _context.VotingItems.FirstOrDefaultAsync(m => m.ItemID == id);

            if (VoteItemModel == null)
            {
                return(NotFound());
            }
            return(Page());
        }
示例#2
0
        public ActionResult ItemAdd(int id)
        {
            var voteProject = GetVoteProject(id);

            if (voteProject == null)
            {
                ViewBag.Message = "oops~~, we cannot find the vote project.";
                return View("Alert");
            }

            if (voteProject.BeginTime < DateTime.Now)
            {
                ViewBag.Message = "Sorry, this project has began to vote, cannot add item.";
                return View("Alert");
            }

            var voteItem = new VoteItemModel() { PId = voteProject.Id, ProjectName = voteProject.Name };

            ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).OrderBy(i => i.UserName).ToList();

            return View("ItemAdd", voteItem);
        }
示例#3
0
        private VoteModel GetVoteModel(VoteProject voteProject)
        {
            //Get the VoteItems
            var voteItems = db.VoteItems.Where(i => i.PId == voteProject.Id && i.State == 0).ToList();
            var userId = User.Identity.Name.Split(',')[0];
            var voteDetails = db.VoteDetails.Where(d => d.State == 0 && d.PId == voteProject.Id && d.Voter == userId);

            var itemModels = new List<VoteItemModel>();

            foreach (var i in voteItems)
            {
                var itemModel = new VoteItemModel()
                {
                    Id = i.Id,
                    Comment = i.Comment,
                    PId = i.PId,
                    Name = i.Name,
                    Members = i.Nominees,
                    Nominator = i.Nominator,
                    State = 0
                };

                var detail = voteDetails.FirstOrDefault(d => d.IId == i.Id);

                itemModel.IsSelected = detail == null;//?false:true;
                itemModel.PreSelected = detail != null;//?false:true;

                itemModels.Add(itemModel);
            }

            var voteModel = new VoteModel() { Items = itemModels, Project = voteProject, CurrentUserVoteNum = voteDetails.ToList().Count };

            return voteModel;
        }
示例#4
0
        private IList<VoteItemModel> GetVoteItems(int pid)
        {
            //Get the VoteItems
            var voteItems = db.VoteItems.Where(i => i.PId == pid && i.State == 0).ToList();
            var userId = User.Identity.Name.Split(',')[0];
            var voteDetails = db.VoteDetails.Where(d => d.State == 0 && d.PId == pid);

            var itemModels = new List<VoteItemModel>();

            foreach (var i in voteItems)
            {
                var itemModel = new VoteItemModel()
                {
                    Id = i.Id,
                    Comment = i.Comment,
                    PId = i.PId,
                    Name = i.Name,
                    Members = i.Nominees,
                    Nominator = i.Nominator,
                    State = i.State,
                    CreatedBy = i.CreatedBy,
                    CreatedTime = i.CreatedTime
                };

                itemModel.IsSelected = voteDetails.FirstOrDefault(d => d.IId == i.Id && d.Voter == userId) != null;
                itemModel.Count = voteDetails.Where(d => d.IId == i.Id).Count();

                itemModels.Add(itemModel);
            }

            return itemModels;
        }
示例#5
0
        public ActionResult ItemEdit(VoteItemModel voteItem)
        {
            var voteProject = GetVoteProject(Convert.ToInt32(voteItem.PId));

            if (voteProject.BeginTime < DateTime.Now)
            {
                ViewBag.Message = "Sorry, this project has began to vote, cannot add item.";
                return View(voteItem);
            }

            if (voteItem != null && voteItem.Id > 0)
            {
                if (voteItem.Nominator != User.Identity.Name.Split(',')[0])
                {
                    ViewBag.Message = "Sorry, this item was created by others, you cannot edit it.";
                    return View(voteItem);
                }

                if (!ValidateItemName(voteItem.Name, voteItem.PId, voteItem.Id))
                {
                    ViewBag.Message = "Sorry, this item name has been used in this project.";
                    return View(voteItem);
                }

                var voteItemDB = db.VoteItems.FirstOrDefault(i => i.Id == voteItem.Id);
                voteItemDB.Name = voteItem.Name;
                voteItemDB.Nominees = voteItem.Members;
                voteItemDB.Comment = voteItem.Comment;
                voteItemDB.ModifiedBy = User.Identity.Name.Split(',')[0];
                voteItemDB.ModifiedTime = DateTime.Now;
                try
                {
                    db.Entry(voteItemDB).State = EntityState.Modified;
                    db.SaveChanges();

                    return RedirectToAction("ItemList", new { id = voteItem.PId });
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "DatabaseError: " + ex.Message;
                    return View(voteItem);
                    //return View("DatabaseError");
                    //throw;
                }
            }
            else
            {
                return View("VoteItemModel is null.");
            }
        }
示例#6
0
        public ActionResult ItemEdit(int id,int pid)
        {
            var voteProject = GetVoteProject(pid);

            if (voteProject.BeginTime < DateTime.Now)
            {
                ViewBag.Message = "Sorry, this project has began to vote, cannot add item.";
                return View("Alert");
            }

            var voteItem = db.VoteItems.FirstOrDefault(i => i.State == 0 && i.Id == id);
            if (voteItem.Nominator != User.Identity.Name.Split(',')[0])
            {
                ViewBag.Message = "Sorry, this item was created by others, you cannot edit it.";
                return View("Alert");
            }

            var project = GetVoteProject(pid);

            if (project == null && voteItem == null)
            {
                ViewBag.Message = "Oops~~, the Vote Project is null or the Vote Item is null.";
                return View("Alert");
            }

            var model = new VoteItemModel() { PId = voteItem.PId, Members = voteItem.Nominees, Id = voteItem.Id, Nominator = voteItem.Nominator, Name = voteItem.Name, Comment = voteItem.Comment, ProjectName = project.Name };

            ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).ToList();

            return View("ItemEdit", model);
        }
示例#7
0
        public ActionResult ItemAdd(VoteItemModel voteItem)
        {
            var voteProject = GetVoteProject(Convert.ToInt32(voteItem.PId));

            if (voteProject.BeginTime < DateTime.Now)
            {
                ViewBag.Message = "Sorry, this project has began to vote, cannot add item.";
                ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).OrderBy(i => i.UserName).ToList();
                return View(voteItem);
            }

            if (voteItem != null)
            {
                if (!ValidateItemName(voteItem.Name, voteItem.PId, voteItem.Id))
                {
                    ViewBag.Message = "Sorry, this item name has been used in this project.";
                    ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).OrderBy(i => i.UserName).ToList();
                    return View(voteItem);
                }

                var userId = User.Identity.Name.Split(',')[0];
                var voteItemDB = new VoteItem
                {
                    PId = voteItem.PId,
                    Comment = voteItem.Comment,
                    CreatedBy = userId,
                    CreatedTime = DateTime.Now,
                    Name = voteItem.Name,
                    Nominator = userId,
                    Nominees = voteItem.Members,
                    State = 0
                };

                try
                {
                    db.VoteItems.Add(voteItemDB);
                    db.SaveChanges();

                    return RedirectToAction("ItemList", new { id = voteItem.PId });
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "DatabaseError: "+ex.Message;
                    ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).OrderBy(i => i.UserName).ToList();
                    return View(voteItem);
                    //return View("DatabaseError");
                    //throw;
                }
            }
            else
            {
                ViewBag.Message = "VoteItemModel is null.";
                ViewBag.users = db.Users.Where(u => u.UserName != null && u.UserName.Length > 0).OrderBy(i => i.UserName).ToList();
                return View(voteItem);
                //return View("Error");
            }
        }