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); } } } }
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); }
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); } }