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)); }
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)); }