Ejemplo n.º 1
0
        public SPItemField(params object[] attributes)
        {
            Item       = (IERItem)attributes[0];
            FieldTitle = (string)attributes[1];
            ValueAfter = (bool)attributes[2];

            FieldValueAfter  = ValueAfter ? Item.GetFieldValueAfter(FieldTitle) : null;
            FieldValueBefore = Item.listItem.GetFieldValue(FieldTitle);

            GetFieldValuesToStringForCompare();

            IsChanged = FieldIsChanged();

            if (!IsChanged)
            {
                return;
            }

            GetFieldValuesToStringForFriendly();

            if (FriendlyFieldValueAfter != "-")
            {
                GetFriendlyFieldValues(FieldValueAfterToStringForFriendly, out FriendlyFieldValueAfter);
            }
            if (FriendlyFieldValueBefore != "-")
            {
                GetFriendlyFieldValues(FieldValueBeforeToStringForFriendly, out FriendlyFieldValueBefore);
            }
            if (Item.eventType.Contains("Added"))
            {
                FriendlyFieldValueAfter = FriendlyFieldValueBefore;
            }
        }
        public static SPItemField Create(IERItem item, string fieldTitle, bool valueAfterParam = true)
        {
            object[] SPItemFieldParams = { item, fieldTitle, valueAfterParam };

            Type SPItemFieldType = GetSPItemFieldType(item, fieldTitle);

            return((SPItemField)Activator.CreateInstance(SPItemFieldType, SPItemFieldParams));
        }
        public static List <SPItemField> GetChangedFieldsList(IERItem item, List <string> fields, bool valueAfterParam = true)
        {
            var fieldList = fields.Where(f => item.listItem.ParentList.Fields.ContainsField(f))
                            .Select(f => Create(item, f, valueAfterParam))
                            .Where(t => t.IsChanged)
                            .ToList();

            return(fieldList);
        }
        private void InitCommonAttributes(ERItemNotifications item)
        {
            To   = String.Join(",", item.ToMails);
            Cc   = String.Join(",", item.ERConf.cc);
            Bcc  = String.Join(",", item.ERConf.bcc);
            Item = item;

            ItemUrlBlock      = String.Format(TemplatesParams["MAIL_URL_TEMPLATE"], item.listItem.GetItemFullUrl(), item.itemTitle);
            EditorDisplayName = item.eventProperties.UserDisplayName;
            ModifiedByBlock   = String.Format(ModifiedByBlockTemplate, EditorDisplayName);
        }
Ejemplo n.º 5
0
        public static dynamic GetFieldValueAfter(this IERItem item, string fieldTitle)
        {
            dynamic fieldValueAfter;
            string  fieldInternalName;
            string  fieldStaticName;

            try
            {
                fieldInternalName = item.listItem.ParentList.Fields[fieldTitle].InternalName;
                fieldStaticName   = item.listItem.ParentList.Fields[fieldTitle].StaticName;
            }
            catch
            {
                fieldInternalName = fieldTitle;
                fieldStaticName   = fieldTitle;
            }

            fieldValueAfter = item.eventProperties.AfterProperties[fieldInternalName];

            if (fieldValueAfter == null)
            {
                fieldValueAfter = item.eventProperties.AfterProperties[fieldTitle];
                if (fieldValueAfter == null)
                {
                    fieldValueAfter = item.eventProperties.AfterProperties[fieldStaticName];
                    if (fieldValueAfter == null)
                    {
                        fieldValueAfter = item.listItem[fieldTitle];
                    }
                }
            }

            if (fieldValueAfter == null)
            {
                fieldValueAfter = String.Empty;
            }

            return(fieldValueAfter);
        }
        private static Type GetSPItemFieldType(IERItem item, string fieldTitle)
        {
            Type   SPItemFieldType;
            string SPItemFieldTypeName;

            try
            {
                SPItemFieldTypeName = "SPItemFieldType" + item.listItem.ParentList.Fields.GetField(fieldTitle).FieldValueType.Name;
            }
            catch {
                SPItemFieldTypeName = "SPItemFieldType" + item.listItem.ParentList.Fields.GetField(fieldTitle).FieldTypeDefinition.TypeName;
                SPItemFieldTypeName = SPItemFieldTypeName.Replace("File", "String");
            }
            string assemblyName = "ListsNotifications";

            SPItemFieldType = Type.GetType(assemblyName + "." + SPItemFieldTypeName);

            if (SPItemFieldType == null)
            {
                SPItemFieldType = Type.GetType(assemblyName + ".SPItemFieldTypeCommon");
            }

            return(SPItemFieldType);
        }
Ejemplo n.º 7
0
 public static List <SPPrincipal> GetUsersFromUsersFieldsAfter(this IERItem item, List <string> usersFields)
 {
     return(GetUsersFromUsersFieldsByType <IERItem>(usersFields, item));
 }