コード例 #1
0
        public ActionResult Create(HeistModel model)
        {
            try
            {
                tblHeist heist = new tblHeist();
                {
                    heist.Name      = model?.Name ?? null;
                    heist.Location  = model?.Location ?? null;
                    heist.StartDate = model.StartDate;
                    heist.StartTime = model.StartTime;
                    heist.EndDate   = model.EndDate;
                    heist.EndTime   = model.EndTime;
                    heist.Active    = false;
                }

                db.tblHeist.Add(heist);
                db.SaveChanges();

                List <tblHeist> heists = new List <tblHeist>();
                heists = db.tblHeist.Where(m => m.Active == false).ToList();

                return(View("Index", heists));
            }
            catch
            {
                return(View("Create", model));
            }
        }
コード例 #2
0
        public ActionResult AddHeistMember(int?heistID)
        {
            tblHeist heist = GetHeistByID(heistID);

            var _skillsList = heist.tblHeistSkills.OrderBy(m => m.HeistID).ToArray();

            HeistModel hm = new HeistModel();

            //Getting skills
            hm.HeistSkills = new List <HeistSkillModel>();
            for (int i = 0; i < _skillsList.Count(); i++)
            {
                HeistSkillModel mod = new HeistSkillModel
                {
                    HeistID   = _skillsList[i].HeistID,
                    SkillID   = _skillsList[i].SkillsID,
                    Name      = _skillsList[i].Name,
                    Level     = _skillsList[i].SkillLevel,
                    MembersNo = (Int16)_skillsList[i].MembersNo
                };

                hm.HeistSkills.Add(mod);
            }

            //getting members
            var _allMembers = GetMatchingMembers(heistID);

            List <HeistMemberModel> _list = _allMembers.ToList();

            hm.HeistMembers = _allMembers as List <HeistMemberModel>;

            ViewBag.MatchingMembers = new SelectList(_list);

            return(View());
        }
コード例 #3
0
        public ActionResult Edit(tblHeist model)
        {
            try
            {
                tblHeist heist = GetHeistByID(model.HeistID);

                heist.Name      = model?.Name ?? null;
                heist.Location  = model?.Location ?? null;
                heist.StartDate = model.StartDate;
                heist.StartTime = model.StartTime;
                heist.EndDate   = model.EndDate;
                heist.EndTime   = model.EndTime;
                heist.Active    = model.Active;

                db.SaveChanges();

                List <tblHeist> heists = new List <tblHeist>();
                heists = db.tblHeist.Where(m => m.Active == false).ToList();

                return(View("Index", heists));
            }
            catch
            {
                return(View("Edit", db.tblHeist.Where(m => m.HeistID == model.HeistID)));
            }
        }
コード例 #4
0
        public ActionResult AddHeistMember(HeistMemberModel model)
        {
            tblHeist heist = GetHeistByID(model.HeistID);

            var _skillsList = heist.tblHeistSkills.OrderBy(m => m.HeistID).ToArray();

            HeistModel hm = new HeistModel();

            //Getting skills
            hm.HeistSkills = new List <HeistSkillModel>();
            for (int i = 0; i < _skillsList.Count(); i++)
            {
                HeistSkillModel mod = new HeistSkillModel
                {
                    HeistID   = _skillsList[i].HeistID,
                    SkillID   = _skillsList[i].SkillsID,
                    Name      = _skillsList[i].Name,
                    Level     = _skillsList[i].SkillLevel,
                    MembersNo = (Int16)_skillsList[i].MembersNo
                };

                hm.HeistSkills.Add(mod);
            }

            //getting members
            var _allMembers = GetMatchingMembers(model.HeistID);

            List <HeistMemberModel> _list = _allMembers.ToList();

            hm.HeistMembers = _allMembers as List <HeistMemberModel>;

            ViewBag.MatchingMembers = new SelectList(_list);

            tblHeistMembers member = new tblHeistMembers();

            member.HeistID       = model.HeistID;
            member.MemberID      = Convert.ToInt32(model.Name);
            member.ActiveInHeist = true;

            db.tblHeistMembers.Add(member);

            tblMember mem = new tblMember();

            mem = db.tblMember.SingleOrDefault(m => m.MemberID == member.MemberID);
            mem.ActiveInHeist = true;

            db.SaveChanges();

            return(RedirectToAction("Details", "Heist", new { @id = model.HeistID }));
        }
