Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="web"></param>
        /// <param name="entity">Map to entity</param>
        /// <param name="properties">Map from properties</param>
        public void Map(SPWeb web, BaseSPEntity entity, SPItemEventProperties properties)
        {
            SPList list = properties.List;

            foreach (FieldToPropertyMapping fieldMapping in FieldMappings)
            {
                SPField field = list.Fields.GetField(fieldMapping.FieldName);
                object  fieldValue;
                bool    hasProperty = properties.AfterProperties
                                      .Cast <DictionaryEntry>()
                                      .Any(e => e.Key.Equals(field.InternalName));

                if (hasProperty)
                {
                    fieldValue = properties
                                 .AfterProperties[field.InternalName];
                }
                else
                {
                    fieldValue = properties.ListItem
                                 ?? properties.ListItem[fieldMapping.FieldName];
                }

                var propertyValue = ToPropertyValue(web, field, fieldMapping, fieldValue);

                fieldMapping.PropertyInfo.SetValue(entity, propertyValue);
            }
        }
Example #2
0
        public void Map(SPWeb web, SPListItem to, BaseSPEntity from)
        {
            var fieldMappingsToFieldValues = FieldMappingsToFieldValues(web, to.ParentList, from);

            foreach (var fieldMappingsToFieldValue in fieldMappingsToFieldValues)
            {
                (FieldToPropertyMapping fieldMapping, object fieldValue) = fieldMappingsToFieldValue;

                try
                {
                    to[fieldMapping.FieldName] = fieldValue;
                }
                catch (Exception ex)
                {
                    string errorMessage  = $@"Не удалось записать значение {fieldValue} в поле {fieldMapping.FieldName} 
                                для сущности {typeof(TEntity).FullName}.";
                    var    nextException = new Exception(errorMessage, ex);
                    Logger.Error(errorMessage, nextException);
                    throw nextException;
                }
            }
        }