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); }
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); }
public static List <SPPrincipal> GetUsersFromUsersFieldsAfter(this IERItem item, List <string> usersFields) { return(GetUsersFromUsersFieldsByType <IERItem>(usersFields, item)); }