示例#1
0
    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;
    }
示例#2
0
    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);
            }
        }
    }
示例#3
0
        /// <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);
            }
        }