public ActionResult Update() { if (!Request.IsAjaxRequest()) { return(new EmptyResult()); } // 新規の場合、0 var id = V.ParseInt(Request.Form["ID"]) ?? 0; var err = Validate(); if (err.Any()) { return(Json(new { err = err })); } using (HMPZDDB db = new HMPZDDB()) { // チーム情報 var teamId = V.ParseInt(Request.Form["TeamID"]) ?? 0; // 組織情報 Teams team = null; Organizations organization = null; if (teamId > 0) { team = db.Teams.Where(d => d.DeleteFlg != 1 && d.ID == teamId).FirstOrDefault(); } if (team != null && !string.IsNullOrWhiteSpace(team.OrganizationID)) { organization = db.Organizations.Where(d => d.DeleteFlg != 1 && d.ID == team.OrganizationID).FirstOrDefault(); } // ユーザ情報 var userIdList = (Request.Form["UserIDList"] ?? "").Split(','); foreach (var row in userIdList) { // 既存のユーザID x TeamID 情報は一度消す var teamRepresentative = db.TeamRepresentatives.Where(d => d.DeleteFlg != 1 && d.TeamID == teamId && d.UserID == row).FirstOrDefault(); if (teamRepresentative != null) { db.TeamRepresentatives.Remove(teamRepresentative); } // 新規として追加 TeamRepresentatives data = new TeamRepresentatives(); data.Created = data.Updated = DateTime.Now; // TODO ログインユーザ data.CreatedBy = data.UpdatedBy = ""; // チーム情報 data.TeamID = teamId; // 組織情報 if (organization != null) { data.CompanyName = organization.CompanyName ?? ""; data.DivisionGroupName = organization.DivisionGroupCommonName; data.DivisionName = organization.DivisionAbbrName; data.DepartmentName = organization.DepartmentAbbrName; } Users user = db.Users.Where(d => d.DeleteFlg != 1 && d.ID == row).FirstOrDefault(); if (user == null) { continue; } data.UserID = user.ID; data.FirstName = user.FirstName; data.LastName = user.LastName; db.TeamRepresentatives.Add(data); } db.SaveChanges(); } return(Json(new { res = "ok" })); }
public ActionResult Edit(int ID = 0) { TeamRepresentatives res = null; if (ID > 0) { using (HMPZDDB db = new HMPZDDB()) { res = db.TeamRepresentatives.Where(d => d.DeleteFlg != 1 && d.ID == ID).FirstOrDefault(); } } var organizationId = ""; var teamId = 0; if (res != null) { using (HMPZDDB db = new HMPZDDB()) { var team = db.Teams.Where(d => d.DeleteFlg != 1 && d.ID == res.TeamID).FirstOrDefault(); if (team != null) { organizationId = team.OrganizationID; teamId = team.ID; } } ViewBag.ID = res.ID; //ViewBag.DepartmentName = res.DepartmentName; ViewBag.UserID = res.UserID ?? ""; ViewBag.FirstName = res.FirstName ?? ""; ViewBag.LastName = res.LastName ?? ""; } // 部署リスト using (HMPZDDB db = new HMPZDDB()) { var departmentList = GetMagazineDeparmentList(); ViewBag.DepartmentList = departmentList .Select( d => new SelectListItem { Value = d.ID.ToString(), Text = d.DepartmentAbbrName, Selected = (organizationId == d.ID.ToString()) }).ToList(); // DEBUG //foreach (var d in departmentList) //{ // for (var i=1;i<=10;i++) // { // db.Teams.Add( // new Teams() // { // OrganizationID = d.ID, // TeamName = d.DepartmentCommonName +"チーム" + i, // TeamCode = d.ID+i.ToString("000000") // }); // } // db.SaveChanges(); //} } // チームリスト // JSのほうでやってもよい気がする using (HMPZDDB db = new HMPZDDB()) { ViewBag.TeamList = db.Teams.Where(d => d.DeleteFlg != 1) .Select( d => new SelectListItem { Value = d.ID.ToString(), Text = d.TeamName, Selected = (d.ID == teamId) }).ToList(); } return(View("~/Views/Admin/Team/Edit.cshtml")); }