Example #1
0
        private void ProcessUpdating(string contentName, IQPArticle instance, ObjectStateEntry entry)
        {
            throw new NotImplementedException();
            var      properties = entry.GetModifiedProperties().ToList();
            var      values     = instance.Pack(this);
            DateTime modified   = DateTime.Now;

            throw new NotImplementedException("CUD operations are not implemented yet.");
            // Cnn.AddFormToContent(SiteId, Cnn.GetContentIdByNetName(SiteId, contentName), instance.StatusType.StatusTypeName, ref values, (int)instance.Id, true, 0, instance.Visible, instance.Archive, true, ref modified);
            // instance.Modified = modified;
        }
Example #2
0
        private void AddLinksToUpdate(IQPArticle article, Dictionary <string, string> fieldValues, List <EntityEntry> links)
        {
            var forwardLinks = links.Where(e => ((IQPLink)e.Entity).Id == article.Id && ((IQPLink)e.Entity).LinkedItemId > 0).ToList();

            if (forwardLinks.Count > 0)
            {
                var relations = (from e in forwardLinks
                                 let relatedId = ((IQPLink)e.Entity).LinkedItemId
                                                 let attribute = MappingResolver.GetAttribute(e.Metadata.Name.Substring(e.Metadata.Name.LastIndexOf(".") + 1))
                                                                 select new
                {
                    RelatedId = relatedId,
                    Field = attribute.MappedName
                })
                                .ToArray();
                var values = relations
                             .GroupBy(r => r.Field).ToDictionary(x => x.Key, x => string.Join(",", x.Select(y => y.RelatedId)));
                MergeValues(fieldValues, values);
                links.RemoveAll(x => forwardLinks.Contains(x));
            }
            var backwardLinks = links.Where(e => ((IQPLink)e.Entity).LinkedItemId == article.Id && ((IQPLink)e.Entity).Id > 0).ToList();

            if (backwardLinks.Count > 0)
            {
                var relations = (from e in forwardLinks
                                 let relatedId = ((IQPLink)e.Entity).Id
                                                 let attribute = MappingResolver.GetAttribute(e.Metadata.Name.Substring(e.Metadata.Name.LastIndexOf(".") + 1))
                                                                 select new
                {
                    RelatedId = relatedId,
                    Field = attribute.RelatedAttribute.MappedName
                })
                                .ToArray();
                var values = relations
                             .GroupBy(r => r.Field).ToDictionary(x => x.Key, x => string.Join(",", x.Select(y => y.RelatedId)));
                MergeValues(fieldValues, values);
                links.RemoveAll(x => backwardLinks.Contains(x));
            }
        }
Example #3
0
        private void ProcessCreating(string contentName, IQPArticle instance, EntityEntry entry)
        {
            throw new NotImplementedException();
            var      properties = entry.Properties.Where(x => x.IsModified).Select(x => x.Metadata.Name).ToArray();
            var      values     = instance.Pack(this);
            DateTime created    = DateTime.Now;
            // instance.LoadStatusType();
            // todo: load first status
            const string lowestStatus = "None";

            if (!properties.Contains("Visible"))
            {
                instance.Visible = true;
            }
            if (!properties.Contains("Archive"))
            {
                instance.Archive = false;
            }

            // instance.Id = Cnn.AddFormToContent(SiteId, Cnn.GetContentIdByNetName(SiteId, contentName), lowestStatus, ref values, 0, true, 0, instance.Visible, instance.Archive, true, ref created);
            instance.Created  = created;
            instance.Modified = created;
        }
Example #4
0
 private void SyncArticle(IQPArticle article, Dictionary <string, string> fieldValues)
 {
     article.Id       = int.Parse(fieldValues[SystemColumnNames.Id], CultureInfo.InvariantCulture);
     article.Modified = DateTime.Parse(fieldValues[SystemColumnNames.Modified], CultureInfo.InvariantCulture);
     article.Created  = DateTime.Parse(fieldValues[SystemColumnNames.Created], CultureInfo.InvariantCulture);
 }