protected virtual void HandleAttachments(CrudOperationData entity, object wo, ApplicationMetadata metadata)
        {
            var user = SecurityFacade.CurrentUser();

            var attachmentString = entity.GetUnMappedAttribute("newattachment");
            var attachmentPath   = entity.GetUnMappedAttribute("newattachment_path");

            if (!String.IsNullOrWhiteSpace(attachmentString) && !String.IsNullOrWhiteSpace(attachmentPath))
            {
                _attachmentHandler.HandleAttachments(wo, attachmentString, attachmentPath, metadata);
            }
            var screenshotString = entity.GetUnMappedAttribute("newscreenshot");
            var screenshotName   = "screen" + DateTime.Now.ToUserTimezone(user).ToString("yyyyMMdd") + ".png";

            if (!String.IsNullOrWhiteSpace(screenshotString) && !String.IsNullOrWhiteSpace(screenshotName))
            {
                _attachmentHandler.HandleAttachments(wo, screenshotString, screenshotName, metadata);
            }

            var attachments = entity.GetRelationship("attachment");

            if (attachments != null)
            {
                foreach (var attachment in (IEnumerable <CrudOperationData>)attachments)
                {
                    attachmentString = attachment.GetUnMappedAttribute("newattachment");
                    attachmentPath   = (string)(attachment.GetUnMappedAttribute("newattachment_path") ?? attachment.GetAttribute("document"));
                    if (attachmentString != null && attachmentPath != null)
                    {
                        _attachmentHandler.HandleAttachments(wo, attachmentString, attachmentPath, metadata);
                    }
                }
            }
        }
Пример #2
0
        public override void BeforeUpdate(MaximoOperationExecutionContext maximoTemplateData)
        {
            var user = SecurityFacade.CurrentUser();
            var sr   = maximoTemplateData.IntegrationObject;

            WorkLogHandler.HandleWorkLogs((CrudOperationData)maximoTemplateData.OperationData, sr);
            w.SetValueIfNull(sr, "ACTLABHRS", 0.0);
            w.SetValueIfNull(sr, "ACTLABCOST", 0.0);
            w.SetValueIfNull(sr, "CHANGEDATE", DateTime.Now.FromServerToRightKind(), true);
            w.SetValueIfNull(sr, "CHANGEBY", user.Login);
            w.SetValueIfNull(sr, "REPORTDATE", DateTime.Now.FromServerToRightKind());

            var crudData = ((CrudOperationData)maximoTemplateData.OperationData);

            LongDescriptionHandler.HandleLongDescription(sr, crudData);
            var attachments = crudData.GetRelationship("attachment");

            foreach (var attachment in (IEnumerable <CrudOperationData>)attachments)
            {
                var attachmentString = attachment.GetUnMappedAttribute("newattachment");
                var attachmentPath   = attachment.GetUnMappedAttribute("newattachment_path");
                if (attachmentString != null && attachmentPath != null)
                {
                    AttachmentHandler.HandleAttachments(sr, attachmentString, attachmentPath,
                                                        maximoTemplateData.ApplicationMetadata);
                }
            }
            //HandleSolutions(maximoTemplateData, crudData, sr);
            base.BeforeUpdate(maximoTemplateData);
        }
        private void HandleAttachmentAndScreenshot(CrudOperationData data, object maximoObj, ApplicationMetadata applicationMetadata)
        {
            // Check if Attachment is present
            var attachmentString = data.GetUnMappedAttribute("newattachment");
            var attachmentPath   = data.GetUnMappedAttribute("newattachment_path");

            _attachmentHandler.HandleAttachments(maximoObj, attachmentString, attachmentPath, applicationMetadata);

            // Check if Screenshot is present
            var screenshotString = data.GetUnMappedAttribute("newscreenshot");
            var screenshotName   = data.GetUnMappedAttribute("newscreenshot_path");

            _screenshotHandler.HandleScreenshot(maximoObj, screenshotString, screenshotName, applicationMetadata);
        }
Пример #4
0
        public void HandleScreenshot(object maximoObj, string screenshotString, string screenshotName, ApplicationMetadata applicationMetadata)
        {
            if (!String.IsNullOrWhiteSpace(screenshotString) && !String.IsNullOrWhiteSpace(screenshotName))
            {
                if (screenshotName.ToLower().EndsWith("rtf"))
                {
                    var bytes                = Convert.FromBase64String(screenshotString);
                    var decodedString        = Encoding.UTF8.GetString(bytes);
                    var compressedScreenshot = CompressionUtil.CompressRtf(decodedString);

                    var convertedScreeshot = RTFUtil.ConvertToHTML(compressedScreenshot);

                    bytes            = Encoding.UTF8.GetBytes(convertedScreeshot);
                    screenshotString = Convert.ToBase64String(bytes);
                    screenshotName   = screenshotName.Substring(0, screenshotName.Length - 3) + "html";
                }

                Validate(screenshotName, screenshotString);

                _attachmentHandler.HandleAttachments(maximoObj, screenshotString, screenshotName, applicationMetadata);
            }
        }