Example #1
0
        public ActionResult FeedBack(FolderUserAnswer Answer)
        {
            Folder Folder = reposetory.GetFolder(Answer.FolderID);

            Folder.Teams = Folder.Teams.OrderBy(T => T.Start).ToList();
            Person Person = reposetory.GetPersonComplete(Answer.PersonID);

            if (Folder == null | Person == null)
            {
                return(HttpNotFound());
            }

            //Check if person has membership with the association
            if (Person.Memberships.Where(m => m.Association.AssociationID == Folder.Association.AssociationID && !m.Absent && m.Type == PersonType.Active).Count() < 1)
            {
                return(HttpNotFound());
            }

            FolderUserAnswer dbAnswer = reposetory.GetFolderUserAnswer(Person.PersonID, Folder.FolderID);

            if (ModelState.IsValid)
            {
                if (dbAnswer == null)
                {
                    dbAnswer = new FolderUserAnswer
                    {
                        //Folder = Folder,
                        FolderID = Folder.FolderID,
                        Answers  = new List <TeamUserAnswer>(),
                        //Person = Person,
                        PersonID = Person.PersonID
                    };
                }

                dbAnswer.Pass     = Answer.Pass == null ? false : Answer.Pass;
                dbAnswer.MaxTeams = Answer.MaxTeams;
                if (Answer.Answers != null && Answer.Answers.Any())
                {
                    foreach (TeamUserAnswer T in Answer.Answers)
                    {
                        TeamUserAnswer dbT = T.AnswerID == Guid.Empty ? null : dbAnswer.Answers.Where(A => A.AnswerID == T.AnswerID).FirstOrDefault();
                        if (dbT == null)
                        {
                            dbAnswer.Answers.Add(new TeamUserAnswer
                            {
                                OK = T.OK,
                                //PersonID = Person.PersonID,
                                TeamID = T.TeamID
                                         //,
                                         //FolderUserAnswer = dbAnswer
                            });
                        }
                        else
                        {
                            dbT.OK = T.OK;
                        }
                    }
                }
                else
                {
                }
                if (reposetory.SaveFolderUserAnswer(dbAnswer))
                {
                    ViewBag.FormSucces = true;
                    Notification not = reposetory.Notify(Folder, String.Format(Notifications.FolderFedbackCompleated, Person.FullName, Folder.FoldereName));
                    reposetory.NotifyAddPlanner(not, Folder.Association.AssociationID);
                    reposetory.NotifySave(not);
                }
                Answer = dbAnswer;
            }



            Answer.Folder = Folder;
            Answer.Person = Person;
            foreach (Team T in Folder.Teams)
            {
                TeamUserAnswer TA = Answer.Answers.Where(a => a.TeamID == T.TeamID).FirstOrDefault();

                if (TA == null)
                {
                    Answer.Answers.Add(new TeamUserAnswer
                    {
                        OK     = true,
                        Team   = T,
                        TeamID = T.TeamID
                    });
                }
                else
                {
                    TA.Team   = T;
                    TA.TeamID = T.TeamID;
                }
            }

            if (WebSecurity.IsAuthenticated)
            {
                ViewBag.IsAuthenticated = true;
            }

            return(View(Answer));
        }
Example #2
0
        public ActionResult FeedBack(Guid?P, Guid?F)
        {
            if (WebSecurity.IsAuthenticated)
            {
                ViewBag.IsAuthenticated = true;
            }
            if (P == null || (Guid)P == Guid.Empty)
            {
                return(View("FeedbackWrong"));
            }
            if (F == null || (Guid)F == Guid.Empty)
            {
                return(View("FeedbackWrong"));
            }

            Folder Folder = reposetory.GetFolder((Guid)F);

            Folder.Teams = Folder.Teams.OrderBy(T => T.Start).ToList();
            Person Person = reposetory.GetPersonComplete((Guid)P);

            //Association Association = Folder.Association;
            if (Folder == null | Person == null)
            {
                return(View("FeedbackWrong"));
            }

            //Check if person has membership with the association
            if (Person.Memberships.Where(m => m.Association.AssociationID == Folder.Association.AssociationID && !m.Absent && m.Type == PersonType.Active).Count() < 1)
            {
                return(HttpNotFound());
            }

            FolderUserAnswer Answer = reposetory.GetFolderUserAnswer((Guid)P, (Guid)F);

            if (Answer == null)
            {
                Answer = new FolderUserAnswer
                {
                    Folder   = Folder,
                    FolderID = Folder.FolderID,
                    Answers  = new List <TeamUserAnswer>(),
                    Person   = Person,
                    PersonID = Person.PersonID,
                    Pass     = false
                };
            }

            foreach (Team T in Folder.Teams)
            {
                TeamUserAnswer TA = Answer.Answers.Where(a => a.TeamID == T.TeamID).FirstOrDefault();

                if (TA == null)
                {
                    Answer.Answers.Add(new TeamUserAnswer
                    {
                        OK     = true,
                        Team   = T,
                        TeamID = T.TeamID
                    });
                }
                else
                {
                    TA.Team   = T;
                    TA.TeamID = T.TeamID;
                }
            }

            if (WebSecurity.IsAuthenticated)
            {
                ViewBag.IsAuthenticated = true;
            }

            return(View(Answer));
        }