public override void ProcessEvent(Database db, TrimEvent evt) { if (evt.ObjectType == BaseObjectTypes.Record) { switch (evt.EventType) { case Events.ReindexWords: case Events.DocReplaced: case Events.DocAttached: case Events.DocRenditionRemoved: case Events.DocRenditionAdded: var configFilePath = Path.Combine(AssemblyDirectory, "Log4Net.config"); if (File.Exists(configFilePath)) { FileInfo fi = new FileInfo(configFilePath); XmlConfigurator.ConfigureAndWatch(fi); } TrimEventHandler.HandleEvent(db, evt); break; default: break; } } }
public static void HandleEvent(Database db, TrimEvent evt) { Record record = null; RecordRendition rendition = null; try { record = db.FindTrimObjectByUri(BaseObjectTypes.Record, evt.ObjectUri) as Record; if (evt.RelatedObjectType == BaseObjectTypes.RecordRendition && evt.EventType == Events.DocRenditionAdded) { var eventRendition = record.ChildRenditions.FindChildByUri(evt.RelatedObjectUri) as RecordRendition; if (eventRendition != null && eventRendition.TypeOfRendition == RenditionType.Original) { // if added an original rendition = eventRendition; } } if (rendition != null) { RecordController.GenerateOcrRendition(record, rendition); } else { RecordController.UpdateOcrRendition(record); } } catch (TrimException ex) { Log.Error(ex); } finally { record = null; rendition = null; } }
public override void ProcessEvent(Database db, TrimEvent evt) { XmlConfigurator.Configure(); switch (evt.EventType) { case Events.ActivityAssigned: case Events.ActivityReassigned: case Events.ActivityCompleted: case Events.ActivityUndone: case Events.ActivityCurrent: case Events.ActivitySkipped: case Events.ActivityNeedsAuthorization: ManageCheckInStyle(db, evt); break; default: break; } }
public override void ProcessEvent(Database db, TrimEvent evt) { if(evt.ObjectType == BaseObjectTypes.Record) { if (evt.EventType == Events.ObjectAdded) { try { Record rec = new Record(db, evt.ObjectUri); if (rec.IsElectronic) { var docdetails = rec.ESource; //string Location = "C:\\Program Files\\hello.txt"; string FileName = docdetails.Substring(docdetails.LastIndexOf('\\') + 1); // int fileExtPos = FileName.LastIndexOf("."); if (fileExtPos >= 0) FileName = FileName.Substring(0, fileExtPos); var rectitle = rec.Title; if (rectitle != FileName) { rec.Title = FileName; } rec.SetNotes("Notes added: DocDetails: " + FileName + " RecTitle: " + rectitle, NotesUpdateType.PrependWithNewLine); rec.Save(); db.LogExternalEvent("Successful template title change.", BaseObjectTypes.Record, evt.ObjectUri, true); } } catch (Exception exp) { db.LogExternalEvent("Template title change error - "+exp.Message.ToString(), BaseObjectTypes.Record, evt.ObjectUri, true); } } } }
private void ManageCheckInStyle(Database db, TrimEvent evt) { try { Activity activity = new Activity(db, evt.ObjectUri); if (activity != null && activity.AssignedTo != null) { log.Debug($"Activity Uri {evt.ObjectUri}"); Workflow workflow = activity.Workflow; if (workflow != null && (workflow.Initiator != null && workflow.Initiator.RecordType.UsualBehaviour == RecordBehaviour.Folder)) { if (workflow.IsComplete) { log.Debug($"Workflow Uri {workflow.Uri} Is Completed"); // when no other assigned activities for this container TrimMainObjectSearch activitySearch = new TrimMainObjectSearch(db, BaseObjectTypes.Activity) { SearchString = $"workflow:[initiator:{workflow.Initiator.Number}] assignee:{activity.AssignedTo.Uri} not done" }; if (activitySearch.Count == 0) { // there are no other assigned activities TrimMainObjectSearch styleSearch = new TrimMainObjectSearch(db, BaseObjectTypes.CheckinStyle) { SearchString = $"owner:{activity.AssignedTo.Uri} container:{workflow.Initiator.Number}" }; foreach (CheckinStyle style in styleSearch) { style.Delete(); } } } else { log.Debug($"Workflow Uri {workflow.Uri} not completed"); // ensure that there is a check-in style for this container TrimMainObjectSearch styleSearch = new TrimMainObjectSearch(db, BaseObjectTypes.CheckinStyle) { SearchString = $"owner:{activity.AssignedTo.Uri} container:{workflow.Initiator.Number}" }; if (styleSearch.Count == 0) { log.Debug($"Creating new check-in style"); CheckinStyle style = new CheckinStyle(workflow.Initiator); style.RecordType = new RecordType(db, "Document"); style.Name = workflow.Initiator.Title; style.StyleOwner = activity.AssignedTo; style.MoveToDeletedItems = false; style.Save(); } else { log.Info("Check-in style already exists"); } } } } } catch (TrimException ex) { log.Error($"Exception: {ex.Message}", ex); } finally { } }