コード例 #1
0
        public SaveDetail AddSaveDetailItem(SaveDetail item)
        {
            using (var db = new SitecoreEventLogDatabaseCommand())
            {
                db.AddParameter("Language", item.Language);
                db.AddParameter("Changes", item.Changes);

                return(db.ExecuteStoredProcedureQuery <SaveDetail>("dbo.AddSaveDetailItem").FirstOrDefault());
            }
        }
コード例 #2
0
        public void OnItemSaved(object sender, EventArgs args)
        {
            bool isItemSavedEventArgs = args is SitecoreEventArgs;

            if (!isItemSavedEventArgs)
            {
                return;
            }

            var  saveEventArgs = args as SitecoreEventArgs;
            var  itemChanges   = (ItemChanges)saveEventArgs.Parameters[saveEventArgs.Parameters.Length - 1];
            bool isSaveEventInvokedByPublish = itemChanges.HasPropertiesChanged;

            if (isSaveEventInvokedByPublish)
            {
                return;
            }
            try
            {
                var saveDetailsEntity = new SaveDetail()
                {
                    Language = itemChanges.Item.Language.Name,
                    Changes  = Settings.TraceChanges ? GetFieldChanges(itemChanges) : "[not-tracked]"
                };

                var _saveDetails = _saveDetailsRepository.AddSaveDetailItem(saveDetailsEntity);

                var eventEntity = new DataAccess.Models.Event()
                {
                    ItemId         = itemChanges.Item.ID.ToGuid(),
                    Date           = DateTime.ParseExact(itemChanges.FieldChanges[_updatedFieldId].Value, "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture), // TODO
                    EventType      = EventType.Save,
                    ItemPath       = itemChanges.Item.Paths?.FullPath,
                    ItemVersion    = itemChanges.Item.Version.Number,
                    SourceDatabase = itemChanges.Item.Database.Name,
                    UserName       = itemChanges.FieldChanges[_updatedByFieldId].Value,
                    SaveDetailId   = _saveDetails.Id
                };

                _eventRepository.AddEventItem(eventEntity);
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error("EventLog SaveEventHandler threw an exception", ex);
            }
        }
コード例 #3
0
 public void SetDetails(string jsonResultDetail)
 {
     locationDetails = JsonUtility.FromJson <ResultDetailGooglePlace>(jsonResultDetail).result;
     SaveDetail.Invoke(this, locationDetails);
 }