示例#1
0
        /// <summary>
        /// Checks if teammate already exists with "Deleted" status.
        /// If true, sets status "Active" and saving changes.
        /// If false, set status "Active" to the new teammate and saving changes.
        /// </summary>
        /// <param name="teamMate"></param>
        public void AddTeamMateSave(TeamMate teamMate)
        {
            teamMate.MateStatus = TeamMateStatus.Active;

            db.TeamMates.Add(teamMate);
            db.SaveChanges();
        }
示例#2
0
    public void ChangeTeamMateButtonFace(TeamMate teamMate, TeamMateMood mood)
    {
        int            index = (int)teamMate.TMClass;
        TeamMateButton tmb   = teamMateButtons[index] as TeamMateButton;

        tmb.SetButtonImageFromMood(mood);
    }
示例#3
0
        public ActionResult UserControls(string email, string userId, Guid projectId, string userControl)
        {
            if (!String.IsNullOrEmpty(email))
            {
                if (userControl == "Delete")
                {
                    Project project = projectControl.GetProjectById(projectId);

                    if (project.CreatorEmail != email)
                    {
                        mateControl.DeleteTeamMate(email, projectId);
                    }
                }

                if (userControl == "Add")
                {
                    TeamMate teamMateFind = projectControl.GetMateProject(projectId, email);

                    if (teamMateFind == null)
                    {
                        Guid.TryParse(userId, out Guid userIdGuid);

                        TeamMate teamMate = mateControl.CreateMate(email, projectId, userIdGuid);

                        mateControl.AddTeamMateSave(teamMate);
                    }
                    else if (teamMateFind.MateStatus == TeamMateStatus.Deleted)
                    {
                        mateControl.UpdateMateStatus(teamMateFind, TeamMateStatus.Active);
                    }
                }
            }

            return(RedirectToAction("Info", new { id = projectId }));
        }
示例#4
0
        public TeamMate CreateMate(string email, Guid projectId, Guid userId)
        {
            TeamMate teamMate = new TeamMate()
            {
                Email = email, ProjectID = projectId, UserID = userId
            };

            return(teamMate);
        }
示例#5
0
        public void ResetPlayers()
        {
            m_display = new TeamDisplay(this);
            MainPlayer.StateManager.ChangeState(0);
            MainPlayer.SetLocalAnimation(0, 0);
            MainPlayer.PlayerControl = PlayerControl.NoControl;
            MainPlayer.Life          = MainPlayer.Constants.MaximumLife;
            MainPlayer.Power         = 0;
            MainPlayer.SoundManager.Stop();
            MainPlayer.JugglePoints = MainPlayer.Constants.AirJuggle;

            if (Side == TeamSide.Left)
            {
                MainPlayer.CurrentLocation = Engine.Stage.P1Start;
                MainPlayer.CurrentFacing   = Engine.Stage.P1Facing;
                if (TeamMate != null)
                {
                    TeamMate.CurrentLocation = Engine.Stage.P3Start;
                    TeamMate.CurrentFacing   = Engine.Stage.P3Facing;
                }
            }
            else
            {
                MainPlayer.CurrentLocation = Engine.Stage.P2Start;
                MainPlayer.CurrentFacing   = Engine.Stage.P2Facing;
                if (TeamMate != null)
                {
                    TeamMate.CurrentLocation = Engine.Stage.P4Start;
                    TeamMate.CurrentFacing   = Engine.Stage.P4Facing;
                }
            }

            if (TeamMate != null)
            {
                TeamMate.StateManager.ChangeState(0);
                TeamMate.SetLocalAnimation(0, 0);
                TeamMate.PlayerControl = PlayerControl.NoControl;
                TeamMate.Life          = TeamMate.Constants.MaximumLife;
                TeamMate.Power         = 0;
                TeamMate.SoundManager.Stop();
                TeamMate.JugglePoints = TeamMate.Constants.AirJuggle;

                if (Side == TeamSide.Left)
                {
                    MainPlayer.CurrentLocation = Engine.Stage.P1Start;
                    MainPlayer.CurrentFacing   = Engine.Stage.P1Facing;
                }
                else
                {
                    MainPlayer.CurrentLocation = Engine.Stage.P2Start;
                    MainPlayer.CurrentFacing   = Engine.Stage.P2Facing;
                }
            }
        }
示例#6
0
        public bool DeleteTeamMate(string email, Guid projectId)
        {
            TeamMate teamMateFind = db.Projects.Where(a => a.ProjectID == projectId).SelectMany(a => a.TeamMates).Where(a => a.Email == email).SingleOrDefault();

            if (teamMateFind != null)
            {
                teamMateFind.MateStatus = TeamMateStatus.Deleted;

                db.Entry(teamMateFind).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                return(true);
            }

            return(false);
        }
示例#7
0
        public ActionResult Create(Project project)
        {
            if (ModelState.IsValid)
            {
                Guid.TryParse(User.Identity.GetUserId(), out Guid userId);

                project.CreatorEmail = User.Identity.Name;

                projectControl.AddProject(project);
                projectControl.SaveChanges();

                TeamMate teamMate = mateControl.CreateMate(User.Identity.Name, project.ProjectID, userId);
                mateControl.AddTeamMateSave(teamMate);
            }

            return(RedirectToAction("Index", "Project"));
        }
