public ActionResult QueryPlanAndActualReportInfo(ProductionPlanningReportVM vm, Page page) { var apiUrl = string.Format("ProductionPlanning/QueryPlanAndActualReportInfoAPI"); HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; var dt = JsonConvert.DeserializeObject <DataTable>(result) as DataTable; //获取动态列名 List <string> columnList = new List <string>(); for (int i = 0; i < dt.Columns.Count; i++) { var columnName = dt.Columns[i].ColumnName; if (columnName != "Process_Seq" && columnName != "Process" && columnName != "Equipment_Name") { columnList.Add(columnName); } } var jsonName = JsonConvert.SerializeObject(columnList); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + result + "}"; return(Content(test, "application/json")); }
public ActionResult GetRPTColumnName(ProductionPlanningReportVM vm) { var apiUrl = string.Format("ProductionPlanning/GetRPTColumnNameAPI?PlantUID={0}&OpTypeUID={1}", vm.PlantUID, vm.OpTypeUID); HttpResponseMessage responMessage = APIHelper.APIGetAsync(apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; return(Content(result, "application/json")); }
public ActionResult QueryEquipRPTByOPType(ProductionPlanningReportVM vm, Page page) { string apiUrl = string.Format("ProductionPlanning/QueryEquipRPTByOPTypeAPI"); DateTime now = DateTime.Now.Date; DateTime date = Convert.ToDateTime(vm.DateFrom); if (vm.QueryMode == 1) { List <string> monthList = new List <string>(); for (int i = 1; i <= 3; i++) { monthList.Add(date.AddMonths(i).ToString(FormatConstants.DateTimeFormatStringByDate)); } var selectDate = monthList.Where(m => m.Contains(vm.hidTab)).First(); //获取选择的月份的第一天 var firstDate = selectDate.Substring(0, 8); firstDate = firstDate + "01"; //获取选择的月份的最后一天 var lastDate = Convert.ToDateTime(firstDate).AddMonths(1).AddDays(-1); vm.StartDate = firstDate; vm.EndDate = lastDate.ToString(FormatConstants.DateTimeFormatStringByDate); } else { //本月第一天 var firstDay = date.AddDays(1 - date.Day); DateTime endDay = firstDay; switch (vm.hidTab) { case "第1周": endDay = firstDay.AddDays(6); break; case "第2周": firstDay = firstDay.AddDays(7); endDay = firstDay.AddDays(6); break; case "第3周": firstDay = firstDay.AddDays(14); endDay = firstDay.AddDays(6); break; case "第4周": firstDay = firstDay.AddDays(21); endDay = firstDay.AddDays(6); break; } vm.StartDate = firstDay.ToString(FormatConstants.DateTimeFormatStringByDate); vm.EndDate = endDay.ToString(FormatConstants.DateTimeFormatStringByDate); } HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; var test = "{\"data\":" + result + "}"; return(Content(test, "application/json")); }
public ActionResult GetColumnNameByProject(ProductionPlanningReportVM vm) { vm = GetDateVM(vm); var apiUrl = string.Format(@"ProductionPlanning/GetColumn_ByProjectAPI?PlantUID={0}&OpTypeUID={1}&ProjectUID={2}&PartTypeUID={3} &StartDate={4}&EndDate={5}", vm.PlantUID, vm.OpTypeUID, vm.ProjectUID, vm.PartTypeUID, vm.StartDate, vm.EndDate); HttpResponseMessage responMessage = APIHelper.APIGetAsync(apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; return(Content(result, "application/json")); }
private ProductionPlanningReportVM GetDateVM(ProductionPlanningReportVM vm) { var selectDate = Convert.ToDateTime(vm.DateFrom); var selectYear = selectDate.Year; if (vm.QueryMode == 1) { vm.StartDate = string.Format("{0}-01-01", selectYear); vm.EndDate = string.Format("{0}-12-31", selectYear); } else { var formatDate = selectDate.ToString(FormatConstants.DateTimeFormatStringByDate); vm.StartDate = formatDate; vm.EndDate = selectDate.AddDays(1 - selectDate.Day).AddMonths(1).AddDays(-1).ToString(FormatConstants.DateTimeFormatStringByDate); } return(vm); }
public ActionResult QueryManPowerRequestByProjectTwo(ProductionPlanningReportVM vm, Page page) { var dateStrList = vm.hidTab.Split('~'); vm.StartDate = dateStrList[0]; vm.EndDate = dateStrList[1]; var currentDate = Convert.ToDateTime(vm.StartDate); var url = string.Format("ProductionPlanningForIE/QueryManPowerRequestByFuncOneAPI"); HttpResponseMessage projectMessage = APIHelper.APIPostAsync(vm, page, url); var oneResult = projectMessage.Content.ReadAsStringAsync().Result; var dt = JsonConvert.DeserializeObject <DataTable>(oneResult) as DataTable; DataTable dtAllData = new DataTable(); List <string> columnNameList = new List <string>(); var projectColumnName = this.CurrentUser.GetLocaleStringResource(PISSessionContext.Current.CurrentWorkingLanguage.System_Language_UID, "QA.Functionfactory"); columnNameList.Add(projectColumnName); //定义列名 dtAllData.Columns.Add(projectColumnName); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { columnNameList.Add(currentDate.ToString(FormatConstants.DateTimeFormatStringByDate)); dtAllData.Columns.Add(currentDate.ToString(FormatConstants.DateTimeFormatStringByDate)); currentDate = currentDate.AddDays(1); } foreach (DataRow dr in dt.Rows) { //功能厂数据 DataRow newRow = dtAllData.NewRow(); newRow[0] = dr["FunPlant"]; newRow[1] = dr["Total"]; newRow[2] = dr["Total"]; newRow[3] = dr["Total"]; newRow[4] = dr["Total"]; newRow[5] = dr["Total"]; newRow[6] = dr["Total"]; newRow[7] = dr["Total"]; dtAllData.Rows.Add(newRow); } //定义需求总人力 int d1 = 0, d2 = 0, d3 = 0, d4 = 0, d5 = 0, d6 = 0, d7 = 0; //MP人力需求数据 DataRow newRow1 = dtAllData.NewRow(); newRow1[0] = string.Format("MP人力需求"); DataRow[] drArray = dt.Select(string.Format("Product_Phase='MP'")); if (drArray.Count() > 0) { var sumMP = 0; foreach (DataRow drArrayItem in drArray) { sumMP += Convert.ToInt32(drArrayItem["Total"]); } newRow1[1] = sumMP; d1 += sumMP; newRow1[2] = sumMP; d2 += sumMP; newRow1[3] = sumMP; d3 += sumMP; newRow1[4] = sumMP; d4 += sumMP; newRow1[5] = sumMP; d5 += sumMP; newRow1[6] = sumMP; d6 += sumMP; newRow1[7] = sumMP; d7 += sumMP; dtAllData.Rows.Add(newRow1); } else { AddEmptyData(dtAllData, "MP人力需求"); } //NPI人力需求数据 DataRow newRow2 = dtAllData.NewRow(); newRow2[0] = string.Format("NPI人力需求"); DataRow[] drArrayNPI = dt.Select(string.Format("Product_Phase='NPI'")); if (drArrayNPI.Count() > 0) { var sumNPI = 0; foreach (DataRow drArrayItem in drArrayNPI) { sumNPI += Convert.ToInt32(drArrayItem["Total"]); } newRow2[1] = sumNPI; d1 += sumNPI; newRow2[2] = sumNPI; d2 += sumNPI; newRow2[3] = sumNPI; d3 += sumNPI; newRow2[4] = sumNPI; d4 += sumNPI; newRow2[5] = sumNPI; d5 += sumNPI; newRow2[6] = sumNPI; d6 += sumNPI; newRow2[7] = sumNPI; d7 += sumNPI; dtAllData.Rows.Add(newRow2); } else { AddEmptyData(dtAllData, "NPI人力需求"); } //需求总人力数据 DataRow newRow3 = dtAllData.NewRow(); newRow3[0] = "需求总人力"; newRow3[1] = d1; newRow3[2] = d2; newRow3[3] = d3; newRow3[4] = d4; newRow3[5] = d5; newRow3[6] = d6; newRow3[7] = d7; dtAllData.Rows.Add(newRow3); var jsonName = JsonConvert.SerializeObject(columnNameList); var serialData = JsonConvert.SerializeObject(dtAllData); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + serialData + "}"; return(Content(test, "application/json")); }
public ActionResult QueryEquipRPT(ProductionPlanningReportVM vm, Page page) { string apiUrl = string.Empty; DateTime now = DateTime.Now.Date; DateTime date = Convert.ToDateTime(vm.DateFrom); if (vm.ProjectUID == 0) { apiUrl = string.Format("ProductionPlanning/QueryEquipRPTAPI"); if (vm.QueryMode == 1) { List <string> monthList = new List <string>(); for (int i = 1; i <= 3; i++) { monthList.Add(date.AddMonths(i).ToString(FormatConstants.DateTimeFormatStringByDate)); } var selectDate = monthList.Where(m => m.Contains(vm.hidTab)).First(); //获取选择的月份的第一天 var firstDate = selectDate.Substring(0, 8); firstDate = firstDate + "01"; //获取选择的月份的最后一天 var lastDate = Convert.ToDateTime(firstDate).AddMonths(1).AddDays(-1); vm.StartDate = firstDate; vm.EndDate = lastDate.ToString(FormatConstants.DateTimeFormatStringByDate); } else { //本月第一天 var firstDay = date.AddDays(1 - date.Day); DateTime endDay = firstDay; switch (vm.hidTab) { case "第1周": endDay = firstDay.AddDays(6); break; case "第2周": firstDay = firstDay.AddDays(7); endDay = firstDay.AddDays(6); break; case "第3周": firstDay = firstDay.AddDays(14); endDay = firstDay.AddDays(6); break; case "第4周": firstDay = firstDay.AddDays(21); endDay = firstDay.AddDays(6); break; } vm.StartDate = firstDay.ToString(FormatConstants.DateTimeFormatStringByDate); vm.EndDate = endDay.ToString(FormatConstants.DateTimeFormatStringByDate); } HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; var dt = JsonConvert.DeserializeObject <DataTable>(result) as DataTable; //获取动态列名 List <string> columnList = new List <string>(); for (int i = 0; i < dt.Columns.Count; i++) { var columnName = dt.Columns[i].ColumnName; if (columnName != "FunPlant" && columnName != "Equipment_Name") { columnList.Add(columnName); } } var jsonName = JsonConvert.SerializeObject(columnList); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + result + "}"; //var test = "{\"data\":" + result + "}"; return(Content(test, "application/json")); } else { apiUrl = string.Format("ProductionPlanning/QueryEquipRPT_ByProjectAPI"); vm = GetDateVM(vm); HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; var dtList = JsonConvert.DeserializeObject <List <DataTable> >(result) as List <DataTable>; //获取动态列名 List <string> columnList = new List <string>(); for (int i = 0; i < dtList.First().Columns.Count; i++) { var columnName = dtList.First().Columns[i].ColumnName; if (columnName != "Process_Seq" && columnName != "Process") { columnList.Add(columnName); } } var jsonName = JsonConvert.SerializeObject(columnList); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + result + "}"; //var test = "{\"data\":" + result + "}"; return(Content(test, "application/json")); } //HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); //var result = responMessage.Content.ReadAsStringAsync().Result; //var test = "{\"data\":" + result + "}"; ////result = string.Format("{\"data\":{0}}", result); //return Content(test, "application/json"); }
public ActionResult QueryManPowerRequestByProjectOne(ProductionPlanningReportVM vm, Page page) { var dateStrList = vm.hidTab.Split('~'); vm.StartDate = dateStrList[0]; vm.EndDate = dateStrList[1]; var currentDate = Convert.ToDateTime(vm.StartDate); var url = string.Format("ProductionPlanningForIE/QueryManPowerRequestByProjectOneAPI"); HttpResponseMessage projectMessage = APIHelper.APIPostAsync(vm, page, url); var oneResult = projectMessage.Content.ReadAsStringAsync().Result; var dt = JsonConvert.DeserializeObject <DataTable>(oneResult) as DataTable; DataTable dtAllData = new DataTable(); List <string> columnNameList = new List <string>(); var projectColumnName = this.CurrentUser.GetLocaleStringResource(PISSessionContext.Current.CurrentWorkingLanguage.System_Language_UID, "QA.Project"); columnNameList.Add(projectColumnName); //定义列名 dtAllData.Columns.Add(projectColumnName); foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName != "Project_Name" && dc.ColumnName != "Part_Types" && dc.ColumnName != "Product_Phase") { columnNameList.Add(dc.ColumnName); dtAllData.Columns.Add(dc.ColumnName); } } foreach (DataRow dr in dt.Rows) { //专案数据 DataRow newRow = dtAllData.NewRow(); newRow[0] = string.Format("{0}({1})", dr["Project_Name"].ToString(), dr["Part_Types"].ToString()); newRow[1] = dr[3]; newRow[2] = dr[4]; newRow[3] = dr[5]; newRow[4] = dr[6]; newRow[5] = dr[7]; newRow[6] = dr[8]; newRow[7] = dr[9]; dtAllData.Rows.Add(newRow); //MP人力需求数据 DataRow newRow1 = dtAllData.NewRow(); newRow1[0] = string.Format("MP人力需求"); if (dr["Product_Phase"].ToString() == "MP") { newRow1[1] = dr[3]; newRow1[2] = dr[4]; newRow1[3] = dr[5]; newRow1[4] = dr[6]; newRow1[5] = dr[7]; newRow1[6] = dr[8]; newRow1[7] = dr[9]; } else { newRow1[1] = 0; newRow1[2] = 0; newRow1[3] = 0; newRow1[4] = 0; newRow1[5] = 0; newRow1[6] = 0; newRow1[7] = 0; } dtAllData.Rows.Add(newRow1); //NPI人力需求数据 DataRow newRow2 = dtAllData.NewRow(); newRow2[0] = string.Format("NPI人力需求"); if (dr["Product_Phase"].ToString() == "NPI") { newRow2[1] = dr[3]; newRow2[2] = dr[4]; newRow2[3] = dr[5]; newRow2[4] = dr[6]; newRow2[5] = dr[7]; newRow2[6] = dr[8]; newRow2[7] = dr[9]; } else { newRow2[1] = 0; newRow2[2] = 0; newRow2[3] = 0; newRow2[4] = 0; newRow2[5] = 0; newRow2[6] = 0; newRow2[7] = 0; } dtAllData.Rows.Add(newRow2); //需求总人力数据 DataRow newRow3 = dtAllData.NewRow(); newRow3[0] = "需求总人力"; newRow3[1] = dr[3]; newRow3[2] = dr[4]; newRow3[3] = dr[5]; newRow3[4] = dr[6]; newRow3[5] = dr[7]; newRow3[6] = dr[8]; newRow3[7] = dr[9]; dtAllData.Rows.Add(newRow3); } //如果专案选择ALL则有现有总人力的统计,如果是选择的单个专案则没有现有总人力的统计 if (vm.ProjectUID == 0) { //获取按专案-现有总人力MP,现有总人力NPI var twoUrl = string.Format("ProductionPlanningForIE/QueryManPowerRequestByProjectOneByTwoAPI"); HttpResponseMessage twoMessage = APIHelper.APIPostAsync(vm, page, twoUrl); var twoResult = twoMessage.Content.ReadAsStringAsync().Result; var twoDt = JsonConvert.DeserializeObject <DataTable>(twoResult) as DataTable; if (twoDt.Rows.Count > 0) { int i = 1; //现有总人力-MP DataRow newRow1 = dtAllData.NewRow(); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { newRow1[0] = string.Format("现有总人力-MP"); DataRow[] drArray = twoDt.Select(string.Format("ProductDate='{0}' And Product_Phase='MP'", currentDate.ToString(FormatConstants.DateTimeFormatStringByDate))); if (drArray.Count() > 0) { newRow1[i] = drArray.First()[0]; } else { newRow1[i] = 0; } currentDate = currentDate.AddDays(1); i++; } dtAllData.Rows.Add(newRow1); currentDate = Convert.ToDateTime(vm.StartDate); i = 1; //现有总人力-NPI DataRow newRow2 = dtAllData.NewRow(); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { newRow2[0] = string.Format("现有总人力-NPI"); DataRow[] drArray = twoDt.Select(string.Format("ProductDate='{0}' And Product_Phase='NPI'", currentDate.ToString(FormatConstants.DateTimeFormatStringByDate))); if (drArray.Count() > 0) { newRow2[i] = drArray.First()[0]; } else { newRow2[i] = 0; } currentDate = currentDate.AddDays(1); i++; } dtAllData.Rows.Add(newRow2); } else { AddEmptyData(dtAllData, "现有总人力-MP"); AddEmptyData(dtAllData, "现有总人力-NPI"); } } //如果专案选择ALL则有MP预计离职率,NPI预计离职率,预计招募人力,如果是选择的单个专案则没有 currentDate = Convert.ToDateTime(vm.StartDate); if (vm.ProjectUID == 0) { var threeUrl = string.Format("ProductionPlanningForIE/QueryManPowerRequestByProjectOneByThreeAPI"); HttpResponseMessage threeMessage = APIHelper.APIPostAsync(vm, page, threeUrl); var threeResult = threeMessage.Content.ReadAsStringAsync().Result; var threeDt = JsonConvert.DeserializeObject <DataTable>(threeResult) as DataTable; if (threeDt.Rows.Count > 0) { int i = 1; //现有总人力-MP DataRow newRow1 = dtAllData.NewRow(); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { newRow1[0] = string.Format("MP预计离职率"); DataRow[] drArray = threeDt.Select(string.Format("Product_Date='{0}'", currentDate.ToString(FormatConstants.DateTimeFormatStringByDate))); if (drArray.Count() > 0) { var dataMp = drArray.First()["DRN"] ?? 0; newRow1[i] = Convert.ToDecimal(dataMp) * 100 + "%"; } else { newRow1[i] = 0; } currentDate = currentDate.AddDays(1); i++; } dtAllData.Rows.Add(newRow1); currentDate = Convert.ToDateTime(vm.StartDate); i = 1; //NPI预计离职率 DataRow newRow2 = dtAllData.NewRow(); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { newRow2[0] = string.Format("NPI预计离职率"); DataRow[] drArray = threeDt.Select(string.Format("Product_Date='{0}'", currentDate.ToString(FormatConstants.DateTimeFormatStringByDate))); if (drArray.Count() > 0) { var dataNPI = drArray.First()["DRM"] ?? 0; newRow2[i] = Convert.ToDecimal(dataNPI) * 100 + "%"; } else { newRow2[i] = 0; } currentDate = currentDate.AddDays(1); i++; } dtAllData.Rows.Add(newRow2); currentDate = Convert.ToDateTime(vm.StartDate); i = 1; //预计招募人力 DataRow newRow3 = dtAllData.NewRow(); while (currentDate <= Convert.ToDateTime(vm.EndDate)) { newRow3[0] = string.Format("预计招募人力"); DataRow[] drArray = threeDt.Select(string.Format("Product_Date='{0}'", currentDate.ToString(FormatConstants.DateTimeFormatStringByDate))); if (drArray.Count() > 0) { newRow3[i] = drArray.First()["Recruit"]; } else { newRow3[i] = 0; } currentDate = currentDate.AddDays(1); i++; } dtAllData.Rows.Add(newRow3); } } else { AddEmptyData(dtAllData, "MP预计离职率"); AddEmptyData(dtAllData, "NPI预计离职率"); AddEmptyData(dtAllData, "预计招募人力"); } var jsonName = JsonConvert.SerializeObject(columnNameList); var serialData = JsonConvert.SerializeObject(dtAllData); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + serialData + "}"; return(Content(test, "application/json")); }
public ActionResult QueryManPowerProject(ProductionPlanningReportVM vm, Page page) { var dateStrList = vm.hidTab.Split('~'); vm.StartDate = dateStrList[0]; vm.EndDate = dateStrList[1]; List <string> projectNameList = new List <string>(); //第一步,先获取所有的专案和部件,不管有没有值都显示到专案列表 if (vm.ProjectUID == 0) { var allProjectUrl = string.Format("ProductionPlanningForIE/QueryManPowerRequestRPTByProjectAPI"); //var allProjectUrl = "ProductionPlanningForIE/QueryManPowerRequestRPTAPI"; HttpResponseMessage projectMessage = APIHelper.APIPostAsync(vm, page, allProjectUrl); var projectResult = projectMessage.Content.ReadAsStringAsync().Result; projectNameList = JsonConvert.DeserializeObject <List <string> >(projectResult); } //第二步,再单独获取有数据的专案和部件 var apiUrl = string.Format("ProductionPlanningForIE/QueryManPowerRequestRPTAPI"); HttpResponseMessage responMessage = APIHelper.APIPostAsync(vm, page, apiUrl); var result = responMessage.Content.ReadAsStringAsync().Result; var dt = JsonConvert.DeserializeObject <DataTable>(result) as DataTable; List <string> hasDataList = new List <string>(); foreach (DataRow dr in dt.Rows) { hasDataList.Add(dr["ProjectTypes"].ToString()); } //第三步,把前两步的数据整合到一起输出 DataTable allDataTable = new DataTable(); if (hasDataList.Count() > 0) { foreach (string projectName in projectNameList) { var isExist = hasDataList.Exists(m => m.Equals(projectName)); if (!isExist) { DataRow dr = dt.NewRow(); dr[0] = projectName; dr[1] = 0; dr[2] = 0; dr[3] = 0; dr[4] = 0; dr[5] = 0; dr[6] = 0; dr[7] = 0; dt.Rows.Add(dr); } } } //获取动态列名 List <string> columnList = new List <string>(); foreach (DataColumn dc in dt.Columns) { columnList.Add(dc.ColumnName); } var jsonName = JsonConvert.SerializeObject(columnList); var serialData = JsonConvert.SerializeObject(dt); var test = "{\"columnList\":" + jsonName + "," + "\"data\":" + serialData + "}"; return(Content(test, "application/json")); }
public string QueryManPowerRequestRPT(ProductionPlanningReportVM vm) { List <ReportByDatePhase> datePhaseList = new List <ReportByDatePhase>(); ReportDate phase = new ReportDate(); var date = Convert.ToDateTime(vm.DateFrom); switch (date.DayOfWeek.ToString()) { case "Monday": phase.StartDate = date; phase.EndDate = date.AddDays(6); break; case "Tuesday": phase.StartDate = date.AddDays(-1); phase.EndDate = date.AddDays(5); break; case "Wednesday": phase.StartDate = date.AddDays(-2); phase.EndDate = date.AddDays(4); break; case "Thursday": phase.StartDate = date.AddDays(-3); phase.EndDate = date.AddDays(3); break; case "Friday": phase.StartDate = date.AddDays(-4); phase.EndDate = date.AddDays(2); break; case "Saturday": phase.StartDate = date.AddDays(-5); phase.EndDate = date.AddDays(1); break; case "Sunday": phase.StartDate = date.AddDays(-6); phase.EndDate = date; break; } ReportByDatePhase pPreviousPhase = new ReportByDatePhase(); pPreviousPhase.StartDate = phase.StartDate.AddDays(-14).ToString(FormatConstants.DateTimeFormatStringByDate); pPreviousPhase.EndDate = phase.EndDate.AddDays(-14).ToString(FormatConstants.DateTimeFormatStringByDate); datePhaseList.Add(pPreviousPhase); ReportByDatePhase previousPhase = new ReportByDatePhase(); previousPhase.StartDate = phase.StartDate.AddDays(-7).ToString(FormatConstants.DateTimeFormatStringByDate); previousPhase.EndDate = phase.EndDate.AddDays(-7).ToString(FormatConstants.DateTimeFormatStringByDate); datePhaseList.Add(previousPhase); ReportByDatePhase currentPhase = new ReportByDatePhase(); currentPhase.StartDate = phase.StartDate.ToString(FormatConstants.DateTimeFormatStringByDate); currentPhase.EndDate = phase.EndDate.ToString(FormatConstants.DateTimeFormatStringByDate); datePhaseList.Add(currentPhase); ReportByDatePhase nextPhase = new ReportByDatePhase(); nextPhase.StartDate = phase.StartDate.AddDays(7).ToString(FormatConstants.DateTimeFormatStringByDate); nextPhase.EndDate = phase.EndDate.AddDays(7).ToString(FormatConstants.DateTimeFormatStringByDate); datePhaseList.Add(nextPhase); ReportByDatePhase nNextPhase = new ReportByDatePhase(); nNextPhase.StartDate = phase.StartDate.AddDays(14).ToString(FormatConstants.DateTimeFormatStringByDate); nNextPhase.EndDate = phase.EndDate.AddDays(14).ToString(FormatConstants.DateTimeFormatStringByDate); datePhaseList.Add(nNextPhase); var json = JsonConvert.SerializeObject(datePhaseList); return(json); }