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