public void LoadDataFromSearch(string searchText, List <CLinq.Link> linkList, CLinq.DataContext db) { CuplexLib.User user = HttpContext.Current.Session["User"] as CuplexLib.User; foreach (var lnk in linkList) { LinkDataItem linkDataItem = new LinkDataItem(); linkDataItem.LinkRef = lnk.LinkRef; linkDataItem.Category = lnk.Category.CategoryName; linkDataItem.Clicks = lnk.Clicks; linkDataItem.LinkName = lnk.LinkName; linkDataItem.LinkUrl = lnk.LinkUrl; linkDataItem.Rating = lnk.Rating; if (lnk.UserRef != null) { linkDataItem.UserName = lnk.User.UserName; } if (user != null) { linkDataItem.HasVoted = db.UserToLinks.Where(utl => utl.LinkRef == lnk.LinkRef && utl.UserRef == user.UserRef).Any(); } linkDataItem.NumberOfComments = lnk.Comments.Count; linkDataItemList.Add(linkDataItem); } IsDisplayingSearchResult = true; SearchString = searchText; }
public void LoadData(DateTime linkDate) { CuplexLib.User user = HttpContext.Current.Session["User"] as CuplexLib.User; LinkDataListDate = linkDate; using (CLinq.DataContext db = CLinq.DataContext.Create()) { var linkQuery = from lnk in db.Links where lnk.LinkDate.Date == linkDate orderby lnk.LinkDate descending select lnk; List <CLinq.Link> linkList = linkQuery.ToList(); foreach (var lnk in linkList) { LinkDataItem linkDataItem = new LinkDataItem(); linkDataItem.LinkRef = lnk.LinkRef; linkDataItem.Category = lnk.Category.CategoryName; linkDataItem.Clicks = lnk.Clicks; linkDataItem.LinkName = lnk.LinkName; linkDataItem.LinkUrl = lnk.LinkUrl; linkDataItem.Rating = lnk.Rating; if (lnk.UserRef != null) { linkDataItem.UserName = lnk.User.UserName; } if (user != null) { linkDataItem.HasVoted = db.UserToLinks.Where(utl => utl.LinkRef == lnk.LinkRef && utl.UserRef == user.UserRef).Any(); } linkDataItem.NumberOfComments = lnk.Comments.Count; linkDataItemList.Add(linkDataItem); } } }
/// <summary> /// Publishes information about linked models/images/object styles in the model. /// </summary> /// <param name="doc">Revit Document.</param> /// <param name="linksId">Id of the Links Document in MongoDB.</param> public void PublishData(Document doc, string linksId) { try { var dwgStyles = new FilteredElementCollector(doc) .OfClass(typeof(GraphicsStyle)) .Cast <GraphicsStyle>() .Where(x => x.GraphicsStyleCategory.Name.Contains(".dwg")) .Select(x => x.GraphicsStyleCategory); var totalDwgStyles = dwgStyles.Sum(x => x.SubCategories.Size); var familyStyles = new FilteredElementCollector(doc) .OfClass(typeof(GraphicsStyle)) .Cast <GraphicsStyle>() .Where(x => x.GraphicsStyleCategory.Name == "Imports in Families") .Select(x => x.GraphicsStyleCategory); var totalImportedStyles = familyStyles.Sum(x => x.SubCategories.Size); // (Konrad) Collect info about Images var allPlacedImageIds = new FilteredElementCollector(doc) .OfCategory(BuiltInCategory.OST_RasterImages) .Select(x => x.GetTypeId()) .ToList(); var totalUnusedImages = new FilteredElementCollector(doc) .OfClass(typeof(ImageType)) .Excluding(allPlacedImageIds) .GetElementCount(); // (Konrad) Collect all Linked Model info var totalLinkedCad = new FilteredElementCollector(doc) .OfClass(typeof(CADLinkType)) .GetElementCount(); var totalLinkedRvt = new FilteredElementCollector(doc) .OfClass(typeof(RevitLinkType)) .GetElementCount(); var cadLinksDic = new FilteredElementCollector(doc) .OfClass(typeof(CADLinkType)) .Select(x => new DwgFileInfo { Name = x.Name, ElementId = x.Id.IntegerValue }) .ToDictionary(key => key.ElementId, value => value); var totalImportInstance = 0; foreach (var ii in new FilteredElementCollector(doc).OfClass(typeof(ImportInstance))) { totalImportInstance++; var id = ii.GetTypeId().IntegerValue; if (!cadLinksDic.ContainsKey(id)) { continue; } if (cadLinksDic[id].Instances == 0) { cadLinksDic[id].IsViewSpecific = ii.ViewSpecific; cadLinksDic[id].IsLinked = ((ImportInstance)ii).IsLinked; } cadLinksDic[id].Instances = cadLinksDic[id].Instances + 1; } var linkStats = new LinkDataItem { TotalImportedDwg = totalImportInstance, ImportedDwgFiles = cadLinksDic.Values.ToList(), UnusedLinkedImages = totalUnusedImages, TotalDwgStyles = totalDwgStyles, TotalImportedStyles = totalImportedStyles, TotalLinkedModels = totalLinkedCad + totalLinkedRvt, TotalLinkedDwg = totalLinkedCad }; if (!ServerUtilities.Post(linkStats, "links/" + linksId + "/linkstats", out LinkDataItem unused)) { Log.AppendLog(LogMessageType.ERROR, "Failed to publish Links Data."); } } catch (Exception ex) { Log.AppendLog(LogMessageType.EXCEPTION, ex.Message); } }