public ActionResult EditTemplate() { int templateID = 0; if (Request.Form["templateID"].ToString().Length > 0) { templateID = Convert.ToInt16(Request.Form["templateID"]); } var tasks = request.TaskLists.Where(r => r.TemplateID == templateID); if (templateID != 0) { var template = request.Templates.FirstOrDefault(t => t.templateID == templateID); template.templateName = Request.Form["templateName"].ToString(); foreach (var task in tasks) { bool delete; var currentTask = request.TaskLists.FirstOrDefault(a => a.taskID == task.taskID); if (Request.Form["Delete_" + task.taskID] != null) { delete = true; } else { delete = false; } if (delete == false) { try { currentTask.orderNum = Convert.ToInt16(Request.Form["Order_" + task.taskID]); } catch { //Response.Redirect(task.taskID.ToString()); } currentTask.Task = Request.Form["Task_" + task.taskID].ToString(); currentTask.Comments = Request.Form["Comments_" + task.taskID].ToString(); try { currentTask.DueDate = Convert.ToDateTime(Request.Form["DueDate_" + task.taskID]); } catch { } if (Request.Form["Status_" + task.taskID].ToString() != "00") { currentTask.Status = Request.Form["Status_" + task.taskID].ToString(); } AssignTemplate(task, templateID, Request.Form["Assignment_" + task.taskID].ToString().Replace(" ", "")); } else if (delete == true) { var taskAsignment = request.TaskAssignments.Where(t => t.templateID == templateID && t.taskID == task.taskID); foreach (var assignment in taskAsignment) { request.TaskAssignments.DeleteObject(assignment); } request.TaskLists.DeleteObject(currentTask); } }// end task foreach request.SaveChanges(); } else { Template newTemplate = new Template(); newTemplate.templateID = templateID; newTemplate.templateName = Request.Form["templateName"].ToString(); request.AddToTemplates(newTemplate); request.SaveChanges(); templateID = newTemplate.templateID; } if (Request.Form["Task"] != null && Request.Form["Task"].ToString().Length > 0 && templateID != 0) { TaskList newTask = new TaskList(); newTask.TemplateID = templateID; try { newTask.orderNum = Convert.ToInt16(Request.Form["Order"]); } catch { } newTask.Task = Request.Form["Task"].ToString(); newTask.Comments = Request.Form["Comments"].ToString(); try { newTask.DueDate = Convert.ToDateTime(Request.Form["DueDate"]); } catch { } if (Request.Form["Status"].ToString() != "00") { newTask.Status = Request.Form["Status"].ToString(); } request.AddToTaskLists(newTask); request.SaveChanges(); AssignTemplate(newTask, templateID, Request.Form["Assignment"].ToString().Replace(" ", "")); } return(RedirectToAction("DisplayTemplate", new { template = templateID })); }