コード例 #5
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            tblHeist heist = GetHeistByID(id);

            if (heist == null)
            {
                return(HttpNotFound());
            }

            return(View(heist));
        }
コード例 #6
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ViewBag.HeistID = id;

            var totall = db.tblHeistSkills.Where(m => m.HeistID == id).ToArray();

            int total = 0;

            foreach (tblHeistSkills item in totall)
            {
                total += (Int32)item.MembersNo;
            }

            ViewBag.MembersRequiredTotal = total;

            ViewBag.MembersAssignedTotal = db.tblHeistMembers.Where(m => m.HeistID == id).Count();

            tblHeist heist = GetHeistByID(id);

            var _skillsList = heist.tblHeistSkills.OrderBy(m => m.HeistID).ToArray();

            HeistModel hm = new HeistModel();

            hm.HeistID   = heist.HeistID;
            hm.Name      = heist.Name;
            hm.Location  = heist.Location;
            hm.StartDate = heist.StartDate;
            hm.StartTime = heist.StartTime;
            hm.EndDate   = heist.EndDate;
            hm.EndTime   = heist.EndTime;

            //Setting skills
            hm.HeistSkills = GetHeistSkills(id);

            //Setting members
            var _allMembers = db.tblHeistMembers.ToArray();

            hm.HeistMembers = GetHeistMembers(id);

            return(View(hm));
        }
コード例 #7
0
        public bool HeistExists(tblHeist model)
        {
            bool result = false;

            List <tblHeist> heists = new List <tblHeist>();

            heists = db.tblHeist.Where(m => m.Active == false).ToList();

            for (int i = 0; i < heists.Count(); i++)
            {
                if (model.Name.ToUpper() == heists[i].Name.ToUpper() && model.Location.ToUpper() == heists[i].Location.ToUpper() && model.StartDate == heists[i].StartDate && model.EndDate == heists[i].EndDate && model.StartTime == heists[i].StartTime && model.EndTime == heists[i].EndTime)
                {
                    result = true;
                }
            }

            return(result);
        }
コード例 #8
0
        public List <HeistSkillModel> GetHeistSkills(int?heistID)
        {
            tblHeist heist = GetHeistByID(heistID);

            List <tblHeistSkills> heistSkills = heist.tblHeistSkills.OrderBy(m => m.HeistID).ToList();

            List <HeistSkillModel> hsm = new List <HeistSkillModel>();

            for (int i = 0; i < heistSkills.Count(); i++)
            {
                HeistSkillModel mod = new HeistSkillModel();

                mod.SkillID   = heistSkills[i].SkillsID;
                mod.Name      = heistSkills[i].Name;
                mod.Level     = heistSkills[i].SkillLevel;
                mod.MembersNo = (Int16)heistSkills[i].MembersNo;

                hsm.Add(mod);
            }

            return(hsm);
        }
コード例 #9
0
        public ActionResult DeleteConfirmed(int?id)
        {
            try
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                tblHeist heist = GetHeistByID(id);

                db.tblHeist.Remove(heist);
                db.SaveChanges();

                List <tblHeist> heists = new List <tblHeist>();
                heists = db.tblHeist.Where(m => m.Active == false).ToList();

                return(View("Index", heists));
            }
            catch
            {
                return(View("Delete", db.tblHeist.Where(m => m.HeistID == id)));
            }
        }
