/// <summary> /// Adds a news crosslink for the contect at the given area. /// </summary> /// <param name="contentUId">The content Id</param> /// <param name="area">The crosslink area</param> /// <param name="changeDisplayOrderBy">Used to change the crosslink display order</param> /// <returns></returns> public void AddCrossLink(string contentUId, string area, short changeDisplayOrderBy = 0) { short oldOrder = 0; // max crosslink order short maxOrder = -1; if (_context.CrossLinks.Any(c => c.PageArea == area)) { maxOrder = _context.CrossLinks.Where(c => c.PageArea == area).Select(c => c.DisplayOrder).DefaultIfEmpty().Max(); } CrossLink link = _context.CrossLinks.SingleOrDefault(c => c.ContentUId == contentUId && c.PageArea == area); if (link == null) { link = new CrossLink() { ContentUId = contentUId, PageArea = area, DisplayOrder = (short)(maxOrder + 1) }; _context.CrossLinks.Add(link); } else { _context.CrossLinks.Update(link); } // calcs the new crosslink order oldOrder = link.DisplayOrder; short order = (short)(link.DisplayOrder + changeDisplayOrderBy); // if is a order chage and it its ut of bounds, get out of here if (changeDisplayOrderBy < 0 && oldOrder == 0) { return; } if (changeDisplayOrderBy > 0 && oldOrder == maxOrder) { return; } // set the new order link.DisplayOrder = order; // change the other link display order CrossLink link2 = null; link2 = _context.CrossLinks.SingleOrDefault(c => c.ContentUId != contentUId && c.PageArea == area && c.DisplayOrder == order); if (link2 != null) { link2.DisplayOrder = oldOrder; _context.CrossLinks.Update(link2); } _context.SaveChanges(); _log.Log($"Crosslink '{area}/{contentUId}' has it order changed."); }
/// <summary> /// This only constructor for CrossLinkResult requires the CrossLink, LC-IMS-MS Feature, and LC Scan. /// The Mass Shift Results are added later on. /// </summary> /// <param name="crossLink"></param> /// <param name="lcImsMsFeature"></param> /// <param name="scanLc"></param> public CrossLinkResult(CrossLink crossLink, LcImsMsFeature lcImsMsFeature, int scanLc) { this.CrossLink = crossLink; this.LcImsMsFeature = lcImsMsFeature; this.ScanLc = scanLc; this.MassShiftResults = new MassShiftResult(); }
public void RemoveCrossLink(CrossLink link) { // mudei um pouco aqui em relação ao BOX (.net), pois dava erro de tracking ao remover _context.CrossLinks.Remove(link); _context.SaveChanges(); // update orders _context.Database.ExecuteSqlCommand( "UPDATE CrossLinks SET DisplayOrder = DisplayOrder - 1 WHERE PageArea = {0} AND DisplayOrder > {1}", link.PageArea, link.DisplayOrder); }
/// <summary> /// Adds a news crosslink for the contect at the given area. /// </summary> /// <param name="contentUId">The content Id</param> /// <param name="area">The crosslink area</param> /// <param name="changeDisplayOrderBy">Used to change the crosslink display order</param> /// <returns></returns> public void AddCrossLink(string contentUId, string area, short changeDisplayOrderBy = 0) { short oldOrder = 0; using (var context = new Data.CMSContext()) { // max crosslink order short maxOrder = -1; if (context.CrossLinks.Any(c => c.PageArea == area)) { maxOrder = context.CrossLinks.Where(c => c.PageArea == area).Select(c => c.DisplayOrder).DefaultIfEmpty().Max(); } CrossLink link = context.CrossLinks.SingleOrDefault(c => c.ContentUId == contentUId && c.PageArea == area); if (link == null) { link = new CrossLink() { ContentUId = contentUId, PageArea = area, DisplayOrder = (short)(maxOrder + 1) }; context.CrossLinks.Add(link); } // calcs the new crosslink order oldOrder = link.DisplayOrder; short order = (short)(link.DisplayOrder + changeDisplayOrderBy); // if is a order chage and it its ut of bounds, get out of here if (changeDisplayOrderBy < 0 && oldOrder == 0) { return; } if (changeDisplayOrderBy > 0 && oldOrder == maxOrder) { return; } // set the new order link.DisplayOrder = order; // change the other link display order CrossLink link2 = null; link2 = context.CrossLinks.SingleOrDefault(c => c.ContentUId != contentUId && c.PageArea == area && c.DisplayOrder == order); if (link2 != null) { link2.DisplayOrder = oldOrder; } context.SaveChanges(); } }
public void RemoveCrossLink(string contentUId, string area) { using (var context = new Data.CMSContext()) { CrossLink link = context.CrossLinks.SingleOrDefault(c => c.ContentUId == contentUId && c.PageArea == area); if (link == null) { return; } int order = link.DisplayOrder; context.CrossLinks.Remove(link); context.SaveChanges(); // update orders context.Database.ExecuteSqlCommand( "UPDATE CrossLinks SET DisplayOrder = DisplayOrder - 1 WHERE PageArea = {0} AND DisplayOrder > {1}", area, order); } }
/// <summary> /// Adds a news crosslink for the contect at the given area. /// </summary> /// <param name="contentUId">The content Id</param> /// <param name="area">The crosslink area</param> /// <param name="changeDisplayOrderBy">Used to change the crosslink display order</param> /// <returns></returns> public void AddCrossLink(string contentUId, string area, short changeDisplayOrderBy = 0) { short oldOrder = 0; using (var context = new Data.CMSContext()) { // max crosslink order short maxOrder = -1; if (context.CrossLinks.Any(c => c.PageArea == area)) { maxOrder = context.CrossLinks.Where(c => c.PageArea == area).Select(c => c.DisplayOrder).DefaultIfEmpty().Max(); } CrossLink link = context.CrossLinks.SingleOrDefault(c => c.ContentUId == contentUId && c.PageArea == area); if (link==null) { link = new CrossLink() { ContentUId = contentUId, PageArea = area, DisplayOrder = (short)(maxOrder + 1) }; context.CrossLinks.Add(link); } // calcs the new crosslink order oldOrder = link.DisplayOrder; short order = (short)(link.DisplayOrder + changeDisplayOrderBy); // if is a order chage and it its ut of bounds, get out of here if (changeDisplayOrderBy < 0 && oldOrder == 0) return; if (changeDisplayOrderBy > 0 && oldOrder == maxOrder) return; // set the new order link.DisplayOrder = order; // change the other link display order CrossLink link2 = null; link2 = context.CrossLinks.SingleOrDefault(c => c.ContentUId != contentUId && c.PageArea == area && c.DisplayOrder == order); if (link2!=null) link2.DisplayOrder = oldOrder; context.SaveChanges(); } }