示例#8
0
        /// <summary>
        /// Checks if user is teammate of the project and set new status if teammate status is not equal to new status.
        /// </summary>
        /// <param name="teamMate">Teammate object</param>
        /// <param name="setStatus">enum TeamMateStatus</param>
        /// <returns>
        /// Set status and true if teammate status not equal to set status.
        /// False if user is not in project or old status and new status are equal.
        /// </returns>
        public bool UpdateMateStatus(TeamMate teamMate, TeamMateStatus setStatus)
        {
            if (IsUserTeamMate(teamMate.ProjectID, teamMate.Email))
            {
                if (teamMate.MateStatus != setStatus)
                {
                    var tm = db.TeamMates.FirstOrDefault(a => a.TeamMateID == teamMate.TeamMateID);

                    tm.MateStatus = setStatus;
                    db.SaveChanges();

                    return(true);
                }
            }

            return(false);
        }
示例#9
0
    public override void InitButton(int index)
    {
        SetHealth(teamMate.MaxHP);

        teamMateClass = (TeamMateClass)index;
        SetButtonImageFromMood(TeamMateMood.NEUTRAL);
        teamMate.OnHealthChanged += SetHealth;
        teamMate.OnMoodChanged   += SetMoodIconFromMoodValue;

        extaticMoodThreshold = (int)(teamMate.BiggestMood);
        happyMoodThreshold   = (int)(teamMate.BiggestMood * 0.70f);
        neutralMoodThreshold = (int)(teamMate.BiggestMood * 0.50f);
        angryMoodThreshold   = (int)(teamMate.BiggestMood * 0.30f);
        SetMoodIconFromMoodValue(teamMate.BiggestMood);

        border.color = TeamMate.GetTeamMateColor(teamMateClass);
        border.gameObject.SetActive(true);
    }
示例#10
0
        public void RemoveTeamMate(TeamMate tm)
        {
            //set current tasks(assigned and executing) status of this user to created(remove assigning) and remove responsible user
            Database.Tasks.Where(
                t =>
                t.ProjectId == tm.ProjectId && t.ResponsibleId == tm.UserId &&
                (t.StatusValue == (int)TaskStatus.Assigned || t.StatusValue == (int)TaskStatus.Executing))
            .ToList().ForEach(t =>
            {
                t.Status        = TaskStatus.Created;
                t.ResponsibleId = null;
            });


            Database.ObjectContext.DeleteObject(
                Database.TeamMates.FirstOrDefault(t => t.UserId == tm.UserId && t.ProjectId == tm.ProjectId));
            Database.SaveChanges();
        }
示例#11
0
    private void SelectTarget()
    {
        // figure out which targets are alive
        viableTargets.Clear(); // resets viable targets
        for (int i = 0; i < totalPartyMembers; i++)
        {
            if (gc.TeamMates[i].IsAlive && gc.TeamMates[i].IsOnline)
            {
                // add party member to viable targets list
                viableTargets.Add(gc.TeamMates[i]);
                //viableTargets[viableTargets.Count-1] = gc.TeamMates[i].gameObject;
            }
        }

        //choose a random target among those alive
        currentTarget = viableTargets[Random.Range(0, viableTargets.Count)];
        Debug.Log("Targeted Party Member: " + currentTarget.ToString());
    }
示例#12
0
        public ActionResult Create(Ticket ticket, string MateEmail)
        {
            #region addModelErrors

            if (ModelState.IsValidField(nameof(ticket.DeadLine)) && DateTime.Now.Date > ticket.DeadLine)
            {
                ModelState.AddModelError(nameof(ticket.DeadLine), "Date cannot be earlier than today");
            }

            if (ModelState.IsValidField(nameof(ticket.DeadLine)) && ticket.DeadLine > DateTime.Now.AddMonths(1))
            {
                ModelState.AddModelError(nameof(ticket.DeadLine), "Date must be less than one month");
            }

            #endregion

            if (ModelState.IsValid)
            {
                // Find team mate in project with email.
                TeamMate teamMate = projectControl.GetMateProject(ticket.ProjectID, MateEmail);

                if (teamMate != null)
                {
                    if (ticket.ProjectID == teamMate.ProjectID)
                    {
                        ticket.TeamMateID    = teamMate.TeamMateID;
                        ticket.TeamMateEmail = MateEmail;
                        ticket.CompleteTime  = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);

                        ticketControl.AddTicketSave(ticket);

                        return(RedirectToAction("Info", "Project", new { id = ticket.ProjectID }));
                    }
                }

                return(View("~/Views/Shared/Error.cshtml"));
            }

            return(View(ticket));
        }
示例#13
0
        public ActionResult TeamMate(TeamMate tm, string action)
        {
            var ps = new ProjectService();

            if (!ps.IsUserAllowedToDo(tm.ProjectId, SessionStorage.User.Id, ProjectAction.EditTeam))
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (action == "update")
            {
                ps.UpdateTeamMate(tm);
                this.SetTempMessage(Resources.Global_ChangesSaved, "success");
            }
            if (action == "remove")
            {
                ps.RemoveTeamMate(tm);
                this.SetTempMessage(Resources.Project_Team_UserRemoved, "success");
            }

            return(RedirectToAction("Team", new { id = tm.ProjectId }));
        }
示例#14
0
        /// <summary>
        /// Gets the user object from project.
        /// </summary>
        /// <param name="projectId"></param>
        /// <param name="userEmail"></param>
        /// <returns>The TeamMate object if such user is in the project.
        /// The null if there is no such user.
        /// </returns>
        public TeamMate GetMateProject(Guid projectId, string userEmail)
        {
            TeamMate teamMateFind = db.Projects.Include(a => a.TeamMates).SelectMany(a => a.TeamMates).FirstOrDefault(a => a.ProjectID == projectId && a.Email == userEmail);

            return(teamMateFind);
        }
示例#15
0
 public void UpdateTeamMate(TeamMate tm)
 {
     Database.ObjectContext.ApplyCurrentValues("TeamMates", tm);
     Database.SaveChanges();
 }
示例#16
0
 public void SetChatColor()
 {
     TextColor = TeamMate.GetTeamMateColor(SenderClass);
 }