Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
            }
        }