Example #1
0
        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;
                }
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
                    }
                }
            }
        }
Example #5
0
 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
     {
     }
 }