public IActionResult GetById(long id)
        {
            var project = _context.Project.FirstOrDefault(t => t.ProjectSapId == id.ToString());

            if (project == null)
            {
                return(NotFound());
            }
            else
            {
                ProjectNetflix project_netxlix = CreateProjectNetflix(project);
                return(new ObjectResult(project_netxlix));
            }
        }
        protected List <Project> VerifySorting(List <Project> projectToBeSorted, string sorting)
        {
            List <Project> projectSorted = new List <Project>();

            foreach (Project project in projectToBeSorted)
            {
                ProjectNetflix project_netxlix = CreateProjectNetflix(project);

                if (exceedingBudgetSorting.Contains(sorting))
                {
                    if (project_netxlix.BudgetLeft < 0)
                    {
                        projectSorted.Add(project);
                        continue;
                    }
                }
                else if (exceedingXAmountSorting.Contains(sorting))
                {
                    if (project_netxlix.InitialBudget > 100000)
                    {
                        projectSorted.Add(project);
                        continue;
                    }
                }
                else if (lateSorting.Contains(sorting))
                {
                    if (project.EstEndDate < System.DateTime.Today)
                    {
                        projectSorted.Add(project);
                        continue;
                    }
                }
                else if (sorting == "undefined")
                {
                    projectSorted.Add(project);
                    continue;
                }
            }
            return(projectSorted);
        }
        protected ProjectNetflix CreateProjectNetflix(Project project)
        {
            ProjectNetflix project_netxlix = new ProjectNetflix();

            var manager = (from p in _context.Employe
                           where p.Id == project.ProjectManagerId
                           select p).FirstOrDefault();

            var budget = (from p in _context.Budget
                          where p.Id == project.BudgetId
                          select p).First();

            //var expenses = (from p in _context.Expense
            //                where p.Budgetid == budget.Id
            //                select p).ToList();

            var connexeProjectIds = (from p in _context.ConnexeProject
                                     where p.ProjectId == project.Id
                                     select p.ConnexeProjectSapid).ToList();

            List <ProjectNetflixExpense> expenses_netflix = new List <ProjectNetflixExpense>();
            //foreach (Expense expense in expenses)
            //{
            //    ProjectNetflixExpense expense_netflix = new ProjectNetflixExpense()
            //    {
            //        Id = expense.Id,
            //        Amount = expense.Amount,
            //        Budgetid = expense.Budgetid,
            //        ExpenseName = expense.ExpenseName
            //    };
            //    expenses_netflix.Add(expense_netflix);
            //}

            List <ProjectNetflixCard> connexeProjects = new List <ProjectNetflixCard>();

            foreach (String connexeProjectid in connexeProjectIds)
            {
                var pro = _context.Project.FirstOrDefault(t => t.Id == project.Id);
                if (pro == null)
                {
                    continue;
                }
                else
                {
                    var man = (from p in _context.Employe
                               where p.Id == pro.ProjectManagerId
                               select p).FirstOrDefault();

                    ProjectNetflixCard connexeProject = new ProjectNetflixCard()
                    {
                        Id             = pro.Id,
                        ProjectName    = pro.ProjectName,
                        ProjectOwnerId = project.ProjectOwnerId,
                        ProjectSapId   = project.ProjectSapId,
                        ProjectsClient = project.ProjectsClient,
                        ProjectStatus  = project.ProjectStatus,
                        StartDate      = project.StartDate,
                        Thumbnail      = project.Thumbnail,
                        EstEndDate     = project.EstEndDate != null?project.EstEndDate.Value.ToString("MMMM, yyyy") : "n/a",
                                             Department           = project.Department,
                                             CompletionPercentage = project.CompletionPercentage,
                                             Factory        = project.Factory,
                                             ManagerName    = man.Name,
                                             ManagerPicture = man.Picture,
                    };
                    connexeProjects.Add(connexeProject);
                }
            }
            if (manager == null)
            {
                project_netxlix.ManagerName    = "Unknown";
                project_netxlix.ManagerPicture = "http://www.getsmartcontent.com/content/uploads/2014/08/shutterstock_149293433.jpg";
            }
            else
            {
                project_netxlix.ManagerName    = manager.Name;
                project_netxlix.ManagerPicture = manager.Picture;
            }

            project_netxlix.Id               = project.Id;
            project_netxlix.Priority         = project.Priority;
            project_netxlix.ProjectManagerId = project.ProjectManagerId;
            project_netxlix.ProjectName      = project.ProjectName;
            project_netxlix.ProjectOwnerId   = project.ProjectOwnerId;
            project_netxlix.ProjectSapId     = project.ProjectSapId;
            project_netxlix.ProjectsClient   = project.ProjectsClient;
            project_netxlix.ProjectStatus    = project.ProjectStatus;
            project_netxlix.StartDate        = project.StartDate != null?project.StartDate.Value.ToString("dd MMMM, yyyy") : "n/a";

            project_netxlix.Thumbnail  = project.Thumbnail;
            project_netxlix.EstEndDate = project.EstEndDate != null?project.EstEndDate.Value.ToString("dd MMMM, yyyy") : "n/a";

            project_netxlix.Description          = project.Description;
            project_netxlix.Department           = project.Department;
            project_netxlix.CompletionPercentage = project.CompletionPercentage;
            project_netxlix.Factory        = project.Factory;
            project_netxlix.InitialBudget  = budget.InitialBudget;
            project_netxlix.BudgetSpent    = budget.BudgetSpent;
            project_netxlix.BudgetLeft     = budget.BudgetLeft;
            project_netxlix.EstWorkDay     = project.EstWorkDay;
            project_netxlix.Expenses       = expenses_netflix;
            project_netxlix.ConnexeProject = connexeProjects;

            return(project_netxlix);
        }