Example #1
0
        public PartialViewResult _FolderPlanning(Guid Id)
        {
            Folder Folder = reposetory.GetFolder(Id);

            if (Folder == null)
            {
                throw new NullReferenceException("Folder is null");
            }
            Folder.Teams = Folder.Teams != null ? Folder.Teams = Folder.Teams.OrderBy(m => m.Start).ToList() : Folder.Teams = new List <Team>();
            FolderPlanningModel Plannig = new FolderPlanningModel
            {
                Folder         = Folder,
                Active         = reposetory.GetAssociationActivePersons(Folder.Association.AssociationID),
                FeedBack       = reposetory.GetFolderUserAnswers(Folder.FolderID),
                minTeammembers = int.Parse(ConfigurationManager.AppSettings["TeamMin"]),
                maxTeammembers = int.Parse(ConfigurationManager.AppSettings["TeamMax"])
            };

            return(PartialView(Plannig));
        }
Example #2
0
        public PartialViewResult _FPAj(Guid Team, Guid Person)
        {
            if (Team == null || Team == Guid.Empty)
            {
                return(null);
            }
            if (Person == null || Person == Guid.Empty)
            {
                return(null);
            }
            Team theTeam = reposetory.GetTeam(Team);

            Folder Folder = reposetory.GetFolder(theTeam.Folder.FolderID);
            FolderPlanningModel Plannig = new FolderPlanningModel
            {
                Folder         = Folder,
                Active         = reposetory.GetAssociationActivePersons(Folder.Association.AssociationID),
                FeedBack       = reposetory.GetFolderUserAnswers(Folder.FolderID),
                minTeammembers = int.Parse(ConfigurationManager.AppSettings["TeamMin"]),
                maxTeammembers = int.Parse(ConfigurationManager.AppSettings["TeamMax"])
            };

            var thePerson = Plannig.Active.Where(A => A.Person.PersonID == Person).FirstOrDefault();

            if (thePerson == null)
            {
                return(null);
            }


            if (theTeam.Teammembers == null)
            {
                theTeam.Teammembers = new List <Person>();
            }
            if (theTeam.Teammembers.Remove(thePerson.Person))
            {
                //Zero TeamLeader if the removed person is Teamleader
                if (theTeam.TeamLeaderId == thePerson.Person.PersonID)
                {
                    theTeam.TeamLeaderId = Guid.Empty;
                    //Try to replace teamleader from remaining teamleaders
                    foreach (Person P in theTeam.Teammembers)
                    {
                        var Mem = P.Memberships.Where(M => M.Association.AssociationID == Folder.Association.AssociationID).FirstOrDefault();
                        if (Mem != null && Mem.Teamleader)
                        {
                            theTeam.TeamLeaderId = P.PersonID;
                            break;
                        }
                    }
                }
                reposetory.SaveTeam(theTeam);
            }
            else if (!theTeam.Teammembers.Contains(thePerson.Person) && theTeam.Teammembers.Count() < Plannig.maxTeammembers)
            {
                if (theTeam.TeamLeaderId == Guid.Empty)
                {
                    if (thePerson.Teamleader)
                    {
                        theTeam.TeamLeaderId = thePerson.Person.PersonID;
                        theTeam.Teammembers.Add(thePerson.Person);
                        reposetory.SaveTeam(theTeam);
                    }
                    else if (theTeam.Teammembers.Count() < Plannig.maxTeammembers - 1)
                    {
                        theTeam.Teammembers.Add(thePerson.Person);
                        reposetory.SaveTeam(theTeam);
                    }
                }
                else
                {
                    theTeam.Teammembers.Add(thePerson.Person);
                    reposetory.SaveTeam(theTeam);
                }
            }



            return(PartialView("_FolderPlanning", Plannig));
        }