コード例 #10
0
        public List <HeistMemberModel> GetMatchingMembers(int?heistID)
        {
            tblHeist heist = GetHeistByID(heistID);

            var _skillsList = heist.tblHeistSkills.OrderBy(m => m.HeistID).ToArray();

            HeistModel hm = new HeistModel();

            hm.HeistID = heist.HeistID;

            //Setting skills
            hm.HeistSkills = new List <HeistSkillModel>();
            for (int i = 0; i < _skillsList.Count(); i++)
            {
                HeistSkillModel mod = new HeistSkillModel
                {
                    HeistID   = _skillsList[i].HeistID,
                    SkillID   = _skillsList[i].SkillsID,
                    Name      = _skillsList[i].Name,
                    Level     = _skillsList[i].SkillLevel,
                    MembersNo = (Int16)_skillsList[i].MembersNo
                };

                hm.HeistSkills.Add(mod);
            }

            //Setting members
            List <HeistMemberModel> matchingMembers = new List <HeistMemberModel>();

            var _allMembers = db.tblMember.Where(m => m.ActiveInHeist != true).ToArray();

            hm.HeistMembers = new List <HeistMemberModel>();

            for (int i = 0; i < hm.HeistSkills.Count(); i++)  //iterating skills determined for heist
            {
                for (int j = 0; j < _allMembers.Count(); j++) //iterating predetermined members
                {
                    var temp = _allMembers[j].MemberID;

                    List <tblMemberSkills> memberSkills = db.tblMemberSkills.Where(m => m.MemberID == temp).ToList(); //getting each member's skills

                    for (int m = 0; m < memberSkills.Count(); m++)
                    {
                        if (hm.HeistSkills[i].Name == memberSkills[m].Name && hm.HeistSkills[i].Level.Length <= memberSkills[m].SkillLevel.Length) //matching heist skills to member's skills
                        {
                            HeistMemberModel member = new HeistMemberModel();

                            member.HeistID  = heist.HeistID;
                            member.MemberID = _allMembers[j].MemberID;
                            member.Name     = _allMembers[j].Name;

                            bool contains = false;
                            for (int k = 0; k < matchingMembers.Count(); k++)
                            {
                                if (matchingMembers[k].Name == member.Name)
                                {
                                    contains = true;
                                }
                            }

                            if (contains != true)
                            {
                                matchingMembers.Add(member);
                            }
                        }
                    }
                }
            }

            return(matchingMembers);
        }
コード例 #11
0
        public tblHeist GetHeistByID(int?id)
        {
            tblHeist heist = db.tblHeist.SingleOrDefault(m => m.HeistID == id);

            return(heist);
        }
コード例 #12
0
        public ActionResult Activation(tblHeist model)
        {
            if (model.Name == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int heistID = Convert.ToInt32(model.Name);

            tblHeist heist = db.tblHeist.SingleOrDefault(m => m.HeistID == heistID);

            if (heist == null)
            {
                return(HttpNotFound());
            }

            heist.Active = true;

            //check members numbers (required & assigned)
            var totall = db.tblHeistSkills.Where(m => m.HeistID == heist.HeistID).ToArray();

            int required = 0;

            ResultModel rm = new ResultModel();

            foreach (tblHeistSkills item in totall)
            {
                required += (Int32)item.MembersNo;
            }

            int assigned = db.tblHeistMembers.Where(m => m.HeistID == heist.HeistID).Count();

            if (assigned == 0)
            {
                TempData["ErrorMessage"] = "Not enough members have been assigned!";

                return(RedirectToAction("Error", "Start"));
            }

            if (assigned < required)
            {
                TempData["ErrorMessage"] = "Not enough members have been assigned!";

                return(RedirectToAction("Error", "Start"));
            }
            else
            {
                //getting status for members
                var random = new Random();
                var list   = new List <string> {
                    "EXPIRED", "INCARCERATED", "SURVIVED"
                };

                var members = db.tblHeistMembers.Where(m => m.HeistID == heist.HeistID);

                int indexx = 0;

                foreach (tblHeistMembers member in members)
                {
                    indexx        = random.Next(list.Count);
                    member.Status = list[indexx];
                }

                rm = GetHeistResult(members.ToList());
            }

            heist.Active = false;

            db.SaveChanges();

            return(View("HeistResult", rm));
        }