// GET: ProjectPaln public ActionResult Index() { if (null != Request["projectid"]) { string projectid = Request["projectid"]; string prjuid = null; PLAN_TASK task = null; log.Debug("get project task by project:" + projectid + ",roottag=" + Request["roottag"]); if (null != projectid && "" != projectid) { prjuid = Request["prjuid"]; log.Debug("get project task by child task by prj_uid:" + prjuid); } if (null != Request["roottag"] && "Y" == Request["roottag"]) { task = planService.getRootTask(projectid); if (null != task) { log.Debug("task=" + task.PRJ_UID); prjuid = task.PRJ_UID.ToString(); } } DataTable dt = null; if (null == prjuid || prjuid == "") { //取得所有任務 dt = planService.getProjectTask(projectid); } else { //取得所有子項任務 dt = planService.getChildTask(projectid, int.Parse(prjuid)); } string htmlString = "<table class='table table-bordered'>"; htmlString = htmlString + "<tr><th>層級</th><th>任務名稱</th><th>開始時間</th><th>完成時間</th><th>工期</th><th>--</th><th>--</th></tr>"; foreach (DataRow dr in dt.Rows) { DateTime stardate = DateTime.Parse(dr[4].ToString()); DateTime finishdate = DateTime.Parse(dr[5].ToString()); htmlString = htmlString + "<tr><td>" + dr[1] + "<input type='checkbox' name='roottag' id='roottag' onclick='setRootTask(" + dr[2] + ")' /></td><td>" + dr[0] + "</td>" + "<td>" + stardate.ToString("yyyy-MM-dd") + "</td><td>" + finishdate.ToString("yyyy-MM-dd") + "</td><td>" + dr[6] + "</td>" + "<td ><a href =\"Index?projectid=" + projectid + "&prjuid=" + dr[3] + "\">上一層 </a></td>" + "<td><a href=\"Index?projectid=" + projectid + "&prjuid=" + dr[2] + "\">下一層 </a></td></tr>"; } htmlString = htmlString + "</table>"; ViewBag.htmlResult = htmlString; ViewBag.projectId = Request["projectid"]; } return(View()); }
public void convertProject(string projectId, string filepath) { project_id = projectId; net.sf.mpxj.mpp.MPPReader reader = new net.sf.mpxj.mpp.MPPReader(); ProjectFile projectObj = reader.read(filepath); int i = 1; lstTask = new List <PLAN_TASK>(); foreach (net.sf.mpxj.Task task in ToEnumerable(projectObj.AllTasks)) { PLAN_TASK pt = new PLAN_TASK(); pt.PROJECT_ID = projectId; pt.PRJ_UID = task.UniqueID.intValue(); pt.PRJ_ID = task.ID.intValue(); pt.TASK_NAME = task.Name; DateTime dtStart = new DateTime(); DateTime dtFinish = new DateTime(); //ToString("yyyyMMddHHmmss") if (null != task.Start) { dtStart = new DateTime((task.Start.getYear() + 1900), task.Start.getMonth() + 1, task.Start.getDate()); logger.Debug("start date Year =" + (task.Start.getYear() + 1900) + ",Month=" + (task.Start.getMonth() + 1) + ",Date=" + task.Start.getDate()); pt.START_DATE = dtStart; dtFinish = new DateTime((task.Finish.getYear() + 1900), task.Finish.getMonth() + 1, task.Finish.getDate()); pt.FINISH_DATE = dtFinish; logger.Debug("start date Year =" + (task.Finish.getYear() + 1900) + ",Month=" + (task.Finish.getMonth() + 1) + ",Date=" + task.Finish.getDate()); pt.DURATION = task.Duration.toString(); } logger.Debug("DURATION=" + task.Duration + ",Task: " + i + "=" + task.Name + ",StartDate=" + dtStart.ToString("yyyy/MM/dd") + ",EndDate=" + dtFinish.ToString("yyyy/MM/dd") + " ID=" + task.ID + " Unique ID=" + task.UniqueID); if (null != task.ParentTask) { pt.PARENT_UID = task.ParentTask.UniqueID.intValue(); } logger.Info("Parent UID=" + pt.PARENT_UID + ",TASK_UID=" + pt.PRJ_UID + ",Task_id=" + pt.TASK_ID + ",TASK_NAME=" + pt.TASK_NAME); lstTask.Add(pt); i++; } logger.Info("Get all task count:" + lstTask.Count); }