public async Task <IActionResult> GetProjectManagementTaskView(long projectManagementTaskId)
        {
            ProjectManagementTaskModule invMod = new ProjectManagementTaskModule();

            ProjectManagementTaskView view = await invMod.ProjectManagementTask.Query().GetViewById(projectManagementTaskId);

            return(Ok(view));
        }
        public async Task TestTaskToProjectRollup()
        {
            ProjectManagementModule  pmMod   = new ProjectManagementModule();
            ProjectManagementProject project = await pmMod.Project.Query().GetEntityById(1);

            ProjectManagementMilestone milestone = await pmMod.Milestone.Query().GetEntityById(1);

            Udc udc = await pmMod.Udc.Query().GetEntityById(21);

            ChartOfAccount account = await pmMod.ChartOfAccount.Query().GetEntityById(4);


            ProjectManagementTaskView view = new ProjectManagementTaskView()
            {
                Wbs                = "1.3",
                TaskName           = "test rollup",
                Description        = "task to project rollup",
                EstimatedStartDate = DateTime.Parse("12/1/2019"),
                EstimatedHours     = 1,
                EstimatedEndDate   = DateTime.Parse("12/31/2019"),
                ActualStartDate    = DateTime.Parse("12/23/2019"),
                ActualHours        = 1,
                ActualEndDate      = DateTime.Parse("12/23/2020"),
                Cost               = 31,
                MileStoneId        = milestone.MilestoneId,
                MilestoneName      = milestone.MilestoneName,
                StatusXrefId       = udc.XrefId,
                EstimatedCost      = 29,
                ActualDays         = 1,
                EstimatedDays      = 1,
                ProjectId          = project.ProjectId,
                AccountId          = account.AccountId,
                Account            = account.Account,
                ProjectName        = project.ProjectName,
            };

            NextNumber nnNextNumber = await pmMod.ProjectManagementTask.Query().GetNextNumber();

            view.TaskNumber = nnNextNumber.NextNumberValue;

            ProjectManagementTask projectManagementTask = await pmMod.ProjectManagementTask.Query().MapToEntity(view);

            pmMod.ProjectManagementTask.AddProjectManagementTask(projectManagementTask).Apply();


            RollupTaskToProjectView rollup = await pmMod.Project.Query().GetTaskToProjectRollupViewById(milestone.MilestoneId);


            ProjectManagementTask newProjectManagementTask = await pmMod.ProjectManagementTask.Query().GetEntityByNumber(view.TaskNumber);

            if (rollup.Cost < 3000)
            {
                Assert.True(false);
            }

            pmMod.ProjectManagementTask.DeleteProjectManagementTask(newProjectManagementTask).Apply();
        }
        public async Task <IActionResult> DeleteProjectManagementTask([FromBody] ProjectManagementTaskView view)
        {
            ProjectManagementTaskModule invMod = new ProjectManagementTaskModule();
            ProjectManagementTask       projectManagementTask = await invMod.ProjectManagementTask.Query().MapToEntity(view);

            invMod.ProjectManagementTask.DeleteProjectManagementTask(projectManagementTask).Apply();

            return(Ok(view));
        }
        public async Task <IActionResult> UpdateProjectManagementTask([FromBody] ProjectManagementTaskView view)
        {
            ProjectManagementTaskModule invMod = new ProjectManagementTaskModule();

            ProjectManagementTask projectManagementTask = await invMod.ProjectManagementTask.Query().MapToEntity(view);


            invMod.ProjectManagementTask.UpdateProjectManagementTask(projectManagementTask).Apply();

            ProjectManagementTaskView retView = await invMod.ProjectManagementTask.Query().GetViewById(projectManagementTask.TaskId);


            return(Ok(retView));
        }
        public async Task <IActionResult> AddProjectManagementTask([FromBody] ProjectManagementTaskView view)
        {
            ProjectManagementTaskModule invMod = new ProjectManagementTaskModule();

            NextNumber nnProjectManagementTask = await invMod.ProjectManagementTask.Query().GetNextNumber();

            view.TaskNumber = nnProjectManagementTask.NextNumberValue;

            ProjectManagementTask projectManagementTask = await invMod.ProjectManagementTask.Query().MapToEntity(view);

            invMod.ProjectManagementTask.AddProjectManagementTask(projectManagementTask).Apply();

            ProjectManagementTaskView newView = await invMod.ProjectManagementTask.Query().GetViewByNumber(view.TaskNumber);


            return(Ok(newView));
        }
        public async Task <IActionResult> GetTasksByMilestoneId(long milestoneId)
        {
            ProjectManagementModule pmMod = new ProjectManagementModule();

            IQueryable <ProjectManagementTask> query = await pmMod.Task.Query().GetEntitiesByMilestoneId(milestoneId);

            List <ProjectManagementTaskView> list = new List <ProjectManagementTaskView>();


            foreach (var item in query)
            {
                ProjectManagementTaskView view = await pmMod.Task.Query().MapToView(item);

                list.Add(view);
            }
            return(Ok(list));
        }