public FieldCreatortHandler( IOrchardServices orchardServices, IDraftFieldIndexService draftFieldIndexService) { _orchardServices = orchardServices; _draftFieldIndexService = draftFieldIndexService; OnUpdated <CommonPart>((context, CommonPart) => { if (CommonPart != null && _orchardServices.WorkContext != null) { var currentUser = _orchardServices.WorkContext.CurrentUser; if (currentUser != null) { var currentUserId = Convert.ToDecimal((decimal)currentUser.Id); var dynCommonPart = (dynamic)CommonPart; // Set the values for the infoset dynCommonPart.LastModifier.Value = currentUserId; if (dynCommonPart.Creator.Value == null) { dynCommonPart.Creator.Value = currentUserId; } // Set the values in the records for the projections var fieldIndexPart = CommonPart.As <FieldIndexPart>(); if (fieldIndexPart != null) { _draftFieldIndexService.Set(fieldIndexPart, "CommonPart", "LastModifier", null, currentUserId, typeof(decimal)); if (_draftFieldIndexService.Get <decimal>(fieldIndexPart, "CommonPart", "Creator", null) == default(decimal)) { _draftFieldIndexService.Set(fieldIndexPart, "CommonPart", "Creator", null, currentUserId, typeof(decimal)); } } } } }); OnCreated <CommonPart>((context, CommonPart) => { if (context.ContentItem.As <CommonPart>() != null && _orchardServices.WorkContext != null) { var currentUser = _orchardServices.WorkContext.CurrentUser; if (currentUser != null) { var currentUserId = Convert.ToDecimal((decimal)currentUser.Id); var dynCommonPart = (dynamic)context.ContentItem.As <CommonPart>(); // Set the values for the infoset if (dynCommonPart.Creator.Value == null) { dynCommonPart.Creator.Value = currentUserId; } // Don't set the values in the records because, at creation, there is no record, yet. } } }); }
public FieldIndexPartHandler( IContentDefinitionManager contentDefinitionManager, IRepository <FieldIndexPartRecord> repository, IFieldIndexService fieldIndexService, IDraftFieldIndexService draftFieldIndexService, IFieldStorageProvider fieldStorageProvider, IEnumerable <IContentFieldDriver> contentFieldDrivers) { Filters.Add(StorageFilter.For(repository)); _contentDefinitionManager = contentDefinitionManager; _fieldIndexService = fieldIndexService; _fieldStorageProvider = fieldStorageProvider; _contentFieldDrivers = contentFieldDrivers; _draftFieldIndexService = draftFieldIndexService; OnUpdated <FieldIndexPart>(Updated); OnPublishing <FieldIndexPart>(Publishing); }