public async Task <IActionResult> GetProjectManagementWorkOrderView(long projectManagementWorkOrderId)
        {
            ProjectManagementWorkOrderModule invMod = new ProjectManagementWorkOrderModule();

            ProjectManagementWorkOrderView view = await invMod.ProjectManagementWorkOrder.Query().GetViewById(projectManagementWorkOrderId);

            return(Ok(view));
        }
        public async Task <IActionResult> DeleteProjectManagementWorkOrder([FromBody] ProjectManagementWorkOrderView view)
        {
            ProjectManagementWorkOrderModule invMod = new ProjectManagementWorkOrderModule();
            ProjectManagementWorkOrder       projectManagementWorkOrder = await invMod.ProjectManagementWorkOrder.Query().MapToEntity(view);

            invMod.ProjectManagementWorkOrder.DeleteProjectManagementWorkOrder(projectManagementWorkOrder).Apply();

            return(Ok(view));
        }
        public async Task <IActionResult> DeleteWorkOrder(long workOrderId)
        {
            ProjectManagementModule    pmMod     = new ProjectManagementModule();
            ProjectManagementWorkOrder workOrder = await pmMod.WorkOrder.Query().GetEntityById(workOrderId);

            ProjectManagementWorkOrderView view = await pmMod.WorkOrder.Query().MapToView(workOrder);

            pmMod.WorkOrder.DeleteProjectManagementWorkOrder(workOrder).Apply();
            return(Ok(view));
        }
        public async Task <IActionResult> GetWorkOrdersByProjectId(long projectId)
        {
            ProjectManagementModule pmMod = new ProjectManagementModule();

            IQueryable <ProjectManagementWorkOrder> query = await pmMod.WorkOrder.Query().GetEntitiesByProjectId(projectId);

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

            foreach (var workOrder in query)
            {
                ProjectManagementWorkOrderView view = await pmMod.WorkOrder.Query().MapToView(workOrder);

                list.Add(view);
            }
            return(Ok(list));
        }
        public async Task <IActionResult> AddProjectManagementWorkOrder([FromBody] ProjectManagementWorkOrderView view)
        {
            ProjectManagementWorkOrderModule invMod = new ProjectManagementWorkOrderModule();

            NextNumber nnProjectManagementWorkOrder = await invMod.ProjectManagementWorkOrder.Query().GetNextNumber();

            view.WorkOrderNumber = nnProjectManagementWorkOrder.NextNumberValue;

            ProjectManagementWorkOrder projectManagementWorkOrder = await invMod.ProjectManagementWorkOrder.Query().MapToEntity(view);

            invMod.ProjectManagementWorkOrder.AddProjectManagementWorkOrder(projectManagementWorkOrder).Apply();

            ProjectManagementWorkOrderView newView = await invMod.ProjectManagementWorkOrder.Query().GetViewByNumber(view.WorkOrderNumber ?? 0);


            return(Ok(newView));
        }
        public async Task <IActionResult> CreateWorkOrder([FromBody] ProjectManagementWorkOrder newWorkOrder)
        {
            ProjectManagementModule pmMod = new ProjectManagementModule();

            NextNumber nnWorkOrder = await pmMod.WorkOrder.Query().GetNextNumber();

            newWorkOrder.WorkOrderNumber = nnWorkOrder.NextNumberValue;


            pmMod.WorkOrder.AddProjectManagementWorkOrder(newWorkOrder).Apply();

            ProjectManagementWorkOrder workOrder = await pmMod.WorkOrder.Query().GetEntityByNumber(nnWorkOrder.NextNumberValue);

            ProjectManagementWorkOrderView view = await pmMod.WorkOrder.Query().MapToView(workOrder);

            return(Ok(view));
        }