Пример #1
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);

        }
Пример #2
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);
 }