public static DescriptionEntry GenerateDescriptionEntry(Dictionary <string, string> values, int maxHyperlinkLength)
        {
            DateTime now = DateTime.UtcNow;
            DescriptionTextRenderType renderType = DescriptionTextRenderType.Plaintext;
            string text = values[FieldNames.Incident.Description];

            if (text.IndexOf("html", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                // Try to convert from HTML to XHTML, if failed, just leave it as plain text
                string xhtmlValid;
                string errors;
                if (XmlSanitizer.TryMakeXHtml(text, out xhtmlValid, out errors))
                {
                    string xhtmlSanitized;
                    if (XmlSanitizer.SanitizeXml(xhtmlValid, false, false, out xhtmlSanitized, out errors))
                    {
                        text       = xhtmlSanitized;
                        renderType = DescriptionTextRenderType.Html;
                    }
                }

                if (!string.IsNullOrEmpty(errors))
                {
                    Logger.Info("Failed to convert message body to HTML. Defaulting to plain text. Conversion message: " + errors);
                }
                else if (text.Length > DescriptionLengthMax)
                {
                    // Truncate string if too long. IcM limits the number of characters in the DescriptionEntry.Text property.
                    text = TruncateXml(text, DescriptionLengthMax, maxHyperlinkLength);
                }
            }
            else if (text.Length > DescriptionLengthMax)
            {
                // Truncate string if too long. IcM limits the number of characters in the DescriptionEntry.Text property.
                text  = text.Substring(0, DescriptionLengthMax);
                text += TruncationMessage;
            }


            var descriptionEntry = new DescriptionEntry
            {
                Cause       = DescriptionEntryCause.Created,
                Date        = now,
                ChangedBy   = values[FieldNames.Incident.CreatedBy],
                SubmitDate  = now,
                SubmittedBy = values[FieldNames.Incident.CreatedBy],
                Text        = text,
                RenderType  = renderType,
            };

            return(descriptionEntry);
        }
        public void GenerateDescriptionEntry()
        {
            Dictionary <string, string> values = new Dictionary <string, string>
            {
                { FieldNames.Incident.Description, "" },
                { FieldNames.Incident.CreatedBy, "" },
                { FieldNames.Incident.CreateDate, "" }
            };

            DescriptionEntry result = IcmWorkItemManagment.GenerateDescriptionEntry(values, -1);

            Assert.Inconclusive();
        }
        public ActivityPage()
        {
            InitializeComponent();
            _vm            = new ActivityViewModel(this);
            BindingContext = _vm;

            DescriptionLabel.IsVisible = false;
            DateLabel.IsVisible        = false;

            DescriptionEntry.IsVisible   = true;
            DescriptionEntry.Placeholder = "Enter description";
            DescriptionEntry.Focus();

            AddToolbarButtons("Save");
        }
        public AlertSourceIncident CreateIncidentWithDefaults(Dictionary <string, string> values)
        {
            AlertSourceIncident incident = new AlertSourceIncident();

            incident.ImpactStartDate = Convert.ToDateTime(values[FieldNames.Incident.CreateDate]);
            incident.Title           = values[FieldNames.Incident.Title];
            incident.Severity        = incidentDefaults.Severity;

            int maxHyperlinkLength            = config.WorkItemSettings.RemoveHyperlinkExceedingNCharacters ?? -1;
            DescriptionEntry descriptionEntry = GenerateDescriptionEntry(values, maxHyperlinkLength);

            incident.DescriptionEntries = new [] { descriptionEntry };

            incident.Keywords = values["ConverstionID"];
            incident.Source   = new AlertSourceInfo
            {
                CreatedBy    = values[FieldNames.Incident.CreatedBy],
                CreateDate   = DateTime.UtcNow,
                IncidentId   = Guid.NewGuid().ToString(),
                ModifiedDate = DateTime.UtcNow,
                Origin       = incidentDefaults.Source.Origin
            };
            incident.OccurringLocation = new IncidentLocation
            {
                DataCenter        = incidentDefaults.OccurringLocation.DataCenter,
                DeviceGroup       = incidentDefaults.OccurringLocation.DeviceGroup,
                DeviceName        = incidentDefaults.OccurringLocation.DeviceName,
                Environment       = incidentDefaults.OccurringLocation.Environment,
                ServiceInstanceId = incidentDefaults.OccurringLocation.ServiceInstanceId
            };
            incident.RaisingLocation = new IncidentLocation
            {
                DataCenter        = incidentDefaults.RaisingLocation.DataCenter,
                DeviceGroup       = incidentDefaults.RaisingLocation.DeviceGroup,
                DeviceName        = incidentDefaults.RaisingLocation.DeviceName,
                Environment       = incidentDefaults.RaisingLocation.Environment,
                ServiceInstanceId = incidentDefaults.RaisingLocation.ServiceInstanceId
            };
            incident.RoutingId = config.IcmClientConfig.RoutingId;
            incident.Status    = incidentDefaults.Status;
            if (values["CorrelationId"] != "0")
            {
                incident.CorrelationId = values["CorrelationId"];
            }
            return(incident);
        }
        private void AddToolbarButtons(string name = "Edit")
        {
            var editButton = new ToolbarItem
            {
                Text     = name,
                Order    = ToolbarItemOrder.Primary,
                Priority = 0
            };

            editButton.Clicked += (sender, args) =>
            {
                var button = sender as ToolbarItem;

                if (button == null)
                {
                    return;
                }

                if (string.Equals(button.Text, "Edit"))
                {
                    button.Text = "Save";
                    DescriptionLabel.IsVisible = false;
                    DescriptionEntry.IsVisible = true;
                    DescriptionEntry.Focus();
                }
                else
                {
                    button.Text = "Edit";
                    DescriptionEntry.IsVisible = false;
                    DescriptionLabel.IsVisible = true;
                    DescriptionLabel.Focus();
                    OnSave();
                }
            };

            ToolbarItems.Add(editButton);
        }
示例#6
0
 public static DescriptionEntry CreateDescriptionEntry(long descriptionEntryId)
 {
     DescriptionEntry descriptionEntry = new DescriptionEntry();
     descriptionEntry.DescriptionEntryId = descriptionEntryId;
     return descriptionEntry;
 }
示例#7
0
 public void AddTodescriptionEntries(DescriptionEntry descriptionEntry)
 {
     base.AddObject("descriptionEntries", descriptionEntry);
 }
 protected override void OnAppearing()
 {
     base.OnAppearing();
     DescriptionEntry.Focus();
 }