public static bool AddNew(int?parentId, int GCsubjectId, string textGoal, int LoggeduserId) { SinaicspDataModelContainer _context = new Sinaicsp_API.SinaicspDataModelContainer(); GoalCatalog _item = new Sinaicsp_API.GoalCatalog(); _item.TextGoal = textGoal; _item.GC_SubjectsId = GCsubjectId; _item.ParentGoalCatalogId = parentId; GC_Subjects _subjectItem = _context.GC_Subjects.FirstOrDefault(a => a.Id == GCsubjectId); if (parentId == null) { _item.TextOrder = _subjectItem.GoalCatalogs.Count > 0 ? _subjectItem.GoalCatalogs.Select(a => a.TextOrder).Max() + 1 : 0; _item.SubTextOrder = 0; } else { _item.TextOrder = _subjectItem.GoalCatalogs.FirstOrDefault(a => a.Id == parentId.Value).TextOrder; _item.SubTextOrder = _subjectItem.GoalCatalogs.Where(a => a.ParentGoalCatalogId == parentId).Count() > 0 ? _subjectItem.GoalCatalogs.Where(a => a.ParentGoalCatalogId == parentId).Select(a => a.SubTextOrder).Max() + 1 : 0; } _item.CreationDate = DateTime.Now; _item.CreatedByUserId = LoggeduserId; _context.GoalCatalogs.Add(_item); _context.SaveChanges(); return(true); }
public static void SoftDelete(int id) { SinaicspDataModelContainer _context = new Sinaicsp_API.SinaicspDataModelContainer(); GC_Subjects _item = _context.GC_Subjects.FirstOrDefault(a => a.Id == id); _item.IsDeleted = true; _context.SaveChanges(); }
public static bool Update(int id, string name) { SinaicspDataModelContainer _context = new Sinaicsp_API.SinaicspDataModelContainer(); GC_Subjects itemById = _context.GC_Subjects.FirstOrDefault(a => a.Id == id); GC_Subjects _item = itemById; _item.Name = name; _context.SaveChanges(); return(true); }
public static GC_Subjects MoveDown(int id) { SinaicspDataModelContainer _context = new Sinaicsp_API.SinaicspDataModelContainer(); GoalCatalog _goalItem = _context.GoalCatalogs.Where(a => a.Id == id).FirstOrDefault(); GC_Subjects _item = _goalItem.GC_Subjects; if (_goalItem.ParentGoalCatalogId == null) { List <GoalCatalog> targetParentList = _item.GoalCatalogs.Where(a => a.ParentGoalCatalogId == null).OrderByDescending(a => a.TextOrder).ToList(); int index = targetParentList.IndexOf(_goalItem); if (index > 0) { GoalCatalog _goalAbove = targetParentList[index - 1]; int NeworderSwap = _goalAbove.TextOrder; _goalAbove.TextOrder = _goalItem.TextOrder; _goalItem.TextOrder = NeworderSwap; foreach (GoalCatalog item in _goalItem.GoalCatalogs) { item.TextOrder = _goalItem.TextOrder; } foreach (GoalCatalog item in _goalAbove.GoalCatalogs) { item.TextOrder = _goalAbove.TextOrder; } } } else { GoalCatalog _parent = _goalItem.ParentGoalCatalog; List <GoalCatalog> targetchildList = _parent.GoalCatalogs.OrderByDescending(a => a.SubTextOrder).ToList(); int index = targetchildList.IndexOf(_goalItem); if (index > 0) { GoalCatalog _goalAbove = targetchildList[index - 1]; int NeworderSwap = _goalAbove.SubTextOrder; _goalAbove.SubTextOrder = _goalItem.SubTextOrder; _goalItem.SubTextOrder = NeworderSwap; } } _context.SaveChanges(); return(_item); }
public static void AdjustOrder(int subjectId) { SinaicspDataModelContainer _context = new Sinaicsp_API.SinaicspDataModelContainer(); GC_Subjects _item = _context.GC_Subjects.Where(a => a.Id == subjectId).FirstOrDefault(); if (_item.GoalCatalogs.Count() > 0 && _item.GoalCatalogs.Select(a => a.TextOrder).Max() == 0) { List <GoalCatalog> parentGoals = _item.GoalCatalogs.Where(a => a.ParentGoalCatalogId == null).ToList(); for (int i = 0; i < parentGoals.Count; i++) { parentGoals.ElementAt(i).TextOrder = i; if (parentGoals.ElementAt(i).GoalCatalogs.Count() > 0) { for (int x = 0; x < _item.GoalCatalogs.ElementAt(i).GoalCatalogs.Count(); x++) { _item.GoalCatalogs.ElementAt(i).GoalCatalogs.ElementAt(x).TextOrder = i; _item.GoalCatalogs.ElementAt(i).GoalCatalogs.ElementAt(x).SubTextOrder = x; } } } _context.SaveChanges(); } }