public virtual void UpdateListItem(SPGENRepositoryDataItem dataItem, SPGENEntityUpdateMethod updateMethod, SPGENEntityFileOperationArguments fileOperationParams)
        {
            SPListItem listItem = dataItem.ListItem;

            foreach (string fieldName in dataItem.FieldNames)
            {
                try
                {
                    listItem[fieldName] = dataItem.FieldValues[fieldName];
                }
                catch (Exception ex)
                {
                    throw new SPGENEntityGeneralException(string.Format("Failed to set list item value for field '{0}'.", fieldName), ex);
                }
            }

            if (updateMethod != SPGENEntityUpdateMethod.SkipUpdate)
            {
                if (updateMethod != SPGENEntityUpdateMethod.SkipUpdate)
                {
                    if (updateMethod == SPGENEntityUpdateMethod.Normal)
                    {
                        listItem.Update();
                    }
                    else if (updateMethod == SPGENEntityUpdateMethod.SystemUpdate)
                    {
                        listItem.SystemUpdate();
                    }
                    else if (updateMethod == SPGENEntityUpdateMethod.SystemUpdateOverwriteVersion)
                    {
                        listItem.SystemUpdate(false);
                    }
                    else
                    {
                        listItem.UpdateOverwriteVersion();
                    }
                }
            }
        }
 public virtual void UpdateDataItem(SPGENRepositoryDataItem dataItem, SPGENEntityUpdateMethod updateMethod, string[] fieldNames, bool includeFiles)
 {
     throw new NotSupportedException();
 }