public ActionResult Chart() { try { var Allchart = dbcontext.Organization_Chart.ToList(); ViewBag.userUnitCode = Allchart.Select(m => new { code = m.User_unit_code }); ViewBag.unitDescription = Allchart.Select(m => new { code = m.unit_Description }); ViewBag.parent = Allchart.Select(m => new { code = m.unit_Description, id = m.ID }); ViewBag.unitTypeCode = dbcontext.Organization_Unit_Type.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.unitLevelCode = dbcontext.Organization_Unit_Level.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.unitSchema = dbcontext.Organization_Unit_Schema.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.location = dbcontext.work_location.ToList().Select(m => new { code = m.Name, id = m.ID }); var Model = new OrganizationChartReportVM(); return(View(Model)); } catch (Exception) { return(View()); } }
public ActionResult Chart(OrganizationChartReportVM record, FormCollection model) { try { var Allchart = dbcontext.Organization_Chart.ToList(); ViewBag.userUnitCode = Allchart.Select(m => new { code = m.User_unit_code }); ViewBag.unitDescription = Allchart.Select(m => new { code = m.unit_Description }); ViewBag.parent = Allchart.Select(m => new { code = m.unit_Description, id = m.ID }); ViewBag.unitTypeCode = dbcontext.Organization_Unit_Type.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.unitLevelCode = dbcontext.Organization_Unit_Level.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.unitSchema = dbcontext.Organization_Unit_Schema.ToList().Select(m => new { code = m.Name, id = m.ID }); ViewBag.location = dbcontext.work_location.ToList().Select(m => new { code = m.Name, id = m.ID }); ///////////////////////////////////////////// //////////////////////////////////////////// var organizationChartList = new List <Organization_Chart>(); var display = new Boolean[12]; var report = new reportVM(); var userUnit = model["userUnit"].Split(char.Parse(",")); var unitDescription = model["unitDescription"].Split(char.Parse(",")); var parent = model["parent"].Split(char.Parse(",")); var UnitType = model["UnitType"].Split(char.Parse(",")); var unitlevel = model["unitlevel"].Split(char.Parse(",")); var unitSchema = model["unitSchema"].Split(char.Parse(",")); var loaction = model["loaction"].Split(char.Parse(",")); var check_status = model["check_status"].Split(char.Parse(",")); var List_Display = model["List_Display"].Split(char.Parse(",")); ///////////////////////////////////////////// ///////////////////////////////////////////// for (var i = 0; i < 12; i++) { display[i] = false; } foreach (var item in userUnit) { if (item != "") { var newRecord = Allchart.FirstOrDefault(m => m.User_unit_code == item); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in unitDescription) { if (item != "") { var newRecord = Allchart.FirstOrDefault(m => m.unit_Description == item); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in parent) { if (item != "") { var newRecord = Allchart.FirstOrDefault(m => m.parent == item); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in UnitType) { if (item != "") { var id = int.Parse(item); var newRecord = Allchart.FirstOrDefault(m => m.unit_type_code.ID == id); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in unitlevel) { if (item != "") { int unit_id = int.Parse(item); var newRecord = Allchart.FirstOrDefault(m => m.unit_type_code.Organization_Unit_LevelID == unit_id); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in unitSchema) { if (item != "") { int schemaID = int.Parse(item); var newRecord = Allchart.FirstOrDefault(m => m.unit_type_code.Organization_Unit_SchemaID == schemaID); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in loaction) { if (item != "") { var id = int.Parse(item); var newRecord = Allchart.FirstOrDefault(m => m.work_location.ID == id); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in check_status) { if (item != "") { var id = int.Parse(item); var newRecord = Allchart.FirstOrDefault(m => m.unit_status.GetHashCode() == id); if (newRecord != null && !organizationChartList.Contains(newRecord)) { organizationChartList.Add(newRecord); } } } foreach (var item in List_Display) { if (item != "") { var index = int.Parse(item); display[index] = true; } } foreach (var item in organizationChartList) { if (item.parent != "0") { var id = int.Parse(item.parent); item.parent = Allchart.FirstOrDefault(m => m.ID == id).unit_Description; } } report.listDisplay = display; report.Organization_Chart = organizationChartList; return(View("chartReport", report)); } catch (Exception) { return(View(record)); } }