diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor deleted file mode 100644 index b794b63e..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor +++ /dev/null @@ -1,50 +0,0 @@ -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Buttons -@inject IJSRuntime jsRuntime -@namespace TextToMindMapDiagram - - - - -
Export Diagram
- -
-
-
File Name
- -
-
-
-
-
Format
-
- - -
-
-
-
Region
- - -
-
-
-
- - -
-
-
-
- - - - - - - -
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor.cs deleted file mode 100644 index abcb8bf2..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramExportDialog.razor.cs +++ /dev/null @@ -1,123 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Syncfusion.Blazor.Popups; -using Syncfusion.Blazor.Diagram; -using Microsoft.AspNetCore.Components; -using System.Collections.Generic; -using System.Threading.Tasks; -using System; - -namespace TextToMindMapDiagram -{ - public partial class DiagramExportDialog - { -#pragma warning disable CS8618 - /// - /// Object reference for menubar items. - /// - internal DiagramMenuBar Parent; - /// - /// Gets or sets the diagram file name when export the diagram. - /// - private string diagramfileName = "Text to Mindmap"; - /// - /// Object reference for dialog box. - /// - public SfDialog ExportDialog; - /// - /// Gets or sets the export dialog box visibility setting. - /// - private bool exportDialogVisible = false; - //// - /// Gets a value indicating whether the diagram spans multiple pages when exported. - /// - bool IsMultiplePageExport = false; -#pragma warning restore CS8618 - /// - /// This method is used to change the file name when exporting a diagram. - /// - private void FileNameChangeHandler(ChangeEventArgs args) - { - if (args.Value != null) - diagramfileName = args.Value.ToString(); - } - /// - /// This method is used to enable the multiple page options. - /// - private void MultiplePageExport(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - IsMultiplePageExport = args.Checked; - } - /// - /// Gets or sets the event callback that will be invoked when the suggestions popup before it opens - /// - private void OnDialogOpening(Syncfusion.Blazor.Popups.BeforeOpenEventArgs args) - { - } - /// - /// This method is used Exports the diagram to an PNG/SVG/PDF/JPEG/ file. - /// - private async Task ExportHandler() - { - DiagramRect pageBounds = Parent.Parent.Diagram.GetPageBounds(); - SfDiagramComponent diagram = Parent.Parent.Diagram; - DiagramExportSettings options = new DiagramExportSettings() - { - FitToPage = IsMultiplePageExport, - Margin = new DiagramThickness() { Bottom = 0, Left = 0, Right = 0, Top = 0 }, - Region = (DiagramPrintExportRegion)Enum.Parse(typeof(DiagramPrintExportRegion), CurrentRegionValue.ToString(), true), - PageHeight = diagram.PageSettings.Height != null ? diagram.PageSettings.Height.Value : pageBounds.Height, - PageWidth = diagram.PageSettings.Width != null ? diagram.PageSettings.Width.Value : pageBounds.Width, - }; - await ExportDialog.HideAsync(); - await Parent.ExportDiagram(options, CurrentFormatValue.ToString(), diagramfileName); - } - /// - /// This method is used close the export diaglog box. - /// - private async Task CloseDialogHandler() - { - await ExportDialog.HideAsync(); - } - /// - /// Private collection of format values obtained from the 'Formats' enum. - /// - private IEnumerable formatValues = Enum.GetNames(typeof(Formats)); - /// - /// Represents the currently selected format value for image and document files. - /// - private Formats CurrentFormatValue { get; set; } = Formats.JPEG; - /// - /// Represents the supported formats for image and document files. - /// - private enum Formats - { - JPEG, - PNG, - SVG, - PDF - } - /// - /// Collection of region values obtained from the 'Regions' enum. - /// - private IEnumerable RegionValues = Enum.GetNames(typeof(Regions)); - /// - /// Gets or sets the currently selected region value. - /// Default value is 'PageSettings'. - /// - private Regions CurrentRegionValue { get; set; } = Regions.PageSettings; - /// - /// Represents the different regions used in image and document files. - /// - private enum Regions - { - PageSettings, - Content, - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor deleted file mode 100644 index e40ad53c..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor +++ /dev/null @@ -1,67 +0,0 @@ -@using Syncfusion.Blazor.Inputs; -@using Syncfusion.Blazor.Navigations; -@using Syncfusion.Blazor.Diagram -@using Syncfusion.PdfExport; -@using System.Text.Json.Serialization; -@using System.Text.Json; -@using System.Collections.ObjectModel; -@using Syncfusion.Blazor.SplitButtons; -@using Microsoft.JSInterop -@using Microsoft.AspNetCore.Components.Web -@using System; -@namespace TextToMindMapDiagram -@inject IJSRuntime jsRuntime - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - -
- - diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor.cs deleted file mode 100644 index c3cfa3e2..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramMenuBar.razor.cs +++ /dev/null @@ -1,656 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Syncfusion.Blazor.Inputs; -using Syncfusion.Blazor.Navigations; -using Syncfusion.Blazor.Diagram; -using Syncfusion.PdfExport; -using System.Collections.ObjectModel; -using Syncfusion.Blazor.SplitButtons; -using Microsoft.JSInterop; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.IO; -using System; -using BlazorDemos.Model; -using System.Linq; - -namespace TextToMindMapDiagram -{ - public partial class DiagramMenuBar - { -#pragma warning disable CS8618 - /// - /// Object reference for diagram print dialog box. - /// - DiagramPrintDialog PrintDialogBox; - /// - /// Object reference for diagram export dialog box. - /// - DiagramExportDialog ExportDialogBox; - /// - /// Object reference for diagram save dialog box. - /// - DiagramSaveDialog SaveDialogBox; - /// - /// Object reference for file option in menu bar. - /// - SfDropDownButton FileButton; - /// - /// Object reference for window option in menu bar. - /// - SfDropDownButton WindowButton; - /// - /// Object reference for view option in menu bar. - /// - SfDropDownButton ViewButton; - /// - /// Object reference for Edit option in menu bar. - /// - SfDropDownButton EditButton; - /// - /// The SfUploader instance for uploading files. - /// - Syncfusion.Blazor.Inputs.SfUploader UploadFiles; - /// - /// The default extension type for the diagram. - /// - string ExtensionType = ".json"; - /// - /// Object reference for context menu items in menu bar. - /// - SfContextMenu ContextMenu; - /// - /// A collection of strings used to disable certain functionalities. - /// disableCollection; - /// - /// A boolean value indicating whether the 'Paste' button is enabled. - /// - public bool enablePasteButten = false; - /// - /// A boolean value indicating whether the 'New option in menubar item' is clicked or not. - /// - public bool IsNewClick = false; - /// - /// The CSS class for the menu bar. - /// - private string menuClass { get; set; } = "db-diagram-name-container"; - /// - /// Gets or sets the name of the diagram. - /// - private string diagramName { get; set; } = "Text to Diagram"; - /// - /// Object reference for DiagramMain class. - /// - internal TextToMindMap Parent; - public bool IsDuplicate = false; - public bool IsJsonLoading = false; -#pragma warning restore CS8618 - /// - /// Represents a context menu item for a menu bar option. - /// - public class ContextMenuItemModel - { - public List Items { get; set; } - public string Text { get; set; } - public string Id { get; set; } - public string IconCss { get; set; } - public Boolean Separator { get; set; } - public Boolean Disabled { get; set; } - } - - - private void DropDownButtonOpen() - { - this.ItemSelection(); - for (int i = 0; i < FileMenuItems.Count; i++) - { - if (disableCollection.IndexOf(FileMenuItems[i].Text) > -1) - { - FileMenuItems[i].Disabled = true; - } - else - { - - FileMenuItems[i].Disabled = false; - } - } - } - /// - /// This method is invoked when click the menu bar items. - /// - public void OnMenuCreated() - { - ContextMenu.OpenAsync(); - } - /// - /// This method is invoked when click the Edit menu items in the Menu bar. - /// - private void DropDownfileOpenButtonOpen() - { - this.ItemSelection(); - for (int i = 0; i < EditMenuItems.Count; i++) - { - if (disableCollection.IndexOf(EditMenuItems[i].Text) > -1) - { - EditMenuItems[i].Disabled = true; - } - else - { - - EditMenuItems[i].Disabled = false; - } - } - - } - /// - /// This method is invoked when click the View menu items in the Menu bar. - /// - private void DropDownViewButtonOpen() - { - this.ItemSelection(); - for (int i = 0; i < ViewMenuItems.Count; i++) - { - if (disableCollection.IndexOf(ViewMenuItems[i].Text) > -1) - { - ViewMenuItems[i].Disabled = true; - } - else - { - ViewMenuItems[i].Disabled = false; - } - } - } - /// - /// This method is invoked when click the Window menu items in the Menu bar. - /// - private void DropDownWindowButtonOpen() - { - this.ItemSelection(); - } - /// - /// Gets the list of Edit menu items within the menu bar. - /// - internal List EditMenuItems = new List - { - new ContextMenuItemModel {Id ="EditMenuItemsUndo", Text= "Undo", IconCss="sf-icon-Undo" }, - new ContextMenuItemModel { Id ="EditMenuItemsRedo",Text= "Redo", IconCss="sf-icon-Redo" }, - new ContextMenuItemModel { Separator= true }, - new ContextMenuItemModel { Id ="EditMenuItemsCut",Text= "Cut", IconCss="sf-icon-Cut" }, - new ContextMenuItemModel { Id ="EditMenuItemsCopy",Text= "Copy", IconCss="sf-icon-Copy" }, - new ContextMenuItemModel {Id ="EditMenuItemsPaste", Text= "Paste", IconCss="sf-icon-Paste" }, - new ContextMenuItemModel {Id ="EditMenuItemsDelete", Text= "Delete", IconCss="sf-icon-Delete" }, - new ContextMenuItemModel { Separator= true }, - new ContextMenuItemModel {Id ="EditMenuItemsDuplicate", Text= "Duplicate", IconCss = "sf-icon-blank" }, - }; - /// - /// Gets the list of File menu items within the menu bar. - /// - internal List FileMenuItems = new List - { - new ContextMenuItemModel {Id ="FileMenuItemsNew", Text = "New", IconCss = "sf-icon-New" }, - new ContextMenuItemModel {Id ="FileMenuItemsOpen", Text = "Open", IconCss = "sf-icon-Open" }, - new ContextMenuItemModel { Separator = true }, - new ContextMenuItemModel { Id ="FileMenuItemsSave",Text = "Save", IconCss="sf-icon-Save" }, - new ContextMenuItemModel { Id ="FileMenuItemsSaveAs",Text = "Save As", IconCss = "sf-icon-SaveAs" }, - new ContextMenuItemModel {Id ="FileMenuItemsExport", Text = "Export", IconCss="sf-icon-Export" }, - new ContextMenuItemModel { Separator = true}, - new ContextMenuItemModel { Id ="FileMenuItemsPrint",Text = "Print", IconCss="sf-icon-Print" } - - }; - /// - /// Gets the list of view menu items within the menu bar. - /// - public List ViewMenuItems = new List - { - new ContextMenuItemModel { Id ="ViewMenuItemsZoomIn",Text="Zoom In", IconCss="sf-icon-ZoomIn" }, - new ContextMenuItemModel { Id ="ViewMenuItemsZoomOut",Text="Zoom Out", IconCss="sf-icon-ZoomOut" }, - new ContextMenuItemModel { Separator= true }, - new ContextMenuItemModel { Text ="Fit To Screen", IconCss = "sf-icon-blank" }, - new ContextMenuItemModel { Separator= true }, - new ContextMenuItemModel { Text="Show Grid" ,IconCss="sf-icon-Selection"}, - }; - /// - /// Gets the list of Window menu items within the menu bar. - /// - internal List WindowMenuItems = new List - { - new ContextMenuItemModel { Text="Show Toolbar",IconCss="sf-icon-Selection" }, - new ContextMenuItemModel { Text="Show Shortcuts",IconCss="sf-icon-blank"}, - }; - /// - /// Method invoked after each time the component has been rendered. - /// - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - if (SaveDialogBox != null) - SaveDialogBox.Parent = this; - if (ExportDialogBox != null) - ExportDialogBox.Parent = this; - if (PrintDialogBox != null) - PrintDialogBox.Parent = this; - } - } - /// - /// This method is triggered when click any menu bar item. - /// - private async Task MenuClick(Syncfusion.Blazor.Navigations.MenuEventArgs args) - { - bool Edit = false; - bool File = false; - bool Window = false; - bool view = false; - Syncfusion.Blazor.Diagram.SfDiagramComponent diagram = Parent.Diagram; - string commandType = args.Item.Text.Replace(" ", ""); - switch (commandType.ToLower()) - { - case "new": - File = true; - diagram.Clear(); - enablePasteButten = false; - diagram.BeginUpdate(); - WindowMenuItems[1].IconCss = "sf-icon-Selection"; - Parent.DiagramShortCutKeyRef.ShowShortCutKey = "block"; - Parent.UpdatePointerTool(); - Parent.Toolbar.PointerItemCssClass = "tb-item-middle tb-item-selected tb-item-pointer"; - Parent.Toolbar.PanItemCssClass = "tb-item-start tb-item-pan"; - await Parent.Toolbar.HideElements("hide-toolbar", true); - WindowMenuItems[0].IconCss = "sf-icon-Selection"; - Parent.Toolbar.StateChanged(); - Parent.DiagramShortCutKeyRef.RefreshShortcutKeyPanel(); - this.ItemSelection(); - StateHasChanged(); - break; - case "open": - File = true; IsJsonLoading = true; - await OpenUploadBox(true, ".json"); - IsJsonLoading = false; - break; - case "undo": - Edit = true; - if (diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1) - { - diagram.StartGroupAction(); - } - diagram.Undo(); - if (diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1) - { - diagram.EndGroupAction(); - } - break; - case "redo": - Edit = true; - if (diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1) - { - diagram.StartGroupAction(); - } - diagram.Redo(); - if (diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1) - { - diagram.EndGroupAction(); - } - break; - case "cut": - Edit = true; - diagram.Cut(); - enablePasteButten = true; - break; - case "copy": - Edit = true; - enablePasteButten = true; - diagram.Copy(); - break; - case "paste": - Edit = true; - diagram.Paste(); - break; - case "delete": - Edit = true; - bool GroupAction = false; - diagram.BeginUpdate(); - if (diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1 || ((diagram.SelectionSettings.Nodes.Count + diagram.SelectionSettings.Connectors.Count) > 1)) - { - GroupAction = true; - } - if (GroupAction) - { - diagram.StartGroupAction(); - } - if (diagram.SelectionSettings.Nodes.Count != 0) - { - for (var i = diagram.SelectionSettings.Nodes.Count - 1; i >= 0; i--) - { - var item = diagram.SelectionSettings.Nodes[i]; - - diagram.Nodes.Remove(item); - } - } - if (diagram.SelectionSettings.Connectors.Count != 0) - { - for (var i = diagram.SelectionSettings.Connectors.Count - 1; i >= 0; i--) - { - var item1 = diagram.SelectionSettings.Connectors[i]; - - diagram.Connectors.Remove(item1); - } - } - if (GroupAction) - { - diagram.EndGroupAction(); - } - await diagram.EndUpdate(); - break; - case "duplicate": - Edit = true; IsDuplicate = true; - diagram.Copy(); - diagram.Paste(); IsDuplicate = false; - break; - case "save": - File = true; - string fileName = diagramName; - await Download(fileName); - break; - case "saveas": - File = true; - SaveDialogBox.diagramfileName = diagramName; - await SaveDialogBox.SaveDialog.ShowAsync(); - break; - case "print": - File = true; - await PrintDialogBox.PrintDialog.ShowAsync(); - break; - case "export": - File = true; - await ExportDialogBox.ExportDialog.ShowAsync(); - break; - case "showtoolbar": - Window = true; - WindowMenuItems[0].IconCss = WindowMenuItems[0].IconCss == "sf-icon-Selection" ? "sf-icon-Remove" : "sf-icon-Selection"; - await Parent.Toolbar.HideElements("hide-toolbar"); - StateHasChanged(); - break; - case "showshortcuts": - Window = true; - Parent.ShowHideShortcutKey(); - break; - case "showgrid": - view = true; - diagram.BeginUpdate(); - Parent.SnapConstraint = Parent.SnapConstraint ^ SnapConstraints.ShowLines; - await diagram.EndUpdate(); - ViewMenuItems[5].IconCss = ViewMenuItems[5].IconCss == "sf-icon-blank" ? "sf-icon-Selection" : "sf-icon-blank"; - break; - case "fittoscreen": - view = true; - FitOptions fitoption = new FitOptions() - { - Mode = FitMode.Both, - Region = DiagramRegion.Content, - }; - Parent.Diagram.FitToPage(fitoption); - break; - case "zoomin": - view = true; - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { Type = "ZoomIn", ZoomFactor = 0.2 }); - Parent.Toolbar.DiagramZoomValueChange(); - break; - case "zoomout": - view = true; - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { Type = "ZoomOut", ZoomFactor = 0.2 }); - Parent.Toolbar.DiagramZoomValueChange(); - break; - } - if (Edit) - EditButton.Toggle(); - if (File) - FileButton.Toggle(); - if (Window) - WindowButton.Toggle(); - if (view) - ViewButton.Toggle(); - } - /// - /// This method is used to opens the upload box to select files for uploading. - /// - public async Task OpenUploadBox(bool isOpen, string extensionType) - { - ExtensionType = extensionType; - await FileUtil.Click(jsRuntime); - StateHasChanged(); - } - /// - /// This method is used to show the menubar items. - /// - public void ItemSelection() - { - List DisableCollection = new List(); - double DiagramCount = Parent.Diagram.Nodes.Count + Parent.Diagram.Connectors.Count; - ObservableCollection collection = new ObservableCollection(); - var nodes = Parent.Diagram.SelectionSettings.Nodes; - var connectors = Parent.Diagram.SelectionSettings.Connectors; - - foreach (Node node in nodes) - { - collection.Add(node); - } - foreach (Connector connector in connectors) - { - collection.Add(connector); - } - Node node1 = new Node(); - Node node2 = new Node(); - Connector connector1 = new Connector(); - if (collection != null) - { - node1 = collection.Count > 0 ? collection[0] as Node : null; - node2 = collection.Count > 0 ? collection[0] as NodeGroup : null; - connector1 = collection.Count > 0 ? collection[0] as Connector : null; - } - - bool isLock = ((node1 != null && node1.Constraints.HasFlag(NodeConstraints.Drag)) || (connector1 != null && connector1.Constraints.HasFlag(ConnectorConstraints.Drag))) ? false : true; - Dictionary Select = new Dictionary(); - if (collection != null) - { - Select = new Dictionary() -{ - {"Undo",!Parent.IsUndo}, - {"Redo",!Parent.IsRedo}, - {"Cut",collection.Count == 0?true:false}, - {"Copy",collection.Count == 0?true:false}, - {"Paste",!enablePasteButten}, - {"Delete",collection.Count == 0?true:false}, - {"Duplicate",collection.Count == 0?true:false}, - {"Select All",DiagramCount == 0?true:false}, - }; - } - foreach (var Text in Select) - { - if (Text.Value) - { - DisableCollection.Add(Text.Key); - } - } - this.disableCollection = DisableCollection; - - ViewMenuItems[5].IconCss = Parent.SnapConstraint.HasFlag(SnapConstraints.ShowLines) ? "sf-icon-Selection" : "sf-icon-blank"; - } - /// - /// This method is used to saves the diagram elements to a file. - /// - public async Task Download(string fileName) - { - string data = Parent.Diagram.SaveDiagram(); - await FileUtil.SaveAs(jsRuntime, data, fileName); - } - - private void OnUploadSuccess(SuccessEventArgs args) - { - if (args.Operation != "remove") - { - var file1 = args.File; - var file = file1.RawFile; - var fileType = file1.Type.ToString(); - } - } - /// - /// Occurs when an uploaded file is selected and ready for further processing. - /// - private async Task OnUploadFileSelected(Syncfusion.Blazor.Inputs.UploadingEventArgs args) - { - SfDiagramComponent Diagram = Parent.Diagram; - if (args.FileData.Type == "json") - { - IsJsonLoading = true; - await Task.Delay(100); - string json = await FileUtil.LoadFile(jsRuntime, args.FileData); - json = json.Replace(System.Environment.NewLine, string.Empty); - await Parent.Diagram.LoadDiagram(json.ToString()); - IsJsonLoading = false; - } - else - { - - Node Node = Diagram.SelectionSettings.Nodes[0]; - Diagram.BeginUpdate(); - Node.Shape = new ImageShape() { Type = NodeShapes.Image, Source = args.FileData.RawFile.ToString() }; - await Diagram.EndUpdate(); - } - } - /// - /// Exports the diagram to an PNG/SVG/PDF/JPEG/ file. - /// - public async Task ExportDiagram(Syncfusion.Blazor.Diagram.DiagramExportSettings exportOptions, string exportType, string fileName) - { - var diagram = Parent.Diagram; - DiagramExportFormat exportFormat = DiagramExportFormat.JPEG; - var images = await diagram.ExportAsync(exportFormat, exportOptions); - var Orientation = PdfPageOrientation.Landscape; - if (exportType.ToString() == "PDF") - { - await ExportToPdf(fileName, Orientation, true, images); - } - else - { - exportFormat = (DiagramExportFormat)(Enum.Parse(typeof(DiagramExportFormat), exportType.ToString(), true)); - await diagram.ExportAsync(fileName, exportFormat, exportOptions); - } - } - /// - /// This method is used to exports the diagram to an PDF file. - /// - private async Task ExportToPdf(string fileName, PdfPageOrientation orientation, bool allowDownload, string[] images) - { - PdfDocument document = new PdfDocument(); - document.PageSettings.Orientation = orientation; - document.PageSettings.Margins = new PdfMargins() { Left = 0, Right = 0, Top = 0, Bottom = 0 }; - string base64String = ""; - var dict = images; - for (int i = 0; i < dict.Count(); i++) - { - base64String = dict[i]; - using (MemoryStream initialStream = new MemoryStream(Convert.FromBase64String(base64String.Split("base64,")[1]))) - { - Stream stream = initialStream as Stream; - PdfPage page = document.Pages.Add(); - PdfGraphics graphics = page.Graphics; -#pragma warning disable CA2000 - PdfBitmap image = new PdfBitmap(stream); -#pragma warning restore CA2000 - graphics.DrawImage(image, 0, 0); - - } - } - using (MemoryStream memoryStream = new MemoryStream()) - { - document.Save(memoryStream); - memoryStream.Position = 0; - base64String = Convert.ToBase64String(memoryStream.ToArray()); - if (allowDownload) - { - await JSRuntimeExtensions.InvokeAsync(jsRuntime, "downloadPdf", new object[] { base64String, fileName }); - base64String = string.Empty; - } - else - { - base64String = "data:application/pdf;base64," + base64String; - } - - document.Dispose(); - } - - return base64String; - } - /// - /// Prints the diagram pages based on . - /// - /// Specifies the configuration settings to print the diagram. - /// The that completes when the diagram is sent to browser print preview window for printing. - public async Task PrintDiagram(Syncfusion.Blazor.Diagram.DiagramPrintSettings printOptions) - { - var diagram = Parent.Diagram; - - await diagram.PrintAsync(printOptions); - } - /// - /// This method is used to enable the diagram menu items. - /// - public bool EnableMenuItems(string itemText, ObservableCollection collection) - { - - if (itemText != "") - { - var commandType = itemText.Replace(" ", ""); - if (collection.Count == 0) - { - switch (commandType.ToLower()) - { - case "cut": - return true; - case "copy": - return true; - case "delete": - return true; - case "duplicate": - return true; - } - } - if (!enablePasteButten && itemText == "Paste") - { - return true; - } - if (itemText == "Undo") - { - - return !this.Parent.IsUndo; - } - if (itemText == "Redo") - { - return !this.Parent.IsRedo; - } - if (itemText == "Select All") - { - if (collection.Count == 0) - { - return true; - } - } - } - return false; - } - /// - /// This method is used to refresh the menu bar items. - /// - public void StateChanged() - { - StateHasChanged(); - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor deleted file mode 100644 index aca4534e..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor +++ /dev/null @@ -1,25 +0,0 @@ -@using BlazorDemos.Service -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@inject AzureAIService ChatGptService -@namespace TextToMindMapDiagram - - - -
AI Assist
- -

Suggested Prompts

- Mindmap diagram for Mobile banking registration - Mindmap diagram for Organizational research - Mindmap diagram for Meeting agenda - -
- - -
-
-
- -
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor.cs deleted file mode 100644 index 2fc249c6..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramOpenAI.razor.cs +++ /dev/null @@ -1,71 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace TextToMindMapDiagram -{ - public partial class DiagramOpenAI - { -#pragma warning disable CS8618 - public TextToMindMap Parent; - public bool ShowAIAssistDialog = false; - public string OpenAIPrompt; - string MobileBankingPrompt = "Mindmap diagram for Mobile banking registration"; - string OrganizationalResearchPrompt = "Mindmap diagram for Organizational research"; - string MeetingAgendaPrompt = "Mindmap diagram for Meeting agenda"; -#pragma warning restore CS8618 - public void OnFabClicked() - { - ShowAIAssistDialog = !ShowAIAssistDialog; - } - private void DialogClose(Object args) - { - ShowAIAssistDialog = false; - } - - public async void GenerateMindMap(string value) - { - OpenAIPrompt = value; - await GetResponseFromAI(); - StateHasChanged(); - } - - public async Task GetResponseFromAI() - { - Parent.IsGeneratingFromAI = true; - ShowAIAssistDialog = false; - if (!string.IsNullOrWhiteSpace(OpenAIPrompt)) - { - await Parent.SpinnerRef.ShowAsync(); - string result = string.Empty; - string systemRole = "You are an expert in creating mind map diagram data sources. Generate a structured data source for a mind map based on the user's query, using tab indentation to indicate hierarchy. The root parent should have no indentation, while each subsequent child level should be indented by one tab space. Avoid using any symbols such as '+' or '-' before any level of data."; - string userPrompt = $"Based on the following input, create a mind map diagram data source: {OpenAIPrompt}."; - result = await ChatGptService.GetCompletionAsync(userPrompt, false, false, systemRole); - List filteredData = result - .Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries) - .Where(line => !string.IsNullOrWhiteSpace(line)) - .ToList(); - if (filteredData[0].Trim() != "mindmap") - filteredData.Insert(0, "mindmap"); - filteredData[1].TrimStart('-', '+'); - result = string.Join("\n", filteredData); - Parent.Diagram.BeginUpdate(); - Parent.Diagram.StartGroupAction(); - await Parent.Diagram.LoadDiagramFromMermaidAsync(result); - Parent.Diagram.EndGroupAction(); - await Parent.Diagram.EndUpdateAsync(); - StateHasChanged(); - await Parent.SpinnerRef.HideAsync(); - } - Parent.IsGeneratingFromAI = false; - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor deleted file mode 100644 index 3ed209a1..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor +++ /dev/null @@ -1,72 +0,0 @@ -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Buttons - -@inject IJSRuntime jsRuntime -@namespace TextToMindMapDiagram - - - -
Print Diagram
- -
-
-
Region
- - -
-
-
Print Settings
-
- - - - -
-
-
-
- - - -
-
- - -
-
-
- - -
-
-
-
- - - - - - - -
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor.cs deleted file mode 100644 index 1070f24d..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramPrintDialog.razor.cs +++ /dev/null @@ -1,230 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Syncfusion.Blazor.Buttons; -using Syncfusion.Blazor.Diagram; -using Syncfusion.Blazor.Popups; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace TextToMindMapDiagram -{ - public partial class DiagramPrintDialog - { -#pragma warning disable CS8618 - /// - /// Object reference for menu bar. - /// - internal DiagramMenuBar Parent; - /// - /// SfDialog instance for the print dialog. - /// - public SfDialog PrintDialog; - /// - /// Indicates whether the print dialog is visible. - /// - private bool printDialogVisible = false; - /// - /// The paper size selected for printing. - /// - private string Papersize = "Letter"; - /// - /// Indicates whether the paper orientation is in portrait mode. - /// - bool IsPortrait = true; - /// - /// Indicates whether the paper orientation is in landscape mode. - /// - bool IsLandscape = false; - /// - /// Indicates whether multiple pages are selected for printing. - /// - bool IsMultiplePage = false; - /// - /// The height of the printed page. - /// - double PageHeight = 816; - /// - /// The width of the printed page. - /// - double PageWidth = 1056; - /// - /// The value of the checked orientation option (portrait or landscape). - /// - string orientationCheckedValue = "portrait"; -#pragma warning restore CS8618 - /// - /// This method is used to set the page size. - /// - private PaperSize GetPaperSize(string paperName) - { - PaperSize Paper = new PaperSize(); - switch (paperName) - { - case "Letter": - Paper.PageWidth = 816; - Paper.PageHeight = 1056; - break; - case "Legal": - Paper.PageWidth = 816; - Paper.PageHeight = 1344; - break; - case "Tabloid": - Paper.PageWidth = 1056; - Paper.PageHeight = 1632; - break; - case "A3": - Paper.PageWidth = 1122; - Paper.PageHeight = 1587; - break; - case "A4": - Paper.PageWidth = 793; - Paper.PageHeight = 1122; - break; - case "A5": - Paper.PageWidth = 559; - Paper.PageHeight = 793; - break; - case "A6": - Paper.PageWidth = 396; - Paper.PageHeight = 559; - break; - } - return Paper; - } - /// - /// This method is used to set the page width and height values. - /// - private void PaperChanged(Syncfusion.Blazor.DropDowns.ChangeEventArgs args) - { - PaperSize Size = this.GetPaperSize(args.Value); - PageHeight = Size.PageHeight; - PageWidth = Size.PageWidth; - } - /// - /// This method is used to enable the multiple page options. - /// - private void MultiplePage(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - IsMultiplePage = args.Checked; - } - /// - /// Prints the diagram pages based on . - /// - private async Task PrintDialogHandler() - { - double pageWidth = PageWidth; - double pageHeight = PageHeight; - if (IsPortrait) - { - if (pageWidth > pageHeight) - { - var temp = pageWidth; - pageWidth = pageHeight; - pageHeight = temp; - } - } - if (IsLandscape) - { - if (pageHeight > pageWidth) - { - var temp1 = pageHeight; - pageHeight = pageWidth; - pageWidth = temp1; - } - } - - DiagramPrintSettings options = new DiagramPrintSettings() - { - FitToPage = IsMultiplePage, - Orientation = IsPortrait ? Syncfusion.Blazor.Diagram.PageOrientation.Portrait : Syncfusion.Blazor.Diagram.PageOrientation.Landscape, - PageHeight = pageHeight, - PageWidth = pageWidth, - Margin = new DiagramThickness() { Bottom = 0, Left = 0, Right = 0, Top = 0 }, - Region = (DiagramPrintExportRegion)Enum.Parse(typeof(DiagramPrintExportRegion), CurrentRegionValue.ToString(), true), - }; - - await Parent.PrintDiagram(options); - await PrintDialog.HideAsync(); - } - /// - /// This method is used to close the print dialog box. - /// - private async Task PrintDialogCloseHandler() - { - await PrintDialog.HideAsync(); - } - /// - /// this method is used to changes the orientation of the diagram page. - /// - private void OrientationChanged(ChangeArgs args) - { - if (args.Value.ToString() == "portrait") - { - IsPortrait = true; - IsLandscape = false; - orientationCheckedValue = "portrait"; - } - else if (args.Value.ToString() == "landscape") - { - IsLandscape = true; - IsPortrait = false; - orientationCheckedValue = "landscape"; - } - } - /// - /// List of available paper sizes for printing. - /// - public List PaperList = new List() - { - new PaperListFields{ Text= "Letter (8.5 in x 11 in)", Value= "Letter" }, - new PaperListFields{ Text= "Legal (8.5 in x 14 in)", Value= "Legal" }, - new PaperListFields{ Text= "Tabloid (279 mm x 432 mm)", Value= "Tabloid" }, - new PaperListFields{ Text= "A3 (297 mm x 420 mm)", Value= "A3" }, - new PaperListFields{ Text= "A4 (210 mm x 297 mm)", Value= "A4" }, - new PaperListFields{ Text= "A5 (148 mm x 210 mm)", Value= "A5" }, - new PaperListFields{ Text= "A6 (105 mm x 148 mm)", Value= "A6" }, - new PaperListFields{ Text= "Custom", Value= "Custom" }, - }; - /// - /// Array of region values obtained from the 'Regions' enum. - /// - private string[] RegionValues = Enum.GetNames(typeof(Regions)); - /// - /// The currently selected region value. - /// Default value is 'PageSettings'. - /// - private Regions CurrentRegionValue { get; set; } = Regions.PageSettings; - /// - /// Enum representing the regions. - /// - private enum Regions - { - PageSettings, - Content, - } - /// - /// Represents the paper size with its width and height. - /// - public class PaperSize - { - public double PageWidth { get; set; } - public double PageHeight { get; set; } - } - /// - /// Represents the fields for the list of paper sizes. - /// - #region - public class PaperListFields - { - public string Value { get; set; } = ""; - public string Text { get; set; } = ""; - } - #endregion - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor deleted file mode 100644 index 6e5d30a0..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor +++ /dev/null @@ -1,28 +0,0 @@ -@using Syncfusion.Blazor.Popups - -@inject IJSRuntime jsRuntime -@namespace TextToMindMapDiagram - - - -
Save Diagram
- -
-
-
File Name
- -
-
-
-
-
- - - - - - - -
- - diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor.cs deleted file mode 100644 index 91e1c632..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramSaveDialog.razor.cs +++ /dev/null @@ -1,52 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Microsoft.JSInterop; -using Syncfusion.Blazor.Popups; -using System.Threading.Tasks; - -namespace TextToMindMapDiagram -{ - public partial class DiagramSaveDialog - { -#pragma warning disable CS8618 - /// - /// Represents the DiagramMenuBar instance that serves as the parent. - /// - internal DiagramMenuBar Parent; - - /// - /// The name of the saved diagram file. - /// - public string diagramfileName = "Diagram1"; - /// - /// Represents the SfDialog instance for the save dialog. - /// - public SfDialog SaveDialog; - /// - /// Indicates whether the save dialog is currently visible. - /// - public bool SaveDialogVisible = false; -#pragma warning restore CS8618 - /// - /// This method is used to save the diagram. - /// - private async Task BtnSave() - { - string fileName = await jsRuntime.InvokeAsync("getDiagramFileName", "save"); - await Parent.Download(fileName); - await SaveDialog.HideAsync(); - } - /// - /// This method is used to close the diaglog box. - /// - private async Task btnCancelClick() - { - await SaveDialog.HideAsync(); - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor deleted file mode 100644 index 3005740c..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor +++ /dev/null @@ -1,94 +0,0 @@ -@namespace TextToMindMapDiagram -@using Microsoft.AspNetCore.Components.Web - -
-
- -
-
Quick shortcuts
-
-
    -
  • - Tab : Add a subtopic to the left -
  • -
-
-
-
    -
  • - Shift + Tab : Add a subtopic to the right -
  • -
-
-
-
    -
  • - Enter : Add a new sibling child -
  • -
-
-
-
    -
  • - Delete / Backspace : Delete a topic -
  • -
-
-
-
    -
  • - Arrow(Up, Down, Left, Right) : Navigate between topics -
  • -
-
-
-
    -
  • - F2 : Edit a topic -
  • -
-
-
-
    -
  • - Esc : End text editing -
  • -
-
-
-
    -
  • - Ctrl + B : To make text bold -
  • -
-
-
-
    -
  • - Ctrl + I : To make text Italic -
  • -
-
-
-
    -
  • - Ctrl + U : Underline the text -
  • -
-
-
-
    -
  • - F8 : To Fit the diagram into the viewport -
  • -
-
-
-
    -
  • - F1 : Show/Hide shortcut Key -
  • -
-
-
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor.cs deleted file mode 100644 index 7bee6dd8..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramShortCutKey.razor.cs +++ /dev/null @@ -1,29 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -namespace TextToMindMapDiagram -{ - public partial class DiagramShortCutKey - { -#pragma warning disable CS8618 - public string ShowShortCutKey = "none"; - public TextToMindMap Parent; -#pragma warning restore CS8618 - public void ShowHideShortcutKey() - { - ShowShortCutKey = "none"; - int shortcutIndex = Parent.MenubarRef.WindowMenuItems.FindIndex(item => item.Text == "Show Shortcuts"); - Parent.MenubarRef.WindowMenuItems[shortcutIndex].IconCss = Parent.MenubarRef.WindowMenuItems[shortcutIndex].IconCss == "sf-icon-blank" ? "sf-icon-Selection" : "sf-icon-blank"; - Parent.MenubarRef.StateChanged(); - } - - public void RefreshShortcutKeyPanel() - { - StateHasChanged(); - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor deleted file mode 100644 index d9830b37..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor +++ /dev/null @@ -1,46 +0,0 @@ -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.SplitButtons -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs - -@namespace TextToMindMapDiagram - -
-
- -
- - - - - - - - - - - - - - - - - -
-
- -
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor.cs deleted file mode 100644 index d0aa6b94..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/DiagramToolBar.razor.cs +++ /dev/null @@ -1,512 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Microsoft.AspNetCore.Components; -using Microsoft.JSInterop; -using Syncfusion.Blazor.Diagram; -using Syncfusion.Blazor.Inputs; -using Syncfusion.Blazor.Navigations; -using Syncfusion.Blazor.SplitButtons; -using System; -using System.Collections.ObjectModel; -using System.Globalization; -using System.Linq; -using System.Threading.Tasks; - -namespace TextToMindMapDiagram -{ -#pragma warning disable BL0005 - public partial class DiagramToolBar - { - /// - /// Gets or sets the JavaScript runtime instance used for interop between C# and JavaScript in Blazor. - /// - /// - /// The JavaScript runtime is responsible for executing JavaScript code from C# and handling JavaScript interop calls. - /// In a Blazor application, this property should be set to an instance of the IJSRuntime interface provided by the framework. - /// - [Inject] - protected IJSRuntime? jsRuntime { get; set; } = null!; -#pragma warning disable CS8618 - /// - /// Represents the DiagramMain instance that serves as the parent. - /// - internal TextToMindMap Parent; - /// - /// The background color for the hide button. - /// - string HideButtonBackground = "#0078d4"; - /// - /// The CSS class for the hide button. - /// - string HideButtonCss = "db-toolbar-hide-btn tb-property-open"; - /// - /// The SfToolbar instance for the toolbar. - /// - SfToolbar Toolbar; - /// - /// The CSS class name for the toolbar container. - /// - string toolbarClassName { get; set; } = "db-toolbar-container"; - /// - /// The CSS class name for adding a sibling tool bar item. - /// - string addSiblingCssName { get; set; } = "tb-item-start tb-item-sibling"; - /// - /// The CSS class for the menu hide icon. - /// - string MenuHideIconCss = "sf-icon-Collapse tb-icons"; - /// - /// Represents a toolbar item for undo functionality. - /// - ToolbarItem UndoItem; - /// - /// Represents a toolbar item for redo functionality. - /// - ToolbarItem RedoItem; - /// - /// Represents a toolbar item for zoom functionality. - /// - ToolbarItem ZoomItem; - /// - /// The SfDropDownButton instance for the zoom item dropdown. - /// - SfDropDownButton ZoomItemDropdown; - - /// - /// Represents a toolbar item for pan functionality. - /// - ToolbarItem PanItem; - /// - /// Represents a toolbar item for pan functionality. - /// - ToolbarItem AddChid; - /// - /// Represents a toolbar item for adding a sibling. - /// - ToolbarItem AddSibling; - /// - /// Represents a toolbar item for adding multiple children. - /// - ToolbarItem AddMultipleChild; - /// - /// Represents a toolbar item for pointer functionality. - /// - ToolbarItem PointerItem; - /// - /// The CSS class for the pan item. - /// - public string PanItemCssClass = "tb-item-start tb-item-pan"; - /// - /// The CSS class for the pointer item. - /// - public string PointerItemCssClass = "tb-item-middle tb-item-selected tb-item-pointer"; - /// - /// Specifies whether the check box option is checked. - /// - public string stringChecked { get; set; } = "diagramView"; - /// - /// The visibility setting for the mind map toolbar. - /// - public string MindmapToolbarVisibility { get; set; } = "block"; - /// - /// The SfDropDownButton instance for the dropdown button. - /// - private SfDropDownButton dropdownBtn; - /// - /// The SfDropDownButton instance for the another dropdown button. - /// - private SfDropDownButton dropdownBtn1; - /// - /// The content of the ZoomItemDropdown. - /// - public string ZoomItemDropdownContent = "100%"; - string showShortCut; -#pragma warning restore CS8618 - /// - /// Method invoked after each time the component has been rendered. - /// - protected override void OnAfterRender(bool firstRender) - { - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(Parent.CurrentZoom * 100)}") + "%"; - base.OnAfterRender(firstRender); - } - - /// - /// Opens/closes a DropDownButton popup based on current state of the DropDownButton. - /// - private void ClickHandler(BeforeOpenCloseEventArgs e) - { - dropdownBtn.Toggle(); - } - /// - /// Opens/closes a DropDownButton popup based on current state of the DropDownButton. - /// - private void ClickHandler1(BeforeOpenCloseEventArgs e) - { - dropdownBtn1.Toggle(); - } - /// - /// This method is used to update refresh the toolbar items. - /// - public void StateChanged() - { - StateHasChanged(); - } - #region events - /// - /// This is used to update the zoom in/ zoom out the diagram - /// - private void DrawZoomChange(Syncfusion.Blazor.SplitButtons.MenuEventArgs args) - { - var diagram = Parent.Diagram; - double currentZoom = Parent.CurrentZoom; - switch (args.Item.Text) - { - case "Zoom In": - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { Type = "ZoomIn", ZoomFactor = 0.2 }); - break; - case "Zoom Out": - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { Type = "ZoomOut", ZoomFactor = 0.2 }); - break; - case "Zoom to Fit": - FitOptions fitoption = new FitOptions() - { - Mode = FitMode.Both, - Region = DiagramRegion.Content, - }; - diagram.FitToPage(fitoption); - break; - case "Zoom to 50%": - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { ZoomFactor = ((0.5 / currentZoom) - 1) }); - break; - case "Zoom to 100%": - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { ZoomFactor = ((1 / currentZoom) - 1) }); - break; - case "Zoom to 200%": - Parent.ZoomTo(new TextToMindMap.ZoomOptions() { ZoomFactor = ((2 / currentZoom) - 1) }); - break; - } - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(Parent.CurrentZoom * 100)}") + "%"; - } - /// - /// This is used to update the toolbar functionality - /// - private async Task ToolbarEditorClick(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - var diagram = Parent.Diagram; - var commandType = args.Item.TooltipText.ToLower(new CultureInfo("en-US")); - switch (commandType) - { - case "undo": - diagram.Undo(); - EnableToolbarItems(new object() { }, "historychange"); - break; - case "redo": - diagram.Redo(); - EnableToolbarItems(new object() { }, "historychange"); - break; - case "pan tool": - Parent.UpdateTool(); - diagram.ClearSelection(); - - break; - case "pointer": - Parent.UpdatePointerTool(); - break; - case "delete": - DeleteData(); - toolbarClassName = "db-toolbar-container db-undo"; - break; - case "add child": - if (diagram.SelectionSettings != null && diagram.SelectionSettings.Nodes.Count > 0) - { - diagram.StartGroupAction(); - BranchType type = (BranchType)diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - if (type == BranchType.SubRight || type == BranchType.Right) - { - await TextToMindMap.AddLeftChild(Parent.Diagram); - } - else if (type == BranchType.SubLeft || type == BranchType.Left || type == BranchType.Root) - { - await TextToMindMap.AddRightChild(Parent.Diagram); - } - diagram.ClearSelection(); - diagram.Select(new ObservableCollection() { diagram.Nodes[diagram.Nodes.Count - 1] }); - diagram.StartTextEdit(diagram.Nodes[diagram.Nodes.Count - 1]); - diagram.EndGroupAction(); - } - break; - case "add sibling": - if (diagram.SelectionSettings != null && diagram.SelectionSettings.Nodes.Count > 0) - { - string nodeParent = Convert.ToString(diagram.SelectionSettings.Nodes[0].AdditionalInfo["ParentId"]); - string parentID = nodeParent; - Node parentNode = diagram.GetObject(parentID) as Node; - if (parentNode != null) - { - diagram.StartGroupAction(); - BranchType branch = (BranchType)parentNode?.AdditionalInfo["Orientation"]; - BranchType nodeBranch = (BranchType)diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - if (branch == BranchType.SubRight || branch == BranchType.Right || (branch == BranchType.Root && nodeBranch == BranchType.Right)) - { - await TextToMindMap.AddLeftChild(Parent.Diagram, true); - } - else - { - await TextToMindMap.AddRightChild(Parent.Diagram, true); - } - diagram.ClearSelection(); - diagram.Select(new ObservableCollection() { diagram.Nodes[diagram.Nodes.Count - 1] }); - diagram.StartTextEdit(diagram.Nodes[diagram.Nodes.Count - 1]); - diagram.EndGroupAction(); - } - } - break; - } - if (commandType == "pan tool" || commandType == "pointer" || commandType == "text tool") - { -#pragma warning disable CA1307 // Specify StringComparison - if (args.Item.CssClass.IndexOf("tb-item-selected") == -1) -#pragma warning restore CA1307 // Specify StringComparison - { - if (commandType == "pan tool") - PanItemCssClass += " tb-item-selected"; - if (commandType == "pointer") - PointerItemCssClass += " tb-item-selected"; - await removeSelectedToolbarItem(commandType).ConfigureAwait(true); - } - } - - //Parent.DiagramContent.StateChanged(); - } - /// - /// This is used to delete the selected items. - /// - public void DeleteData() - { - bool GroupAction = false; - SfDiagramComponent diagram = Parent.Diagram; - if ((diagram.SelectionSettings.Nodes.Count > 1 || diagram.SelectionSettings.Connectors.Count > 1 || ((diagram.SelectionSettings.Nodes.Count + diagram.SelectionSettings.Connectors.Count) > 1))) - { - GroupAction = true; - } - if (GroupAction) - { - diagram.StartGroupAction(); - } - if (diagram.SelectionSettings.Nodes.Count != 0) - { - for (var i = diagram.SelectionSettings.Nodes.Count - 1; i >= 0; i--) - { - var item = diagram.SelectionSettings.Nodes[i]; - - diagram.Nodes.Remove(item); - } - } - if (diagram.SelectionSettings.Connectors.Count != 0) - { - for (var i = diagram.SelectionSettings.Connectors.Count - 1; i >= 0; i--) - { - var item1 = diagram.SelectionSettings.Connectors[i]; - - diagram.Connectors.Remove(item1); - } - } - if (GroupAction) - diagram.EndGroupAction(); - } - /// - /// This is used to remove the selected toolbar item. - /// - private async Task removeSelectedToolbarItem(string tool) - { -#pragma warning disable CA1307 // Specify StringComparison - - - if (tool != "pan tool" && PanItemCssClass.IndexOf("tb-item-selected") != -1) - { - PanItemCssClass = PanItemCssClass.Replace(" tb-item-selected", ""); - } - if (tool != "pointer" && PointerItemCssClass.IndexOf("tb-item-selected") != -1) - { - PointerItemCssClass = PointerItemCssClass.Replace(" tb-item-selected", ""); - } - - StateHasChanged(); -#pragma warning restore CA1307 // Specify StringComparison - } - #endregion - /// - /// This is used to remove the selected toolbar items. - /// - - public void SingleSelectionToolbarItems() - { - //bool diagram = Parent.DiagramContent.diagramSelected; - StateHasChanged(); - } - public void MutipleSelectionToolbarItems() - { - //bool diagram = Parent.DiagramContent.diagramSelected; - SingleSelectionToolbarItems(); - - StateHasChanged(); - } - public void DiagramSelectionToolbarItems() - { - SingleSelectionToolbarItems(); - } - /// - /// This is used to update the zoom value. - /// - public void DiagramZoomValueChange() - { - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(Parent.CurrentZoom * 100)}") + "%"; - StateHasChanged(); - } - - #region public methods - /// - /// This is used to enable the toolbar items. - /// - public void EnableToolbarItems(T obj, string eventname) - { - - SfDiagramComponent diagram = Parent.Diagram; - ObservableCollection collection = new ObservableCollection(); - if (eventname == "selectionchange") - { - ObservableCollection? list = obj as ObservableCollection; - if (list != null && list.Count > 0) - { - for (int i = 0; i < list?.Count; i++) - { - NodeBase node = (NodeBase)list[i]; - collection.Add(node); - } - } - UtilityMethods_enableToolbarItems(collection); - } - - if (eventname == "historychange") - { - RemoveUndo(); - RemoveRedo(); - if (diagram.HistoryManager.CanUndo) - { - this.Parent.IsUndo = diagram.HistoryManager.CanUndo; - this.Parent.IsRedo = diagram.HistoryManager.CanRedo; - toolbarClassName += " db-undo"; - } - if (diagram.HistoryManager.CanRedo) - { - this.Parent.IsRedo = diagram.HistoryManager.CanRedo; - this.Parent.IsUndo = diagram.HistoryManager.CanUndo; - toolbarClassName += " db-redo"; - } - StateHasChanged(); - } - } - /// - /// This is used to remove the undo selection. - /// - public void RemoveUndo() - { - string undo = "undo"; - if (toolbarClassName.Contains(undo)) - { - int first = toolbarClassName.IndexOf(undo); - toolbarClassName = toolbarClassName.Remove(first - 4, 8); - } - } - /// - /// This is used to remove the redo selection. - /// - public void RemoveRedo() - { - string redo = "redo"; - if (toolbarClassName.Contains(redo)) - { - int first = toolbarClassName.IndexOf(redo); - toolbarClassName = toolbarClassName.Remove(first - 4, 8); - } - } - /// - /// This is used to enable the toolbar items. - /// - public void UtilityMethods_enableToolbarItems(ObservableCollection SelectedObjects) - { - SfDiagramComponent diagram = Parent.Diagram; - removeClassElement(); - if (this.Parent.IsUndo) - { - toolbarClassName += " db-undo"; - } - if (this.Parent.IsRedo) - { - toolbarClassName += " db-redo"; - } - if (SelectedObjects.Count > 0) - { - Node rootNode = diagram.Nodes.Where(node => node.InEdges.Count == 0).ToList()[0]; - toolbarClassName = toolbarClassName + " db-child-sibling"; - addSiblingCssName = SelectedObjects[0].ID == rootNode.ID ? "tb-item-start tb-item-sibling" : "tb-item-start tb-item-child"; - } - StateHasChanged(); - } - /// - /// This is used to remove the toolbar items class name. - /// - public void removeClassElement() - { - string space = " "; - if (toolbarClassName.Contains(space)) - { - int first = toolbarClassName.IndexOf(space); - if (first != 0) - { - toolbarClassName = toolbarClassName.Remove(20); - } - } - - } - /// - /// This is used to remove the toolbar items. - /// - private async Task HideToolBar() - { -#pragma warning disable CA1307 // Specify StringComparison - if (MenuHideIconCss.Contains("sf-icon-Collapse")) -#pragma warning restore CA1307 // Specify StringComparison - { - MenuHideIconCss = "sf-icon-DownArrow tb-icons"; - } - else - { - MenuHideIconCss = "sf-icon-Collapse tb-icons"; - } - if (jsRuntime != null) - await jsRuntime.InvokeAsync("hideMenubar").ConfigureAwait(true); - } - - /// - /// This is used to remove the toolbar items. - /// - public async Task HideElements(string eventname, bool isNewClick = false) - { - if (jsRuntime != null) - { - int adjustableHeight = Parent.MenubarRef.WindowMenuItems[0].IconCss == "sf-icon-Selection" ? 0 : 40; - Parent.height = (await jsRuntime.InvokeAsync("UtilityMethods_hideElements", eventname, isNewClick).ConfigureAwait(true) + adjustableHeight).ToString() + "px"; - Parent.StateChanged(); - } - } - #endregion - } -#pragma warning restore BL0005 -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor deleted file mode 100644 index b66b2ff2..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor +++ /dev/null @@ -1,26 +0,0 @@ -@using BlazorDemos.Service -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.Inputs -@inject AzureAIService ChatGptService -@namespace TextToFlowchartDiagram - - - - -
AI Assist
- -

Suggested Prompts

- Flowchart diagram for Online shopping process - Flowchart diagram for Travel booking system - Flowchart diagram for Software development lifecycle - -
- - -
-
-
- -
- diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor.cs deleted file mode 100644 index 35a90768..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramOpenAI.razor.cs +++ /dev/null @@ -1,107 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using TextToFlowchartDiagram; - -namespace TextToFlowchartDiagram -{ - public partial class FlowchartDiagramOpenAI - { -#pragma warning disable CS8618 - public bool ShowAIAssistDialog = false; - public string OpenAIPrompt; - public TextToFlowchart Parent; - string ShoppingPrompt = "Online Shopping Process"; - string TravelBookingPrompt = "Travel Booking System"; - string SoftwareLifecyclePrompt = "Software Development Lifecycle"; -#pragma warning restore CS8618 - public void OnFabClicked() - { - ShowAIAssistDialog = !ShowAIAssistDialog; - } - private void DialogClose(Object args) - { - ShowAIAssistDialog = false; - } - public async void GenerateMindMap(string value) - { - OpenAIPrompt = value; - await GenerateDiagramFromAI(); - StateHasChanged(); - } - public async Task GenerateDiagramFromAI() - { - ShowAIAssistDialog = false; - Parent.IsGeneratingFromAI = true; - if (!string.IsNullOrWhiteSpace(OpenAIPrompt)) - { - await Parent.SpinnerRef.ShowAsync(); - string result = string.Empty; - string systemRole = "You are an expert assistant skilled in generating Mermaid flowchart diagram data based on user queries."; - - string userRole = $@"Create a Mermaid flowchart code for a process titled: {OpenAIPrompt}. The flowchart should include decision points with 'Yes' or 'No' branches. - -Use the format provided in the example below, adapting the steps, conditions, and styles to match the new title: - -**Example Title:** Bus Ticket Booking - -**Example Mermaid Code:** - - graph TD - A([Start]) --> B[Choose Destination] - B --> C{{Already Registered?}} - C -->|No| D[Sign Up] - D --> E[Enter Details] - E --> F[Search Buses] - C --> |Yes| F - F --> G{{Buses Available?}} - G -->|Yes| H[Select Bus] - H --> I[Enter Passenger Details] - I --> J[Make Payment] - J --> K[Booking Confirmed] - G -->|No| L[Set Reminder] - K --> M([End]) - L --> M - style A fill:#90EE90,stroke:#333,stroke-width:2px; - style B fill:#4682B4,stroke:#333,stroke-width:2px; - style C fill:#32CD32,stroke:#333,stroke-width:2px; - style D fill:#FFD700,stroke:#333,stroke-width:2px; - style E fill:#4682B4,stroke:#333,stroke-width:2px; - style F fill:#4682B4,stroke:#333,stroke-width:2px; - style G fill:#32CD32,stroke:#333,stroke-width:2px; - style H fill:#4682B4,stroke:#333,stroke-width:2px; - style I fill:#4682B4,stroke:#333,stroke-width:2px; - style J fill:#4682B4,stroke:#333,stroke-width:2px; - style K fill:#FF6347,stroke:#333,stroke-width:2px; - style L fill:#FFD700,stroke:#333,stroke-width:2px; - style M fill:#FF6347,stroke:#333,stroke-width:2px; - -**Instructions:** Ensure the generated flowchart code is specific to the title '{OpenAIPrompt}' and adheres to the provided format. Do not include any additional text, explanations, or comments—only the Mermaid flowchart code."; - - result = await ChatGptService.GetCompletionAsync(userRole, false, false, systemRole); - List lines = result.Split(new[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList(); - lines = lines.Where(line => !line.Contains("```")).ToList(); - int startIndex = lines.FindIndex(line => line.Trim().StartsWith("graph TD")); - if (startIndex != -1) - { - List validMermaidData = lines.Skip(startIndex).ToList(); - result = string.Join(Environment.NewLine, validMermaidData); - await Parent.Diagram.LoadDiagramFromMermaidAsync(result); - } - else - await GenerateDiagramFromAI(); - StateHasChanged(); - await Parent.SpinnerRef.HideAsync(); - } - Parent.IsGeneratingFromAI = false; - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor b/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor deleted file mode 100644 index 2f5a929b..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor +++ /dev/null @@ -1,52 +0,0 @@ -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.SplitButtons -@namespace TextToFlowchartDiagram - -
- - - - - - - - - - - - - - - - - - - -
- - - diff --git a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor.cs b/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor.cs deleted file mode 100644 index 046c57c2..00000000 --- a/Common/Pages/AISamples/DiagramComponent/Helpers/FlowchartDiagramToolbar.razor.cs +++ /dev/null @@ -1,141 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using BlazorDemos.Model; -using Microsoft.AspNetCore.Components; -using Microsoft.JSInterop; -using Syncfusion.Blazor.Diagram; -using System; -using System.Threading.Tasks; - -namespace TextToFlowchartDiagram -{ - public partial class FlowchartDiagramToolbar - { -#pragma warning disable CS8618 - public TextToFlowchart Parent; - public string ZoomItemDropdownContent = "100%"; - [Inject] - protected IJSRuntime jsRuntime { get; set; } -#pragma warning restore CS8618 - private async Task ToolbarEditorClick(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - var value = args.Item.TooltipText; - switch (value) - { - case "New Diagram": - Parent.Diagram.Clear(); - SetElements(); - break; - case "Open Diagram": - await LoadDiagram(); - break; - case "Save Diagram": - string fileName = "Flow Chart"; - await Download(fileName); - break; - case "Print Diagram": - DiagramPrintSettings print = new DiagramPrintSettings(); - await Parent.Diagram.PrintAsync(print); - break; - case "Pan": - Parent.DiagramTool = DiagramInteractions.ZoomPan; - break; - case "Select": - Parent.DiagramTool = DiagramInteractions.SingleSelect | DiagramInteractions.MultipleSelect; - break; - } - Parent.StateChanged(); - } - - private async void SelectedItem(Syncfusion.Blazor.SplitButtons.MenuEventArgs args) - { - var value = args.Item.Text; - switch (value) - { - case "JPG": - case "PNG": - case "SVG": - await Export(value); - break; - } - } - - private void SelectedZoomItem(Syncfusion.Blazor.SplitButtons.MenuEventArgs args) - { - var value = args.Item.Text; - var currentZoom = Parent.Diagram.ScrollSettings.CurrentZoom; - switch (value) - { - case "Zoom In": - case "Zoom Out": - var ZoomFactor = 0.2; - ZoomFactor = value == "Zoom Out" ? 1 / (1 + ZoomFactor) : (1 + ZoomFactor); - Parent.Diagram.Zoom(ZoomFactor, null); - break; - case "Zoom to Fit": - FitOptions fitoption = new FitOptions() - { - Mode = FitMode.Both, - Region = DiagramRegion.Content, - }; - Parent.Diagram.FitToPage(fitoption); - break; - case "Zoom to 50%": - ZoomFactor = 0.5 / currentZoom; - Parent.Diagram.Zoom(ZoomFactor, null); - break; - case "Zoom to 100%": - ZoomFactor = 1 / currentZoom; - Parent.Diagram.Zoom(ZoomFactor, null); - break; - case "Zoom to 200%": - ZoomFactor = 2 / currentZoom; - Parent.Diagram.Zoom(ZoomFactor, null); - break; - } - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(Parent.Diagram.ScrollSettings.CurrentZoom * 100)}") + "%"; - } - - public void RefreshToolbar() - { - StateHasChanged(); - } - public void SetElements() - { - Parent.Diagram.ClearHistory(); - Parent.Diagram.ResetZoom(); - StateHasChanged(); - } - - public async Task LoadDiagram() - { - Parent.Diagram.BeginUpdate(); - Parent.ExtensionType = ".json"; - await FileUtil.Click(jsRuntime); - await Parent.Diagram.EndUpdateAsync(); - } - - public async Task Download(string fileName) - { - string data = Parent.Diagram.SaveDiagram(); - await FileUtil.SaveAs(jsRuntime, data, fileName); - } - - private async Task Export(string value) - { - DiagramExportSettings export = new DiagramExportSettings(); - export.FitToPage = true; - if (value == "JPG") - await Parent.Diagram.ExportAsync("Diagram", DiagramExportFormat.JPEG, export); - else if (value == "PNG") - await Parent.Diagram.ExportAsync("Diagram", DiagramExportFormat.PNG, export); - else if (value == "SVG") - await Parent.Diagram.ExportAsync("Diagram", DiagramExportFormat.SVG, export); - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/SampleList.cs b/Common/Pages/AISamples/DiagramComponent/SampleList.cs deleted file mode 100644 index 198afffe..00000000 --- a/Common/Pages/AISamples/DiagramComponent/SampleList.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using System.Collections.Generic; - -namespace BlazorDemos -{ - internal partial class SampleConfig - { - public List AIDiagram { get; set; } = new List{ - - new Sample - { - Name = "Text to Flowchart", - Category = "Diagram", - Directory = "AISamples/DiagramComponent", - Url = "ai-diagram/text-to-flowchart", - FileName = "TextToFlowchart.razor", - NotificationDescription = new string[]{ @" This demo shows the smart AI feature in diagram component." } - }, - new Sample - { - Name = "Text to MindMap", - Category = "Diagram", - Directory = "AISamples/DiagramComponent", - Url = "ai-diagram/text-to-mindmap", - FileName = "TextToMindMap.razor", - NotificationDescription = new string[]{ @" This demo shows the smart AI feature in diagram component." } - } - }; - } -} \ No newline at end of file diff --git a/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor b/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor deleted file mode 100644 index 3acc59be..00000000 --- a/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor +++ /dev/null @@ -1,532 +0,0 @@ -@page "/ai-diagram/text-to-flowchart" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Spinner -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.SplitButtons -@using Syncfusion.Blazor.Inputs -@using System.Text.RegularExpressions -@namespace TextToFlowchartDiagram -@using BlazorDemos.Service -@using BlazorDemos.Model -@inject AzureAIService ChatGptService -@implements IDisposable - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@inject NavigationManager NavigationManager -@*End:Hidden*@ - - -

- This demo illustrates the creation of a flowchart diagram using the Blazor Diagram Component with the assistance of AI. The AI-powered flowchart is structured with nodes and connectors arranged in a flowchart layout, designed to visually represent processes and workflows. This sample is particularly effective for visualizing step-by-step procedures, workflows, and decision-making paths in a clear and interactive manner. -

-

To explore this and more Syncfusion Blazor Smart AI integrations locally, check out our GitHub repository.

-
- - -

- This sample leverages a specialized AI prompt to create a dynamic flowchart diagram by submitting a request to OpenAI. The AI-generated response is parsed to produce nodes and connectors arranged in a flowchart layout, visually representing the defined processes or workflows. Users can generate and visualize the flowchart content based on their input prompt, creating an interactive and organized depiction of processes and decision-making paths. -

-
- -@*Hidden:Lines*@ - -@*End:Hidden*@ - -
-
-
-
-
-
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
-
-
- - -@code{ - private int connectorCount = 0; - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent Diagram; - public SfSymbolPaletteComponent PaletteInstance; - public bool IsDiagramLoading = false; - public bool InitialRendering = true; - public SfSpinner SpinnerRef; - public FlowchartDiagramOpenAI DiagramOpenAIRef; - public FlowchartDiagramToolbar ToolbarRef; - int HorizontalSpacing = 30; - int VerticalSpacing = 30; - public bool IsPasteObject = false; - public string ExtensionType = ".json"; - public bool IsGeneratingFromAI = false; - public DiagramInteractions DiagramTool; - DiagramObjectCollection handles = new DiagramObjectCollection(); - //Defines Diagram's nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - //Defines Diagram's connectors collection - private DiagramObjectCollection connectors = new DiagramObjectCollection(); - //Define palettes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - // Defines palette's flow-shape collection - private DiagramObjectCollection flowShapeSymbols = new DiagramObjectCollection(); - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } = new double[] { }; - // Defines palette's connector collection - private DiagramObjectCollection connectorSymbols = new DiagramObjectCollection(); - //Reference to uploder - SfUploader uploadFiles; - bool CanUpdateStyle = false; - - [Inject] - protected IJSRuntime jsRuntime { get; set; } -#pragma warning restore CS8618 - - private void Created() - { - InitialRendering = false; - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - if (DiagramOpenAIRef != null) - DiagramOpenAIRef.Parent = this; - if (ToolbarRef != null) - ToolbarRef.Parent = this; - } - PaletteInstance.Targets = new DiagramObjectCollection - { - Diagram - }; - } - List undoStack = new List(); - List redoStack = new List(); - - private void OnHistoryChange(HistoryChangedEventArgs arg) - { - if (arg.ActionTrigger == HistoryChangedAction.CustomAction) - { - if (redoStack.Count > 0) - { - redoStack.Clear(); - } - - if (arg.EntryType != HistoryEntryType.PropertyChanged) - { - string entryLog = arg.EntryType.ToString(); - undoStack.Add(entryLog); - } - } - else if (arg.ActionTrigger == HistoryChangedAction.Redo && redoStack.Count > 0) - { - undoStack.Add(redoStack[^1]); - redoStack.RemoveAt(redoStack.Count - 1); - } - else if (arg.ActionTrigger == HistoryChangedAction.Undo && undoStack.Count > 0) - { - redoStack.Add(undoStack[^1]); - undoStack.RemoveAt(undoStack.Count - 1); - } - } - private void DragDropEvent(DropEventArgs args) - { - CanUpdateStyle = true; - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector && connector.Tooltip != null) - { - connector.Tooltip = null; - connector.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - private void ContextMenuItemClickHandler(DiagramMenuClickEventArgs args) - { - if (args.Item.Text == "Paste") - { - IsPasteObject = true; - } - } - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 -}; - InitDiagramModel(); - InitPaletteModel(); - - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - CreateNode("node1", 40, 120, NodeFlowShapes.Terminator, "Start", "#8E44CC"); - CreateNode("node2", 50, 150, NodeFlowShapes.Process, "Open the browser and go to Amazon site", "#1759B7"); - CreateNode("node3", 80, 150, NodeFlowShapes.Decision, "Already a customer?", "#2F95D8"); - CreateNode("node4", 50, 150, NodeFlowShapes.Process, "Create an account", "#70AF16"); - CreateNode("node5", 50, 150, NodeFlowShapes.Process, "Enter login information", "#70AF16"); - CreateNode("node6", 50, 150, NodeFlowShapes.Process, "Search for the book in the search bar", "#1759B7"); - CreateNode("node7", 50, 150, NodeFlowShapes.Process, "Select the preferred book", "#1759B7"); - CreateNode("node8", 80, 150, NodeFlowShapes.Decision, "Is the book new\n or used?", "#2F95D8"); - CreateNode("node9", 50, 150, NodeFlowShapes.Process, "Select the new book", "#70AF16"); - CreateNode("node10", 50, 150, NodeFlowShapes.Process, "Select the used book", "#70AF16"); - CreateNode("node11", 50, 155, NodeFlowShapes.Process, "Add to Cart & Proceed to Checkout", "#1759B7"); - CreateNode("node12", 50, 155, NodeFlowShapes.Process, "Enter shipping and payment details", "#1759B7"); - CreateNode("node13", 100, 180, NodeFlowShapes.Decision, "Is the information correct?", "#2F95D8"); - CreateNode("node14", 50, 150, NodeFlowShapes.Process, "Review and place the order", "#1759B7"); - CreateNode("node15", 40, 120, NodeFlowShapes.Terminator, "End", "#8E44CC"); - CreateConnector("node1", "node2"); - CreateConnector("node2", "node3"); - CreateConnector("node3", "node4", "No"); - CreateConnector("node3", "node5", "Yes"); - CreateConnector("node4", "node6"); - CreateConnector("node5", "node6"); - CreateConnector("node6", "node7"); - CreateConnector("node7", "node8"); - CreateConnector("node8", "node9", "Yes"); - CreateConnector("node8", "node10", "No"); - CreateConnector("node9", "node11"); - CreateConnector("node10", "node11"); - CreateConnector("node11", "node12"); - CreateConnector("node13", "node12", "False"); - CreateConnector("node12", "node13"); - CreateConnector("node13", "node14", "True"); - CreateConnector("node14", "node15"); - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - flowShapeSymbols = new DiagramObjectCollection(); - CreatePaletteNode(NodeFlowShapes.Terminator, "Terminator"); - CreatePaletteNode(NodeFlowShapes.Process, "Process"); - CreatePaletteNode(NodeFlowShapes.Decision, "Decision"); - CreatePaletteNode(NodeFlowShapes.Document, "Document"); - CreatePaletteNode(NodeFlowShapes.PreDefinedProcess, "Pre-Defined Process"); - CreatePaletteNode(NodeFlowShapes.PaperTap, "Punched Tape"); - CreatePaletteNode(NodeFlowShapes.DirectData, "Direct Data"); - CreatePaletteNode(NodeFlowShapes.SequentialData, "Sequential Data"); - CreatePaletteNode(NodeFlowShapes.Sort, "Sort"); - CreatePaletteNode(NodeFlowShapes.MultiDocument, "Multi-Document"); - CreatePaletteNode(NodeFlowShapes.Collate, "Collate"); - CreatePaletteNode(NodeFlowShapes.SummingJunction, "Summing Junction"); - CreatePaletteNode(NodeFlowShapes.Or, "OR"); - CreatePaletteNode(NodeFlowShapes.InternalStorage, "Internal Storage"); - CreatePaletteNode(NodeFlowShapes.Extract, "Extract"); - CreatePaletteNode(NodeFlowShapes.SequentialAccessStorage, "Sequential Access Storage"); - CreatePaletteNode(NodeFlowShapes.Annotation, "Annotation"); - CreatePaletteNode(NodeFlowShapes.Data, "Data"); - CreatePaletteNode(NodeFlowShapes.Card, "Card"); - CreatePaletteNode(NodeFlowShapes.Delay, "Delay"); - - connectorSymbols = new DiagramObjectCollection(); - CreatePaletteConnector("Orthogonal With Arrow", ConnectorSegmentType.Orthogonal, DecoratorShape.Arrow); - CreatePaletteConnector("Orthogonal", ConnectorSegmentType.Orthogonal, DecoratorShape.None); - CreatePaletteConnector("Straight With Arrow", ConnectorSegmentType.Straight, DecoratorShape.Arrow); - CreatePaletteConnector("Straight", ConnectorSegmentType.Straight, DecoratorShape.None); - CreatePaletteConnector("Bezier", ConnectorSegmentType.Bezier, DecoratorShape.None); - - palettes = new DiagramObjectCollection() - { - new Palette() {Symbols = flowShapeSymbols, Title = "Flow Shapes", ID = "Flow Shapes", IconCss = "e-ddb-icons e-flow"}, - new Palette() {Symbols = connectorSymbols, Title = "Connectors", IsExpanded = true, IconCss = "e-ddb-icons e-connector"}, - }; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = (Node)obj; - if (!InitialRendering && !IsPasteObject && !IsDiagramLoading) - { - if (IsGeneratingFromAI) - { - node.Height = 60; - node.Width = 145; - } - else if (CanUpdateStyle) - { - node.Style.Fill = "#357BD2"; CanUpdateStyle = false; - } - node.Style.StrokeColor = "White"; - } - if (IsPasteObject) IsPasteObject = false; - } - private void OnConnectorCreating(IDiagramObject obj) - { - if (obj != null) - { - Connector connector = (Connector)obj; - - if (IsGeneratingFromAI) - { - connector.Type = ConnectorSegmentType.Orthogonal; - } - else if (!IsDiagramLoading && !IsPasteObject) - { - connector.Style.Fill = "black"; - connector.Style.StrokeColor = "black"; - connector.Style.Opacity = 1; - connector.TargetDecorator.Style.Fill = "black"; - connector.TargetDecorator.Style.StrokeColor = "black"; - } - if (IsPasteObject) IsPasteObject = false; - } - } - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeFlowShapes flowShape, string id) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node diagramNode = new Node() - { - ID = NodeID, - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = flowShape }, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - if (isSpace) - { - diagramNode.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramNode.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - if (id == "Terminator" || id == "Process") - { - diagramNode.Width = 80; - diagramNode.Height = 40; - } - else if (id == "Decision" || id == "Document" || id == "PreDefined Process" || - id == "Punched Tape" || id == "Direct Data" || id == "MultiDocument" || id == "Data") - { - diagramNode.Width = 50; - diagramNode.Height = 40; - } - else - { - diagramNode.Width = 50; - diagramNode.Height = 50; - } - double oldWidth = Convert.ToDouble(diagramNode.Width); - double oldHeight = Convert.ToDouble(diagramNode.Height); - double ratio = 100 / oldWidth; - diagramNode.Width = 100; - diagramNode.Height *= ratio; - flowShapeSymbols.Add(diagramNode); - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string sourceId, string targetId, string label = "", bool isDashLine = false, string sport = "", string tport = "") - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++connectorCount), - SourceID = sourceId, - TargetID = targetId, - }; - if (isDashLine) - { - diagramConnector.Style = new ShapeStyle() { StrokeDashArray = "2,2" }; - } - if (label != default(string)) - { - var annotation = new PathAnnotation() - { - Content = label, - Style = new TextStyle() { Fill = "white" } - }; - if ((sourceId == "node5" && targetId == "node6") || label == "Yes" || label == "No") - { - annotation.Height = 10; - annotation.Width = 15; - } - diagramConnector.Annotations = new DiagramObjectCollection() { annotation }; - } - diagramConnector.Type = ConnectorSegmentType.Orthogonal; - - connectors.Add(diagramConnector); - } - // Method is used to create a node for the diagram. - private void CreateNode(string id, double height, double width, NodeFlowShapes shape, string label, string fillColor) - { - Node diagramNode = new Node() - { - ID = id, - Width = width, - Height = height, - Style = new ShapeStyle { Fill = fillColor, StrokeColor = "White" }, - - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = shape }, - Annotations = new DiagramObjectCollection - { - new ShapeAnnotation - { - Content = label, Width = width - 20, - Style = new TextStyle() - { - Color="White", Fill = "transparent" - } - } - } - }; - nodes.Add(diagramNode); - } - // Method is used to create a Connector for the palette. - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DecoratorShape decoratorShape) - { - string connectorID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - connectorID = id.Replace(" ", ""); - } - Connector diagramConnector = new Connector() - { - ID = connectorID, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575" }, - TargetDecorator = new DecoratorSettings() - { - Shape = decoratorShape, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575", Fill = "#757575" } - } - }; - if (isSpace) - { - diagramConnector.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramConnector.Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip; - } - connectorSymbols.Add(diagramConnector); - } - - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - public async Task OnUploadFileSelected(UploadingEventArgs args) - { - if (args.FileData.Type == "json") - { - IsDiagramLoading = true; - string json = await FileUtil.LoadFile(jsRuntime, args.FileData); - json = json.Replace(System.Environment.NewLine, string.Empty); - await Diagram.LoadDiagramAsync(json.ToString()); - await uploadFiles.ClearAllAsync(); - IsDiagramLoading = false; - } - } - private void ScrollChanged(ScrollChangedEventArgs args) - { - if (ToolbarRef != null) - { - ToolbarRef.ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(Diagram.ScrollSettings.CurrentZoom * 100)}") + "%"; - ToolbarRef.RefreshToolbar(); - } - } - public void StateChanged() - { - StateHasChanged(); - } -public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - } - if (connectors != null) - { - connectors.Clear(); - } -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - } -#pragma warning restore BL0005 - if (flowShapeSymbols != null) - { - flowShapeSymbols.Clear(); - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - } - if (connectorSymbols != null) - { - connectorSymbols.Clear(); - } - } -} diff --git a/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor.css b/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor.css deleted file mode 100644 index 310c2697..00000000 --- a/Common/Pages/AISamples/DiagramComponent/TextToFlowchart.razor.css +++ /dev/null @@ -1,284 +0,0 @@ -/* https://fonts.google.com/specimen/Roboto?selection.family=Lato|Roboto */ -/* Dialog Customization start */ - -.e-dialog.custom-dialog .e-dlg-header-content + .e-dlg-content { - padding: 16px; -} - - .e-dialog.custom-dialog .e-dlg-header-content + .e-dlg-content input[type="text"]:not(.e-dropdownbase):not(.db-layer-edit):not(.e-input) { - width: 100%; - height: 28px; - font-weight: normal; - text-indent: 5px; - border: 1px solid #D5D5D5; - } - -.db-dialog-child-prop-row { - margin-top: 6px; -} - -.db-dialog-prop-row { - margin-top: 8px; -} - -.e-dialog .e-dlg-header-content { - height: 36px; - border-bottom: 1px solid #D5D5D5; -} - -#db-send:hover { - cursor: pointer; - fill: #102C57; -} - -@font-face { - font-family: 'All icons Metrop'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj1tSkgAAAEoAAAAVmNtYXDun++7AAAC4AAAAOJnbHlmQtm8HQAABHgAAEbwaGVhZCRizw8AAADQAAAANmhoZWEIVQRZAAAArAAAACRobXR4YAAAAAAAAYAAAAFgbG9jYRnZCDwAAAPEAAAAsm1heHABbAFIAAABCAAAACBuYW1lQ6HKuAAAS2gAAAKRcG9zdPUSX4IAAE38AAAEUgABAAAEAAAAAFwEAAAAAAAD+AABAAAAAAAAAAAAAAAAAAAAWAABAAAAAQAABme3XF8PPPUACwQAAAAAAOCmRQ0AAAAA4KZFDQAAAAAD+AP4AAAACAACAAAAAAAAAAEAAABYATwACgAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQQAAZAABQAAAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5wDnVgQAAAAAXAQAAAAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAzgAAAAQABAABAADnVv//AADnAP//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAAAAAAAAAdgDUAcoC9gMUA6wEZASQBSAFlgY0BpwHEgcoB5QH1ghACGgIogluCcYJ2gruCxAMLAw6DFIMYAz4DQ4NLA16DY4NnA3kDkoOYg58DtYPdA+CD8IQtBHIEdYSPhLoE1ATuBPgE/gVEhUqFZYVphW8FjAWUhZmF1AYBhgeGEQYbhiCGOYZCBp6GvAcPBy6HQAdxh54HwwfsCBOIGIgqCD2IU4hiCIwItgi/CNII3gAAAACAAAAAAN2A/MAAwBlAAA3ITUhExUfHD8cNREjEQ8PLw8RI4kC7v0SPwICAwMEBQYGBwgJCQoKDBcYDAwNDQ0NDg8PEBARERAQDw4ODg0NDQwMDBcXCwoJCQcIBgYEBQMDAgJ9AQMFBgcKCg0NDw8QERISFBQSEhEQDw8NDQsJBwYFAwF9DH0BrhIREBEQDw8PDw4NDg0MDQwWEwkICAYGBgQEBAICAQECAgQEBAYGBggICQkVFw0MDQ4NDg8PDw8QERAREgG9/kMUExISEBAQDg0LCggGBAMBAQMEBggKCw0OEBAQEhITFAG9AAIAAAAAA/MDVwAEAEgAAAEhNxc3JQ8HER8PIT8PES8PIQ8GA179Ra5/rf2rBgYFBAMCAQEBAQIDBAUGBggHCAkJCgkLAyILCQoJCQgHCAYGBQQDAgEBAQECAwQFBgYIBwgJCQoJC/zeCwkKCQgJBwEl4pbh6gcICAgJCQoK/hIKCgkJCAgIBwYGBQQDAgEBAQECAwQFBgYHCAgICQkKCgHuCgoJCQgICAcGBgUEAwIBAQEBAgMEBQYAAAAABAAAAAADhgPzAD8AQwBnANQAAAEPBh0BHw07AT8NPQEvDSsBDwUlESERAR8IFSE1Pw8fBicPCysBDw4RHw8hPw8RLw4rAT0BLxEPBgG+BgUFAwMCAgICAwMFBQYHBwgICAkJCgoJCQgICAcHBgUFBAMCAQECAwQFBQYHBwgICAkJCgoJCQgICAcBZP2uAYwFBAgHBgUDAgL+5wECBAUGBwkJCgsMDA0ODg4PDQ0MDAsK/AgIBwcGBQUJBgUCAz4KCQkICAgHBwYGBAQDAwEBAQEDAwQEBgYHBwgICAkJCgJQCgkJCAgIBwcGBgQEAwMBAQEBAwMEBAYGBwcICAgJCQo+AwQHCQoGBwcHCBISExQVFhcYGBcWFRQTEgGPBwcICAgJCgoJCgkICQcIBgcFBQQDAwICAwMEBQUHBggHCQgJCgkKCgkICAgHBwcFBQMDAgICAgMDBQWp/isB1AEvBgUNDg8PEBAPXl4PEBAPDw4NCwkIBwYFAwIBAQIDBQYHCDkICgkLCgsMGBgZGWoBAgMEBQUGBwcICAgJCQr+KQoJCQkIBwcHBgYEBAMCAQEBAQIDBAQFBwYIBwgJCQkKAdcJCgkICAgHBwYFBQQCAgJeDBkZGBgXCgoKCQkQDQwJCAYDAgIDBgcKDA0AAgAAAAAD8wPzAH8BEAAAARUPHSsBLx4/Hx8eBR8fMz8OAR8CMz8GNS8CAT8OPQEvHg8eAuQBAwIEBAUGBgcICAkKCgoLDAwMDQ4NDg8PDw8QEBAQERAQDxAPDw4ODg0NDQwLCwsKCQkJBwcHBQUFAwMCAQEBAQIDAwUFBQcHBwkJCQoLCwsMDQ0NDg4ODw8QDxAQERAQEBAPDw8PDg0ODQwMDAsKCgoJCAgHBgYFBAQCAwH9KAEBAwQEBgYHCQkKCgwMDQ0PDhAQEREREhMTExQUFRUVERIREhAREBEPEA8PDg4OEAEFBwgJCQgICAcFAwICAwX++w0JCQgIBwcGBQUEAwMCAQIDAwUFBwcICQoLCw0MDg4PEBAQERISExMTFBQVFBUVFRUUFBMTExIREREQEA4PDQ0MDAoKCQkHBgYEBAMBAloQEBAQDw8PDg8NDg0MDAwLCgoKCQgIBwYGBQQEAgICAgICBAQFBgYHCAgJCgoKCwwMDA0ODQ8ODw8PEBAQEBEQEBAPDw8ODg4NDQ0MCwwKCgoICQcHBwYFBAMDAgEBAQECAwMEBQYHBwcJCAoKCgwLDA0NDQ4ODg8PDxAQEBEVFBUUFBMTExISERAQEA8ODgwNCwsKCQgHBwUFAwMBAQIBAwMEBQUGBwcICAkJDf77BQMCAgMFBwcJCAkJCAcBBRAODg4PDxAPERAREREREhEVFRUUFBMTExIREhAQEA8ODQ0MDAoKCQkHBgYEBAMBAQEBAwQEBgYHCQkKCgwMDQ0ODxAQEBIREhMTExQUFRUAAAAAAgAAAAAD8wPzAAkADQAAATMRITUjFSERIwEhESEDGX3+DF0Cr9v88wKv/VECXv4MfdsCr/6KAq8AAAAAAQAAAAADxAPzAIUAABMfDjsBPw4zETMfDz8PLw4rAQ8OIxEjLw8PDjsBAgMFBgcICQoLDAwNDQ4PCwsLCgoKCQkICAgGBgYFBIXjBAUGBgYICAgJCQoKCgsLCw8ODQ0MDAsKCQgHBgUDAgEBAgMFBgcICQoLDAwNDQ4PCwsLCgoKCQkICAgGBgYFBIXjBAUGBgYICAgJCQoKCgsLCw8ODQ0MDAsKCQgHBgUDAgNnDg4ODQwLCwoJCAcGBQQCAQIDBAUFBgYHCAgICQoL/TIMCQkJCAcHBwYFBAQDAgEBAQIEBAYHCAkKCwwMDQ0ODw4ODg0MCwsKCQgHBgUEAgECAwQFBQYGBwgICAkKCwLODAkJCQgHBwcGBQQEAwIBAQECBAQGBwgJCgsMDA0NDgAAAAMAAAAAA3MD8wAiAEUAoAAAATMfDR0BDw4jNRMfDw8PIzUDIT8YLw8/Dy8eIQJACwsKCgkJCAcHBgYEAwICAgIDBAYGBwcICQkKCgsL+NMMCgsJCggJBwcGBQQEAgEBAQECBAQFBgcHCQgKCQsKDNO7AecbDQ0MDAwLDAoLCgoKCQkRDgcGBQUIBwQBAQIEBQUHCAoKCwwNDQ8QEA0LDAoKCggIBwcFBAQCAQEBAwIDBAQEBgUHBwcICQkKCgoLCwsMDAwNDQ4NDg8P/lABogICAwUFBgcICQkJCgoLDAsLCgoJCQgICAYGBAQDAgHaAbYBAQMDBAYGBwgJCAoKCgsLCwsLCQoJCAgHBwUFBAMCAdv8tAICAwMDBAUFBgcHBwgJChMVCwsMDBgaGhwUExMTEhEREBAPDg0MCgoJCgoKCwwMDA0ODQ0ODQ4NDRAdDg4ODQ0NDAwLDAoLCgoJCQgHBwYFBQUDAwMCAQEAAAAABgAAAAAD5APkAAMABwALAA8AEwAXAAABFSM1AyERIQczNSM3MzUjJxUjNQMhESEDhvleAbX+S/qcnPqcnLz5XgG1/ksBc/n5/qkBtZycXpy7+fn+qQG1AAIAAAAAA/MD8wADAHsAAAEVITUHHx47AT8HFxUBNwEjJz8HLx8PHgIf/mp9AQECAwQFBQYHCAgJCgoKDAwMDQ4ODg8PEBAQERERERIOGxsZGRkXFg8tATNl/s0dKxENCwkHBQMCAQECAwQFBQYHCAgJCgoLCwwMDQ4ODg8PEBAQERERERISERERERAQEA8PDg4ODQwMCwsKCgkICAcGBQUEAwIBArtdXR8REhERERAQEA8PDg4NDQ0MCwsKCgkICAYHBQUDAwMBAgQGCQoLDgorHf7NZQEzLRoXFxkZGxsbEhESEBEQEBAPDw4ODg0MDAwKCwkJCAgHBgUFBAMCAQEBAQIDBAUFBgcICAkJCwoMDAwNDg4ODw8QEBAREBIRAAEAAAAAA/MC5ABkAAATDw8XPx47AR8OBwUTBy8PDw6qEA4ODgwMCwoJCQgHBwYFBF0DBQQGBQcHCAgJCQoKCwwMDQ0NDg4ODw8QDxAREBESEhkYGBcXFxUVFRMTERAPDw2yAUNJixERExUVFxgZGxsbHR0eHx8XFRUVFRQTFBMSEhIRERACdQ4ODw8QEBASERITExMUFRUPERAQEA8PDw4NDg0MDAwLCwsJCQkIBwYGBQUEAwICAgMDBgYICgsNDQ4QERETFHBLAURYGBgWFBQSEQ8ODAsIBwUDAgECAgQEBQYGCAgJCgoMDAAAAQAAAAADhgPzAIkAAAEPBzM/DjsBHw4VISMPDRURFR8OIT8ONRE1Lw0rATUvEQ8GAVsODAoKBwYFA18CAwQEBQYHBwoLCw0MDg4ODw4NDQwLCwoJCAcGBQMCAv5KDAkJCAcIBwYGBQUEAwICAgIDBAUFBgYHCAcICQkJAlgJCQkIBwgHBgYFBQQDAgICAgQDBQUGBgcIBwgJCQlCAQQFCAoLBwcICBESExQWFhcYGBcWFRUTEgOtDxEREhQTFRUMCwwKCgoJCQkJBwYEBAICBAQGBwkJCwwNDg8PDxBhAQMCBAUFBgcHCAgICQoJ/ikKCQkJCAcIBgcFBAQDAgEBAQECAwQEBQcGCAcICQkJCgHXCQoJCAgIBwcGBQUEAgMBYRkZFxcWFQkKCQkQDgwKCAUEAgIEBQgKDA4AAAMAAAAAA/MD8wAkAEkATQAAAQ8DFREVHwYzPwcRLwcjDwIFDwMVERUfBjM/BxEvByMPAichNSECSgMCBAICBAUGBwgIpgkHBwcFBAMBAQMEBQcGCAmlCQgH/oMCAwMDAwMFBwcHCaYICAcGBQQDAgIDBAUGBwgIpgkHB84D6PwYAu4DAwcICP5eCAgHBgUEAgEBAgQFBgcICAGiCAgHBgUEAgEBAgQFAwMHCAj9ZAgIBwYFBAIBAQIEBQYHCAgCnAgIBwYFBAIBAQIEhH0AAAADAAAAAAO1A/MAAwBHAF0AAAERIREnDwcRHw8hPw41ETUvDSMhIw8FJw8GFREzESE1IQ8GA1j+DEMGBgQEAwIBAQEBAgMEBAYGBwcICAgJCQkB9wkKCAkIBwgGBwUFBAMCAQECAwQFBQcGCAcICQgKCf4JCQkJCAgIB8QGBQUDAwIBXQIT/egJCQkIBwgHAtv9jwJxRAcHBwgICAkJ/YcJCQkIBwgHBgYFBQQDAgIBAQICAwQFBQYGBwgHCAkJCQJ5CQkICAgHBwcGBQQEAwIBAQIDBAQFsgYIBwgICQkK/Y8CcV4BAgIDBAUFAAIAAAAAA/MDtwADAAcAAAERIREDIREhA5n8zlsD6PwYA1z9SAK4/O0DbgAABAAAAAAD8wPEAAMAJABMAFAAAAEVITUlHwQPBy8HPwcfAiUPBxEzFSE1MxEvDyEPBjchNSEC2/5KAlwDAwQDAQEDBAYICAkKCgoIBwcEAwEBAwQHBwgKCgoJCPy+CgkHBgUDAgHbAlG8AQIDBQYHCAoLDAwODQ8PEP1EEA8ODg0NDKYCUf2vAZP6+sEDBAkJCgoJCQcGBQIBAQIFBgcJCQoKCQkHBgUCAQECBUgLCwwNDQ4PEP7d29sBIxAPDg0NDAsLCggHBgQDAgEBAgMEBgcIXrsAAAAAAwAAAAADtQPzACQAKAAsAAABDwQRHwczPwcRLwcjDwIBMxEjATMRIwGPAwIEAgEBAgQFBgcICKYICAcGBQUCAgIDBAUGBwgIpggIBwGjfX39E319A2sDAwcICP1kCAgHBgUEAgEBAgQFBgcICAKcCAgHBgUEAgEBAgT8nAPo/BgD6AAAAQAAAAADdgPzAFQAAAEjDwcVHwczFSEPBxUfByEVMzUhPwc1LwMVLwMhNTM/BzUvByM1IwHBkggIBwYFBAIBAQIEBQYHCAiS/vEICAcGBQQCAQECBAUGBwgIARB8ARAICAcGBQQCAQECBAUGBwgI/vCTCAgHBgUEAgEBAgQFBgcICJN9AzkCAwQFBgcICKYJBwcGBQQCAX0CAwQFBgcICKYICAcGBQQCAby8AQIDBQcHBwmrCQgHBgYFBAMCfAECBAUGBwgIpgkHBwcFBAMBvAAAAAADAAAAAAPkA+QACQANABcAAAEzFSM1IxUhESMFIREhBTM1IzUzFTM1IQMpXfleAbW7/gwBlv5q/ue7Xfle/ksBc/lduwG1nAGWnF75XbsAAAIAAAAAA4YD8wAjACsAADcVHw4hPw8RITcjFSE1IychuAICBAQGBggICQkJCgsLCwG0CwsKCgoJCQgHBwUFAwMBAf1whMIDDMQ5/ux9DAsLCgoJCQgIBgYFAwMBAQEBAwMFBgYICAkJCgoLCwwCnJxdXT8AAwAAAAADhgPzACsALwCuAAABIw8JFR8JMz8JLwklESERAQ8SMz8NMx8NFSEPDxEfCQU/CREvDisBPQEvEAH7BQkNDQsKCQcFBAECBAYICQsLDQ4OBRINDAsKCAcEAwEBAwQHCAoLDA0NAR/9rgEeDBcWFRQTChENCwcHBgUKBwYDAl4CBQcHBwkKCgwMDA0ODg8ODQ0MCwsPCQgHBgQFAv5LCgkJCQgHBwcGBgUDBAICAQIDBQcJCgoMDQ4CXw4NDQsKCQcGBAMBAgIEAwUGBgcHBwgJCQkKPgMEBwgLBgYHDBUSExQVFhcYAaoBBAUHCQsLDQ0ODw4NDAsKCQcFAwIEBAcICQsMDQ0PDw0NCwsKCAYEApX+KwHVAbQBAwYHCgsHDg0NCgoLCxcYGRkZFxgXDw0MCgkIBgUEAwICAwQFBggOCwwODxAYF10BAQIDBAQGBgYIBwgJCQkK/ikODg0LCwoHBgQCAQIDBQgJCgsNDRMB1woJCQgICAcHBgYEBAMCAV4MGRkZFxcLCgoNFA4LCgcGAwIABAAAAAAD8wPkAA8AFwAnAEcAAAEVMxEjFSE1IzUzFTM1IzUjFSMVIzUzNTcVMxUjNSMVMxUjNSMRMzUHMxEjFTM1MxUjFTM1IRUzNSMRMzUjFSM1MzUjFSE1IwMZPz/+yD992z9dP30/Pj992z9ePz/bPz/bXj/bATjbPz/bXT7b/sjbAk4+/uc/P10+2l5ePl4++j5ePtpePgEaPj7+5tofPts+PtsBGdo+Xds+PgABAAAAAAPzA4YABQAAAScHCQEnAUbpUQE6Aq5RAR7tUv7BArtRAAAAAgAAAAAD8wN6AH8A/wAAAQ8fLx8/Hx8eBR8fPx8vHw8eA5kBAQMDBQYGBwgKCQsLDQwODg8PERAREhITExMUFBQVFRUVFBQUExMTEhIREBEPDw4ODA0LCwkKCAcGBgUDAwEBAQEDAwUGBgcICgkLCw0MDg4PDxEQERISExMTFBQUFRUVFRQUFBMTExISERARDw8ODgwNCwsJCggHBgYFAwMB/HQBAgMEBgcICQoLDA0ODhARERITFBQVFhYWGBcYGRkZGhoZGRkYFxgWFhYVFBQTEhEREA4ODQwLCgkIBwYEAwIBAQIDBAYHCAkKCwwNDg4QERESExQUFRYWFhgXGBkZGRoaGRkZGBcYFhYWFRQUExIRERAODg0MCwoJCAcGBAMCAgAPDg8ODg0ODQ0MDAwLCwoKCgkICQcHBgYFBQQDAgIBAQEBAgIDBAUFBgYHBwkICQoKCgsLDAwMDQ0ODQ4ODw4PDw4PDg4NDg0NDAwMCwsKCgoJCAkHBwYGBQUEAwICAQEBAQICAwQFBQYGBwcJCAkKCgoLCwwMDA0NDg0ODg8ODxMUExITERIRERAQEA4PDQ4MDAsLCgkICAcGBQQDAwEBAQEDAwQFBgcICAkKCwsMDA4NDw4QEBARERIRExITFBMTFBMSExESEREQEBAODw0ODAwLCwoJCAgHBgUEAwMBAQEBAwMEBQYHCAgJCgsLDAwODQ8OEBAQERESERMSExQAAAAAAwAAAAADtQPkAAYACgARAAAlMxUzNTMnJSE1ISUjFzcjNSMBOKldqdj+PANq/JYBlqnX2Kld17u7wDpe+sHBuwAAAAADAAAAAAP0A/MAVwBqAPIAAAkBDwYrAS8PPwgzNTcVDwQVHw07AT8NNS8INTcnFQc1PwczHwUnDw4DDwcVHw8/BwEPBx8OOwE/DjUvCD8BNS8EAS8DDwQ1Lw8DGP7SDQoKCwwLDAwMDAwLCwoKCbQIBwYFBAMBAQEBAwQFBggIPgVeBQcFAwEBAgIDBAQFBQYGBgcHBwcIBwcHBgYFBgQFAwMDAQIBAQIDBAUFBQUzkF4DBAUFBQYGDAwHBgYFBAQ5CAgSCQkKCQkJCAcHBgUEASkNCwoHBgQCAgQFBwkLDbwPEBESExQVFBgUExMSEhAPATgnGA0LBAMCAQECAwQFBggICQkLCwsMDQ0MDQwLCwsJCQgIBgUEAwIBAwQGCwoKFRQmAwEBAgIDBP5kBwcICQgICAYVBgUGBgcHBwkICQoKCgsMCwHM/rwMBwYGBAICAgQEBgYICcAKCgsMDAwMDA0MDAwLCwoKQAZhJgUKDAwNCAgHBwYGBgUFBQMEAgIBAQICBAMFBQUGBgYHBwgICAkIBwcHBgUEfzU6VmKvDAkHBQQCAQECAgMFBQd1AQEEBAQFBgcICgsMDw8S/uIrERISExMUFBQUFBQTEhIRyA8NCwkHBgMCAQMFBwgLDA4BTT0pGxsMCwsKDQ0MDAsLCgkJBwcFBAQCAgQEBQcHCQkKCwsMDA0NBw0QEBsSEiQgNggGBQYGBQYEAa4FBAMBAQMEBRUEEwsLCgkICAcGBQUEAwIBAQAAAQAAAAAD8wMJAAIAACUBIQIAAfT8GPYCFAAAAAIAAAAAA/MDZwAGAAoAABMXNSE1ITUBMxEj3+MCMv3O/kp9fQIAvo9ej/3bAs4AAAEAAAAAA/MDCQACAAAlASECAAH0/Bj2AhQAAAACAAAAAAPzA/MACwCDAAABFTMVIxUjNSM1MzUFHx47AT8HFxUBNwEjJz8HLx8PHgGDnJxenJz+5wEBAgMEBQUGBwgICQoKCgwMDA0ODg4PDxAQEBERERESDhsbGRkZFxYPLQEzZf7NHSsRDQsJBwUDAgEBAgMEBQUGBwgICQoKCwsMDA0ODg4PDxAQEBERERESEhEREREQEBAPDw4ODg0MDAsLCgoJCAgHBgUFBAMCAQNYnV2cnF2dvBESEREREBAQDw8ODg0NDQwLCwoKCQgIBgcFBQMDAwECBAYJCgsOCisd/s1lATMtGhcXGRkbGxsSERIQERAQEA8PDg4ODQwMDAoLCQkICAcGBQUEAwIBAQEBAgMEBQUGBwgICQkLCgwMDA0ODg4PDxAQEBEQEhEAAgAAAAAD8wNXAAMABwAAAREhEQMhESEDlvzUXgPo/BgC+v4MAfT9rgKwAAADAAAAAAPzA/MABQAJAA0AACUhFSERIycRIREDIREhAxn+DALP27v+DF4Cr/1R59sCz7v+DAH0/a8CrwABAAAAAAOlA/MAOgAAEw8DFR8HIT8IMxUhER8GMz8GEyERIy8HIQ8CagYFAwICAwUGCAgJCgJMBQoICAcFBAEBPv4MAgMFBwcJCWgJCAgGBQQBAQGWnAECAwYHCAkK/bEKCQgD5QgICguwCgoJBwcFBAIBAwQGBwkJCi3a/dwKCQgIBQQCAgQFCAgJCgHGAZY0CQgIBwUDAgEDBQACAAAAAAPzA7MAAgAFAAAlIREDIQEDCP1dWQPo/BilAkz9WwNoAAAAAQAAAAAD8wPEAAIAADchAQwD6P4MPAOIAAAAAAUAAAAAA/MD8wAFAAkAEQAdADEAAAEVITUzNScVIzUDMxUhESM1ISUVMxEjFSE1IxEzNSUhNSMVMxEjFTM1IRUzNSMRMzUjAr7+5N5e3V5eAdec/mcCODs7/cg/PwI4/cXYPz/YAjvVPDzVAgO+QX272tr+yJ8Bers+Pv3IPDwCOztePNj9yNg8PNgCONgAAAMAAAAAA/MD8wADACcASwAANyE1IRMPAxEfBzM/BjURNS8GIw8CJQ8DER8HMz8GNRE1LwYjDwIMA+j8GMkFBAMBAQMEBQcHBwmmCAgHBgUEAgIEBQYHCAimCQcHAXAFBAMBAQMEBQYHCAimCQcHBwUDAwMDBQcHBwmlCQgHDH0CZQYHCAj+XggIBwYFBAIBAQIEBQYHCAgBoggIBwYFBAIBAQIE9QYHCAj9ZAgIBwYFBAIBAQIEBQYHCAgCnAgIBwYFBAIBAQIEAAAAAAIAAAAAA9QD1AAGAAoAAAEzETMRMyclITUhAQO+fb/9/isDqvxWAj797gIS12JdAAIAAAAAA/MDZwAGAAoAAAEhFSEVNycBMxEjAj79zgIy4+MBT2dnAi9ejr2+/dsCzgAAAAAEAAAAAAPzA/MAAwAHAAwAQQAAEyE1ITUhNSElESEHEScPBxE3ITM/DhEvDyEPBucBtf5LAlH9rwKv/S9bQgYGBQQDAgEB5wKeCwkKCQkIBwgGBgUEAwIBAQEBAgMEBQYGCAcICQkJCgv83gsKCQkJCAcB4V5dXpz9r1oCq0EHCAgJCQoKCvx82wICAwUFBgcHCAkJCQoKCgJDCgoKCQkICAcHBgUEAwIBAQEBAgMEBQYAAAACAAAAAAPzA7cAQwCHAAABMx8OEQ8OIyEjLw4RPw4zBxEfDyE/DxMvDyEPDgMrCwsLCgoJCAgHBgYEBAMBAQEBAwQEBgYHCAgJCgoLCwv9qgsLCwoJCQkIBwYGBAQDAQEBAQMEBAYGBwgJCQkKCwsLyQEDBQcICwsNDhAIERITExUCYBUUExISEBAODQsGCQgFBAIBAQMFBwgLCw0OEAgREhMTFf2gFRMUEhIQEA4NCwoJBwUDA1wCAwMFBQcHCAgJCgoKCwv+IgsLCgoKCQgIBwcFBQMDAgIDAwUFBwcICAkKCgoLCwHeCwsKCgoJCAgHBwUFAwMCbf4iFBQTExERDw4NDAUJCAYEAgEDBQcICgwNDg8JERISFBQB6BQUExMREQ8ODQwFCQgGBAIBAwUHCAoMDQ4PERETExQAAQAAAAADCQPzAAIAADcJAfYCFP3sDAH0AfQAAAMAAAAAA/MDtQADACgALAAANyE1IRMPBBUfByE/BzUvByEPAichNSEMA+j8GIkDAgQCAQECBAUGBwgIApwICAcGBQQCAQECBAUGBwgI/WQICAePA+j8GEt9AakDAwcICKYICAcGBQUCAgIDBAUGBwgIpggIBwYFBAIBAQIEwn0ABAAAAAAD8wO1ADYASQCTAM0AAAEPAh8PPwEXDwcvDz8HBTUvDyMnFz8DHw8PAxc/By8eKwEPBSUfAQ8LHx8/Bxc3AQF8AgEBAQIEBAYHBwkKCwsLDQ0NDg8PRgwMDAwNDQ0NFxcVFRMTEhAQDQsKBwYDAgECAgMDBQQGAVIBAgQEBgYICQoLCwsNDA4OCK1iFBQVFhcXFRUTExIQEA0LCgcGAwICAwUIhBoXFhUTERAOCAkJCQsKDAwMDQ4ODhAPERERERISEhMTExMUFBUVFRUYFxcXFhcV/tpmFRsODA0LDAsKChIRDwgJCQkLCgwMDA0ODg4QDxERERESEhITExMTFBQVFRUVGhoaGRgYGBeZOfzcAjUIBw8PDQ0NDAsKCgoIBgYFAwICAgNHBgUEBAMCAQEBBAUICQwNEBESEhQVFhcYDQ0NDQ0MDAxsBw4ODQwMCwsKCQgHBgQEAgGvZAcFBAICAwYHCgsODxESExQVFhYYFhYVE4YWGRkaHB4eIBMSEhIRERAQDw8ODg0NDQwMCgoKCAgHBwYFBAMDAgICAgQEBgckahMYDA0NDQ4ODw8fISITExIREREQEA8PDw4NDQ0MCwsKCQkIBwcFBQQEAwIBAQECAwQFBwgJmToDMAAAAAIAAAAAA/ID8wB/AP8AAAEVDx0rAS8ePx47AR8dBRUfHj8ePQEvHg8eA5QCAgQEBgYHCAkKCwsMDQ0ODw8QEBESEhITExQTFRQVFRQVExQTExISEhEQEA8PDg0NDAsLCgkIBwYGBAQCAgEBAgIEBAYGBwgJCgsLDA0NDg8PEBAREhISExMUExUUFRUUFRMUExMSEhIREBAPDw4NDQwLCwoJCAcGBgQEAgL8egIEBAYGCAkKCwwNDg8PERESExQUFRUWFxcYGBgZGRoaGRkYGBgXFxYVFRQUExIREQ8PDg0MCwoJCAYGBAQCAgQEBgYICQoLDA0ODw8RERITFBQVFRYXFxgYGBkZGhoZGRgYGBcXFhUVFBQTEhERDw8ODQwLCgkIBgYEBAICABUUFRQTFBITEhERERAPDw4NDQwMCgoJCAcHBQUDAwICAwMFBQcHCAkKCgwMDQ0ODw8QEREREhMSFBMUFRQVFRQVFBMUEhMSEREREA8PDg0NDAwKCgkIBwcFBQMDAgIDAwUFBwcICQoKDAwNDQ4PDxARERESExIUExQVFBUaGRkZGBcYFhYWFRQUExIRERAODg0MCwoJCAcGBAMCAQECAwQGBwgJCgsMDQ4OEBEREhMUFBUWFhYYFxgZGRkaGhkZGRgXGBYWFhUUFBMSEREQDg4NDAsKCQgHBgQDAgEBAgMEBgcICQoLDA0ODhARERITFBQVFhYWGBcYGRkZAAAAAAEAAAAAA/MDxgACAAAlASECAAH0/Bg5A44AAAADAAAAAAPzA/MAJABJAE0AAAEPBBUfBjMhMz8GNS8HIQ8CAw8EFR8GMyEzPwY1LwchDwIBMxEjARIDAgQCAQECBAUGBwgIApwICAcGBQQCAQECBAUGBwgI/WQICAcGAwIEAgEBAgQFBgcICAGiCAgHBgUEAgEBAgQFBgcICP5eCAgH/vR9fQG0AwMHCAimCQcHBwUDAwMDBQcHBwmmCAgHBgUEAwICAwQBcgMEBggJpQkIBgcFAwMDAwUHBggJpQkIBwYFBAMBAQME/NwD6AAAAwAAAAADlgPyAAcAKACNAAABFSE1MxEhESUfAx0BDwUrAS8FPQE/Bh8CJw8HKwEPDRURFR8OIT8ONRE1Lw0rAS8PDwYBJQG2Xf2QAVgDAgQDAwQFBwgICQkICAcFBAMDBAUHCAgJCQgIZwgIBwYGBQUEvAkJCQgICAcHBgUFAwMCAgICAwMFBQYHBwgICAkJCQJ2CQkJCAgIBwcGBQUDAwICAgIDAwUFBgcHCAgICQkJvAQFBQYGBwgICAkKCQoLCgsLCwoKCQoJAzl9ff0yAs5TAwMICAoJCAgHBQQDAwQFBwgICQoICAYGBAIBAQIERwcHBwgJCQkKAQIDBAQFBgcHBwgICQkJ/SkKCQgICAgHBgYFBQMDAgEBAQECAwMFBQYGBwgICAgJCgLXCQkJCAgHBwcGBQQEAwIBCgkJCQgHCAYGBQUDAwIBAQEBAgMDBQUAAAMAAAAAA/MD8wAkAEkATQAAAQ8EFR8HIT8HNS8GIyEjDwEBDwQVHwchPwc1LwYjISMPAQEzESMBEgMCBAIBAQIEBQYHCAgBoggIBwYFBAIBAQIEBQYHCAj+XggIB/8AAwIEAgEBAgQFBgcICAKcCAgHBgUEAgEBAgQFBgcICP1kCAgHA1l9fQG2AwMHCAimCQcHBwUEAwEBAwQFBwYICaYICAcGBQQCAgQBcgMEBggJpQkIBwYFBAMBAQMEBQYHCAmlCQgGBwUDAwIE/NoD6AABAAAAAAPzA3YAVAAAEw8EESMVMxEVHwYzPwcRMxUfBzM/BzUzNSM1LwcjDwYdASMRLwcjDwLUAwMDAgG8vAMDBQcHBwmmCAgHBgUEAwJ8AQIEBQYHCAimCQcHBwUEAwG8uwIDBAUGBwgIpgkHBwcFAwN9AgMEBQYHCAimCQcHA2sDAwcICP7wff7xCAgHBgUEAgEBAgQFBgcICAEQkwgIBwYFBAIBAQIEBQYHCAiSfZMICAcGBQQCAQECBAUGBwgIkwEQCAgHBgUEAgEBAgQABQAAAAAD8wPzAAMABwALAA8AEwAANyE1ITchNSEnITUhNyE1ISchNSEMA+j8GNsCMv3O2wPo/BjbAjL9ztsD6PwYDH1efV58Xn1efQAAAAABAAAAAAPzA/MACwAAASEVIREzESE1IREjAeH+KwHVXQG2/kteAh9d/koBtl0B1QADAAAAAAPzA1cAPwCAAQAAAAEVHw07AT8NPQEvDSsBDw0FFQ8PLw8/Dx8OBR8fPx8vHw8eAXgCBAQGBwgJCQsLDAwNDg4ODg0MDAsLCQkIBwYEBAICBAQGBwgJCQsLDAwNDg4ODg0MDAsLCQkIBwYEBAIBawEDBggJDA0OERETFBQWFxcXFxYUFBMREQ4NDAkIBgMBAQMGCAkMDQ4RERMUFBYXFxcXFhQUExERDg0MCQgGA/0qCAgJCgoLDAwMDQ4ODw8PEBERERISEhMTFBMUFRQVFRUVFRUUFRQTFBMTEhISEREREA8PDw4ODQwMDAsKCgkICAgICQoKCwwMDA0ODg8PDxARERESEhITExQTFBUUFRUVFRUVFBUUExQTExISEhERERAPDw8ODg0MDAwLCgoJCAIADg4NDQwLCgoJCAcGBAQCAgQEBgcICQoKCwwNDQ4ODg4NDQwLCgoJCAcGBAQCAgQEBgcICQoKCwwNDQ4ODAsXFhUUExIQDw0LCggFBAEBBAUICgsNDxASExQVFhcXFxcWFRQTEhAPDQsKCAUEAQEEBQgKCw0PEBITFBUWFxcTEhISERAREA8PDg4NDQ0LCwsKCQgICAYGBQQEAwIBAQEBAgMEBAUGBggICAkKCwsLDQ0NDg4PDxAREBESEhITExISEhEQERAPDw4ODQ0NCwsLCgkICAgGBgUEBAMCAQEBAQIDBAQFBgYICAgJCgsLCw0NDQ4ODw8QERAREhISAAABAAAAAAOWA/MACwAAATMDIxUhNSMTMzUhAWSV5aoCMpXlqv3OAxn9ztvbAjLbAAACAAAAAAPzA+QACABUAAABFyEVIQcXNyclDwcVMzUhESE1IxUfDjMhMz8OES8OIyEjDwUBnHv99QILe0Pv7/5LBwYFBAQCAQFeAyz81F4BAQMDBAUHBwgICAoJCgoLAxYLCgoJCQkICAcHBQQDAwEBAQEDAwQFBwcICAkJCQoKC/zqCwsKCgkJCAKsfV57Re/v2AgICQkJCwsLz9r89NrFDAsLCgoKCQkHBwYFAwMCAgMDBQYHBwkJCgoKCwsMAuwLCwsJCQkICAcGBQQDAgICAgMEBQYAAAABAAAAAAPzA/MAAwAAEwE3AQwDp0H8WQOz/FlBA6cAAAIAAAAAA/MD8wADAAcAAAERIREDIREhA5b81F4D6PwYA5b81AMs/HYD6AAAAwAAAAAD8wPzABUAGQBdAAA3Hw8hNSERIyURIREnDwYVERUfDTMhMz8OES8PIQ8GDAECAgMEBQUGBgcIBwkICQkC0f0yXgOK/Y9EBgUEBAMCAQECAwQEBQYHBwcICAgJCgJ4CQkJCAcIBwYGBQUEAwICAQECAgMEBQUGBgcIBwgJCQn9iAoJCAgIBwdqCgkJCAgIBwYHBQUEAwICAV4Czl79jwJxQgYHCAcICQkJ/YcJCQgICAcHBwYFBAQDAgEBAgMEBAUGBwYICAgICQkCeQkJCQgIBwcGBgYEBAMCAgEBAgIDBAUFAAEAAAAAA7UDtQALAAATCQEXCQE3CQEnCQFLAV3+o1gBXQFdWP6jAV1Y/qP+owNd/qP+o1gBXf6jWAFdAV1Y/qMBXQAAAQAAAAAD8wM4AAUAABMXCQE3AQx2AX4Bf3X+DAE+dgGD/n12AfoAAAEAAAAAA/MD8wDUAAATDw8fHz8fIw8PLx8/HzMfDgcFEQcvDw8OnhEQDg4NDAsJCQcHBQUDAgICAgMFBQcHCQkLDA0ODhAREhMTExQVFRYWFxgYGRkaGhYWFRUVFBQTExMSEhIRERAQEA4ODQ0MCwoKCQkIBwYGgAsNDxASExUXGBkaGxwcHh4TFBITEhERERAQEA8PDg4NDQwMCgoJCAcHBQUEAwMBAQEBAwMEBQUHBwgJCgoMDA0NDg4PDxAQEBERERITEhQTFBMTEhISEREREA8PDg4NDYQBcZISExMTFBUWFhYXGBgYGRoaGhoZGRgYFxYWFRUUExMTA2ISExMTFBUVFhYXGBgYGhoaGhoZGRgYFxYWFRUUExMTEhEQDg4NDAsJCQcHBQUDAgIBAgIDBAUFBgcICQkLCwsNDQ4ODw8PEBERERISExMUFBsZGRcVFBMSEA0MCggGAwIBAQMDBAUFBwcICQoKDAwNDQ4ODw8QEBARERESExIUExQTEhMSEREREBAQDw8ODg4MDQsKCgkIBwcFBQQDAwEBAgIDBAUGBwgICQoLCwwNmwMBi5IQDw8ODAwLCgkIBgYFAwICAQMDBQUGCAkJCwwNDQ8QAAAAAAEAAAAAA6sD7gCZAAABDwgRIxE1LworAg8IES8DDwodAR8GAR8HBT8PETUvCisBDwgdASMRLwkPCxEjETUvCgcCIAQFCAcGBQQCAR8CAgMDBQUFBgYHBwgHCAgKCAcGBQQCAbkGBwYKCAgHBwQEAwMCAQEBAgMEBAUBFA0NDg8HEBARARkREBAQDg4NDAoKCAcDBQQBAQIDBAQFBgYGBwcHCAgICQkHBgUDAyADBAQEBQYHCAoFDAYFBgsJCAYDAQEBHwECAgYHCQsGBgYHCQPrAQIGBwcJCQoF/nEBHggHBwYGBgUEBAMDAgIEBgYICQkKBf4YZwIBAQECBAUGBQYHBgcHBgcHBwcGBgYF/uwLCggHAwUDAQEBAwQGBwgKCgwNDg4IEBAQAmwIBwcHBgUGBAQDAwIBAgMGBwcJCQoF2gFUFQwGBgUFBQMCAQEBAQMGCAoLBgYHBv6MAYwHBgYGCgkIBgIBAQEBAAACAAAAAAPUA9QAAwAKAAA3ITUhASMXNyMRIysDqvxWAZa+/f2/fSxdATnX1wISAAAFAAAAAAPzA/MAAwAHAAsADwATAAA3ITUhNSE1ITUhNSE1ITUhNSE1IQwD6PwYApD9cAPo/BgCkP1wA+j8GAx9Xn1efF59Xn0AAAAABQAAAAAD8wPzAAMABwALAA8AEwAANyE1ISUhNSElITUhJSE1ISUhNSEMA+j8GAE5Aq/9Uf7HA+j8GAE5Aq/9Uf7HA+j8GAx9Xn1efF59Xn0AAAAAAQAAAAAD1APzAAcAABMhETMRITUhLAF2vAF2/FgDOPzUAyy8AAAAAAMAAAAAA9sD8wADACkASwAANyE1IRMPBh0BHwYHMzcfBz8IJwEHFz8ILw4PBiQDqfxXpQYFBQMDAgEBAgMDBQUGmuwjBgcHBwcICAgICAgHBwcHBvjqARny7PEGBQQDAgIBAQEBAgIDBAUGfQYHBwcIBxQIBwcHBwYMXgFvBwcIBwgICAgICAgHBwcHBpojBgQEBAICAQEBAQIDAwUFBvfsAQzx7PIGBwcHBwgICAgICAgHBwcHewUEBAICAQEBAgIDBAUAAAAAAwAAAAAD8wM4AAYADQARAAABFzUzNSM1BSMVMxU3JxMzESMCf7m8vP2QvLynp/pdXQIPl2k+iIg+aZeY/iECcAAAAAAKAAAAAAPzA/MAGAApAEIAVABmAHgAkQCqALsBOwAAAQ8PPwcjDwcvByMfBy8PAR8CHQEPAiM/Aj0BLwIjHwIdAQ8CIy8DPwMjDwIdAR8CIy8CPQE/AiUfByMvBx8GBSM/Dw8GBSM/Bx8GJQ8PHx8/Hy8fDw4DWwkLCgwLDQ0NDg8PDxARERELCgoJCAgIBmcICgsLDQ0PDw8PDQ0LCwoIZwYICAgJCgoLEREREA8PDg4ODQwMDAoLCQLZBAQCAgQEnQMCAQECA3QDAgEBAgPaAwIBAQEBAgN0AwIBAQIDnQQEAgIEBAJ9DQ0MDAwKCwmUBggICAkKCgsREREQDw8P/kiUCQsKDAsNDQ0ODw8PEBEREQsKCgkICAgBIcAICgsLDQ0PDw8PDQ0LCwr+RhEQDw4NDAoKCQcHBQQEAgEBAgQEBQcHCQoKDA0ODxAREhITFBQUFhYWFxgYGBoaGhoaGRkYGBcWFhUVFBQTEhIREA8ODQwKCgkHBwUEBAIBAQIEBAUHBwkKCgwNDg8QERISExQUFRUWFhcYGBkZGhoaGhoYGBgXFhYWFBQUExIBOg8PDw4NDQwMCwoKCQgIBwYVFRYWFhcYFxobGRkZGBgXFxgYGRkZGxoXGBcWFhYVFQYHCAgJCgoLDAwNDQ4PDw8BGhgXFxgYGBcXFxcYGBgXFxgYFxcYGBgXFxcXGBgYFxcYGBcXGBgYFxcXFxgYGBcXGOoMDA0ODQ8PEBgYFxYWFhUVBgcICAkKCnkQDw4ODg0MDAsKCgkICAYHFRUWFhYXGBgbGhoZGRgYFxcYGBkZGhp2EhIUExQVFRYXFhgYGBkaGhoaGhgYGBcWFhYUFBQTEhIREA8ODQwKCgkHBwUEBAIBAQIEBAUHBwkKCgwNDg8QERISExQUFBYWFhcYGBgaGhoaGhkZGBgXFhYVFRQUExISERAPDg0MCgoJBwcFBAQCAQEDAwQGBggICgsMDQ0QEAAAAAEAAAAAA/MC5QBkAAABDwcnEyUnPw8zHx43Lx8PBgE+GRgXFRUTERGLSQFEsw4ODxARExMVFRUXFxcYGBkSEhEQERAPEA8PDg4ODQ0NDAwLCgoKCAgIBwcGBQUEA10EBQYHBwgJCQoLDAwODQ8QEBARERISEhMTFBQVFBYVFx8fHh0dGxsCpw8REhQUFhgYWP68S3AUExEREA4ODAsKCAYGAwIBAgICAwQFBQYGBwgJCQkLCwsMDAwNDg0ODw8PEBAQEQ8VFRQTExMSEREREBAPDw4ODQwMCgoJCAgGBgUEBAICAQEEBQcICwwABQAAAAADtQO1AAQAJABkAKQBHAAACQEXATUBDwcvBz8HHwYDDwcvDj0BPw4fDh0BDwUDDwcvDj0BPw4fDh0BDwUXPwM1Lw4rAQ8NHQEfDj8DFwcvAw8OHQEfDTsBPw41LwI3ATM1AzL++FkBMv5fAQEBAwIEBAUFBAQCAwEBAQEBAQMCBAQFBQQEAgMBAd4GBwcIBwkICQoICQcIBwcGBgUEBAICAgICAgQEBQYGBwcIBwkICgkICQcIBwcGBgUEBAMBAgIBAwQEBQYGBwcIBwkICQoICQcIBwcGBgUEBAICAgICAgQEBQYGBwcIBwkICgkICQcIBwcGBgUEBAMBAgIBAwQEBV0DAwUDAQIFBQgICgwNDQ8PDxEREhMREBAPDw0NCwoJBwUEAwMEBQcJCgsNDQ8PDxERExMSEhFmZhESEhMTEREPDw8NDQsKCQcFBAMDBAUHCQoLDQ0PDw8RERMSEREQDw4NDQwKCAgFBQIBAwUGZwEzgwOM/vhZATYr/nQFBAQDAgICAQECAgIDBAQFBQQEAgMBAQEBAQEDAgQE/rUGBQQEAwICAQECAgMEBAUGBwYHCAgICQkJCQgICAcGBwYFBAMDAgEBAQECAwMEBQYHBgcICAgJCQkJCAgIBwYCCQYFBAQDAgIBAQICAwQEBQYHBggHCAgJCQkJCAgIBwcGBgUEAwMCAQEBAQIDAwQFBgYHBwgICAkJCQkICAgHBhEICRETExISEBAPDg4NCwsIBwUEAwMEBQcICwsNDQ8PEBASEhISEBAPDg4NCwsIBwYEAwEBAgUGZ2cGBQIBAQMEBgcICwsNDg4PEBASEhISEBAPDw0NCwsIBwUEAwMEBQcICwsNDQ8PEBASEhMTERFn/s0rAAQAAAAAA+QD8wADAAcAGwBjAAAlMzUjARUjNSMRDwchLwcRJw8GFREXMxE/BiEfBxEzPw41ETUvDiEPBgE1nJwCcSA+AQIEBgcICQn9zAkJCAcDBQMCggYFBQQCAwF0RwIDBgYICAoBtgoJCAcHBAMCngkKCQgICAcHBgUFBAIDAQEDAgQFBQYHBwgICAkKCfzwCQoJCAgIB2q7AnE+Pv7bCgkICAYEBAICBAQGBAgICgEqQwYIBwgJCQkK/Op1AU4JCAcHBQMCAQIEBgcICQn+twEBAgMEBAUHBggHCAkJCQoDLgoJCQkIBwgGBwUEBAMCAQEBAQIDAwUFAAIAAAAAA/MDdgACADAAACUhASUPBhMVHwwhAS8NISMPBAEmAs7+mf2SBQMEAgICAQECAgMDBAUEBgUGBgYHAQoBCwEBAQIDAwQFBQUFBgYN/i4IDQYGBQWJAlGLBAUFBgYGBv4+BgYGBQUFBQQEAwMCAQEBtEYGBgYGBQUEBAQDAgIDAwICAwQAAAAABAAAAAADtQPzABEAIwA1AKoAACUVPwcnDwY3Fz8HIw8GAx8HMy8HJQ8fHx81Lxg/FhU3JwJEHRwcGxoaGRlPEBAREBESEbpPERAOCwoIBgRtAwQGBggICgsLCggIBgYEA20EBggKCw4QEf5pFRQTExMSERIQEBAPDw8NDg0MCwoKCQgHBwUFBQMDAQEBAQMDBQUFBwcICQoKCwwNDg0PDw8QEBASERITExMUFQ8dGxkZCwsLFRQJCAgHBwYGBQQEAwMCAQICAQIDAwQEBQYGBwcICAkUFRYXGRsbHvb2d2sFBggKCw0PEE0KCQgIBgUFfkcXGBgaGhocHBEREREREBABVg8PEBEQERESHBsbGhkZGBenAwQEBQYHCAgJCgoLDAwODg4PEA8REBESERITExMUFBUUFBQTExMSEhEREBEPEA8ODg4MDAsLCQkJBwcGBQUEA2sDBwoLDgcICRIUCwsMCwwMDQwNDQ4ODg4eHQ4ODg4NDQwNDAsMCwsLFBIQDg0KCQbN6/AAAAAAAwAAAAADnwPzADIAYACCAAABDwMrAS8FKwEPBhUfAgUfAj8INS8HDwIDDwQvAyUvAg8GHQEfAQUfAj8CJT8CLwUrAQ8BAQUPAx8DBR8DPwMlPwE9Ai8BJS8CKwEHAxT2BwgIBwgHCAf+CAgHCAcIB0oCAQEBAQIBhwcHBgcIBwi5uQILAgMGBEEIBwgHCAcIBfsHBwcHBwcHB/8ACAgHCAcIB0sCAQECAX4RBAkNCAcBdggEAQEESQgHBwgHBwf+yP6KBgQDAgIDBAYBdAcHBwcHBwcHAX4CAgIM/owGBgcQBwYBJ4kEAgICAgSLAwIBAgQoAgMDCAMDAdYDAgEBAgMEZWUDCgQEBAcEIwQCAQEBAQIBC4oDAwEBAQEDA4sDAgEBAQIDKwIEBAQDA9IIAQIDAwXMBQYGBQYpAwICAgIBts8CAwQGBwUEAswDAwEBAQEDA9EDAwMHAwIKzAIBAQIAAAABAAAAAAPkA/MAgwAAEzMfFBUPEh8VBTUhLxQ1PxEvFiMb4hARDxAPDg4ODQwMCgoJCQcGBQQDAgECAwUFBwgKCh0QDwwKCQcFAwEBAwUGCQsJCgsLDA0ODw8QERISExQVAZX+eQ8ODg4NDAsLCwoJCQgIBwYIBwUDAgECBAUGCAoKDCERDgwJBwQDAQECBAQGBgYLDAwPDxAREhMUFBUVFwsX7QOZAQEDBAQGBggICQoLDAwNDg4ODg4ODQ4ODg0ODQ4ODSMWGBgYGhkaGhsaGRoZGBcREA8ODQ0MCwoKCQgHBgYFAVsEBAUFBgYHCAgICQoKCwsLERITEhMTFBMTExMTERIQKBcYFhcVFhUUExMSEhAQDxMTEREPDg0MCwkIBwUEAQIAAAIAAAAAA4YD8wAiAI0AAAEfBxUhNT8OMx8GJw8JFSsBDw0VERUfDiE/DjURNS8NKwE1LxEPBgJjCQgHBgUDAgL+5gICAwUGBwgJCgsLDA0NDg8PDg0NDAsL/ggIBwcLCggFBAFCCQkJCAcIBwYGBQUEAwICAgIDBAUFBgYHCAcICQkJAlgJCQkIBwgHBgYFBQQDAgICAgQDBQUGBgcIBwgJCQlCAQQFCAoLBwcICBESExQWFhcYGBcWFhQTEgNsCw0NDQ8PDxBhYRAPDw8NDQ0LCQkHBgQEAgEBBAQGBwk4CQkKCRUWFxgYGWECAgIEBQUGBwcICAgJCgn+KQoJCQkIBwgGBwUEBAMCAQEBAQIDBAQFBwYIBwgJCQkKAdcJCgkICAgHBwYFBQQDAgFhGRgYFxYVCQoJCRAODAoIBQQCAgQFCAoMDgADAAAAAAPzA/MAAwBHAIEAAAERIREnDwcRHw8hPw8RLw4jISMPBQEPBxEfDzM1IxEhFTM1Lw8hDwYDlv3tQAcFBQQDAwIBAQIDAwQFBQcHBwgICQkJCgIQCQoJCQgIBwcGBgQEAwIBAQEBAgMEBAYGBwgHCQgJCgn98AoJCQkICAf+3wYGBAQEAgIBAQICAwQFBgYGCAcICAkJCl5eAhNeAQECAwQFBQYHBwgICQkJCv3vCgkJCQgHCAJ9/e0CE0AHBwgICQkJCv3xCgoJCQgIBwcGBgQEAwIBAQEBAgMEBAYGBwcICAkJCgkCEAoJCQkICAcHBwUFBAMDAgIDAwQFBQETBwgHCAkJCQr97woJCQkICAcHBgUFBAMCAQFeAhNeXgoJCQgICAcGBwUFBAMCAgEBAgIEBAQGAAAAAQAAAAADlgPzAAUAACUXEyU3AQEDMtsBegz81BgMATMvMQJVAAAAAAcAAAAAA84DegAOABQAGgAgACQAKAAuAAABOwEVIxEzNSEVITUjESMlMxUjNTMlMxUzFSMBMxUjNSMnMxUjJzMVIyczFSMVIwEEftJ+qAFQ/rD8fgHOVH4q/WBUKn4Cdn5UKtJ+ftJ+ftJ+KlQCflT+2iqoKgF6fn5UKipUAVB+KlRUVFRUVCoAAAAABwAAAAADzgPjABYAHAAiACgALAAwADYAAAE7ARUjFTM1IRUhNSEVMxUhNTM1MzUjJTMVIzUzJTMVMxUjATMVIzUjJzMVIyczFSMnMxUjFSMBBH7SfqgBUP6w/oZ+/rB+0n4BzlR+Kv1gVCp+AnZ+VCrSfn7Sfn7SfipUAudU0irSVH7S0tLSfn5UKipUAVB+KlRUVFRUVCoAAAAABwAAAAAD+AP4ACAAJgAsADIANgA6AEAAAAE7ARUjFTM1IRUhNSMVIxUzFSE1MzUzNSMVITUhFTM1IyUzFSM1MyUzFTMVIwEzFSM1IyczFSMnMxUjJzMVIxUjAVh+0n5+AVD+sH6ofv6wfqh+/rABUH5+Ac5Ufir9YFQqfgJ2flQq0n5+0n5+0n4qVAL8VNIqqCp+VKioqH4qqCp+fn5UKipUAVB+KlRUVFRUVCoAAAAGAAAAAAPOA84AAwALAA8AFwAcACQAADchFSElMxUhFSEVIwMhFSEnMxUjNSM1MwMzIRUhJTMVMxUjFSMyAXr+hgHOVAF6/oZUVAIi/d6oVFTS0tIqAfj93gJ2VNLSVNpUqFRUVAH4VKj8VFQBUFSoVFRUAAQAAAAAA1ADuQA/AEMAZgCOAAABMx8NHQEPDSsBLw09AT8NJxEhEQMPDxUzNS8PMx8PFTMRIREzNT8OAgAJCAgIBwcGBgYFBAMDAgICAgMDBAUGBgYHBwgICAkJCAgIBwcGBgYFBAMDAgICAgMDBAUGBgYHBwgICPMB+PwNDAwMCwoKCQgHBwUEAwIB/AECAwQFBwcICQoKCwwMDA0LChUUFBIREQ4OBgwJCAYFAn79YH4BAwUICAsMDg4RERIUFBUBrAICAwMEBQYGBgcHCAgICQkICAgHBwYGBgUEAwMCAgICAwMEBQYGBgcHCAgICQkICAgHBwYGBgUEAwMCAmn+hgF6AVABAgMEBQcHCAkKCgsMDAwNfn4NDAwMCwoKCQgHBwUEAwJVAQMFCAgLDA4OCBESExQUFYn93gIifhUVFBQSEREODgwLCAgFAwAAAAMAAAAAA1ADuQA/AEMAjgAAATMfDR0BDw0rAS8NPQE/DScRIREDMx8PFSM1Lw8PDxUhESERMzU/DgIACQgICAcHBgYGBQQDAwICAgIDAwQFBgYGBwcICAgJCQgICAcHBgYGBQQDAwICAgIDAwQFBgYGBwcICAjzAfj8CwoVFBQSEREODgYMCQgGBQJUAQIDBAUHBwgJCgoLDAwMDQ0MDAwLCgoJCAcHBQQDAgEBzv1gfgEDBQgICwwODhEREhQUFQGsAgIDAwQFBgYGBwcICAgJCQgICAcHBgYGBQQDAwICAgIDAwQFBgYGBwcICAgJCQgICAcHBgYGBQQDAwICaf6GAXoBpAEDBQgICwwODggREhMUFBU1Kg0MDAwLCgoJCAcHBQQDAgEBAgMEBQcHCAkKCgsMDAwNfv3eAiJ+FRUUFBIREQ4ODAsICAUDAAAAAAIAAAAAA8oDwQAIABEAAAEXByc3ITUhJwEXByEVIRcHJwLb7+88k/1WApmC/oY8ggKd/VKTPO8CHvDwPJNUgQHgPIFUkzzwAAcAAAAAA/gDpAAUABoAIAAmACoALgA0AAABOwEVIxEzNSEVITUhFSE1IRUzESMlMxUjNTMlMxUzFSMBMxUjNSMnMxUjJzMVIyczFSMVIwFYftJ+fgFQ/rD+sP6wAVB+fgHOVH4q/WBUKn4Cdn5UKtJ+ftJ+ftJ+KlQCqFT+hiqoKiqoKgF6fn5UKipUAVB+KlRUVFRUVCoABAAAAAADpAOkAAYADQAUABsAAAEzFTMHJzMBFwc1IzUzJRUzFSMVJwEXIxUjNSMB1lRUfn5UAVB+ftLS/bTS0n4BpH5UVFQBrNJ+fgGkfn5UVFRUVFR+AaR+0tIAAAAAAAASAN4AAQAAAAAAAAABAAAAAQAAAAAAAQAQAAEAAQAAAAAAAgAHABEAAQAAAAAAAwAQABgAAQAAAAAABAAQACgAAQAAAAAABQALADgAAQAAAAAABgAQAEMAAQAAAAAACgAsAFMAAQAAAAAACwASAH8AAwABBAkAAAACAJEAAwABBAkAAQAgAJMAAwABBAkAAgAOALMAAwABBAkAAwAgAMEAAwABBAkABAAgAOEAAwABBAkABQAWAQEAAwABBAkABgAgARcAAwABBAkACgBYATcAAwABBAkACwAkAY8gQWxsIGljb25zIE1ldHJvcFJlZ3VsYXJBbGwgaWNvbnMgTWV0cm9wQWxsIGljb25zIE1ldHJvcFZlcnNpb24gMS4wQWxsIGljb25zIE1ldHJvcEZvbnQgZ2VuZXJhdGVkIHVzaW5nIFN5bmNmdXNpb24gTWV0cm8gU3R1ZGlvd3d3LnN5bmNmdXNpb24uY29tACAAQQBsAGwAIABpAGMAbwBuAHMAIABNAGUAdAByAG8AcABSAGUAZwB1AGwAYQByAEEAbABsACAAaQBjAG8AbgBzACAATQBlAHQAcgBvAHAAQQBsAGwAIABpAGMAbwBuAHMAIABNAGUAdAByAG8AcABWAGUAcgBzAGkAbwBuACAAMQAuADAAQQBsAGwAIABpAGMAbwBuAHMAIABNAGUAdAByAG8AcABGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIAB1AHMAaQBuAGcAIABTAHkAbgBjAGYAdQBzAGkAbwBuACAATQBlAHQAcgBvACAAUwB0AHUAZABpAG8AdwB3AHcALgBzAHkAbgBjAGYAdQBzAGkAbwBuAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkACVVuZGVybGluZQtJbnNlcnRJbWFnZQRMb2NrBlNlYXJjaAxCcmluZ0ZvcndhcmQNQ29ubmVjdG9yTW9kZQRCb2xkCFNlbmRiYWNrB1pvb21PdXQEUmVkbwdVbmxvY2sxCEFpbGduVG9wBENvcHkGU3F1YXJlBVByaW50EkRpc3RyaWJ1dGVWZXJ0aWNhbBFBbGlnbkhvcml6b250YWxseQpCcmluZ0Zyb250BkRlbGV0ZQZVbmxvY2sHVW5ncm91cAlTZWxlY3Rpb24HRWxsaXBzZRRUZXh0SG9yaXpvbnRhbENlbnRlcgxDb2xvclBpY2tlcnMIRXhwYW5kZXIIVGV4dExlZnQJRG93bkFycm93Blpvb21Jbg9TaGFwZV9SZWN0YW5nbGUMU2VuZEJhY2t3YXJkC0NvbG9yRm9ybWF0CFRyaWFuZ2xlAlVwBUdyb3VwC0FsaWduQm90dG9tB1RleHRUb3AJVGV4dFJpZ2h0Ckluc2VydFRleHQNUm91bmRlZFNxdWFyZQlDb2xsYXBzZTEURGlzdHJpYnV0ZUhvcml6b250YWwJSW52aXNpYmxlDFNoYXBlX0NpcmNsZQREb3duCUFsaWduTGVmdAVQYXN0ZQpBbGlnblJpZ2h0D0FsaWduVmVydGljYWxseQ9QYXJhQWxpZ25DZW50ZXIEUGx1cwRWaWV3Bkl0YWxpYwZFeHBvcnQMU3RyYWlnaHRMaW5lDFNoYXBlX1NxdWFyZQlEdXBsaWNhdGUFQ2xvc2UIQ29sbGFwc2UHUm90YXRlMQNQYW4KVGV4dEJvdHRvbQ1QYXJhQWxpZ25MZWZ0DlBhcmFBbGlnblJpZ2h0CVRleHRJbnB1dAdQaWNrZXJzElRleHRWZXJ0aWNhbENlbnRlcgpJbnNlcnRMaW5rBFVuZG8DQ3V0BFNhdmULRHJhd2luZ01vZGUGUm90YXRlBkxheWVycwpCZWl6ZXJMaW5lBUxvY2sxBU9yZGVyCFNlbGVjdG9yCWFkZC1jaGlsZAthZGQtc2libGluZw5tdWx0aXBsZS1jaGlsZApwcm9wZXJ0aWVzE2FzcGVjdC1yYXRpby1lbmFibGUUYXNwZWN0LXJhdGlvLWRpc2FibGUSZ3JhZGllbnQtYWxpZ25lbW50FGFkZC1zYW1lLWxldmVsLWNoaWxkBG1vdmUAAAAA) format('truetype'); - font-weight: normal; - font-style: normal; -} - -[class^="sf-icon-"], [class*=" sf-icon-"] { - font-family: 'All icons Metrop' !important; - speak: none; - font-size: 55px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.sf-icon-BringForward:before { - content: "\e704"; -} - -.sf-icon-ConnectorMode:before { - content: "\e705"; -} - -.sf-icon-DistributeHorizontal:before { - content: "\e729"; -} - -.sf-icon-AilgnTop:before { - content: "\e70b"; -} - -.sf-icon-DistributeVertical:before { - content: "\e70f"; -} - -.sf-icon-AlignHorizontally:before { - content: "\e710"; -} - -.sf-icon-AlignBottom:before { - content: "\e723"; -} - -.sf-icon-AlignLeft:before { - content: "\e72d"; -} - -.sf-icon-AlignRight:before { - content: "\e72f"; -} - -.sf-icon-AlignVertically:before { - content: "\e730"; -} - -.sf-icon-BeizerLine:before { - content: "\e74a"; -} - -@font-face { - font-family: 'e-ddb-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj1tShgAAAEoAAAAVmNtYXDon+lDAAACIAAAAIJnbHlmw/gRIAAAAvgAACw0aGVhZBGJTLcAAADQAAAANmhoZWEIXQQpAAAArAAAACRobXR4oAAAAAAAAYAAAACgbG9jYdYyye4AAAKkAAAAUm1heHABOAD4AAABCAAAACBuYW1ldAwInAAALywAAAMVcG9zdNAiwIsAADJEAAABuQABAAAEAAAAAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAKAABAAAAAQAAJo24vV8PPPUACwQAAAAAANc1g90AAAAA1zWD3QAAAAAEAAQAAAAACAACAAAAAAAAAAEAAAAoAOwABgAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQQAAZAABQAAAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5wDnJgQAAAAAXAQAAAAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAbgAAAAQABAABAADnJv//AADnAP//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAAAAAAAABBAICAn4CxgLeAyYDeAQUBHAEoAWEBZwGkgd8B+YH/ghMCMIJaAnaClYLMAuqC7gMpg2ODmQOwg8aD9IQoBF6ElYTRhRGFIQUwBVMFhoAAAADAAAAAAPOA84ACwBnAOsAAAEjFTMVMzUzNSM1IwUVDxQrAS8VPxYfFQUVHx07AT8LFxUXNycjJz8ONS8fDx4Ban19P319PwEZAQICAwMECQwNEBESFBYWDAsMDQwNDQwNDQwMDAsXFRQTEQ8NDAkEBAMCAQEBAQEBAgMEBAkMDQ8RExQVFwsMDAwNDQwNDQwNDAsMFhYUEhEQDQwJBAMDAgIB/a8BAwMEBAYGBwgICQoKCwsMDQ0NDg4PDxAQEBEQERIRDw8PDw4PDg4NDhoZGBP6XfoyEgkICQcIBgYGBQQEAwMCAQEBAgMEBQUGBwgICQoKCwwMDA0ODg4PDxAPERARERESERESEBEQEBAPDw4ODQ0NDAsLCgoJCAgHBgYEBAMDAQKWP319P32cDQ0MDA0LDBYWFBIRDw4LCgQDAwICAQECAgMDBAoLDg8REhQWFgwLDQwMDQ0NDA0MDAwLFxUUExEPDQwKAwQDAgEBAQEBAQIDBAMKDA0PERMUFRcLDAwMDQwNEhERERAREA8PDw4ODg0MDAwLCgoJCAgHBgUFBAMCAgECAwMDBQUFBw0QEhMy+l76EwsLDAwNDQ4ODg8ODw8PEA8REhEQERAQEA8PDg4NDQ0MCwsLCQkJBwcGBgUDBAIBAQEBAgQDBQYGBwcJCQkLCwsMDQ0NDg4PDxAQEBEQERIAAwAAAAADzgPOAAMAXwDjAAATITUhBRUPFCsBLxU/Fh8VBR8eOwE/CxcVFzcnIyc/Dj0BLx4PHu0BOP7IAZYBAgIDAwQKCw4PERIUFhYMCw0MDA0NDQwNDAwMCxcVFBMRDw0MCgMEAwIBAQEBAQECAwQDCgwNDxETFBUXCwwMDA0MDQ0NDAwNCwwWFhQSEQ8OCwoEAwMCAgH9rgEBAgQDBQYGBwcJCQkLCwsMDQ0NDg4PDxAQEBEQERIRDw8PDw4PDg4NDhoZGBP6XvoyEwkJCAgHBwYFBQUDAwMCAQICAwQFBQYHCAgJCgoLDAwMDQ4ODg8PDxAREBERERIREhEQERAQEA8PDg4NDQ0MCwsLCQkJBwcGBgUDBAIBAlc/Hw0NDAwNCwwWFhQSEQ8OCwoEAwMCAgEBAgIDAwQKCw4PERIUFhYMCw0MDA0NDQwNDAwMCxcVFBMRDw0MCgMEAwIBAQEBAQECAwQDCgwNDxETFBUXCwwMDA0MDRIREREQERAPDw8ODg4NDAwMCwoKCQgIBwYFBQQDAgIBAgMDAwUFBQcNEBITMvpe+hMLCwwMDQ0ODg4PDg8PDxAPERIREBEQEBAPDw4ODQ0NDAsLCwkJCQcHBgYFAwQCAQEBAQIEAwUGBgcHCQkJCwsLDA0NDQ4ODw8QEBAREBESAAAAAAIAAAAAA3cD1AADAGkAADchNSETFR8dOwE/HTURIxEPDy8PAyOJAu79Ej8BAgMDBQQGBgcICAkJCgoLCwwMDQ0ODQ8ODw8PEBAQEBAQDw8PDg8NDg0NDAwLCwoKCQkICAcGBgQFAwMCAXwCAwUHCAoLDQ4OEBARERESEhERERAQDg4NCwUJCAYEAgF8K30BdxAQDxAPDw4ODg4NDA0LDAsKCgkJCAgGBwUFBAQDAgEBAgMEBAUFBwYICAkJCgoLDAsNDA0ODg4ODw8QDxAQAbb+ShQTExERDw4OCwsJBwYFAgEBAgUGBwkLCw0PBxAREhMUAcAAAAAABAAAAAAD9AO1AAMABwAvADMAAAEVITUlFSM1IREzFSE1MxEvDyEPDjchNSECvP6IAjN9/RK8AnC8AQIDBAUGBwgJCgoLDAsNDf0SDQwMDAsKCggJBwYFBAMCuwJw/ZABg7u7u3x8/si8vAE4DQ0MCwsKCgkIBwYGBAMCAQECAwQGBgcICQoKCwwMDK+8AAAAAQAAAAADdwN3AAsAAAEhFSERMxEhNSERIwHC/scBOXwBOf7HfAI+fP7HATl8ATkABAAAAAADdwN3AAMABwALADIAACUzNSMBFSM1IxUhNSMRFzMRIRE7AT8HNRE1LwcjISMPBwGDfX0BtT4+/kp9fT4BeHwFBAoLCgkHBQICBQcJCgsKBAX9kAUECgsKCQcFAsi7AbU+Pvr6/c59ATn+xwIFBwkKCwoEBQJwBQQKCwoJBwUCAgUHCQoLCgQAAAAAAgAAAAADtQP0ADcAPgAAExEfCTMhMz8JES8JKwEVMxEhETM1KwEPCDczETMRMydKAQEBBQcICgsGBwYC7gYHBgsKCAcFAQEBAQEBBQcICgsGBwZ9Pv2QPn0GBwYLCggHBQEB+X58frwCvP2OBgYGCwoJBgUCAQECBQYJCgsGBgYCcgYGBgsKCQYFAgF9/gwB9H0BAgUGCQoLBgZ2/ooBdrwAAAADAAAAAAMoA3cAIgBFAIUAAAEfDw8OKwE1EzMfDR0BDw4jNQMhPw8vDz8MLw8hAi8KCQkJCAcIBgYGBAQEAgEBAQECBAQEBgYGCAcJCAkJCpx9CQoJCAgIBwcGBQUEAwMBAQMDBAUFBgcHCAgICQoJfbwBhxQVExMRERAODQwKCQcFAwEBAQMEBAYGCAgJCQsLCwwNExAPBgYFBQQDAwIBAQECBAcICgwNDxASEhQVFRb+nQHCAQEDAwQEBgYHBwgICAkKCQoJCQkICAcHBgUFBAMCArwBOAICAwQFBQYHBwgICQkJCgkKCQgJBwgGBgYEBAMDAQG8/Y8BAwUHCQoLDg4QEBITExQVDw8ODg4NDQwLCwsJCQgIBg8PEggKCQoKCQsKCgoLFhYUFBMREA8NDAoJBgQDAAACAAAAAAP0A5YAAwBJAAABESERJxEfDjMhMz8OES8OIyEnKwEPDQN3/RJ9AQIDBAUGCAgJCQoLDAwMDQLuDQwMDAsKCQkICAYFBAMCAQECAwQFBggICQkKCwwMDA3+iX36DQwMDAsKCQkICAYFBAMCApz+SwG1ff3ODQwMDAsKCgkIBwYFBQMCAgMFBQYHCAkKCgsMDAwNAbUNDAwMCwoKCQgHBgUFAwJ9AgMFBQYHCAkKCgsMDAwAAgAAAAADdwO1ABkAIQAANxUfCSE/CTURITcjFSE1IzUjyAEBBQcICgsGBwYB9AYHBgsKCAcFAQH9kLv6Au76+okGBwYLCggHBQEBAQEBAQUHCAoLBgcGAjO7fX0/AAAAAQAAAAADdwN3ANEAABMhJz8LOwEfHR0BDx0jLw8jHx47AT8dPQEvHSMPDyeJATmKCxYXGQwNDQ0NDg0ODg8ODg4ODQ0NDA0LDAsKCwkKCAkIBwcGBQUFBAMCAgEBAgIDBAUFBQYHBwgJCAoJCwoLDAsNDA0NDQ4ODg4PGBgXFxYUFBMSEA8NDAsIB14EBAQFBgcHCAgJCQoLCwsMDA0ODQ4PDw8PEBAREBESERMTExISEhIREBAQDw8ODg0MDAsLCQoIBwcGBQQEAgICAgQEBQYHBwgKCQsLDAwNDg4PDxAQEBESEhISExMTExISExESEREREA8QDg8NDXECPooJEQ8NBQUFAwQCAgEBAgIEAwUFBQcGCAcJCQkKCgoLDAwMDA0NDQ4ODg8ODw4ODg4NDQ0MDQsMCwoLCQoICQgHBwYFBQUEAwICAQEDBQcJCwwODxESExUVFhcQEBAPDw8PDg4ODQwNCwwKCwkKCAgIBwYFBQQEAgICAgIEBAUGBwcICgkLCwwMDQ4ODw8QEBAREhISEhMTExMTExISEhIREBAQDw8ODg0MDAsLCQoIBwcGBQQEAgIBAQIEBAUHBggJCQoLCwwNcQAAAQAAAAADdwN3AAsAAAEzAyMVITUjEzM1IQGDoeS3AfSh5Lf+DAL6/gx9fQH0fQAAAwAAAAADvAO8AAsAbADWAAABIxUzFTM1MzUjNSM3Hw8dAQ8VKwEvFDUnNzU/FDsBHwUnDxIdAR8WPwcBHwI7AT8FPQEvAgE/By8WKwEPAQFZb284b284fQwKFRMSEA4NCgUEAwMCAgEBAgIDAwQFCg0OEBITFRYLDAwMDAwNDQ0MDQwMDAwLFhUTEREODAsFBAMDAgIBAQICAwMEBQsMDhERExUWCwwMDAwNDA0NDQwMDAwMpxMTEhERDxAODQ0LCwkICAYEBAICBAQGBwkJCwsNDQ4PEBEREhMTFBQUFRsaGhkYGBYVAVUEBQUGBQUFBAQCAgICBP6sEA4MCggGAwIBAgMFBgcJCQoMDA4ODxARERISFBMVFBUVFBQCpzhvbzhvWwUGDA4QEhMVFgsMDAwMDQwNDQwNDAwMDAsWFRMSEA4MCwUEAwMCAgEBAgIDAwQFCwwOEBITFRYLDAwMDA0MDQ0MDQwMDAwLFhUTEhAODAsFBAMDAgIBAQICAwMEPAYICAkLCw0NDhAPERESExMUFBQVFRQVExQSEhEREA8ODgwMCgkJBwYFAwIBAgMGCAoMDhD+rAQCAgICBAQFBQUGBQUEAVUVFhgYGRoaGxUUFBQTExIREQ8QDg0NCwsJCAgGBAQCAgQAAAAAAwAAAAADuQO8AAMAYQDLAAATITUhNx8OHQEPFSsBLxU9AT8UHwYnDxMVHxY/BwEfAjsBPwU9AS8CAT8HLxYrAQ8B7AEW/urtDBUTExAPDgsKBAMDAgEBAQICAwMEBQsMDxASExQWDAsMDA0MDQwNDQwMDAwMCxYUExIQDgwLBAQEAgICAQECAgMEBAoLDg8REhQVFwwMDAwMDRkNDA0MCwymExMREhAQDw4ODQsLCQgIBgUDAgECBAQGBwgKCgsNDQ4PEBAREhMTExQVFRoaGhkZFxYWAVEEBQUFBgUEBQMDAgICBP6vEA4NCggGAwIBAgMFBgcICQoMDA0PDw8RERISExQUFBUVFBQCbzfLBgsODxESFBYWDAwMDAwNDQwNDA0MCwwLFhUTERAODQoFBAMDAgEBAQICAwMEBQsMDxASExQWDAsMDA0MDA0NDQwMDAwMFhUUEhEPDQwJBAMDAgIBAQEBAgMEBD0GBwgJCwsMDg4PEBAREhIUExQVFBUVFBMTExIREQ8QDg0NDAoKCAcGBQQCAQEEBQgKDA4Q/qsEAgICAgQEBQUFBQYEBQFVFRYYGBkZGhsVFBQUExMSEREPDw8NDQsLCQkHBgUDAwIEAAAABQAAAAADvAO8AAMAIwArAC8ASgAAARUhNScPAh0BHwU7AT8FPQEvBSsBDwElESM1IRUjEQERIREDKwEPBhEzFSE1MxEvBiMRIQKn/rKeBAICAgIEBAUFBQYFBQQEAgICAgQEBQUGBQUFAsan/kSnAiz+sjenBgoKCQgGBALeAbzeAgQGCAkKC6z+RAFZ3t6fBAUFBQYFBQQEAgICAgQEBQUGBQUFBAQCAgICPP6yp6cBTgFN/uoBFv7qAgUGBwkKC/52b28BigsKCQgFBQIBTQAAAAABAAAAAAO8A7wACwAAASEVIREzESE1IREjAeT+YAGgOAGg/mA4Ahw4/mABoDgBoAAEAAAAAAO8A7wABwALABgAMwAAARUjNSMVIzUBESERIxEhETMRIxEhESMnESMRFyE/BhEvBiEPBgJvpzc4Ab391DcCmjje/ntSVTdvAtgKCgkIBgQCAgQGCAkKCvzwCwoKCAcFAwFZ3qen3gIs/rMBTf57AYX89gEW/upVArX9Lm8CBAYICQoKAxYKCgkIBgQCAQMFBwgKCgAAAAADAAAAAAO8A5EABwAyAGAAADchNQcVIREjBQc1Iw8OPxUzNQcrAQ8WFT8PFQkBRAKwOv3DOQMnsU8XFhYWFhUWFRUVFBQUExMFBgcJCgoMDA4OEBAREhITGRgWFxcXNDoODRsbGhkYGBcWFBQTEREPDgwLCQgEBQMCFBUWFhgYGRkaGhsbGxwcHQE7/sVvrDo5AgRWsVsCAgIEBAYGBggICQoLCwwUFBMTExEREQ8PDg0MCwkJCgcEAwIBWyIDBQYICQsNDQ8RERMUFRUXGBgZDRobG0cTExIQEA4NDAoJCAYFBAIBrAE7ATsAAAMAAAAAAvoDhAAiAEUAkAAAATMfDR0BDw4jNRMfDw8OKwE1AzsBPxU1Lw41Pw81Lw4jAckSERAPDgwLCgkIBgYEAwICAwQFBgcICgoLDA0ODxBjXhAPDg4MCwkJCAcGBAQDAQEBAgMEBQcHCQsKDA0ODhAQVG/tDhsaGRgWFRQTCAgHBwYGBQQEAwMCAQECBAUGCAoKDA0ODw8REhIPDg4NDAsKCQkHBgUEAwEBAgQGCAoLDhAREhQVFxga9wHIAQIDBAUFBwcICQoLCw0NDQwLCwoJCQgHBgUEBAIBAd4BTgEBAgMDBAUGBwcJCQkLCwwPDQwMCwoJCQcHBQQEAgLe/WUCBAYICQwNEAgICQkKCQoLCgsLCwwZExMSEBAPDg0MCgoIBwUEAwMFBwcICQoLDAwNDg4PDxAQChMSERAPDg0NCgoHBgUDAgAAAwAAAAAD9AN3AAMAHwBUAAABAyETJzMfDCEVIQ8HAxEnDwYRIRM/Aj0BLwgjNS8IJS8MIw8BA7a8/WS8JAgHBgYLCgoVBQ0OEAkKAXL+IAkJCAcHBwUFlhkFCgkGBQIBAxXMAwICAQIFBgkKCwYGhAEBBQcICgsGB/6LBwYGCwoKFQUNDhAJCr0GBgI+/okBd/oBAQIFBwcQAwcGBAIBfQEBAwQFBgcI/tMCCzoCBwkKCwYG/UoBmgcHBwcGBgYLCgkGBQIBgwcGCwoIBwUBAQEBAQIFBwcQAwcGBAIBAQIAAAAABgAAAAADaQO8AAMABwALAB8AIwBeAAAlMxEjAzMRIwMzESMlEQ8HIS8GNRElFSM1Jw8FFSMVMxEfDjMhMz8OETM1IzUvBiMHAlM4OG84OG84OAGFAQEDAwUEBQb+RAYFBAUDAwIBTaYWBQkHBgQD3jcBAQIDAwUEBgYGBwcICAgJAbwJCAgIBwcGBgYEBQMDAgEBN94DBAYHCQoLrAzqAb3+QwG9/kMBvW/9gQYFBAUDAwEBAQEDAwUEBQYCf284ODMCBggJCgo+N/2BCQgICAcHBgYGBAQEAwIBAQIDBAQFBQYGBwcICAgJAn83PgsKCAgGBAIBAAABAAAAAAO8A7wAxgAAAQ8MNSMVMzUjPw8fFw8XLx4HHx4zPxcvFyMPAQGKDg4cGhoZFxcVFBMQEDfegQ0OEBITFBUWGBgZGhsbGxwaGhoZGRcXFhUUFBIREA4ODAoJCAYFAgEBAgUGCAkKDA4OEBESFBQVFhcXGQwaGRsdEBAQEA8PDw8PDg4ODQ0MDAwLCwsKChIIBwcHBgUENgUGBwcICQkKCwsLDA0NDQ4PDg8QEBAREREREhISEhITHh4dHRwbGhkZFxYUFBIRDw4MCgkHBAMBAQMFBgkLDA0PERIUFBYXGRkaGxwdHR4eHh4dA60FBAsMDhARExQWGBgad984GRcXFRQSEQ8ODAoJBgUDAQECBQYHCQsMDQ8QERITFRUWFxcZGRkaGxobGRkYGBcWFRQTExEQDg4MCgkIAwUEAgEBAQIDBAQFBgYGBwgICQkKCgoMCwwMGg4ODg8PDw8OEhIREBEQDw8PDg4NDQwLCwsKCQkIBwcHBQUEAwMCAQEDBAcJCwwNDxESExUWFxkZGhscHR0eHh4eHR0cGxoZGRcWFBQSEQ8ODAoJBwQDAQMFAAAAAgAAAAADFQO8AAMAaAAANyE1IREfHjsBPx4RIxEPDiMvDgMj6gIs/dQBAQEDAwMFBQYGBggHCAkJCgoKCwsMDA0MDQ4NDg0PDg4ODg4NDQ0NDQwLDAoLCgkKCAkHBwcGBgUEBAMDAQEBOAIFBgkLDA0PEBITFBUWFhcWFhQVExERDw0MCgkHBAIBN0Q3AU0ODg4ODQ0NDQwMDAsLCwoJCQkICAcHBgYFBAQDAgIBAQICAwQEBQYGBwcICAkJCQoLCwsMDAwNDQ0NDg4ODgH0/gEWFhUUExERDw0MCwgHBAMDBAcICwwNDxERExQVFhYB/wAAAAEAAAAAArEDvAADAAAlMwEjAU86ASg6RAN4AAADAAAAAAOQA5AACwBMANMAAAEjFTMVMzUzNSM1IzcfCA8PLw8/Dx8GJQ8WHQEfHTM/Bx8GMz8INS8EPwcvHisBDwUBnGRkZGRkZL8HBw0LCQcFAwEBAwUHCQsNDhERERMUFBUWFRUVExMSERAPDAsJBwUDAQEDBQcJCwwPEBESExMVFRUWFRUTExER/vUPDw8NDgwMDAsLCgkJCAcHBwUFAwMCAgICAwMFBQcHBwgJCQoLCwsNDA4NDw4QEBAQEBEQEREbGRkYGBcWFqoEBQYFBgYNDAUFCgkHAwEDAwEDB6kODAsIBwQDAQEBAgMEBAYGBwcICQoJCwsMDAwODQ8PDxAQEBARERASERARERAQEAJkZGRkZGQOCAkRERMTFRUWFRUVExMREREODQsJBwUDAQEDBQcJCw0OERERExMVFRUWFRUTExEREQ4NCwkHBQMBAQMFBwkLDZEHBwgJCQoLCwsNDA4NDw8PEBAQEBEQERESEBEREBAQEA8PDw0ODA0LCwsKCQkIBwcHBQUDAwICAQMEBwgLDA6pBAMCAgIBAgIDBwkKBQUMDQwFBQqqFhYXGBgZGRsRERAREBAQEA8PDw0ODA0LCwsKCQkIBwcHBQUDAwICAgIDAwUFAAMAAAAAA5ADkAADAEQAywAAASE1ISUfCA8PLw8/Dx8GJQ8WHQEfHTM/Bx8GMz8INS8EPwcvHisBDwUBOAEs/tQBIwcHDQsJBwUDAQEDBQcJCw0OERERExQUFRYVFRUTExIREA8MCwkHBQMBAQMFBwkLDA8QERITExUVFRYVFRMTERH+9Q8PDw0ODAwMCwsKCQkIBwcHBQUDAwICAgIDAwUFBwcHCAkJCgsLCw0MDg0PDhAQEBAQERARERsZGRgYFxYWqgQFBgUGBg0MBQUKCQcDAQMDAQMHqQ4MCwgHBAMBAQECAwQEBgYHBwgJCgkLCwwMDA4NDw8PEBAQEBEREBIREBEREBAQAgBkcggJERETExUVFhUVFRMTERERDg0LCQcFAwEBAwUHCQsNDhERERMTFRUVFhUVExMREREODQsJBwUDAQEDBQcJCw2RBwcICQkKCwsLDQwODQ8PDxAQEBAREBEREhARERAQEBAPDw8NDgwNCwsLCgkJCAcHBwUFAwMCAgEDBAcICwwOqQQDAgICAQICAwcJCgUFDA0MBQUKqhYWFxgYGRkbEREQERAQEBAPDw8NDgwNCwsLCgkJCAcHBwUFAwMCAgICAwMFBQAAAgAAAAADkAOQABsAtgAANw8CFR8FIT8FNS8FIQ8BARc7AR8KDxArAS8WPwgnNw8BJyMfCRUfGj8WLwM1PwUzPwMvAQcjJyN1AgIBAQICAgMDAwYDAwICAgEBAgICAwP8+gMDAg8HOgUFBgkJAwQDAgULAQEDBAIFBwcLCw8SDA0OGBgZGwsMDAsMCwwLCA4HBgUKBgUEAwMDAgEHAQMDAwQECg0pHwEBpCyCJAImGg4MBQUCAwMCAgMFBAQFBgYHCAgKCgsMDQ4PEBASEhMTFRUlIhEPDw8bGAwLCwoSEA0LBgYHBQIDAQEIAwEBAgQBBiIKCwsMAgMKOCN1LM4CAwNJAwMCAgIBAQICAgMDSQMDAgICAQECApMBAgIFCAMJCw89fVYjHhgLDw8OEwwNDAgGBQYFAwECAwMEBQYECwYGBg8KDAwNDQ4PEJKxIAgFAgIEAQIDJgcEAQYuAwMEBAQFBBEl4jgfGhoODg0MDAsKCgkICQcIBgcFBQQEAgIBAQEEAgMEBAkKBgcHBw8QEBENDxoYESUqMLYYFRAFBQUBAQcCAgIQGwEFBQAEAAAAAAOQA5AAAwAjACcARQAAARUhNScfAh0BDwYvBj0BPwU7AR8BJRUhNQcrAQ8IETMVITUzES8HIzUhApb+1GsDAgICAgMEBAUFBQQFAwQCAgICBAMFBAUFBQQBm/7UZDIyCQ0HBgUEAwIBlgH0lgEBBQUGCAkKaf4MAZzIyKgEBAUFBQQEBAMDAQEBAQMDBAQEBQUFBAQDAgIBA+WWlpYBBQQFBgYHCAj+opaWAV4HCAsGBwUEAvoAAAEAAAAAA48DkABEAAABDwMVIw8GFR8GMxUfBjM/BjUzPwY1LwYjNS8GIw8CAawDBwQC+QsKCQgHBAICBAcICQoL+QIEBwgJCgtjCgoJCAcEAvkLCgkIBwQCAgQHCAkKC/kCBAcICQoKXgsKCgOABQkKCvoCBAcICQoLYwoKCQgHBAL5CwoJCAcEAgIEBwgJCgv5AgQHCAkKC2MKCgkIBwQC+goKCQgHBAIBAwUAAAAABQAAAAADwgPCAAMABwAJAFUAmwAAARUhNQEVIzUHNSMVHw8hPw81FxEjNS8PIQ8PFSMRNQ8PER8PIT8PETUvDzECyP5wASyWlmQBAQIEBAUGBgcICAkJCgoKASwKCgoJCQgIBwYGBQQDAwEBljIBAQMDBAUGBgcICAkJCgoK/nAKCgoJCQgIBwYGBQQDAwEBMgoKCgkJCAgHBgYFBAMDAQEBAQMDBAUGBgcICAkJCgoKArwKCgoJCQgIBwYGBQQEAgEBAgIDBAQGBp8HBwcICAgJCgFqyMgB9MjIyMjICgoKCQkICAcGBgUEAwMBAQEBAwMEBQYGBwgICQkKCgq+oP3uyAoKCgkJCAgHBgYFBAMDAQEBAQMDBAUGBgcICAkJCgoKyAK8ZAEBAgQEBQYGBwgICQkKCgr9RAoKCgkJCAgHBgYFBAQCAQEBAQIEBAUGBgcICAkJCgoKAhIKCQkJCQgHCKkHBQUFAwMCAgAAAAACAAAAAAOQA5AAbQCxAAABHwQPCC8IPQEPFhUfAQ8ELw4/Fz0BPwgfAiUPBxEfDyE/DxEvDyEPBgJ7uAQDAgEBAgMEuAUFBgcGAwgFAwMCAgEjHxsYCwoJCQgIBgcGBgYFBAMDAgIBAQIFAQIEBgQDBAMDChMRDQsIAwMBAQECAwIHBQUGBwgKCgwNDw8REhQWGBocHB8BAgIDAwUFBwcGBQX+JgoJCAYFAwIBAQIDBQYICQoLDAwNDg4PDwH0Dw8ODgwNDAsKCQgGBQMCAQECAwUGCAkKCwwNDA4ODw/+DA8PDg4NDAwDM7gFBQYHBwYFBbgEAwIBAQEDAwMEBAUEBlMBAgQFBAMEBQUGBgcICQoLDA0ODxAREhIpLwUFAwIBAQECAg8cHBsaGgwNDAwbHRsOHw8PDQ0NDA0MDAsJCQgHBgYEAwIBUwUFBQQDBAMCAgEBAgMtCwwNDQ0ODw/+DA8PDg0NDQwLCgkIBgUDAgEBAgMFBggJCgsMDQ0NDg8PAfQPDw4NDQ0MCwoJCAYFAwIBAQIDBQYICQAAAwAAAAADbgOPADEAVgC4AAABMx8TFQ8PLwYTPwITHwsPDy8BAz8BMx8BJyMHHwkTDwg3Fz8VLw8/Di8TAhEKFhcLCgkJCQkJCAkHCAUEBAMCAgEBAgQFBwgKDA0OEBITFRYYERITEwEDBAEEERdUDw4ODQ0LCQgHBQMBAQMEBgcJCgwODg4QEBIUFCAZBBQiHhEQ2Q+iAioZEwkGAQECBQQCBQMDAwUaRQHxyRcXFhUWFRUUExEQBw4MCwkDBAICAgEBAwQGBwkLDQ0PEBAREhMTDScTFQkIBgYFBQQEAwEBAQMEBggJCwsNDQ8PERARERIREkECBwMFAwMEBQYGBwkJCgsJCgoLDQ0NDxUUEhEQDg0MCgkHBgUDAgEBAwUIAhAyAQQBAwEBSwQFBggICgsNDhAQEhUTEhAODQsJBwcFBAMCAQEBAwEUAwQBAzUGKwQEBAMEAgILVv4rIR4ICAcBCA0xCwICAgMEBgcICgoMDQcPERMUCwsMDAwZExMREBAPDg4MCwsJCAcGBQYUCw8IBwcICQoLDAwMDhMSEhAQDg0MCgoJCAcGBQQDAgEBAAAAAAMAAAAAA/QDcAAqAFYAuQAAAR8GFQ8MJS8FPQE/CwMzHwYVHwYhHwYVIQ8IET8GJw8HER8PJT8OPQEvCiM1Lw8hPQEvDiMPBgOVBwUFBAMCAgEBAwSaCAgKDAsMCwv9wAYFAwMDAQIDBJoICAoMCwwLCjIFCgkIBwYDAgIEBQgICQkBOAoJCAcGAwL+bhISEhMSEA4NhgIEBQcJCQlNCAgFBQQDAQEBAQMEBQUICAgKCQsKCwsMAkMSEhMTEQ8NoQYEBQMDAQICAgQDBwkKDAwNDmsBAgIEBQYHCAkJCgoKCwwM/uMCAgQFBgcICQkKCgsLCwyoCwwLCgsJCgHfAQEBAgMDAwUEBQYFvggHBwYFBAIBAQEBAgMDAwUEBQYGvggHBwUFBAIBAU8CBAUICAkJLAoJCAcGAwICBAUICAkJWQEEBgcKCwwNpQHECQkJBwUEAiAJCQoKCgsMDP4KDAwLCgoKCQkIBwYFBAMBAQECBAcJCgwMxQgIBwgICAgICQkJCQYKCQgHBAQBVAwMCwoKCgkJCAcGBQQDAQEQDAwLCgoKCQkIBwYFBAMBAQEBAwQFBgcAAAAABQAAAAADXgOQACEAQwBlAGkAxQAAAREPBy8HET8HHwYHEQ8HLwcRPwcfBgcRDwcvBxE/Bx8GNxcjNycHIw8HFR8HMxEVHw0zITM/DTURMz8HNS8HIy8IIw8GApYBAQIDBAQFBQUFBAQDAgEBAQECAwQEBQUFBQQEAwIBfAEBAgMEBAUFBQUEBAMCAQEBAQIDBAQFBQUFBAQDAgF8AQECAwQEBQUFBQQEAwIBAQEBAgMEBAUFBQUEBAMCAbAU1xRCIn0FBQQEAwIBAQEBAgMEBAUFGQIBAwMEBAUFBgYHBwcHCAHCCAcHBwcGBgUFBAQDAwECGQUFBAQDAgEBAQECAwQEBQWWIgQFBwcICAkKvwkKCAgHBwUCcP68BgQEBAMDAQEBAQMDBAQEBgFEBgQEBAMDAQEBAQMDBAQEBv68BgQEBAMDAQEBAQMDBAQEBgFEBgQEBAMDAQEBAQMDBAQEBv68BgQEBAMDAQEBAQMDBAQEBgFEBgQEBAMDAQEBAQMDBAQEzzIyJFYBAQIDBAQFBRkFBQQEAwIBAf3zCAcHBwcGBgUFBAQDAwECAgEDAwQEBQUGBgcHBwcIAg0BAQIDBAQFBRkFBQQEAwIBAVYICAcFBQMCAQECAwUFBwgAAAAAAQAAAAADjwOPAOgAAAEPBy8DKwEPBx0BHwY7Aj8ILwQ/Bx8dDx4vESsBDwUVHxAzPx4vHisBDwUBbBIRERAPEA4OSAQFBAUEBQoEBAMCAgEBAgMEBQYGBuoFBQQEBAMDBAEBAQECA0sTFBUXGBgZGQ0ODQ0NDA0MGAsLCwoJCQkJBwgHBgYKBQMDAwEBAQEBAQMDAwUKBgYHCAcJCQkJCgsLCwwMDA0MDQ0NDg0PEA8ODw4ODg4NDAwMCgsMAgQDBAQDAkgDAQMPDxARERMTFBQUFRUWFhYWFBQUExQTEhMSEhEQEA8ODg0MDAsKCgkICAYGBAMDAQEBAQMDBAYGCAgJCgoLDAwNDg4PEBAREhITEhMUExQUFBMTExITEhIDcwcJCQoKCw0MRgMCAgEEAwMEBAQFBukGBwUFBQMCAQICAwQECgQFBQQEBUsRDgwKCAYEAQEBAQIDBAQFDAYHBwgJCAkKCgsKDAsZDA0NDQ0NDg0ODQ0NDA0YDAsLCwoJCggJBwgHBgYGBAUDAwMBAQEBAQIDBAUFBggHCQkKCwsOAgIBAQJIBQYGBhAQDw4NCwsKCQgGBgQDAQECAgQEBgYICAkKCgsMDA0ODg8QEBESEhITExQTFBQUFBQUExQTExISEhEQEA8ODg0MDAsKCgkICAYGBAQCAgICAwQFBgABAAAAAAMKA48AKAAAATMfBBUHCwEPBjcfAj8CLwE3Ez8GBysBLwEBkAYiGg8HBwM1QwUGBg8QRgl7giwiJgYCYAEIWRkIBAtjBgSNGR8gjANaAwQDAwMNF/7x/soPDAoHBRItCgEGBAIbGBAPLwGZiiEKBB0YFggBBwAABAAAAAAEAAQAAAMABwALACMAAAEVITUhFSE1ARUhNQMzFSERIxEhESM1IRUjESERIxEhNTMRIQPA/wD+gP8AAkD+wEDA/sCAAYDAAoDAAYCA/oDA/kABAMDAwMACwMDA/wCA/wD+wAFAwMD+wAFAAQCAAUAAAAAAAQAAAAAEAAQAAHYAAAEHIREhLwcPDx8PPw8hETMfDz8PLw8PBgMSAf7v/u8LCwwNDw8REQ0NDAwLCwkKCAcHBQQDAgEBAgMEBQcHCAoJCwsMDA0NDQ0MDAsLCQoIBwcFBAMCAQFAwAECAwQFBwcICgkLCwwMDQ0NDQwMCwsJCggHBwUEAwIBAQIDBAUHBwgKCQsLDAwNDRERDw8NDAsDwgL9ABAMCgkHBgMBAQIDBAUHBwgKCQsLDAwNDQ0NDAwLCwkKCAcHBQQDAgEBAgMEBQcHCAoJCwsMDA0NAwANDQwMCwsJCggHBwUEAwIBAQIDBAUHBwgKCQsLDAwNDQ0NDAwLCwkKCAcHBQQDAgEBAwYHCQoMAAAAAAQAAAAAA/8EAAAWAFcAbQCrAAABDwEVHxAFAQUVDw8vDz8PHw4DEQ8PJwMjEQMzAyEnHwEzPx09AS8TESEBwgEBAQIDBQYHCAoKDAwNDw8PEjP92QEcAkABBAUICQsNDxAREhQUFhYXFxYVFRQSERAPDQsJCAUEAQEEBQgJCw0PEBESFBUVFhcXFhYUFBIREA8NCwkIBQT/FxESEBEPEA4ODQ0LCwsJC1uMtEDS0gMARxUSDw4PDg4NDg0NDAwMCwsKCwkJCQgHBwcFBQUEAwMBAgECAgMDBAkMDQ8RExQVFxgZDA0S/QABwgcNDhQUFBMSEhIQEA8PDQ0MCwphAQIAoAwLFhYUFBIREA8NCwkIBQQBAQQFCAkLDQ8QERIUFBYWFxcWFhQUEhEQDw0LCQgFBAEBBAUICQsNDxAREhQUFhYCCf7+AwQFBgcICQoLDAwNDg4PFqf/AAIA/cD+gIMCAQECAwMEBQUFBwcHCAkJCQoLCwsMDAwNDQ0ODg4PDg8ODQ0ODA0NGBcWFBMSEA4MCggDAwIBQgAAAAAAABIA3gABAAAAAAAAAAEAAAABAAAAAAABABsAAQABAAAAAAACAAcAHAABAAAAAAADABsAIwABAAAAAAAEABsAPgABAAAAAAAFAAsAWQABAAAAAAAGABsAZAABAAAAAAAKACwAfwABAAAAAAALABIAqwADAAEECQAAAAIAvQADAAEECQABADYAvwADAAEECQACAA4A9QADAAEECQADADYBAwADAAEECQAEADYBOQADAAEECQAFABYBbwADAAEECQAGADYBhQADAAEECQAKAFgBuwADAAEECQALACQCEyBOZXcgTWF0ZXJpYWxfRGlhZ3JhbUJ1aWxkZXJSZWd1bGFyTmV3IE1hdGVyaWFsX0RpYWdyYW1CdWlsZGVyTmV3IE1hdGVyaWFsX0RpYWdyYW1CdWlsZGVyVmVyc2lvbiAxLjBOZXcgTWF0ZXJpYWxfRGlhZ3JhbUJ1aWxkZXJGb250IGdlbmVyYXRlZCB1c2luZyBTeW5jZnVzaW9uIE1ldHJvIFN0dWRpb3d3dy5zeW5jZnVzaW9uLmNvbQAgAE4AZQB3ACAATQBhAHQAZQByAGkAYQBsAF8ARABpAGEAZwByAGEAbQBCAHUAaQBsAGQAZQByAFIAZQBnAHUAbABhAHIATgBlAHcAIABNAGEAdABlAHIAaQBhAGwAXwBEAGkAYQBnAHIAYQBtAEIAdQBpAGwAZABlAHIATgBlAHcAIABNAGEAdABlAHIAaQBhAGwAXwBEAGkAYQBnAHIAYQBtAEIAdQBpAGwAZABlAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAE4AZQB3ACAATQBhAHQAZQByAGkAYQBsAF8ARABpAGEAZwByAGEAbQBCAHUAaQBsAGQAZQByAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAHUAcwBpAG4AZwAgAFMAeQBuAGMAZgB1AHMAaQBvAG4AIABNAGUAdAByAG8AIABTAHQAdQBkAGkAbwB3AHcAdwAuAHMAeQBuAGMAZgB1AHMAaQBvAG4ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQAHWm9vbUluTQhab29tT3V0TQpVbmRlcmxpbmVNBlByaW50TQROZXdNBVNhdmVNB0V4cG9ydE0FQm9sZE0LT3BlbkZvbGRlck0HRGVsZXRlTQhSZWZyZXNoTQdJdGFsaWNNB1pvb21JbkYIWm9vbU91dEYGUHJpbnRGBE5ld0YFU2F2ZUYHRXhwb3J0RgVCb2xkRgtPcGVuRm9sZGVyRgdEZWxldGVGCFJlZnJlc2hGClVuZGVybGluZUYHSXRhbGljRgdab29tSW5CCFpvb21PdXRCClVuZGVybGluZUIGUHJpbnRCBE5ld0IFU2F2ZUIHRXhwb3J0QgVCb2xkQgtPcGVuRm9sZGVyQgdEZWxldGVCCFJlZnJlc2hCB0l0YWxpY0IKRmxvd1NoYXBlcwlDb25uZWN0b3ILQmFzaWNTaGFwZXMAAAAAAA==) format('truetype'); - font-weight: normal; - font-style: normal; -} - -.control-section { - height: calc(100%); -} - -.e-ddb-icons { - font-family: 'e-ddb-icons'; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.e-basic::before { - content: "\e726"; -} - -.e-flow::before { - content: "\e724"; -} - -.e-connector::before { - content: "\e725"; -} - -#container { - display: block; -} - -#symbolPalette { - display: block; -} - -@font-face { - font-family: 'e-ddb-icons1'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj1tSfIAAAEoAAAAVmNtYXDnEOdVAAABiAAAADZnbHlmdC1P4gAAAcgAAAAwaGVhZBJhohMAAADQAAAANmhoZWEIVQQDAAAArAAAACRobXR4CAAAAAAAAYAAAAAIbG9jYQAYAAAAAAHAAAAABm1heHABDgAUAAABCAAAACBuYW1lm+wy9gAAAfgAAAK1cG9zdLnsYngAAASwAAAAMAABAAAEAAAAAFwEAAAAAAAD+AABAAAAAAAAAAAAAAAAAAAAAgABAAAAAQAAgNcenF8PPPUACwQAAAAAANelrs4AAAAA16WuzgAAAAAD+AN6AAAACAACAAAAAAAAAAEAAAACAAgAAgAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQQAAZAABQAAAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5wDnAAQAAAAAXAQAAAAAAAABAAAAAAAABAAAAAQAAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACIAAAAEAAQAAQAA5wD//wAA5wD//wAAAAEABAAAAAEAAAAAAAAAGAAAAAIAAAAAA/gDegACAAcAACUhCQEhATUhAQQC9P6G/YoBMQFF/YqGAjf+hgH0QwAAAAAAEgDeAAEAAAAAAAAAAQAAAAEAAAAAAAEAEwABAAEAAAAAAAIABwAUAAEAAAAAAAMAEwAbAAEAAAAAAAQAEwAuAAEAAAAAAAUACwBBAAEAAAAAAAYAEwBMAAEAAAAAAAoALABfAAEAAAAAAAsAEgCLAAMAAQQJAAAAAgCdAAMAAQQJAAEAJgCfAAMAAQQJAAIADgDFAAMAAQQJAAMAJgDTAAMAAQQJAAQAJgD5AAMAAQQJAAUAFgEfAAMAAQQJAAYAJgE1AAMAAQQJAAoAWAFbAAMAAQQJAAsAJAGzIERpYWdyYW1fU2hhcGVzX0ZPTlRSZWd1bGFyRGlhZ3JhbV9TaGFwZXNfRk9OVERpYWdyYW1fU2hhcGVzX0ZPTlRWZXJzaW9uIDEuMERpYWdyYW1fU2hhcGVzX0ZPTlRGb250IGdlbmVyYXRlZCB1c2luZyBTeW5jZnVzaW9uIE1ldHJvIFN0dWRpb3d3dy5zeW5jZnVzaW9uLmNvbQAgAEQAaQBhAGcAcgBhAG0AXwBTAGgAYQBwAGUAcwBfAEYATwBOAFQAUgBlAGcAdQBsAGEAcgBEAGkAYQBnAHIAYQBtAF8AUwBoAGEAcABlAHMAXwBGAE8ATgBUAEQAaQBhAGcAcgBhAG0AXwBTAGgAYQBwAGUAcwBfAEYATwBOAFQAVgBlAHIAcwBpAG8AbgAgADEALgAwAEQAaQBhAGcAcgBhAG0AXwBTAGgAYQBwAGUAcwBfAEYATwBOAFQARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAdQBzAGkAbgBnACAAUwB5AG4AYwBmAHUAcwBpAG8AbgAgAE0AZQB0AHIAbwAgAFMAdAB1AGQAaQBvAHcAdwB3AC4AcwB5AG4AYwBmAHUAcwBpAG8AbgAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgECAQMABlNoYXBlcwAA) format('truetype'); - font-weight: normal; - font-style: normal; -} - -.e-ddb-icons1 { - font-family: 'e-ddb-icons1'; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.custom-btn { - width: 100%; - border-radius: 50px; - margin: 20px 0; -} - -.e-dropdown-btn { - border: none; - box-shadow: none; -} - -.e-fab.e-btn.e-fab-right { - right: 32px; - bottom: 32px; -} - -.e-dialog .e-dlg-header-content { - height: auto; -} - -.sb-mobile-palette { - width: 240px; - float: left; - overflow: auto; - border: 1px solid #ccc; -} - -.sb-mobile-palette-bar { - display: none; -} - -.sb-mobile-diagram { - width: calc(100% - 242px); - height: calc(100% - 40px); - float: left; - display: block; - border: 1px solid #ccc; -} - -@media (max-width: 550px) { - .sb-mobile-palette { - z-index: 19; - position: absolute; - display: none; - transition: transform 300ms linear, visibility 0s linear 300ms; - width: 30%; - height: 100%; - } - - .sb-mobile-palette-bar { - display: block; - width: 100%; - background: #fafafa; - padding: 14px 10px; - border: 0.5px solid #e0e0e0; - min-height: 54px; - } - - .sb-mobile-diagram { - width: 100%; - height: 100%; - float: left; - left: 0px; - } - - #palette-icon { - font-size: 20px; - } -} - -.sb-mobile-palette-open { - position: absolute; - display: block; - right: 15px; -} - -.e-toggle-palette::before { - content: "\e700" -} - -#properties { - width: 100%; - float: left; -} - -.custom-dialog .e-dlg-content { - padding: 0; -} - -.custom-dialog .e-dlg-header { - font-size: 18px; -} - -.custom-ai-assist { - border: none; -} - -.ai-assist-banner { - display: flex; - flex-direction: column; - justify-content: center; - height: 200px; - font-size: 18px; - align-items: center; - text-align: center; -} - - .ai-assist-banner h2 { - margin: 0; - } - - .ai-assist-banner .e-icons:before { - font-size: 40px; - } - -.compose-view, -.output-view { - width: max(70%, 400px); - border: 1px solid lightgray; - padding: 15px; - margin: 15px auto 20px; - border-radius: 7px; -} diff --git a/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor b/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor deleted file mode 100644 index 356f0dd5..00000000 --- a/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor +++ /dev/null @@ -1,1168 +0,0 @@ -@page "/ai-diagram/text-to-mindmap" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.Spinner -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using System.Text.Json; -@using Syncfusion.Blazor.Navigations -@using DiagramShapes = Syncfusion.Blazor.Diagram.NodeShapes -@using DiagramSegments = Syncfusion.Blazor.Diagram.ConnectorSegment -@using Orientation= Syncfusion.Blazor.Diagram.Orientation -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using BlazorDemos.Service - -@inject AzureAIService ChatGptService -@namespace TextToMindMapDiagram -@inject IJSRuntime JS - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@inject NavigationManager NavigationManager -@*End:Hidden*@ - - -

- This demo sample showcases the creation of a dynamic mindmap diagram using the Blazor Diagram Component with the assistance of AI. The AI-powered diagram features nodes and connectors arranged in a mindmap layout, designed to visually organize and represent ideas and concepts. This sample is ideal for brainstorming, organizing thoughts, and visually mapping out complex information. The context menu allows for quick actions such as adding, editing, or deleting nodes, making it a powerful tool for interactively managing and expanding mindmaps. -

-

To explore this and more Syncfusion Blazor Smart AI integrations locally, check out our GitHub repository.

-
- - -

- This sample leverages a specialized AI prompt, allowing users to generate the content of the diagram by submitting a prompt to OpenAI. The AI's response is parsed and transformed into nodes and connectors, visually representing the generated ideas or concepts in a mindmap format. Users can also manually add child nodes using user handles to further expand and customize the mindmap, creating an interactive and personalized experience. -

-
- -@*Hidden:Lines*@ - -@*End:Hidden*@ - -
-
-
-
- - -
- - - - - - - - -
-
- - -
-
-
-@code{ - public SfDiagramComponent Diagram; - public SfSpinner SpinnerRef; - public DiagramOpenAI DiagramOpenAIRef; - public DiagramShortCutKey DiagramShortCutKeyRef; - public DiagramMenuBar MenubarRef; - public DiagramToolBar Toolbar; - public SnapConstraints SnapConstraint = SnapConstraints.ShowLines; - public double CurrentZoom { get; set; } = 1; - public bool IsGeneratingFromAI = false; - /// - /// Collection of keyboard commands for the diagram. - /// - DiagramObjectCollection commands = new DiagramObjectCollection(); - /// - /// The minimum zoom level allowed for the diagram. - /// - private double minZoom { get; set; } = 0.25; - /// - /// The maximum zoom level allowed for the diagram. - /// - private double maxZoom { get; set; } = 30; - /// - /// Specifies whether the undo functionality is enabled in the diagram. - /// - public bool IsUndo = false; - /// - /// Specifies whether the redo functionality is enabled in the diagram. - /// - public bool IsRedo = false; - /// - /// Specifies whether the diagram is selected. - /// - public bool diagramSelected = false; - /// - /// Represents an array of fill colors. - /// - private static string[] fillColorCode = { "#C4F2E8", "#F7E0B3", "#E5FEE4", "#E9D4F1", "#D4EFED", "#DEE2FF" }; - /// - /// Represents an array of border colors. - /// - private static string[] borderColorCode = { "#8BC1B7", "#E2C180", "#ACCBAA", "#D1AFDF", "#90C8C2", "#BBBFD6" }; - /// - /// Represents the last fill index, an integer. - /// - private static int lastFillIndex = 0; - LayoutType layoutType = LayoutType.MindMap; - public string height = "700px"; - public string width = "100%"; - public DiagramObjectCollection nodes = new DiagramObjectCollection(); - public DiagramObjectCollection connectors = new DiagramObjectCollection(); - ScrollLimitMode scrollLimit { get; set; } = ScrollLimitMode.Diagram; - DiagramInteractions interactionController = DiagramInteractions.SingleSelect; - int VerticalSpacing = 20; - int HorizontalSpacing = 80; - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - DiagramObjectCollection handles = new DiagramObjectCollection(); -#pragma warning restore CS8618 - public List MindmapData = new List() - { - new MindMapDetails(){Id="node1",Label="Business Planning",ParentId ="",Branch= BranchType.Root, Fill="#D0ECFF", Level = 0 }, - new MindMapDetails(){Id="node2",Label= "Expectation",ParentId = "node1",Branch= BranchType.Left,Fill= "#C4F2E8", Level = 1 }, - new MindMapDetails(){Id="node3",Label= "Requirements", ParentId="node1",Branch= BranchType.Right,Fill= "#F7E0B3", Level = 1 }, - new MindMapDetails(){Id="node4",Label= "Marketing", ParentId="node1",Branch= BranchType.Left,Fill= "#E5FEE4", Level = 1 }, - new MindMapDetails(){Id="node5",Label= "Budgets",ParentId= "node1",Branch= BranchType.Right,Fill= "#E9D4F1", Level = 1 }, - new MindMapDetails(){ Id="node6", Label="Situation in Market", ParentId= "node1", Branch = BranchType.Left, Fill= "#D4EFED", Level = 1 }, - new MindMapDetails(){ Id="node7", Label="Product Sales", ParentId= "node2", Branch = BranchType.SubLeft, Fill= "#C4F2E8", Level = 2 }, - new MindMapDetails() { Id = "node8", Label= "Strategy", ParentId="node2", Branch = BranchType.SubLeft, Fill="#C4F2E8", Level = 2 }, - new MindMapDetails() { Id = "node9", Label="Contacts", ParentId="node2", Branch = BranchType.SubLeft, Fill="#C4F2E8", Level = 2 }, - new MindMapDetails() { Id = "node10", Label="Customer Groups", ParentId= "node4", Branch = BranchType.SubLeft,Fill= "#E5FEE4", Level = 2 }, - new MindMapDetails() { Id = "node11", Label= "Branding", ParentId= "node4", Branch = BranchType.SubLeft, Fill= "#E5FEE4", Level = 2 }, - new MindMapDetails() { Id = "node12", Label= "Advertising", ParentId= "node4", Branch = BranchType.SubLeft, Fill= "#E5FEE4", Level = 2 }, - new MindMapDetails() { Id = "node13", Label= "Competitors", ParentId= "node6", Branch = BranchType.SubLeft, Fill="#D4EFED", Level = 2 }, - new MindMapDetails() { Id = "node14", Label="Location", ParentId="node6", Branch = BranchType.SubLeft, Fill= "#D4EFED", Level = 2 }, - new MindMapDetails() { Id = "node15", Label= "Director", ParentId= "node3", Branch = BranchType.SubRight, Fill="#F7E0B3", Level = 2 }, - new MindMapDetails() { Id = "node16", Label="Accounts Department", ParentId= "node3", Branch = BranchType.SubRight, Fill= "#F7E0B3", Level = 2 }, - new MindMapDetails() { Id = "node17", Label="Administration", ParentId= "node3", Branch = BranchType.SubRight, Fill="#F7E0B3", Level = 2 }, - new MindMapDetails() { Id = "node18", Label= "Development", ParentId="node3", Branch = BranchType.SubRight, Fill= "#F7E0B3", Level = 2 }, - new MindMapDetails() { Id = "node19", Label= "Estimation", ParentId= "node5", Branch = BranchType.SubRight, Fill="#E9D4F1", Level = 2 }, - new MindMapDetails() { Id = "node20", Label= "Profit", ParentId= "node5", Branch = BranchType.SubRight, Fill= "#E9D4F1", Level = 2 }, - new MindMapDetails(){ Id="node21", Label="Funds", ParentId= "node5", Branch = BranchType.SubRight, Fill= "#E9D4F1", Level = 2 } - }; - - public void StateChanged() - { - StateHasChanged(); - } - - private void CollectionChanging(CollectionChangingEventArgs args) - { - if (args.Action == CollectionChangedAction.Add && IsGeneratingFromAI) - { - Connector connector = args.Element as Connector; - if (connector != null) - { - UpdateMermaidNodeInfo(connector); - } - } - } - BranchType CurrentBranch = BranchType.Left; - private void UpdateMermaidNodeInfo(Connector connector) - { - Node sourceNode = Diagram.GetObject(connector.SourceID) as Node; - Node targetNode = Diagram.GetObject(connector.TargetID) as Node; - if (connector.ID == Diagram.Connectors[0].ID) - { - CurrentBranch = BranchType.Left; - sourceNode.AdditionalInfo["ParentId"] = ""; - sourceNode.AdditionalInfo["Orientation"] = BranchType.Root; - sourceNode.AdditionalInfo["Level"] = 0; - sourceNode.Style.Fill = "#D0ECFF"; - sourceNode.Style.StrokeColor = "#80BFEA"; - } - if (sourceNode != null && (BranchType)sourceNode.AdditionalInfo["Orientation"] == BranchType.Root) - { - targetNode.AdditionalInfo["ParentId"] = sourceNode.ID; - targetNode.AdditionalInfo["Orientation"] = CurrentBranch; - targetNode.AdditionalInfo["Level"] = 1; - CurrentBranch = (CurrentBranch == BranchType.Left) ? BranchType.Right : BranchType.Left; - } - else - { - BranchType sourceNodeBranch = (BranchType)sourceNode.AdditionalInfo["Orientation"]; - targetNode.AdditionalInfo["ParentId"] = sourceNode.ID; - targetNode.AdditionalInfo["Orientation"] = (sourceNodeBranch == BranchType.Left || sourceNodeBranch == BranchType.SubLeft) ? BranchType.SubLeft : BranchType.SubRight; - targetNode.AdditionalInfo["Level"] = Convert.ToDouble(sourceNode.AdditionalInfo["Level"]) + 1; - } - - UpdateNodeStyles(targetNode, sourceNode); - BranchType targetNodeBranch = (BranchType)targetNode.AdditionalInfo["Orientation"]; - if (targetNodeBranch == BranchType.Right || targetNodeBranch == BranchType.SubRight) - { - connector.SourcePortID = sourceNode.Ports[0].ID; - connector.TargetPortID = targetNode.Ports[1].ID; - } - else if (targetNodeBranch == BranchType.Left || targetNodeBranch == BranchType.SubLeft) - { - connector.SourcePortID = sourceNode.Ports[1].ID; - connector.TargetPortID = targetNode.Ports[0].ID; - } - } - /// - /// This Method to execute the custom command. - /// - public async Task ExecuteCommand(CommandKeyArgs obj) - { - - if (obj.Name == "leftChild") - { - if (Diagram.SelectionSettings != null && Diagram.SelectionSettings.Nodes.Count > 0) - { - Diagram.StartGroupAction(); - BranchType type = (BranchType)Diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - if (type == BranchType.SubRight || type == BranchType.Right) - { - await TextToMindMap.AddLeftChild(Diagram); - } - else if (type == BranchType.SubLeft || type == BranchType.Left || type == BranchType.Root) - { - await TextToMindMap.AddRightChild(Diagram); - } - Diagram.ClearSelection(); - Diagram.Select(new ObservableCollection() { Diagram.Nodes[Diagram.Nodes.Count - 1] }); - Diagram.StartTextEdit(Diagram.Nodes[Diagram.Nodes.Count - 1]); - Diagram.EndGroupAction(); - } - } - if (obj.Name == "rightChild") - { - if (Diagram.SelectionSettings != null && Diagram.SelectionSettings.Nodes.Count > 0) - { - Diagram.StartGroupAction(); - BranchType type = (BranchType)Diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - if (type == BranchType.SubLeft || type == BranchType.Left) - { - await TextToMindMap.AddRightChild(Diagram); - } - else if (type == BranchType.SubRight || type == BranchType.Right || type == BranchType.Root) - { - await TextToMindMap.AddLeftChild(Diagram); - } - Diagram.ClearSelection(); - Diagram.Select(new ObservableCollection() { Diagram.Nodes[Diagram.Nodes.Count - 1] }); - Diagram.StartTextEdit(Diagram.Nodes[Diagram.Nodes.Count - 1]); - Diagram.EndGroupAction(); - } - } - if (obj.Name == "sibilingChildTop") - { - Node rootNode = Diagram.Nodes.Where(node => node.InEdges.Count == 0).ToList()[0]; - if (rootNode.ID != Diagram.SelectionSettings.Nodes[0].ID) - { - Diagram.StartGroupAction(); - string nodeParent = Convert.ToString(Diagram.SelectionSettings.Nodes[0].AdditionalInfo["ParentId"]); - string parentID = nodeParent; - Node parentNode = Diagram.GetObject(parentID) as Node; - BranchType branch = (BranchType)(parentNode.AdditionalInfo["Orientation"]); - BranchType nodeBranch = (BranchType)(Diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]); - if (branch == BranchType.SubRight || branch == BranchType.Right || (branch == BranchType.Root && nodeBranch == BranchType.Right)) - { - await TextToMindMap.AddLeftChild(Diagram, true); - } - else - { - await TextToMindMap.AddRightChild(Diagram, true); - } - Diagram.ClearSelection(); - Diagram.Select(new ObservableCollection() { Diagram.Nodes[Diagram.Nodes.Count - 1] }); - Diagram.StartTextEdit(Diagram.Nodes[Diagram.Nodes.Count - 1]); - Diagram.EndGroupAction(); - } - } - if (obj.Name == "navigationDown") - { - NavigateChild("Bottom"); - } - if (obj.Name == "navigationUp") - { - NavigateChild("Top"); - } - if (obj.Name == "navigationLeft") - { - NavigateChild("Right"); - } - if (obj.Name == "navigationRight") - { - NavigateChild("Left"); - } - if (obj.Name == "deleteChid" || obj.Name == "delete" || obj.Name == "backspace") - { - Diagram.BeginUpdate(); - RemoveData(Diagram.SelectionSettings.Nodes[0], Diagram); - _ = Diagram.EndUpdate(); - await Diagram.DoLayout(); - } - if (obj.Name == "fitPage") - { - FitOptions fitoption = new FitOptions() - { - Mode = FitMode.Both, - Region = DiagramRegion.PageSettings, - }; - Diagram.FitToPage(fitoption); - } - if (obj.Name == "showShortCut") - { - ShowHideShortcutKey(); - } - if (obj.Name == "duplicate") - { - MenubarRef.IsDuplicate = true; - Diagram.Copy(); - Diagram.Paste(); MenubarRef.IsDuplicate = false; - } - if (obj.Name == "fileNew") - { - Diagram.Clear(); - MenubarRef.enablePasteButten = false; - Diagram.BeginUpdate(); - MenubarRef.ViewMenuItems[7].IconCss = "sf-icon-blank"; - MenubarRef.WindowMenuItems[1].IconCss = "sf-icon-Selection"; - DiagramShortCutKeyRef.ShowShortCutKey = "block"; - Toolbar.PointerItemCssClass = "tb-item-middle tb-item-selected tb-item-pointer"; - Toolbar.PanItemCssClass = "tb-item-start tb-item-pan"; - await Toolbar.HideElements("hide-toolbar", true); - MenubarRef.WindowMenuItems[0].IconCss = "sf-icon-Selection"; - Toolbar.StateChanged(); - DiagramShortCutKeyRef.RefreshShortcutKeyPanel(); - MenubarRef.ItemSelection(); - StateHasChanged(); - } - if (obj.Name == "fileOpen") - { - await MenubarRef.OpenUploadBox(true, ".json"); - } - if (obj.Name == "fileSave") - { - string fileName = "diagram"; - await MenubarRef.Download(fileName); - } - } - - /// - /// This method is used to navigate between the nodes - /// - public void NavigateChild(string direction) - { - SfDiagramComponent diagram = Diagram; - Node? node = null; - List sameLevelNodes = new List(); - if (direction == "Top" || direction == "Bottom") - { - sameLevelNodes = GetSameLevelNodes(); - int index = sameLevelNodes.IndexOf(diagram.SelectionSettings.Nodes[0]); - node = direction == "Top" ? sameLevelNodes[index == 0 ? 0 : index - 1] : sameLevelNodes[index == (sameLevelNodes.Count - 1) ? index : index + 1]; - } - else - node = GetMinDistanceNode(diagram, direction); - if (node != null) - { - diagram.Select(new ObservableCollection() { node }); - } - - } - - /// - /// This method is used to return a minimum distance node whie navigating between left and right - /// - private Node GetMinDistanceNode(SfDiagramComponent diagram, string direction) - { - Node node = diagram.SelectionSettings.Nodes[0]; - double? nodeWidth = (node.Width == null) ? node.MinWidth : node.Width; - DiagramRect parentBounds = new DiagramRect((node.OffsetX - (nodeWidth / 2)), node.OffsetY - (node.Height / 2), nodeWidth, node.Height); - DiagramRect childBounds = new DiagramRect(); - double oldChildBoundsTop = 0; - Node? childNode = null; - Node? lastChildNode = null; - Node? leftOrientationFirstChild = null; - Node? rightOrientationFirstChild = null; - Node rootNode = diagram.Nodes.Where(node => node.InEdges.Count == 0).ToList()[0]; - if (node.ID == rootNode.ID) - { - List edges = node.OutEdges; - for (int i = 0; i < edges.Count; i++) - { - Connector connector = GetConnector(diagram.Connectors, edges[i]); - childNode = GetNode(diagram.Nodes, connector.TargetID); - if (Convert.ToString((BranchType)childNode.AdditionalInfo["Orientation"]) == direction) - { - if (direction == "Left" && leftOrientationFirstChild == null) - leftOrientationFirstChild = childNode; - if (direction == "Right" && rightOrientationFirstChild == null) - rightOrientationFirstChild = childNode; - double? childNodeWidth = (childNode.Width == null) ? childNode.MinWidth : childNode.Width; - childBounds = new DiagramRect((childNode.OffsetX - (childNodeWidth / 2)), childNode.OffsetY - (childNode.Height / 2), childNodeWidth, childNode.Height); - if (parentBounds.Top >= childBounds.Top && (childBounds.Top >= oldChildBoundsTop || oldChildBoundsTop == 0)) - { - oldChildBoundsTop = childBounds.Top; - lastChildNode = childNode; - } - } - } - if (lastChildNode != null) - lastChildNode = direction == "Left" ? leftOrientationFirstChild : rightOrientationFirstChild; - } - else - { - List edges = new List(); - string selectType = string.Empty; - string orientation = ((BranchType)node.AdditionalInfo["Orientation"]).ToString(); - if (orientation == "Left" || orientation == "SubLeft") - { - edges = direction == "Left" ? node.OutEdges : node.InEdges; - selectType = direction == "Left" ? "Target" : "Source"; - } - else - { - edges = direction == "Right" ? node.OutEdges : node.InEdges; - selectType = direction == "Right" ? "Target" : "Source"; - } - for (int i = 0; i < edges.Count; i++) - { - Connector connector = GetConnector(diagram.Connectors, edges[i]); - childNode = GetNode(diagram.Nodes, selectType == "Target" ? connector.TargetID : connector.SourceID); - if (childNode.ID == rootNode.ID) - lastChildNode = childNode; - else - { - double? childNodeWidth = (childNode.Width == null) ? childNode.MinWidth : childNode.Width; - childBounds = new DiagramRect((childNode.OffsetX - (childNodeWidth / 2)), childNode.OffsetY - (childNode.Height / 2), childNodeWidth, childNode.Height); - if (selectType == "Target") - { - if (parentBounds.Top >= childBounds.Top && (childBounds.Top >= oldChildBoundsTop || oldChildBoundsTop == 0)) - { - oldChildBoundsTop = childBounds.Top; - lastChildNode = childNode; - } - } - else - lastChildNode = childNode; - } - } - } - return lastChildNode; - } - - /// - /// This method is used to return a same level nodes - /// - - private List GetSameLevelNodes() - { - List sameLevelNodes = new List(); - SfDiagramComponent diagram = Diagram; - if (diagram.SelectionSettings.Nodes.Count > 0) - { - Node node = diagram.SelectionSettings.Nodes[0]; - string orientation = ((BranchType)node.AdditionalInfo["Orientation"]).ToString(); - Connector connector = GetConnector(diagram.Connectors, node.InEdges[0]); - Node parentNode = GetNode(diagram.Nodes, connector.SourceID); - for (int i = 0; i < parentNode.OutEdges.Count; i++) - { - connector = GetConnector(diagram.Connectors, parentNode.OutEdges[i]); - Node childNode = GetNode(diagram.Nodes, connector.TargetID); - if (childNode != null) - { - string childOrientation = Convert.ToString((BranchType)childNode.AdditionalInfo["Orientation"]); - if (orientation == childOrientation) - { - sameLevelNodes.Add(childNode); - } - } - } - } - return sameLevelNodes; - } - - /// - /// This method is used to get the Nodes by connectors sourceID and targetID. - /// - public Node GetNode(DiagramObjectCollection diagramNodes, string name) - { - for (int i = 0; i < diagramNodes.Count; i++) - { - if (diagramNodes[i].ID == name) - { - return diagramNodes[i]; - } - } - return null; - } - /// - /// This method is used to get the connectors by node's inedges and outedges - /// - public Connector GetConnector(DiagramObjectCollection diagramConnectors, string name) - { - for (int i = 0; i < diagramConnectors.Count; i++) - { - if (diagramConnectors[i].ID == name) - { - return diagramConnectors[i]; - } - } - return null; - } - /// - /// This method to determine whether this command can execute or not. - /// - public void CanExecute(CommandKeyArgs args) - { - args.CanExecute = true; - } - private BranchType getbranch(IDiagramObject obj) - { - Node node = obj as Node; - BranchType Branch = (BranchType)node.AdditionalInfo["Orientation"]; - - return Branch; - } - - private void OnCreated() - { - Diagram.Select(new ObservableCollection() { Diagram.Nodes[0] }); - } - - /// - /// This method is triggered when select or deselect any objects from the diagram. . - /// - private void SelectionChanged(Syncfusion.Blazor.Diagram.SelectionChangedEventArgs args) - { - Toolbar.EnableToolbarItems(args.NewValue, "selectionchange"); - int ObjectsLength = Diagram.SelectionSettings.Nodes.Count + Diagram.SelectionSettings.Connectors.Count; - if (ObjectsLength > 1 && (Diagram.SelectionSettings.Nodes.Count > 0 || (Diagram.SelectionSettings.Connectors.Count > 0))) - { - diagramSelected = false; - this.MultipleSelectionSettings(args.NewValue); - } - else if (ObjectsLength == 1 && (Diagram.SelectionSettings.Nodes.Count == 1 || Diagram.SelectionSettings.Connectors.Count == 1)) - { - Toolbar.SingleSelectionToolbarItems(); - } - else - { - diagramSelected = true; - Toolbar.DiagramSelectionToolbarItems(); - } - } - - /// - /// This method is used to enable the toolbar items in diagram interaction. - /// - private void HistoryChange(HistoryChangedEventArgs args) - { - Toolbar.EnableToolbarItems(new object() { }, "historychange"); - } - /// - /// This method is used to enable the tool bar items in multiple selection. - /// - private void MultipleSelectionSettings(ObservableCollection SelectedItems) - { - Toolbar.MutipleSelectionToolbarItems(); - } - /// - /// This method is used show or hide the shortcut key. - /// - public void ShowHideShortcutKey() - { - DiagramShortCutKeyRef.ShowShortCutKey = DiagramShortCutKeyRef.ShowShortCutKey == "none" ? "block" : "none"; - int shortcutIndex = MenubarRef.WindowMenuItems.FindIndex(item => item.Text == "Show Shortcuts"); - MenubarRef.WindowMenuItems[shortcutIndex].IconCss = MenubarRef.WindowMenuItems[shortcutIndex].IconCss == "sf-icon-blank" ? "sf-icon-Selection" : "sf-icon-blank"; - MenubarRef.StateChanged(); - DiagramShortCutKeyRef.RefreshShortcutKeyPanel(); - } - private void ScrollChanged() - { - if (CurrentZoom >= 0.25 && CurrentZoom <= 30) - { - Toolbar.ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(CurrentZoom * 100)}") + "%"; - Toolbar.StateChanged(); - } - } - // Method to customize the tool - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "AddLeft") - { - tool = new AddRightTool(Diagram); - } - else if (id == "AddRight") - { - tool = new AddLeftTool(Diagram); - } - else - { - tool = new DeleteTool(Diagram); - } - return tool; - } - - public static async Task AddRightChild(SfDiagramComponent diagram, bool isSibling = false) - { - string newChildID = RandomId(); - string newchildColor = ""; BranchType type = BranchType.Left; Node parentNode = null; - string parentId = Convert.ToString(diagram.SelectionSettings.Nodes[0].AdditionalInfo["ParentId"]); - BranchType nodeBranch = (BranchType)diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - double currentLevel = Convert.ToDouble(diagram.SelectionSettings.Nodes[0].AdditionalInfo["Level"]); - double parentLevel = 0; - if (!string.IsNullOrEmpty(parentId)) - { - parentNode = diagram.GetObject(parentId) as Node; - BranchType parentNodeBranch = (BranchType)parentNode.AdditionalInfo["Orientation"]; - type = isSibling ? parentNodeBranch : nodeBranch; - } - else - { - type = nodeBranch; - } - BranchType childType = BranchType.Left; - if (parentNode != null) parentLevel = Convert.ToDouble(parentNode.AdditionalInfo["Level"]); - switch (type.ToString()) - { - case "Root": - childType = BranchType.Left; - break; - case "Left": - childType = BranchType.SubLeft; - break; - case "SubLeft": - childType = BranchType.SubLeft; - break; - } - - double level = isSibling ? parentLevel : currentLevel; - if (level == 0) - { - int index = Convert.ToInt32(GetFillColorIndex(level)); - newchildColor = fillColorCode[index]; - } - else - { - newchildColor = diagram.SelectionSettings.Nodes[0].Style.Fill; - } - - MindMapDetails childNode = new MindMapDetails() - { - Id = newChildID.ToString(), - ParentId = isSibling ? parentId : diagram.SelectionSettings.Nodes[0].ID, - Fill = newchildColor, - Branch = childType, - Label = "New Child", - Level = isSibling ? parentLevel + 1 : currentLevel + 1 - }; - diagram.BeginUpdate(); - await UpdatePortConnection(childNode, diagram, isSibling); - await diagram.EndUpdate(); - } - // Custom tool to add the node. - public class AddLeftTool : InteractionControllerBase - { - SfDiagramComponent diagram; - public AddLeftTool(SfDiagramComponent Diagram) : base(Diagram) - { - diagram = Diagram; - } - public override async void OnMouseDown(DiagramMouseEventArgs args) - { - await AddRightChild(diagram); - diagram.ClearSelection(); - base.OnMouseDown(args); - diagram.Select(new ObservableCollection() { diagram.Nodes[diagram.Nodes.Count - 1] }); - diagram.StartTextEdit(diagram.Nodes[diagram.Nodes.Count - 1]); - this.InAction = true; - } - } - private static async Task UpdatePortConnection(MindMapDetails childNode, SfDiagramComponent diagram, bool isSibling) - { - Node node = new Node() - { - ID = "node" + childNode.Id, - Height = 50, - Width = 100, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = childNode.Label, - Style=new TextStyle(){FontSize = 12,FontFamily="Segoe UI"}, - Offset=new DiagramPoint(){X=0.5,Y=0.5} - } - }, - Style = new ShapeStyle() { Fill = childNode.Fill, StrokeColor = childNode.Fill }, - AdditionalInfo = new Dictionary() - { - {"Orientation", childNode.Branch}, - {"ParentId", childNode.ParentId}, - {"Level", childNode.Level}, - } - }; - Connector connector = new Connector() - { - TargetID = node.ID, - SourceID = isSibling ? childNode.ParentId : diagram.SelectionSettings.Nodes[0].ID - }; - await diagram.AddDiagramElements(new DiagramObjectCollection() { node, connector }); - Node sourceNode = diagram.GetObject((connector as Connector).SourceID) as Node; - Node targetNode = diagram.GetObject((connector as Connector).TargetID) as Node; - if (targetNode != null && targetNode.AdditionalInfo.Count > 0) - { - BranchType nodeBranch = (BranchType)targetNode.AdditionalInfo["Orientation"]; - if (nodeBranch == BranchType.Right || nodeBranch == BranchType.SubRight) - { - (connector as Connector).SourcePortID = sourceNode.Ports[0].ID; - (connector as Connector).TargetPortID = targetNode.Ports[1].ID; - } - else if (nodeBranch == BranchType.Left || nodeBranch == BranchType.SubLeft) - { - (connector as Connector).SourcePortID = sourceNode.Ports[1].ID; - (connector as Connector).TargetPortID = targetNode.Ports[0].ID; - } - } - await diagram.DoLayout(); - } - public void ZoomTo(ZoomOptions options) - { - double factor = options.ZoomFactor != 0 ? options.ZoomFactor : 0.2; - factor = options.Type == "ZoomOut" ? 1 / (1 + factor) : (1 + factor); - Diagram.Zoom(factor, null); - } - - /// - /// This method is used to allows users to pan the diagram. - /// - public void UpdateTool() - { - interactionController = DiagramInteractions.ZoomPan; - StateHasChanged(); - } - /// - /// This method is used to allows users to perform selection in the diagram. - /// - public void UpdatePointerTool() - { - interactionController = DiagramInteractions.SingleSelect; - StateHasChanged(); - } - - /// - /// Represents the zoom option in a diagram. - /// - public class ZoomOptions - { - public double ZoomFactor { get; set; } - public string Type { get; set; } - } - - public static async Task AddLeftChild(SfDiagramComponent diagram, bool isSibling = false) - { - string newChildID = RandomId(); - string newchildColor = ""; BranchType type = BranchType.Left; Node parentNode = null; - string parentId = Convert.ToString(diagram.SelectionSettings.Nodes[0].AdditionalInfo["ParentId"]); - BranchType nodeBranch = (BranchType)diagram.SelectionSettings.Nodes[0].AdditionalInfo["Orientation"]; - double currentLevel = Convert.ToDouble(diagram.SelectionSettings.Nodes[0].AdditionalInfo["Level"]); - double parentLevel = 0; - if (!string.IsNullOrEmpty(parentId)) - { - parentNode = diagram.GetObject(parentId) as Node; - BranchType parentNodeBranch = (BranchType)parentNode.AdditionalInfo["Orientation"]; - type = isSibling ? parentNodeBranch : nodeBranch; - } - else - { - type = nodeBranch; - } - - BranchType childType = BranchType.Left; - if (parentNode != null) parentLevel = Convert.ToDouble(parentNode.AdditionalInfo["Level"]); - switch (type.ToString()) - { - case "Root": - childType = BranchType.Right; - break; - case "Right": - childType = BranchType.SubRight; - break; - case "SubRight": - childType = BranchType.SubRight; - break; - } - double level = isSibling ? parentLevel : currentLevel; - if (level == 0) - { - int index = Convert.ToInt32(GetFillColorIndex(level)); - newchildColor = fillColorCode[index]; - } - else - { - newchildColor = diagram.SelectionSettings.Nodes[0].Style.Fill; - } - MindMapDetails childNode = new MindMapDetails() - { - Id = newChildID.ToString(), - ParentId = isSibling ? parentId : diagram.SelectionSettings.Nodes[0].ID, - Fill = newchildColor, - Branch = childType, - Label = "New Child", - Level = isSibling ? parentLevel + 1 : currentLevel + 1 - }; - diagram.BeginUpdate(); - await UpdatePortConnection(childNode, diagram, isSibling); - await diagram.EndUpdate(); - } - // Custom tool to add the node. - public class AddRightTool : InteractionControllerBase - { - SfDiagramComponent diagram; - public AddRightTool(SfDiagramComponent Diagram) : base(Diagram) - { - diagram = Diagram; - } - public override async void OnMouseDown(DiagramMouseEventArgs args) - { - await AddLeftChild(diagram); - diagram.ClearSelection(); - base.OnMouseDown(args); - diagram.Select(new ObservableCollection() { diagram.Nodes[diagram.Nodes.Count - 1] }); - diagram.StartTextEdit(diagram.Nodes[diagram.Nodes.Count - 1]); - this.InAction = true; - } - } - - public class DeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - Node deleteObject = null; - public DeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - deleteObject = (sfDiagram.SelectionSettings.Nodes[0]) as Node; - } - public override async void OnMouseUp(DiagramMouseEventArgs args) - { - if (deleteObject != null) - { - sfDiagram.BeginUpdate(); - RemoveData(deleteObject, sfDiagram); - _ = sfDiagram.EndUpdate(); - await sfDiagram.DoLayout(); - } - base.OnMouseUp(args); - this.InAction = true; - } - } - - private static void RemoveData(Node node, SfDiagramComponent diagram) - { - if (node.OutEdges.Count > 0) - { - List outEdges = new List(); - node.OutEdges.ForEach(edges => outEdges.Add(edges)); - for (int i = 0; i < outEdges.Count; i++) - { - Connector connector = diagram.GetObject(outEdges[i]) as Connector; - Node targetnode = diagram.GetObject(connector.TargetID) as Node; - if (targetnode.OutEdges.Count > 0) - { - RemoveData(targetnode, diagram); - } - else - { - diagram.Delete(new DiagramObjectCollection() { targetnode }); - } - } - diagram.Delete(new DiagramObjectCollection() { node }); - } - else - { - diagram.Delete(new DiagramObjectCollection() { node }); - } - } - - private void OnSelectionChanging(SelectionChangingEventArgs args) - { - if (args.NewValue.Count > 0) - { - if (args.NewValue[0] is Node && (args.NewValue[0] as Node).AdditionalInfo.Count > 0) - { - BranchType type = (BranchType)((args.NewValue[0] as Node).AdditionalInfo["Orientation"]); - if (type == BranchType.Root) - { - selectionSettings.UserHandles[0].Visible = false; - selectionSettings.UserHandles[1].Visible = false; - selectionSettings.UserHandles[2].Visible = true; - selectionSettings.UserHandles[3].Visible = true; - } - else if (type == BranchType.Left || type == BranchType.SubLeft) - { - selectionSettings.UserHandles[0].Visible = false; - selectionSettings.UserHandles[1].Visible = true; - selectionSettings.UserHandles[2].Visible = true; - selectionSettings.UserHandles[3].Visible = false; - } - else if (type == BranchType.Right || type == BranchType.SubRight) - { - selectionSettings.UserHandles[0].Visible = true; - selectionSettings.UserHandles[1].Visible = false; - selectionSettings.UserHandles[2].Visible = false; - selectionSettings.UserHandles[3].Visible = true; - } - } - } - } - - private void NodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - - node.Height = 50; - node.Width = 100; - node.Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Ellipse }; - PointPort port21 = new PointPort() - { - ID = "left", - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Height = 10, - Width = 10, - }; - - PointPort port22 = new PointPort() - { - ID = "right", - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Height = 10, - Width = 10, - }; - - node.Ports = new DiagramObjectCollection() - { - port21,port22 - }; - if (MenubarRef.IsJsonLoading) - { - if (node.AdditionalInfo["Level"] is JsonElement level) - { - double levelString = level.GetDouble(); - node.AdditionalInfo["Level"] = levelString; - } - if (node.AdditionalInfo["Orientation"] is JsonElement orientation) - { - int orientationValue = orientation.GetInt32(); - BranchType branch = (BranchType)orientationValue; - node.AdditionalInfo["Orientation"] = branch; - } - if (node.AdditionalInfo["ParentId"] is JsonElement parentId) - { - string parent = parentId.GetString(); - node.AdditionalInfo["ParentId"] = parent; - } - } - node.Constraints &= ~NodeConstraints.Rotate; - } - - private void ConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Type = ConnectorSegmentType.Bezier; - connector.BezierConnectorSettings = new BezierConnectorSettings() { AllowSegmentsReset = false }; - connector.Constraints = ConnectorConstraints.Default & ~ConnectorConstraints.Select; - connector.Style = new ShapeStyle() { StrokeColor = "#4f4f4f", StrokeWidth = 1 }; - connector.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - connector.SourceDecorator.Shape = DecoratorShape.None; - Node sourceNode = Diagram.GetObject((connector as Connector).SourceID) as Node; - Node targetNode = Diagram.GetObject((connector as Connector).TargetID) as Node; - if (targetNode != null && targetNode.AdditionalInfo.Count > 0) - { - BranchType nodeBranch = (BranchType)targetNode.AdditionalInfo["Orientation"]; - if (nodeBranch == BranchType.Right || nodeBranch == BranchType.SubRight) - { - (connector as Connector).SourcePortID = sourceNode.Ports[0].ID; - (connector as Connector).TargetPortID = targetNode.Ports[1].ID; - } - else if (nodeBranch == BranchType.Left || nodeBranch == BranchType.SubLeft) - { - (connector as Connector).SourcePortID = sourceNode.Ports[1].ID; - (connector as Connector).TargetPortID = targetNode.Ports[0].ID; - } - } - } - public void UpdateNodeStyles(Node node, Node parentNode) - { - if (node != null && parentNode != null) - { - double levelValue = Convert.ToDouble(node.AdditionalInfo["Level"]); - if (levelValue == 1) - { - node.Style.Fill = fillColorCode[lastFillIndex]; - node.Style.StrokeColor = borderColorCode[lastFillIndex]; - node.Style.StrokeWidth = 2; - if (lastFillIndex + 1 >= fillColorCode.Length) - lastFillIndex = 0; - else - lastFillIndex++; - } - else - node.Style.StrokeColor = node.Style.Fill = parentNode.Style.Fill; - } - } - - private static double GetFillColorIndex(double level) - { - double index = lastFillIndex; - if (lastFillIndex + 1 >= fillColorCode.Length) - lastFillIndex = 0; - else - lastFillIndex++; - return index; - } - private void UpdateHandle() - { - UserHandle deleteLeftHandle = AddHandle("DeleteRight", "delete", Direction.Right); - - UserHandle addRightHandle = AddHandle("AddLeft", "add", Direction.Left); - - UserHandle addLeftHandle = AddHandle("AddRight", "add", Direction.Right); - - UserHandle deleteRightHandle = AddHandle("DeleteLeft", "delete", Direction.Left); - - handles.Add(deleteLeftHandle); - handles.Add(deleteRightHandle); - handles.Add(addLeftHandle); - handles.Add(addRightHandle); - - selectionSettings.UserHandles = handles; - } - - private UserHandle AddHandle(string name, string path, Direction direction) - { - UserHandle handle = new UserHandle() - { - Name = name, - Visible = true, - Offset = 0.5, - Side = direction, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - if (path == "delete") - { - handle.PathData = "M1.0000023,3 L7.0000024,3 7.0000024,8.75 C7.0000024,9.4399996 6.4400025,10 5.7500024,10 L2.2500024,10 C1.5600024,10 1.0000023,9.4399996 1.0000023,8.75 z M2.0699998,0 L5.9300004,0 6.3420029,0.99999994 8.0000001,0.99999994 8.0000001,2 0,2 0,0.99999994 1.6580048,0.99999994 z"; - } - else - { - handle.PathData = "M4.0000001,0 L6,0 6,4.0000033 10,4.0000033 10,6.0000033 6,6.0000033 6,10 4.0000001,10 4.0000001,6.0000033 0,6.0000033 0,4.0000033 4.0000001,4.0000033 z"; - } - return handle; - } - - public class MindMapDetails - { - public string Id { get; set; } - public string Label { get; set; } - public string ParentId { get; set; } - public BranchType Branch { get; set; } - public string Fill { get; set; } - public double Level { get; set; } - } - - protected override void OnInitialized() - { - selectionSettings.Constraints &= ~(SelectorConstraints.ResizeAll | SelectorConstraints.Rotate); - commands = new DiagramObjectCollection() - { - new KeyboardCommand() { Name = "showShortCut", Gesture = new KeyGesture(){ Key = DiagramKeys.F1, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "leftChild", Gesture = new KeyGesture(){ Key = DiagramKeys.Tab, Modifiers = ModifierKeys.Shift } }, - new KeyboardCommand() { Name = "rightChild", Gesture = new KeyGesture(){ Key = DiagramKeys.Tab,Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "sibilingChildTop", Gesture = new KeyGesture(){ Key = DiagramKeys.Enter,Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "fitPage", Gesture = new KeyGesture(){ Key = DiagramKeys.F8, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "duplicate", Gesture = new KeyGesture(){ Key = DiagramKeys.D, Modifiers = ModifierKeys.Control } }, - - new KeyboardCommand() { Name = "navigationUp", Gesture = new KeyGesture(){ Key = DiagramKeys.ArrowUp, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "navigationDown", Gesture = new KeyGesture(){ Key = DiagramKeys.ArrowDown, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "navigationLeft", Gesture = new KeyGesture(){ Key = DiagramKeys.ArrowLeft, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "navigationRight", Gesture = new KeyGesture(){ Key = DiagramKeys.ArrowRight,Modifiers = ModifierKeys.None } }, - - new KeyboardCommand() { Name = "fileNew", Gesture = new KeyGesture(){ Key = DiagramKeys.N, Modifiers = ModifierKeys.Shift } }, - new KeyboardCommand() { Name = "fileOpen", Gesture = new KeyGesture(){ Key = DiagramKeys.O, Modifiers = ModifierKeys.Control } }, - new KeyboardCommand() { Name = "fileSave", Gesture = new KeyGesture(){ Key = DiagramKeys.S, Modifiers = ModifierKeys.Control } }, - new KeyboardCommand() { Name = "delete", Gesture = new KeyGesture(){ Key = DiagramKeys.Delete, Modifiers = ModifierKeys.None } }, - new KeyboardCommand() { Name = "backspace", Gesture = new KeyGesture(){ Key = DiagramKeys.BackSpace, Modifiers = ModifierKeys.None } }, - }; - MindMapDetails rootNodeData = MindmapData[0]; - CreateNode(rootNodeData.Id, rootNodeData.ParentId, rootNodeData.Label, rootNodeData.Fill, rootNodeData.Branch, rootNodeData.Level); - for (int i = 1; i < MindmapData.Count; i++) - { - MindMapDetails nodeData = MindmapData[i]; - string sourcePortID = string.Empty; - string targetPortID = string.Empty; - CreateNode(nodeData.Id, nodeData.ParentId, nodeData.Label, nodeData.Fill, nodeData.Branch, nodeData.Level); - if (nodeData.Branch == BranchType.Right || nodeData.Branch == BranchType.SubRight) - { - sourcePortID = "left"; - targetPortID = "right"; - } - else if (nodeData.Branch == BranchType.Left || nodeData.Branch == BranchType.SubLeft) - { - sourcePortID = "right"; - targetPortID = "left"; - } - Connector connector = new Connector() { ID = "connector" + i, SourceID = nodeData.ParentId, TargetID = nodeData.Id, SourcePortID = sourcePortID, TargetPortID = targetPortID }; - connectors.Add(connector); - } - } - - private void CreateNode(string id, string parentId, string annotationContent, string fillColor, BranchType branch, double level) - { - Node node = new Node() - { - ID = id, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = annotationContent, - Style=new TextStyle(){FontSize = 12,FontFamily="Segoe UI"}, - Offset=new DiagramPoint(){X=0.5,Y=0.5}, Width = 80 - } - }, - Style = new ShapeStyle() { Fill = fillColor, StrokeColor = fillColor }, - AdditionalInfo = new Dictionary() - { - {"Orientation", branch}, - {"ParentId", parentId}, - {"Level", level}, - } - }; - nodes.Add(node); - } - internal static string RandomId() - { - Random random = new Random(); - const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; - return new string(Enumerable.Repeat(chars, 5) - .Select(s => s[random.Next(s.Length)]).ToArray()); - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - if (MenubarRef != null) - MenubarRef.Parent = this; - if (Toolbar != null) - Toolbar.Parent = this; - if (DiagramOpenAIRef != null) - DiagramOpenAIRef.Parent = this; - if (DiagramShortCutKeyRef != null) - DiagramShortCutKeyRef.Parent = this; - UpdateHandle(); - } - } -} \ No newline at end of file diff --git a/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor.css b/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor.css deleted file mode 100644 index 8defddfa..00000000 --- a/Common/Pages/AISamples/DiagramComponent/TextToMindMap.razor.css +++ /dev/null @@ -1,155 +0,0 @@ -/* https://fonts.google.com/specimen/Roboto?selection.family=Lato|Roboto */ -/* Dialog Customization start */ - -.e-dialog.custom-dialog .e-dlg-header-content + .e-dlg-content { - padding: 16px; -} - - .e-dialog.custom-dialog .e-dlg-header-content + .e-dlg-content input[type="text"]:not(.e-dropdownbase):not(.db-layer-edit):not(.e-input) { - width: 100%; - height: 28px; - font-weight: normal; - text-indent: 5px; - border: 1px solid #D5D5D5; - } - -.db-dialog-child-prop-row { - margin-top: 6px; -} - -.db-dialog-prop-row { - margin-top: 8px; -} - -.e-dialog .e-dlg-header-content { - height: 36px; - border-bottom: 1px solid #D5D5D5; -} - -#db-send:hover { - cursor: pointer; - fill: #102C57; -} - -.diagrambuilder-container.hide-toolbar .db-toolbar-editor { - display: none; -} - -#exportMultiplePageDiv label { - margin-top: 16px; -} - -.db-menu-container .e-icons.e-caret { - display: none; -} - -#diagram-space { - width: 80%; - float: right; - border: 1px solid #ccc; -} - -#multipleChild { - width: 20%; - float: left; - height: 560px; -} - -#textbox { - overflow-x: auto; - white-space: pre; -} - -.custom-dialog .e-dlg-content { - padding: 0; -} - -.custom-dialog .e-dlg-header { - font-size: 18px; -} - -.custom-ai-assist { - border: none; -} - -.ai-assist-banner { - display: flex; - flex-direction: column; - justify-content: center; - height: 200px; - font-size: 18px; - align-items: center; - text-align: center; -} - - .ai-assist-banner h2 { - margin: 0; - } - - .ai-assist-banner .e-icons:before { - font-size: 40px; - } - -.compose-view, -.output-view { - width: max(70%, 400px); - border: 1px solid lightgray; - padding: 15px; - margin: 15px auto 20px; - border-radius: 7px; -} - -.custom-btn { - width: 100%; - border-radius: 50px; - margin: 20px 0; -} - -.e-dropdown-btn { - border: none; - box-shadow: none; -} - -.e-fab.e-btn.e-fab-right { - right: 25px; - bottom: 25px; -} - -.e-dialog .e-dlg-header-content { - height: auto; -} - -.diagram-area { - height: calc(100% - 78px); -} - -.diagrambuilder-container { - height: calc(100%); -} - -#toolbarEditor .e-hscroll-bar { - overflow-x: initial !important; -} - -.e-toolbar-item { - width: 5px; -} - -.activecss { - background: #ffffff; -} - -.e-dropdown-popup { - background-color: #fff; - color: #111827; -} - -#shortcutDiv span { - font-size: 14px; - line-height: 1.42857143; -} - -#shortcutDiv ul { - margin-top: 0; - margin-bottom: 10px; -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Annotations.razor b/Common/Pages/DiagramComponent/DiagramComponent/Annotations.razor deleted file mode 100644 index 2cde8dc5..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Annotations.razor +++ /dev/null @@ -1,919 +0,0 @@ -@page "/diagramcomponent/annotations" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.DropDowns -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates how to add textual descriptions to shapes and customize the position and appearance of the annotation.

-
- -

- This example shows how to add textual descriptions to shapes, how to position them over the shapes, and customize the description's position and appearance. To change the position of the description, select a node and choose the template in the property panel. The Annotations property can be used to add descriptions. -

-

- The Offset, HorizontalAlignment, and VerticalAlignment properties are used to customize the position of the descriptions. The Bold, Italic, FontSize, and FontFamily properties are used to customize the appearance of the descriptions. -

-
-@*End:Hidden*@ - -@*Hidden:Lines*@ -
- - @*End:Hidden*@ - -
- - - - -
- @*Hidden:Lines*@ -
-@*End:Hidden*@ -@*Hidden:Lines*@ -
-
- Properties -
-
-
-
-
- Alignment -
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
- Appearance -
-
-
- -
-
- -
-
- -
-
-
-
- Font Size -
-
- - - -
-
-
-
- Font Style -
-
- - - - -
-
-
-
- Text Wrapping -
-
- - - - -
-
-
-
- Text Overflow -
-
- - - - -
-
-
-
- Font Color -
-
- -
-
-
-
-
-
-@*End:Hidden*@ -@code -{ - @*Hidden:Lines*@ -private bool IsBoldDisabled { get; set; } = false; -public string SelectedNode { get; set; } = ""; -public string SelectedConnector { get; set; } = "none"; -public bool IsItalic { get; set; } = false; -public bool IsUnderline { get; set; } = false; -public bool IsFontFamilyEnabled { get; set; } = true; -public bool IsTextWrappingEnabled { get; set; } = true; -public bool IsTextOverflowEnabled { get; set; } = true; -public bool IsFontEnabled { get; set; } = true; -public bool IsColorPickerEnabled { get; set; } = false; -public string SelectedPanel { get; set; } = "center"; -private bool IsPanelUpdateOnly { get; set; } = false; -public string AppearanceClass { get; set; } = "e-remove-selection"; -private const string SelectedItemClass = "image-pattern-style e-selected-style"; -public int FontSizeValue { get; set; } = 12; -public string FillColor { get; set; } = "#000"; -public string TextWrappingOption { get; set; } = "NoWrap"; -public string FontStyle { get; set; } = "Arial"; -public string TextOverflowOption { get; set; } = "Wrap"; -private const string UnselectedItemClass = "image-pattern-style"; - -public string StyleValue { get; set; } = "background-color:#008000"; - -// Define bold, italic, underline button -public SfButton BoldButton { get; set; } -public SfButton ItalicButton { get; set; } -public SfButton UnderlineButton { get; set; } -public SfNumericTextBox FontSizeBox { get; set; } - - //Define selected item/unselected item AlignmentOptions - Dictionary AlignmentOptions = new Dictionary() { { "left", UnselectedItemClass }, { "centertext", UnselectedItemClass }, { "belowcenter", UnselectedItemClass }, { "abovecenter", UnselectedItemClass }, { "targettext", UnselectedItemClass }, { "sourcetext", UnselectedItemClass }, { "right", UnselectedItemClass }, { "center", UnselectedItemClass }, { "bottomr", UnselectedItemClass }, { "bottoml", UnselectedItemClass }, { "bottomcenter_top", UnselectedItemClass } }; - - @*End:Hidden*@ - - //Define sfdiagramComponent - SfDiagramComponent DiagramInstance { get; set; } - - public DiagramConstraints Constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection DiagramNodes = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection DiagramConnectors = new DiagramObjectCollection(); - - private void OnCreated() - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[2] }); - FitOptions options = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(options); - } - - protected override void OnInitialized() - { - - Constraints = DiagramConstraints.Default; - - Node newProject = CreateNode(130, 40, 430, 80, NodeFlowShapes.Terminator, "New project", "newProject"); - Node design = CreateNode(170, 40, 430, 160, NodeFlowShapes.Process, "Project planning and designing", "design"); - Node coding = CreateNode(130, 40, 430, 250, NodeFlowShapes.Process, "Development", "coding"); - Node testing = CreateNode(130, 40, 430, 360, NodeFlowShapes.Process, "Testing", "testing"); - Node errors = CreateNode(200, 50, 430, 470, NodeFlowShapes.Decision, "Is errors?", "errors"); - Node completed = CreateNode(130, 40, 430, 570, NodeFlowShapes.Terminator, "Project completed", "completed"); - - CreateNodePort(design, "designPort", 0, 0.5); - CreateNodePort(coding, "codingPort", 1, 0.5); - CreateNodePort(errors, "errorsPort2", 1, 0.5); - CreateNodePort(errors, "errorsPort1", 0, 0.5); - OrthogonalSegment designOrthogonalSegment = new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Direction = Direction.Left, - Length = 120, - }; - OrthogonalSegment codingOrthogonalSegment = new OrthogonalSegment - { - Type = ConnectorSegmentType.Orthogonal, - Length = 100, - Direction = Direction.Right, - }; - DiagramObjectCollection designSegment = new DiagramObjectCollection() { designOrthogonalSegment }; - - DiagramObjectCollection codingSegment = new DiagramObjectCollection() { codingOrthogonalSegment }; - - CreateConnector("newProject", "design", "", null, null, null); - CreateConnector("design", "coding", "", null, null, null); - CreateConnector("coding", "testing", "Coding completed", null, null, null); - CreateConnector("testing", "errors", "Testing completed", null, null, null); - CreateConnector("errors", "completed", "No errors", null, null, null); - CreateConnector("errors", "coding", "Production issues", "errorsPort2", "codingPort", codingSegment); - CreateConnector("errors", "design", "Design errors", "errorsPort1", "designPort", designSegment); - } - - //Create nodes - private Node CreateNode(double unitWidth, double unitHeight, double offsetx, double offsety, NodeFlowShapes shape, string text, string id) - { - TextStyle textStyle = new TextStyle() { FontSize = 13, TextWrapping = TextWrap.WrapWithOverflow, Bold = true }; - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() { Content = text, Style = textStyle }; - Node node = new Node() - { - Width = unitWidth, - Height = unitHeight, - OffsetX = offsetx, - OffsetY = offsety, - ID = id, - Style = new ShapeStyle() { Fill = "#98FB98", StrokeColor = "#008000" }, - Shape = new FlowShape() { Shape = shape, Type = shapes.Flow }, - Annotations = new DiagramObjectCollection() { shapeAnnotation } - }; - DiagramNodes.Add(node); - return node; - } - - //Create ports - private void CreateNodePort(Node node, string id, double nodeoffsetx, double nodeoffsety) - { - PointPort nodePort = new PointPort() - { - ID = id, - Offset = new DiagramPoint() { X = nodeoffsetx, Y = nodeoffsety }, - }; - - node.Ports.Add(nodePort); - } - - //Create connectors - private void CreateConnector(string sourceNode, string targetNode, string text, - string sourcePort, string targetPort, DiagramObjectCollection segment = null) - { - TextStyle textStyle = new TextStyle() { FontSize = 13, TextWrapping = TextWrap.WrapWithOverflow, Bold = true }; - PathAnnotation pathAnnotation = new PathAnnotation() { Content = text, Style = textStyle }; - Connector connector = new Connector() - { - SourceID = sourceNode, - TargetID = targetNode, - SourcePortID = sourcePort, - TargetPortID = targetPort, - Style = new ShapeStyle() { Fill = "#008000", StrokeWidth = 1 }, - Annotations = new DiagramObjectCollection() { pathAnnotation }, - }; - if (segment != null) - { - connector.Type = ConnectorSegmentType.Orthogonal; - connector.Segments = segment; - } - DiagramConnectors.Add(connector); - } - - //Update annotation bold property - private void ApplyFontBold() - { - UpdateAnnotation("bold", true); - } - - //Update annotation italic property - private void ApplyFontItalic() - { - UpdateAnnotation("italic", true); - } - - //Update annotation underline property - private void ApplyFontUnderline() - { - UpdateAnnotation("underline", true); - } - - //Update annotation fontfamily - private void ChangeFontFamily(ChangeEventArgs args) - { - UpdateAnnotation("fontfamily", args.Value); - } - - //Update annotation textwrap property - private void ChangeTextWrapping(ChangeEventArgs args) - { - UpdateAnnotation("textwrapping", args.Value); - } - - //Update annotation textoverflow property - private void ChangeTextOverflow(ChangeEventArgs args) - { - UpdateAnnotation("textoverflow", args.Value); - } - //Update annotation fontsize value - private void ChangeFontSize(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - FontSizeValue = int.Parse(args.Value.ToString()); - UpdateAnnotation("fontsize", FontSizeValue); - } - private void SelectionChanged(SelectionChangedEventArgs args) - { - if (args.NewValue.Count > 0) - { - if (args.NewValue[0] is Node) - { - SelectedNode = ""; - SelectedConnector = "none"; - ShapeAnnotation shapeAnnotation = (args.NewValue[0] as Node).Annotations[0]; - HorizontalAlignment horizontalAlignment = shapeAnnotation.HorizontalAlignment; - VerticalAlignment verticalAlignment = shapeAnnotation.VerticalAlignment; - if (horizontalAlignment == HorizontalAlignment.Center && verticalAlignment == VerticalAlignment.Center) - { - UpdateSelection("center"); - } - else if (horizontalAlignment == HorizontalAlignment.Left && verticalAlignment == VerticalAlignment.Top) - { - UpdateSelection("bottomr"); - } - else if (horizontalAlignment == HorizontalAlignment.Right && verticalAlignment == VerticalAlignment.Top) - { - UpdateSelection("bottoml"); - } - else if (horizontalAlignment == HorizontalAlignment.Left && verticalAlignment == VerticalAlignment.Bottom) - { - UpdateSelection("right"); - } - else if (horizontalAlignment == HorizontalAlignment.Right && verticalAlignment == VerticalAlignment.Bottom) - { - UpdateSelection("left"); - } - else if (horizontalAlignment == HorizontalAlignment.Center && verticalAlignment == VerticalAlignment.Bottom) - { - UpdateSelection("bottomcenter_top"); - } - if (shapeAnnotation.Style.Color == "black") - { - shapeAnnotation.Style.Color = "#000"; - } - FillColor = shapeAnnotation.Style.Color; - TextWrappingOption = shapeAnnotation.Style.TextWrapping.ToString(); - TextOverflowOption = shapeAnnotation.Style.TextOverflow.ToString(); - FontStyle = shapeAnnotation.Style.FontFamily; - FontSizeValue = ((int)shapeAnnotation.Style.FontSize); - } - if (args.NewValue[0] is Connector) - { - SelectedConnector = ""; - SelectedNode = "none"; - PathAnnotation pathAnnotation = (args.NewValue[0] as Connector).Annotations[0]; - if (pathAnnotation.Offset == 0) - { - UpdateSelection("sourcetext"); - } - else if (pathAnnotation.Offset == 1) - { - UpdateSelection("targettext"); - } - else if (pathAnnotation.Offset == 0.5 && pathAnnotation.Alignment == AnnotationAlignment.After) - { - UpdateSelection("abovecenter"); - } - else if (pathAnnotation.Offset == 0.5 && pathAnnotation.Alignment == AnnotationAlignment.Before) - { - UpdateSelection("belowcenter"); - } - else if (pathAnnotation.Offset == 0.5 && pathAnnotation.Alignment == AnnotationAlignment.Center) - { - UpdateSelection("centertext"); - } - if (pathAnnotation.Style.Color == "black") - { - pathAnnotation.Style.Color = "#000"; - } - FillColor = pathAnnotation.Style.Color; - TextWrappingOption = pathAnnotation.Style.TextWrapping.ToString(); - TextOverflowOption = pathAnnotation.Style.TextOverflow.ToString(); - FontStyle = pathAnnotation.Style.FontFamily; - FontSizeValue = ((int)pathAnnotation.Style.FontSize); - } - } - if (args.NewValue != null && args.NewValue.Count > 0) - { - AlignmentOptions[SelectedPanel] = SelectedItemClass; - if (args.NewValue[0] is Node) - { - SelectedNode = ""; - SelectedConnector = "none"; - } - else if (args.NewValue[0] is Connector) - { - SelectedNode = "none"; - SelectedConnector = ""; - } - } - else - { - AlignmentOptions = new Dictionary() { { "left", UnselectedItemClass }, { "centertext", UnselectedItemClass }, { "belowcenter", UnselectedItemClass }, { "abovecenter", UnselectedItemClass }, { "targettext", UnselectedItemClass }, { "sourcetext", UnselectedItemClass }, { "right", UnselectedItemClass }, { "center", UnselectedItemClass }, { "bottomr", UnselectedItemClass }, { "bottoml", UnselectedItemClass }, { "bottomcenter_top", UnselectedItemClass } }; - SelectedNode = "none"; - SelectedConnector = "none"; - } - if (DiagramInstance.SelectionSettings.Nodes.Count > 0 || DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - IsBoldDisabled = false; - IsItalic = false; - IsUnderline = false; - IsFontFamilyEnabled = true; - IsTextOverflowEnabled = true; - IsTextWrappingEnabled = true; - IsColorPickerEnabled = false; - IsFontEnabled = true; - } - else - { - IsBoldDisabled = true; - IsItalic = true; - IsUnderline = true; - IsFontFamilyEnabled = false; - IsTextOverflowEnabled = false; - IsTextWrappingEnabled = false; - IsColorPickerEnabled = true; - IsFontEnabled = false; - } - } - - //Update fill color for annotations - public void OnFillColorChange(ColorPickerEventArgs args) - { - this.StyleValue = "background-color:" + args.CurrentValue.Hex; - UpdateAnnotation("fontcolor", args.CurrentValue.Hex); - } - - //Update annotation - private void UpdateAnnotation(string name, object value) - { - if (DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - var connector = DiagramInstance.SelectionSettings.Connectors[i]; - for (var j = 0; j < connector.Annotations.Count; j++) - { - TextStyle annotationStyle = connector.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - - } - } - } - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - var node = DiagramInstance.SelectionSettings.Nodes[i]; - for (var j = 0; j < node.Annotations.Count; j++) - { - TextStyle annotationStyle = node.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - } - } - } - } - - //Update annotation style - private void UpdateAnnotationStyle(string option, TextStyle textStyle, object value) - { - switch (option) - { - case "fontsize": - textStyle.FontSize = Double.Parse(value.ToString()); - break; - case "underline": - textStyle.TextDecoration = textStyle.TextDecoration == TextDecoration.Underline ? TextDecoration.None : TextDecoration.Underline; - break; - case "fontfamily": - textStyle.FontFamily = value.ToString(); - break; - case "bold": - if (textStyle.Bold) - textStyle.Bold = false; - else - textStyle.Bold = true; - break; - case "italic": - if (textStyle.Italic) - textStyle.Italic = false; - else - textStyle.Italic = true; - break; - case "fontcolor": - textStyle.Color = value.ToString(); - break; - case "textwrapping": - string textwrap = value.ToString(); - if (textwrap == "NoWrap") - { - textStyle.TextWrapping = TextWrap.NoWrap; - } - else if (textwrap == "Wrap") - { - textStyle.TextWrapping = TextWrap.Wrap; - } - else if (textwrap == "WrapWithOverflow") - { - textStyle.TextWrapping = TextWrap.WrapWithOverflow; - } - break; - case "textoverflow": - string textOverFlow = value.ToString(); - if (textOverFlow == "Ellipsis") - { - textStyle.TextOverflow = TextOverflow.Ellipsis; - } - else if (textOverFlow == "Clip") - { - textStyle.TextOverflow = TextOverflow.Clip; - } - else if (textOverFlow == "Wrap") - { - textStyle.TextOverflow = TextOverflow.Wrap; - } - break; - } - } - - //Update annotation position - private void UpdatePosition(string id) - { - for (int i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - Node node = DiagramInstance.SelectionSettings.Nodes[i] as Node; - for (int j = 0; j < node.Annotations.Count; j++) - { - DiagramInstance.StartGroupAction(); - ShapeAnnotation annotation = node.Annotations[j] as ShapeAnnotation; - UpdateAnnotation(id, annotation); - DiagramInstance.EndGroupAction(); - } - } - for (int i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector node = DiagramInstance.SelectionSettings.Connectors[i] as Connector; - for (int j = 0; j < node.Annotations.Count; j++) - { - DiagramInstance.StartGroupAction(); - PathAnnotation annotation = node.Annotations[j] as PathAnnotation; - UpdateAnnotationValue(id, annotation); - DiagramInstance.EndGroupAction(); - } - } - } - - //Update path annotation - private void UpdateAnnotationValue(string id, PathAnnotation annotation) - { - DiagramInstance.BeginUpdate(); - if (!IsPanelUpdateOnly) - { - switch (id) - { - case "sourcetext": - annotation.Offset = 0; - break; - case "targettext": - annotation.Offset = 1; - break; - case "abovecenter": - annotation.Offset = 0.5; - annotation.Alignment = AnnotationAlignment.After; - break; - case "belowcenter": - annotation.Offset = 0.5; - annotation.Alignment = AnnotationAlignment.Before; - break; - case "centertext": - annotation.Offset = 0.5; - annotation.Alignment = AnnotationAlignment.Center; - break; - } - } - UpdateSelection(id); - UpateProprtyPanelValue(annotation); - _ = DiagramInstance.EndUpdateAsync(); - } - - //Update pathannotation property panel value - private void UpateProprtyPanelValue(PathAnnotation annotation) - { - FontSizeValue = int.Parse(annotation.Style.FontSize.ToString()); - FontStyle = annotation.Style.FontFamily; - FillColor = annotation.Style.Color; - } - - //Update shapeannotation alignment - private void UpdateAnnotation(string id, ShapeAnnotation annotation) - { - DiagramInstance.BeginUpdate(); - if (!IsPanelUpdateOnly) - { - switch (id) - { - case "left": - SetAnnotationPosition(annotation, 0, 0, VerticalAlignment.Top, HorizontalAlignment.Left); - break; - case "right": - SetAnnotationPosition(annotation, 1, 0, VerticalAlignment.Top, HorizontalAlignment.Right); - break; - case "bottoml": - SetAnnotationPosition(annotation, 0, 1, VerticalAlignment.Bottom, HorizontalAlignment.Left); - break; - case "bottomr": - SetAnnotationPosition(annotation, 1, 1, VerticalAlignment.Bottom, HorizontalAlignment.Right); - break; - case "center": - SetAnnotationPosition(annotation, 0.5f, 0.5f, VerticalAlignment.Center, HorizontalAlignment.Center); - break; - case "bottomcenter_top": - SetAnnotationPosition(annotation, 0.5f, 1, VerticalAlignment.Top, HorizontalAlignment.Center); - break; - } - } - UpdateSelection(id); - UpateProprtyPanel(annotation); - _ = DiagramInstance.EndUpdateAsync(); - } - - //Update shapeannotation property panel - private void UpateProprtyPanel(ShapeAnnotation annotation) - { - FontSizeValue = int.Parse(annotation.Style.FontSize.ToString()); - FontStyle = annotation.Style.FontFamily; - FillColor = annotation.Style.Color; - } - - //Update selection - private void UpdateSelection(string id) - { - for (int i = 0; i < AlignmentOptions.Count; i++) - { - var value = AlignmentOptions.Values.ElementAt(i); - var key = AlignmentOptions.Keys.ElementAt(i); - if (AlignmentOptions.ContainsKey(id) && key == id) - { - value = SelectedItemClass; - } - else - { - value = UnselectedItemClass; - } - AlignmentOptions.Remove(key); - AlignmentOptions.Add(key, value); - } - AlignmentOptions[SelectedPanel] = UnselectedItemClass; - SelectedPanel = id; - AlignmentOptions[id] = SelectedItemClass; - } - - //Set annotation position - private void SetAnnotationPosition(ShapeAnnotation annotation, float offsetX, float offsetY, VerticalAlignment vAlignment, HorizontalAlignment hAlignment) - { - if (annotation.Offset.X != offsetX) - annotation.Offset.X = offsetX; - if (annotation.Offset.Y != offsetY) - annotation.Offset.Y = offsetY; - annotation.VerticalAlignment = vAlignment; - annotation.HorizontalAlignment = hAlignment; - annotation.Margin = new DiagramThickness(); - if (vAlignment == VerticalAlignment.Top && hAlignment == HorizontalAlignment.Left) - { - annotation.Margin = new DiagramThickness() { Left = 3, Top = 3 }; - } - else if (vAlignment == VerticalAlignment.Top && hAlignment == HorizontalAlignment.Right) - { - annotation.Margin = new DiagramThickness() { Right = 3, Top = 3 }; - } - else if (vAlignment == VerticalAlignment.Bottom && hAlignment == HorizontalAlignment.Left) - { - annotation.Margin = new DiagramThickness() { Left = 3, Bottom = 3 }; - - } - else if (vAlignment == VerticalAlignment.Bottom && hAlignment == HorizontalAlignment.Right) - { - annotation.Margin = new DiagramThickness() { Right = 3, Bottom = 3 }; - } - } - @*Hidden:Lines*@ - public class FontFamily - { - public string Name { get; set; } - } - private List FontFamilyLists = new List() { - new FontFamily() { Name ="Arial"}, - new FontFamily() { Name ="Aharoni" }, - new FontFamily() { Name ="Bell MT"}, - new FontFamily() { Name = "Fantasy" }, - new FontFamily() { Name ="Times New Roman" }, - new FontFamily() { Name ="Segoe UI" }, - new FontFamily() { Name ="Verdana" }, - }; - public class TextWrapping - { - public string Name { get; set; } - } - private List TextWrappingList = new List() { - new TextWrapping() { Name ="NoWrap"}, - new TextWrapping() { Name ="Wrap" }, - new TextWrapping() { Name ="WrapWithOverflow"}, - }; - public class TextOverFlow - { - public string Name { get; set; } - } - private List TextOverFlowList = new List() { - new TextOverFlow() { Name ="Ellipsis"}, - new TextOverFlow() { Name ="Wrap" }, - new TextOverFlow() { Name ="Clip"}, - }; - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/BPMNEditor.razor b/Common/Pages/DiagramComponent/DiagramComponent/BPMNEditor.razor deleted file mode 100644 index bb189569..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/BPMNEditor.razor +++ /dev/null @@ -1,3324 +0,0 @@ -@page "/diagramcomponent/bpmn-editor" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable - -

This Blazor Diagram example visualizes the processing requests for book lending in a library.

-
- - -

- This example shows how to create a simple BPMN diagram using the Diagram component. The Nodes property can be used to define different stages of a process. To define the flow among different stages, the Connectors property can be used. -

-

- To build BPMN diagrams easily, a few shapes are predefined and added to a symbol palette. You can drag predefined shapes into the drawing area. The Symbols property allows you to add predefined symbols to the palette. -

-
-@*End:Hidden*@ - -@*Hidden:Lines*@ -
- - - @*End:Hidden*@ -
-
-
-
-
- - -
-
-
- - - - - - - - - -
-
-
- @*Hidden:Lines*@ -
-@*End:Hidden*@ - - -@code{ - - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - public DiagramSize SymbolPreviewSettings { get; set; } - public SymbolMargin SymbolMarginSettings = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent DiagramComponentRef { get; set; } - public SfSymbolPaletteComponent PaletteComponentRef { get; set; } - public DiagramObjectCollection UserHandleCollection = new DiagramObjectCollection(); - //Defines Diagram's nodes collection - public DiagramObjectCollection NodeCollection = new DiagramObjectCollection(); - - //Defines Diagram's connectors collection - public DiagramObjectCollection DiagramConnectors = new DiagramObjectCollection(); - - //Define palettes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection BPMNShapeSymbols = new DiagramObjectCollection(); - [Inject] - protected IJSRuntime JsRuntime { get; set; } - public List ContextMenuItems { get; set; } - - public List Event = new List() { "EventType", "Trigger" }; - public List BpmnGateWayType = new List() { "GateWayType" }; - public List BpmnMessageData = new List() { }; - public List BpmnDataObjectProperties = new List() { "Collection", "DataObjectType" }; - public List BpmnDataStore = new List() { }; - public List BpmnActivityProperties = new List() { "ActivityType", "Loop", "Compensation", }; - public List BpmnTaskProperties = new List() { "Call", "TaskType", }; - public List ActivityCollapsedSubProcess = new List() { "AdHoc", "Boundary" }; - public List ExpandedSubProcess = new List() { "Loop", "AdHoc", "Compensation", "Boundary" }; - public List BpmnTextAnnotation = new List() { "Orientation" }; - public List BpmnSequenceConnector = new List() { "Sequence", "Message", "Association", "Condition" }; - public List BpmnMessageConnector = new List() { "Sequence", "Message", "Association", "Initiating" }; - public List BpmnAssociationConnector = new List() { "Sequence", "Message", "Association", "Direction" }; - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - UpdateHandle(); - } - PaletteComponentRef.Targets = new DiagramObjectCollection - { - DiagramComponentRef - }; - } - - private void OnSelectionChanged(SelectionChangedEventArgs args) - { - if (args.NewValue.Count > 0 && args.NewValue[0] is Node) - { - DiagramComponentRef.SelectionSettings.Constraints = DiagramComponentRef.SelectionSettings.Constraints | SelectorConstraints.UserHandle; - } - else if (args.NewValue.Count > 0) - { - DiagramComponentRef.SelectionSettings.Constraints = DiagramComponentRef.SelectionSettings.Constraints & ~SelectorConstraints.UserHandle; - } - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramComponentRef.FitToPage(mobileoptions); - } - - // Method to customize the tool - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "Draw") - { - tool = new DrawTool(DiagramComponentRef); - } - else - { - tool = new AddDeleteTool(DiagramComponentRef); - } - return tool; - } - // Custom tool to delete the node. - public class AddDeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - Node deleteObject = null; - public AddDeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - if (sfDiagram.SelectionSettings.Nodes.Count > 0 && ((sfDiagram.SelectionSettings.Nodes[0]) is Node)) - { - deleteObject = (sfDiagram.SelectionSettings.Nodes[0]) as Node; - } - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - if (deleteObject != null) - { - sfDiagram.StartGroupAction(); - sfDiagram.BeginUpdate(); - sfDiagram.Nodes.Remove(deleteObject); - _ = sfDiagram.EndUpdateAsync(); - sfDiagram.EndGroupAction(); - } - base.OnMouseUp(args); - this.InAction = true; - } - - } - - public class DrawTool : ConnectorDrawingController - { - SfDiagramComponent sfDiagram; - Connector newConnector = null; - public DrawTool(SfDiagramComponent Diagram) : base(Diagram, DiagramElementAction.ConnectorSourceEnd) - { - sfDiagram = Diagram; - newConnector = new Connector() - { - ID = "BpmnConnector", - SourceID = sfDiagram.SelectionSettings.Nodes[0].ID, - Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow }, - Type = ConnectorSegmentType.Orthogonal, - }; -#pragma warning disable BL0005 - Diagram.InteractionController = DiagramInteractions.DrawOnce; - Diagram.DrawingObject = newConnector; -#pragma warning restore BL0005 - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - base.OnMouseUp(args); - } - } - - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 - }; - InitContextItems(); - InitDiagramModel(); - InitPaletteModel(); - } - // Creates Context menu items. - private void InitContextItems() - { - ContextMenuItems = new List() - { - new ContextMenuItem() - { - Text = "Loop", - ID = "bpmn_Loop", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Loop", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Standard", - ID = "Loop", - IconCss = "e-uncheck", }, - new ContextMenuItem (){ Text = "Parallel Multi-Instance", - ID = "Loop", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Sequential Multi-Instance", - ID = "Loop", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Task Type", - ID = "bpmn_TaskType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Service", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Receive", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Send", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Instantiating Receive", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Manual", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Business Rule", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "User", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Script", - ID = "TaskType", - IconCss = "e-icons e-uncheck", }, - } - - }, - new ContextMenuItem() - { - Text = "Compensation", - ID = "bpmn_Compensation", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Call", - ID = "bpmn_Call", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Ad-Hoc", - ID = "bpmn_AdHoc", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Sequence Flow", - ID = "bpmn_Sequence", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Message Flow", - ID = "bpmn_Message", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Association", - ID = "bpmn_Association", - IconCss = "e-icons e-uncheck" - - }, - new ContextMenuItem() - { - Text = "Condition", - ID = "bpmn_Condition", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Condition", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Conditional", - ID = "Condition", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Default", - ID = "Condition", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Initiating", - ID = "bpmn_Initiating", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Initiating", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Initiating", - ID = "Initiating", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Non-Initiating", - ID = "Initiating", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Direction", - ID = "bpmn_Direction", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Direction", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "One", - ID = "Direction", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Both", - ID = "Direction", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Activity Type", - ID = "bpmn_ActivityType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "Task", - ID = "ActivityType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Collapsed Sub-Process", - ID = "ActivityType", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "GateWay Type", - ID = "bpmn_GateWayType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Inclusive", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Exclusive", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Parallel", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Event Based", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Event Based (Exclusive)", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Event Based (Parallel)", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Complex", - ID = "GateWayType", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Event Type", - ID = "bpmn_EventType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "Start", - ID = "Event Type", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Start (Non-Interrupting)", - ID = "Event Type", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Intermediate", - ID = "Event Type", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Intermediate (Non-Interrupting)", - ID = "Event Type", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Intermediate (Throwing)", - ID = "Event Type", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "End", - ID = "Event Type", - IconCss = "e-icons e-uncheck", } - } - }, - new ContextMenuItem() - { - Text = "Trigger/Result", - ID = "bpmn_Trigger", - IconCss = "e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Message", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Timer", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Error", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Compensation", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Conditional", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Signal", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Multiple", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Escalation", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Parallel Multiple", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Link", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Cancel", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Terminate", - ID = "Trigger", - IconCss = "e-icons e-uncheck", }, - } - - }, - new ContextMenuItem() - { - Text = "Collection", - ID = "bpmn_Collection", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "Collection", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Collection", - ID = "Collection", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Data Object", - ID = "bpmn_DataObjectType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "DataObjectType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Input", - ID = "DataObjectType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Output", - ID = "DataObjectType", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Boundary", - ID = "bpmn_Boundary", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "Default", - ID = "Boundary", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Call", - ID = "Boundary", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Event", - ID = "Boundary", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Transaction", - ID = "Boundary", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "SubProcessTypes", - ID = "bpmn_SubProcessTypes", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "None", - ID = "SubProcessTypes", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Transaction", - ID = "SubProcessTypes", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Event", - ID = "SubProcessTypes", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "Orientation", - ID = "bpmn_Orientation", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "Left", - ID = "Orientation", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Right", - ID = "Orientation", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Top", - ID = "Orientation", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Bottom", - ID = "Orientation", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "Automatic", - ID = "Orientation", - IconCss = "e-icons e-uncheck", }, - } - }, - new ContextMenuItem() - { - Text = "FlowType", - ID = "bpmn_FlowType", - IconCss = "e-icons e-uncheck", - Items = new List(){ - new ContextMenuItem (){ Text = "AssociationFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "DirectionalAssociationFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "BiDirectionalAssociationFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "MessageFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "InitiatingMessageFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "NonInitiatingMessageFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "SequenceFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "DefaultSequenceFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - new ContextMenuItem (){ Text = "ConditionalSequenceFlow", - ID = "FlowType", - IconCss = "e-icons e-uncheck", }, - } - - }, - }; - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - Node node1 = new Node() - { - ID = "node1", - OffsetX = 100, - OffsetY = 300, - Width = 50, - Height = 50, - Shape = new BpmnEvent() { EventType = BpmnEventType.Start, Trigger = BpmnEventTrigger.None }, - Style = new ShapeStyle() { Fill = "White" }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - }; - NodeCollection.Add(node1); - - Node node2 = new Node() - { - ID = "node2", - Width = 120, - Height = 80, - OffsetX = 250, - OffsetY = 300, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Receive }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node1Annotation1", - Content = "Receive Book Lending Request", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node2); - - Node node3 = new Node() - { - ID = "node3", - Width = 120, - Height = 80, - OffsetX = 450, - OffsetY = 300, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Service }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node3Annotation1", - Content = "Get the Book Status", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - }, - }; - NodeCollection.Add(node3); - - Node node4 = new Node() - { - ID = "node4", - OffsetX = 600, - OffsetY = 300, - Width = 90, - Height = 80, - Shape = new BpmnGateway() { GatewayType = BpmnGatewayType.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - } - }; - NodeCollection.Add(node4); - - Node node5 = new Node() - { - ID = "node5", - Width = 120, - Height = 80, - OffsetX = 800, - OffsetY = 300, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Send }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node5Annotation1", - Content = "On Load Reply", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node5); - - Node node6 = new Node() - { - ID = "node6", - Width = 90, - Height = 80, - OffsetX = 950, - OffsetY = 300, - Shape = new BpmnGateway() { GatewayType = BpmnGatewayType.EventBased }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - } - - }; - NodeCollection.Add(node6); - - Node node7 = new Node() - { - ID = "node7", - Width = 50, - Height = 50, - OffsetX = 1100, - OffsetY = 200, - Shape = new BpmnEvent() { EventType = BpmnEventType.Intermediate, Trigger = BpmnEventTrigger.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node7Annotation1", - Content = "Hold Book", - Visibility = true, - Offset = new DiagramPoint (){ X = 0.5, Y = 1.25 }, - Style = new TextStyle(){ FontSize = 11}, - Width = 100 - }, - } - }; - NodeCollection.Add(node7); - - Node node8 = new Node() - { - ID = "node8", - Width = 50, - Height = 50, - OffsetX = 1100, - OffsetY = 300, - Shape = new BpmnEvent() { EventType = BpmnEventType.Intermediate, Trigger = BpmnEventTrigger.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node8Annotation1", - Content = "Decline Hold", - Visibility = true, - Offset = new DiagramPoint (){ X = 0.5, Y = 1.25 }, - Style = new TextStyle(){ FontSize = 11}, - Width = 100 - }, - } - - }; - NodeCollection.Add(node8); - - Node node9 = new Node() - { - ID = "node9", - Width = 50, - Height = 50, - OffsetX = 1100, - OffsetY = 400, - Shape = new BpmnEvent() { EventType = BpmnEventType.Intermediate, Trigger = BpmnEventTrigger.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node9Annotation1", - Content = "One Week", - Visibility = true, - Offset = new DiagramPoint (){ X = 0.5, Y = 1.25 }, - Style = new TextStyle(){ FontSize = 11}, - Width = 100 - }, - } - - }; - NodeCollection.Add(node9); - - Node node10 = new Node() - { - ID = "node10", - Width = 120, - Height = 80, - OffsetX = 1250, - OffsetY = 200, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Service }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node10Annotation1", - Content = "Request Hold", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node10); - - Node node11 = new Node() - { - ID = "node11", - Width = 120, - Height = 80, - OffsetX = 1450, - OffsetY = 200, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Receive }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node11Annotation1", - Content = "Hold Reply", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node11); - - Node node12 = new Node() - { - ID = "node12", - Width = 50, - Height = 50, - OffsetX = 940, - OffsetY = 100, - Shape = new BpmnEvent() { EventType = BpmnEventType.Intermediate, Trigger = BpmnEventTrigger.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node12Annotation1", - Content = "Two Weeks", - Visibility = true, - Offset = new DiagramPoint (){ X = 0.5, Y = 1.25 }, - Style = new TextStyle(){ FontSize = 11}, - Width = 100, - }, - } - - }; - NodeCollection.Add(node12); - - Node node13 = new Node() - { - ID = "node13", - Width = 120, - Height = 80, - OffsetX = 800, - OffsetY = 540, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.User }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node13Annotation1", - Content = "Checkout the Book", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node13); - - Node node14 = new Node() - { - ID = "node14", - Width = 120, - Height = 80, - OffsetX = 1050, - OffsetY = 540, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Receive }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node14Annotation1", - Content = "Checkout reply", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node14); - - Node node15 = new Node() - { - ID = "node15", - Width = 120, - Height = 80, - OffsetX = 1250, - OffsetY = 300, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.Receive }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "Node15Annotation1", - Content = "Cancel Request", - Visibility = true, - Style = new TextStyle(){ FontSize = 11, TextAlign = TextAlign.Left, - TextWrapping = TextWrap.WrapWithOverflow }, - }, - } - }; - NodeCollection.Add(node15); - - Node node16 = new Node() - { - ID = "node16", - OffsetX = 1450, - OffsetY = 300, - Width = 50, - Height = 50, - Shape = new BpmnEvent() { EventType = BpmnEventType.End, Trigger = BpmnEventTrigger.None }, - Ports = new DiagramObjectCollection() { - new PointPort() { ID="port1", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port2", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 0}, Height = 20, Width = 20 }, - new PointPort() { ID="port3", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 1, Y = 0.5}, Height = 20, Width = 20 }, - new PointPort() { ID="port4", Visibility = PortVisibility.Hidden, Offset = new DiagramPoint() { X = 0.5, Y = 1}, Height = 20, Width = 20 } - } - }; - NodeCollection.Add(node16); - Connector connector1 = new Connector() { ID = "connector1", SourceID = "node1", TargetID = "node2", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector1); - Connector connector2 = new Connector() { ID = "connector2", SourceID = "node2", TargetID = "node3", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector2); - Connector connector3 = new Connector() { ID = "connector3", SourceID = "node3", TargetID = "node4", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector3); - Connector connector4 = new Connector() { ID = "connector4", SourceID = "node4", TargetID = "node5", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow }, Annotations = new DiagramObjectCollection() { new PathAnnotation() { Content = "Book is on Loan", Alignment = AnnotationAlignment.Center, Style = new TextStyle() { Fill = "White" }, Width = 60 } } }; - DiagramConnectors.Add(connector4); - Connector connector5 = new Connector() { ID = "connector5", SourceID = "node5", TargetID = "node6", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector5); - Connector connector6 = new Connector() { ID = "connector6", SourceID = "node6", TargetID = "node7", SourcePortID = "port2", TargetPortID = "port1", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector6); - Connector connector7 = new Connector() { ID = "connector7", SourceID = "node6", TargetID = "node8", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector7); - Connector connector8 = new Connector() { ID = "connector8", SourceID = "node6", TargetID = "node9", SourcePortID = "port4", TargetPortID = "port1", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector8); - Connector connector9 = new Connector() { ID = "connector9", SourceID = "node7", TargetID = "node10", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector9); - Connector connector10 = new Connector() { ID = "connector10", SourceID = "node10", TargetID = "node11", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector10); - Connector connector11 = new Connector() { ID = "connector11", SourceID = "node11", TargetID = "node12", SourcePortID = "port2", TargetPortID = "port3", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector11); - Connector connector12 = new Connector() { ID = "connector12", SourceID = "node12", TargetID = "node4", SourcePortID = "port1", TargetPortID = "port2", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector12); - Connector connector13 = new Connector() { ID = "connector13", SourceID = "node4", TargetID = "node13", SourcePortID = "port4", TargetPortID = "port1", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow }, Annotations = new DiagramObjectCollection() { new PathAnnotation() { Content = "Book is Available", Alignment = AnnotationAlignment.Center, Style = new TextStyle() { Fill = "White" }, Width = 60 } } }; - DiagramConnectors.Add(connector13); - Connector connector14 = new Connector() { ID = "connector14", SourceID = "node13", TargetID = "node14", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector14); - Connector connector15 = new Connector() { ID = "connector15", SourceID = "node8", TargetID = "node15", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector15); - Connector connector16 = new Connector() { ID = "connector16", SourceID = "node15", TargetID = "node16", SourcePortID = "port3", TargetPortID = "port1", Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector16); - Connector connector17 = new Connector() { ID = "connector17", SourceID = "node14", TargetID = "node16", SourcePortID = "port3", TargetPortID = "port4", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector17); - Connector connector18 = new Connector() { ID = "connector18", SourceID = "node9", TargetID = "node15", SourcePortID = "port3", TargetPortID = "port4", Type = ConnectorSegmentType.Orthogonal, Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow } }; - DiagramConnectors.Add(connector18); - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreviewSettings = new DiagramSize - { - Width = 100, - Height = 100 - }; - BPMNShapeSymbols = new DiagramObjectCollection(); - Node node1 = new Node() - { - ID = "Task", - Width = 96, - Height = 72, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.Task, TaskType = BpmnTaskType.None } - }; - BPMNShapeSymbols.Add(node1); - Node node2 = new Node() - { - ID = "Gateway", - Width = 96, - Height = 72, - Shape = new BpmnGateway() { GatewayType = BpmnGatewayType.None } - }; - BPMNShapeSymbols.Add(node2); - Node node3 = new Node() - { - ID = "IntermediateEvent", - Width = 30, - Height = 30, - Shape = new BpmnEvent() { EventType = BpmnEventType.Intermediate, Trigger = BpmnEventTrigger.None }, - Tooltip = new DiagramTooltip() - { - Content = "Intermediate Event" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node3); - Node node4 = new Node() - { - ID = "EndEvent", - Width = 30, - Height = 30, - Shape = new BpmnEvent() { EventType = BpmnEventType.End, Trigger = BpmnEventTrigger.None }, - Tooltip = new DiagramTooltip() - { - Content = "End Event" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node4); - Node node5 = new Node() - { - ID = "StartEvent", - Width = 30, - Height = 30, - Shape = new BpmnEvent() { EventType = BpmnEventType.Start, Trigger = BpmnEventTrigger.None }, - Tooltip = new DiagramTooltip() - { - Content = "Start Event" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node5); - Node node6 = new Node() - { - ID = "CollapsedSub-Process", - Width = 96, - Height = 72, - Shape = new BpmnActivity() { ActivityType = BpmnActivityType.CollapsedSubProcess }, - Tooltip = new DiagramTooltip() - { - Content = "Collapsed Sub-Process" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node6); - Node node7 = new Node() - { - ID = "ExpandedSub-Process", - Width = 96, - Height = 72, - Shape = new BpmnExpandedSubProcess(), - Tooltip = new DiagramTooltip() - { - Content = "Expanded Sub-Process" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node7); - Node node8 = new Node() - { - ID = "TextAnnotation", - Width = 96, - Height = 72, - Shape = new BpmnTextAnnotation(), - Tooltip = new DiagramTooltip() - { - Content = "Text Annotation" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node8); - Connector connector1 = new Connector() - { - ID = "SequenceFlow", - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Type = ConnectorSegmentType.Straight, - Shape = new BpmnFlow() { Flow = BpmnFlowType.SequenceFlow }, - Tooltip = new DiagramTooltip() - { - Content = "Sequence Flow" - }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip - }; - BPMNShapeSymbols.Add(connector1); - Connector connector2 = new Connector() { ID = "Association", SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, Type = ConnectorSegmentType.Straight, Shape = new BpmnFlow() { Flow = BpmnFlowType.AssociationFlow }, }; - BPMNShapeSymbols.Add(connector2); - Connector connector3 = new Connector() - { - ID = "MessageFlow", SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, Type = ConnectorSegmentType.Straight, TargetDecorator = new DecoratorSettings() { Style = new ShapeStyle() { Fill = "white" } }, Style = new ShapeStyle() { StrokeDashArray = "5 5" }, Tooltip = new DiagramTooltip() - { - Content = "Message Flow" - }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip - }; - BPMNShapeSymbols.Add(connector3); - Node node9 = new Node() - { - ID = "Message", - Width = 72, - Height = 48, - Shape = new BpmnMessage() - }; - BPMNShapeSymbols.Add(node9); - Node node10 = new Node() - { - ID = "DataObject", - Width = 48, - Height = 62, - Shape = new BpmnDataObject() { IsCollectiveData = false, DataObjectType = BpmnDataObjectType.None }, - Tooltip = new DiagramTooltip() - { - Content = "Data Object" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node10); - Node node11 = new Node() - { - ID = "DataStore", - Width = 96, - Height = 76, - Shape = new BpmnDataStore(), - Tooltip = new DiagramTooltip() - { - Content = "Data Store" - }, - Constraints = NodeConstraints.Default | NodeConstraints.Tooltip - }; - BPMNShapeSymbols.Add(node11); - palettes = new DiagramObjectCollection() - { -#pragma warning disable BL0005 - new Palette() { Symbols = BPMNShapeSymbols, Title = "BPMN Shapes", ID = "BPMNShapes", IconCss = "e-ddb-icons e-flow" }, -#pragma warning restore BL0005 - }; - } - - private void DragDrop( DropEventArgs args) - { - if (args.Element != null && args.Element is Connector connector) - { - if (connector.ID.Contains("Message Flow")) - connector.Shape = new BpmnFlow() { Flow = BpmnFlowType.MessageFlow }; - } - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector1 && connector1.Tooltip != null) - { - connector1.Tooltip = null; - connector1.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Shape is BpmnEvent) - { - node.Width = 50; - node.Height = 50; - } - else if (node.Shape is BpmnMessage) - { - node.Width = 72; - node.Height = 48; - } - else if (node.Shape is BpmnDataObject) - { - node.Width = 48; - node.Height = 62; - } - else if (node.Shape is BpmnDataStore) - { - node.Width = 96; - node.Height = 72; - } - else if (node.Shape is BpmnActivity bpmnActivity) - { - node.Width = 120; - node.Height = 80; - } - else if (node.Shape is BpmnGateway) - { - node.Width = 90; - node.Height = 80; - } - else if (node.Shape is BpmnTextAnnotation) - { - node.Width = 96; - node.Height = 72; - } - else if (node.Shape is BpmnExpandedSubProcess) - { - node.Width = 300; - node.Height = 300; - } - node.Constraints = node.Constraints |= NodeConstraints.AllowDrop; - } - private void OnConnectorCreating(IDiagramObject obj) - { - Connector node = obj as Connector; - node.Style.Fill = "black"; - node.Style.StrokeColor = "black"; - node.Style.Opacity = 1; - node.TargetDecorator.Style.Fill = "black"; - node.TargetDecorator.Style.StrokeColor = "black"; - } - private void UpdateHandle() - { - UserHandle deleteHandle = AddHandle("Delete", "delete", Direction.Bottom, 0.5); - UserHandle drawHandle = AddHandle("Draw", "draw", Direction.Right, 0.5); - UserHandleCollection.Add(deleteHandle); - UserHandleCollection.Add(drawHandle); - selectionSettings.UserHandles = UserHandleCollection; - } - - private UserHandle AddHandle(string name, string path, Direction direction, double offset) - { - UserHandle handle = new UserHandle() - { - Name = name, - Visible = true, - Offset = offset, - Side = direction, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - if (path == "delete") - { - handle.PathData = "M0.54700077,2.2130003 L7.2129992,2.2130003 7.2129992,8.8800011 C7.2129992,9.1920013 7.1049975,9.4570007 6.8879985,9.6739998 6.6709994,9.8910007 6.406,10 6.0939997,10 L1.6659999,10 C1.3539997,10 1.0890004,9.8910007 0.87200136,9.6739998 0.65500242,9.4570007 0.54700071,9.1920013 0.54700077,8.8800011 z M2.4999992,0 L5.2600006,0 5.8329986,0.54600048 7.7599996,0.54600048 7.7599996,1.6660004 0,1.6660004 0,0.54600048 1.9270014,0.54600048 z"; - } - else - { - handle.PathData = "M3.9730001,0 L8.9730001,5.0000007 3.9730001,10.000001 3.9730001,7.0090005 0,7.0090005 0,2.9910006 3.9730001,2.9910006 z"; - } - return handle; - } - private void ItemClicked(DiagramMenuClickEventArgs args) - { - if (DiagramComponentRef.SelectionSettings.Nodes.Count != 0 && DiagramComponentRef.SelectionSettings.Connectors.Count == 0) - { - Node node = DiagramComponentRef.SelectionSettings.Nodes[0]; - if (args.Item.ID == "Loop") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - switch (args.Item.Text) - { - case "None": - { - bpmnActivity.Loop = BpmnLoopCharacteristic.None; - } - break; - case "Standard": - { - bpmnActivity.Loop = BpmnLoopCharacteristic.Standard; - } - break; - case "Parallel Multi-Instance": - { - bpmnActivity.Loop = BpmnLoopCharacteristic.ParallelMultiInstance; - } - break; - case "Sequential Multi-Instance": - { - bpmnActivity.Loop = BpmnLoopCharacteristic.SequenceMultiInstance; - } - break; - } - } - else if (node.Shape is BpmnExpandedSubProcess bpmnExpandedSubProcess) - { - switch (args.Item.Text) - { - case "None": - { - bpmnExpandedSubProcess.Loop = BpmnLoopCharacteristic.None; - } - break; - case "Standard": - { - bpmnExpandedSubProcess.Loop = BpmnLoopCharacteristic.Standard; - } - break; - case "Parallel Multi-Instance": - { - bpmnExpandedSubProcess.Loop = BpmnLoopCharacteristic.ParallelMultiInstance; - } - break; - case "Sequential Multi-Instance": - { - bpmnExpandedSubProcess.Loop = BpmnLoopCharacteristic.SequenceMultiInstance; - } - break; - } - } - } - else if (args.Item.ID == "TaskType") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - switch (args.Item.Text) - { - case "None": - { - bpmnActivity.TaskType = BpmnTaskType.None; - } - break; - case "Service": - { - bpmnActivity.TaskType = BpmnTaskType.Service; - } - break; - case "Receive": - { - bpmnActivity.TaskType = BpmnTaskType.Receive; - } - break; - case "Send": - { - bpmnActivity.TaskType = BpmnTaskType.Send; - } - break; - case "Instantiating Receive": - { - bpmnActivity.TaskType = BpmnTaskType.InstantiatingReceive; - } - break; - case "Manual": - { - bpmnActivity.TaskType = BpmnTaskType.Manual; - } - break; - case "Business Rule": - { - bpmnActivity.TaskType = BpmnTaskType.BusinessRule; - } - break; - case "User": - { - bpmnActivity.TaskType = BpmnTaskType.User; - } - break; - case "Script": - { - bpmnActivity.TaskType = BpmnTaskType.Script; - } - break; - } - } - } - else if (args.Item.ID == "bpmn_Compensation") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - bpmnActivity.IsCompensation = !bpmnActivity.IsCompensation; - } - if (node.Shape is BpmnExpandedSubProcess bpmnExpandedSubProcess) - { - bpmnExpandedSubProcess.IsCompensation = !bpmnExpandedSubProcess.IsCompensation; - } - } - else if (args.Item.ID == "bpmn_Call") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - bpmnActivity.IsCall = !bpmnActivity.IsCall; - } - } - else if (args.Item.ID == "ActivityType") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - switch (args.Item.Text) - { - case "Task": - { - bpmnActivity.ActivityType = BpmnActivityType.Task; - } - break; - case "Collapsed Sub-Process": - { - bpmnActivity.ActivityType = BpmnActivityType.CollapsedSubProcess; - } - break; - } - } - } - else if (args.Item.ID == "GateWayType") - { - if (node.Shape is BpmnGateway bpmnGateway) - { - switch (args.Item.Text) - { - case "None": - { - bpmnGateway.GatewayType = BpmnGatewayType.None; - } - break; - case "Exclusive": - { - bpmnGateway.GatewayType = BpmnGatewayType.Exclusive; - } - break; - case "Inclusive": - { - bpmnGateway.GatewayType = BpmnGatewayType.Inclusive; - } - break; - case "Parallel": - { - bpmnGateway.GatewayType = BpmnGatewayType.Parallel; - } - break; - case "Complex": - { - bpmnGateway.GatewayType = BpmnGatewayType.Complex; - } - break; - case "Event Based": - { - bpmnGateway.GatewayType = BpmnGatewayType.EventBased; - } - break; - case "Event Based (Exclusive)": - { - bpmnGateway.GatewayType = BpmnGatewayType.ExclusiveEventBased; - } - break; - case "Event Based (Parallel)": - { - bpmnGateway.GatewayType = BpmnGatewayType.ParallelEventBased; - } - break; - } - } - } - else if (args.Item.ID == "Event Type") - { - if (node.Shape is BpmnEvent bpmnSubEvent) - { - switch (args.Item.Text) - { - case "Start": - { - bpmnSubEvent.EventType = BpmnEventType.Start; - } - break; - case "Intermediate": - { - bpmnSubEvent.EventType = BpmnEventType.Intermediate; - } - break; - case "End": - { - bpmnSubEvent.EventType = BpmnEventType.End; - } - break; - case "Start (Non-Interrupting)": - { - bpmnSubEvent.EventType = BpmnEventType.NonInterruptingStart; - } - break; - case "Intermediate (Non-Interrupting)": - { - bpmnSubEvent.EventType = BpmnEventType.NonInterruptingIntermediate; - } - break; - case "Intermediate (Throwing)": - { - bpmnSubEvent.EventType = BpmnEventType.ThrowingIntermediate; - } - break; - } - } - } - else if (args.Item.ID == "Trigger") - { - if (node.Shape is BpmnEvent bpmnSubEvent) - { - switch (args.Item.Text) - { - case "None": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.None; - } - break; - case "Message": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Message; - } - break; - case "Timer": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Timer; - } - break; - case "Escalation": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Escalation; - } - break; - case "Link": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Link; - } - break; - case "Error": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Error; - } - break; - case "Compensation": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Compensation; - } - break; - case "Signal": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Signal; - } - break; - case "Multiple": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Multiple; - } - break; - case "Parallel Multiple": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Parallel; - } - break; - case "Cancel": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Cancel; - } - break; - case "Conditional": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Conditional; - } - break; - case "Terminate": - { - bpmnSubEvent.Trigger = BpmnEventTrigger.Terminate; - } - break; - } - } - } - else if (args.Item.ID == "Collection") - { - if (node.Shape is BpmnDataObject bpmnDataObject) - { - switch (args.Item.Text) - { - case "None": - { - bpmnDataObject.IsCollectiveData = false; - } - break; - case "Collection": - { - bpmnDataObject.IsCollectiveData = true; - } - break; - } - } - } - else if (args.Item.ID == "DataObjectType") - { - if (node.Shape is BpmnDataObject bpmnDataObject) - { - switch (args.Item.Text) - { - case "None": - { - bpmnDataObject.DataObjectType = BpmnDataObjectType.None; - } - break; - case "Input": - { - bpmnDataObject.DataObjectType = BpmnDataObjectType.Input; - } - break; - case "Output": - { - bpmnDataObject.DataObjectType = BpmnDataObjectType.Output; - } - break; - } - } - } - else if (args.Item.ID == "Boundary") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - if (bpmnActivity.ActivityType == BpmnActivityType.CollapsedSubProcess) - { - switch (args.Item.Text) - { - case "Default": - { - bpmnActivity.SubProcessType = BpmnSubProcessType.Default; - } - break; - case "Call": - { - bpmnActivity.SubProcessType = BpmnSubProcessType.Call; - } - break; - case "Event": - { - bpmnActivity.SubProcessType = BpmnSubProcessType.Event; - } - break; - case "Transaction": - { - bpmnActivity.SubProcessType = BpmnSubProcessType.Transaction; - } - break; - } - } - } - if (node.Shape is BpmnExpandedSubProcess bpmnExpandedSubProcess) - { - - switch (args.Item.Text) - { - case "Default": - { - bpmnExpandedSubProcess.SubProcessType = BpmnSubProcessType.Default; - } - break; - case "Call": - { - bpmnExpandedSubProcess.SubProcessType = BpmnSubProcessType.Call; - } - break; - case "Event": - { - bpmnExpandedSubProcess.SubProcessType = BpmnSubProcessType.Event; - } - break; - case "Transaction": - { - bpmnExpandedSubProcess.SubProcessType = BpmnSubProcessType.Transaction; - } - break; - } - } - } - else if (args.Item.Text == "Ad-Hoc") - { - if (node.Shape is BpmnActivity bpmnActivity) - { - bpmnActivity.IsAdhoc = !bpmnActivity.IsAdhoc; - - } - if (node.Shape is BpmnExpandedSubProcess bpmnExpandedSubProcess) - { - bpmnExpandedSubProcess.IsAdhoc = !bpmnExpandedSubProcess.IsAdhoc; - - } - } - else if (args.Item.ID == "Orientation") - { - if (node.Shape is BpmnTextAnnotation bpmnTextAnnotation) - { - switch (args.Item.Text) - { - case "Automatic": - { - bpmnTextAnnotation.TextAnnotationDirection = TextAnnotationDirection.Auto; - } - break; - case "Left": - { - bpmnTextAnnotation.TextAnnotationDirection = TextAnnotationDirection.Left; - } - break; - case "Right": - { - bpmnTextAnnotation.TextAnnotationDirection = TextAnnotationDirection.Right; - } - break; - case "Top": - { - bpmnTextAnnotation.TextAnnotationDirection = TextAnnotationDirection.Top; - } - break; - case "Bottom": - { - bpmnTextAnnotation.TextAnnotationDirection = TextAnnotationDirection.Bottom; - } - break; - } - } - } - } - else if (DiagramComponentRef.SelectionSettings.Nodes.Count == 0 && DiagramComponentRef.SelectionSettings.Connectors.Count != 0) - { - Connector connector = DiagramComponentRef.SelectionSettings.Connectors[0]; - if (connector.Shape is BpmnFlow bpmnShape) - { - if (args.Item.ID == "bpmn_Sequence") - { - bpmnShape.Flow = BpmnFlowType.SequenceFlow; - } - if (args.Item.ID == "bpmn_Message") - { - bpmnShape.Flow = BpmnFlowType.MessageFlow; - } - if (args.Item.ID == "bpmn_Association") - { - bpmnShape.Flow = BpmnFlowType.AssociationFlow; - } - if (args.Item.ID == "Direction") - { - if (args.Item.Text == "None") - { - bpmnShape.Flow = BpmnFlowType.AssociationFlow; - } - else if (args.Item.Text == "One") - { - bpmnShape.Flow = BpmnFlowType.DirectionalAssociationFlow; - } - else if (args.Item.Text == "Both") - { - bpmnShape.Flow = BpmnFlowType.BiDirectionalAssociationFlow; - } - } - if (args.Item.ID == "Condition") - { - if (args.Item.Text == "None") - { - bpmnShape.Flow = BpmnFlowType.SequenceFlow; - } - else if (args.Item.Text == "Default") - { - bpmnShape.Flow = BpmnFlowType.DefaultSequenceFlow; - } - else if (args.Item.Text == "Conditional") - { - bpmnShape.Flow = BpmnFlowType.ConditionalSequenceFlow; - } - } - if (args.Item.ID == "Initiating") - { - if (args.Item.Text == "None") - { - bpmnShape.Flow = BpmnFlowType.MessageFlow; - } - else if (args.Item.Text == "Initiating") - { - bpmnShape.Flow = BpmnFlowType.InitiatingMessageFlow; - } - else if (args.Item.Text == "Non-Initiating") - { - bpmnShape.Flow = BpmnFlowType.NonInitiatingMessageFlow; - } - } - } - } - } - private void ContextMenuOpen(DiagramMenuOpeningEventArgs args) - { - if (DiagramComponentRef.SelectionSettings.Nodes.Count != 0 && DiagramComponentRef.SelectionSettings.Connectors.Count == 0) - { - Node node = DiagramComponentRef.SelectionSettings.Nodes[0]; - - if (node.Shape.Type == NodeShapes.Bpmn) - { - if (node.Shape is BpmnEvent bpmnEvent) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !Event.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && Event.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Event Type") - { - if (bpmnEvent.EventType == BpmnEventType.Start) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Start") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.EventType == BpmnEventType.NonInterruptingStart) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Start (Non-Interrupting)") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.EventType == BpmnEventType.Intermediate) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Intermediate") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.EventType == BpmnEventType.NonInterruptingIntermediate) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Intermediate (Non-Interrupting)") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.EventType == BpmnEventType.ThrowingIntermediate) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Intermediate (Throwing)") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.EventType == BpmnEventType.End) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "End") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - if (item.Text == "Trigger/Result") - { - if (bpmnEvent.Trigger == BpmnEventTrigger.None) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Error) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Error") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Timer) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Timer") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Terminate) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Terminate") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Multiple) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Multiple") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Message) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Message") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Cancel) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Cancel") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Compensation) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Compensation") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Conditional) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Conditional") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Error) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Error") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Parallel) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Parallel Multiple") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnEvent.Trigger == BpmnEventTrigger.Link) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Link") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - else if (node.Shape is BpmnGateway bpmnGateway) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !BpmnGateWayType.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && BpmnGateWayType.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "GateWay Type") - { - if (bpmnGateway.GatewayType == BpmnGatewayType.None) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnGateway.GatewayType == BpmnGatewayType.Inclusive) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Inclusive") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - - if (bpmnGateway.GatewayType == BpmnGatewayType.Exclusive) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Exclusive") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - - if (bpmnGateway.GatewayType == BpmnGatewayType.Parallel) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Parallel") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - - if (bpmnGateway.GatewayType == BpmnGatewayType.EventBased) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Event Based") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - - if (bpmnGateway.GatewayType == BpmnGatewayType.ExclusiveEventBased) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Event Based (Exclusive)") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnGateway.GatewayType == BpmnGatewayType.ParallelEventBased) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Event Based (Parallel)") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnGateway.GatewayType == BpmnGatewayType.Complex) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Complex") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - else if (node.Shape is BpmnMessage) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !BpmnMessageData.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && BpmnMessageData.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - } - } - else if (node.Shape is BpmnDataObject bpmnDataObject) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !BpmnDataObjectProperties.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && BpmnDataObjectProperties.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Collection") - { - foreach (var subItem in item.Items) - { - if ((subItem.Text == "Collection" && bpmnDataObject.IsCollectiveData) || (subItem.Text == "None" && !bpmnDataObject.IsCollectiveData)) - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (item.Text == "Data Object") - { - foreach (var subItem in item.Items) - { - if (subItem.Text == bpmnDataObject.Type.ToString()) - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - else if (node.Shape is BpmnDataStore) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !BpmnDataStore.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - } - } - else if (node.Shape is BpmnActivity bpmnActivity) - { - foreach (var item in args.Items) - { - if (bpmnActivity.ActivityType == BpmnActivityType.Task) - { - if (item.ID.Split('_')[0] == "bpmn" && !(BpmnActivityProperties.Contains(item.ID.Split('_')[1]) || BpmnTaskProperties.Contains(item.ID.Split('_')[1]))) - { - args.HiddenItems.Add(item.ID); - } - if (item.Text == "Task Type") - { - if (bpmnActivity.TaskType == BpmnTaskType.None) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.Service) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Service") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.Receive) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Receive") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.Send) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Send") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.InstantiatingReceive) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Instantiating Receive") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.Manual) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Manual") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.BusinessRule) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Business Rule") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.User) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "User") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.TaskType == BpmnTaskType.Script) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Script") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - if (item.Text == "Call") - { - if (bpmnActivity.IsCall) - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - } - - } - if (bpmnActivity.ActivityType == BpmnActivityType.CollapsedSubProcess) - { - if (item.ID.Split('_')[0] == "bpmn" && !(BpmnActivityProperties.Contains(item.ID.Split('_')[1]) || ActivityCollapsedSubProcess.Contains(item.ID.Split('_')[1]))) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && ActivityCollapsedSubProcess.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Ad-Hoc") - { - if (bpmnActivity.IsAdhoc) - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - } - - if (item.Text == "Boundary") - { - if (bpmnActivity.SubProcessType == BpmnSubProcessType.Default) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Default") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.SubProcessType == BpmnSubProcessType.Event) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Event") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.SubProcessType == BpmnSubProcessType.Call) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Call") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.SubProcessType == BpmnSubProcessType.Transaction) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Transaction") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - - } - } - } - if (item.ID.Split('_')[0] == "bpmn" && BpmnActivityProperties.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Loop") - { - if (bpmnActivity.Loop == BpmnLoopCharacteristic.None) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.Loop == BpmnLoopCharacteristic.Standard) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Standard") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.Loop == BpmnLoopCharacteristic.ParallelMultiInstance) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Parallel Multi-Instance") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.Loop == BpmnLoopCharacteristic.SequenceMultiInstance) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Sequential Multi-Instance") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - if (item.Text == "Compensation") - { - if (bpmnActivity.IsCompensation) - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - } - if (item.Text == "Activity Type") - { - if (bpmnActivity.ActivityType == BpmnActivityType.Task) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Task") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnActivity.ActivityType == BpmnActivityType.CollapsedSubProcess) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Collapsed Sub-Process") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - else if (node.Shape is BpmnExpandedSubProcess bpmnExpandedSubProcess) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !ExpandedSubProcess.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && ExpandedSubProcess.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Loop") - { - if (bpmnExpandedSubProcess.Loop == BpmnLoopCharacteristic.None) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.Loop == BpmnLoopCharacteristic.Standard) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Standard") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.Loop == BpmnLoopCharacteristic.ParallelMultiInstance) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Parallel Multi-Instance") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.Loop == BpmnLoopCharacteristic.SequenceMultiInstance) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Sequential Multi-Instance") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - if (item.Text == "Compensation") - { - if (bpmnExpandedSubProcess.IsCompensation) - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - } - if (item.Text == "Ad-Hoc") - { - if (bpmnExpandedSubProcess.IsAdhoc) - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - } - if (item.Text == "Boundary") - { - if (bpmnExpandedSubProcess.SubProcessType == BpmnSubProcessType.Default) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Default") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.SubProcessType == BpmnSubProcessType.Event) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Event") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.SubProcessType == BpmnSubProcessType.Call) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Call") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnExpandedSubProcess.SubProcessType == BpmnSubProcessType.Transaction) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Transaction") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - else if (node.Shape is BpmnTextAnnotation bpmnTextAnnotation) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn" && !BpmnTextAnnotation.Contains(item.ID.Split('_')[1])) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && BpmnTextAnnotation.Contains(item.ID.Split('_')[1])) - { - if (item.Text == "Orientation") - { - if (bpmnTextAnnotation.TextAnnotationDirection == TextAnnotationDirection.Left) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Left") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnTextAnnotation.TextAnnotationDirection == TextAnnotationDirection.Right) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Right") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnTextAnnotation.TextAnnotationDirection == TextAnnotationDirection.Top) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Top") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnTextAnnotation.TextAnnotationDirection == TextAnnotationDirection.Bottom) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Bottom") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnTextAnnotation.TextAnnotationDirection == TextAnnotationDirection.Auto) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Automatic") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - } - } - else if (DiagramComponentRef.SelectionSettings.Nodes.Count == 0 && DiagramComponentRef.SelectionSettings.Connectors.Count != 0) - { - Connector connector = DiagramComponentRef.SelectionSettings.Connectors[0]; - Node node = (Node)DiagramComponentRef.GetObject(connector.TargetID); - if (connector.Shape is BpmnFlow bpmnShape) - { - foreach (var item in args.Items) - { - if (bpmnShape.Flow == BpmnFlowType.AssociationFlow || bpmnShape.Flow == BpmnFlowType.BiDirectionalAssociationFlow || bpmnShape.Flow == BpmnFlowType.DirectionalAssociationFlow) - { - if (item.ID.Split('_')[0] == "bpmn" && (!BpmnAssociationConnector.Contains(item.ID.Split('_')[1]) || node != null && node.Shape is BpmnTextAnnotation)) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && (BpmnAssociationConnector.Contains(item.ID.Split('_')[1]))) - { - if (item.Text == "Association") - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - if (item.Text == "Direction") - { - if (bpmnShape.Flow == BpmnFlowType.AssociationFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.DirectionalAssociationFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "one") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.BiDirectionalAssociationFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Both") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - if (bpmnShape.Flow == BpmnFlowType.MessageFlow || bpmnShape.Flow == BpmnFlowType.NonInitiatingMessageFlow || bpmnShape.Flow == BpmnFlowType.InitiatingMessageFlow) - { - if (item.ID.Split('_')[0] == "bpmn" && (!BpmnMessageConnector.Contains(item.ID.Split('_')[1]) || node != null && node.Shape is BpmnTextAnnotation)) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && (BpmnMessageConnector.Contains(item.ID.Split('_')[1]) || node != null && node.Shape is BpmnTextAnnotation)) - { - if (item.Text == "Message Flow") - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - if (item.Text == "Initiating") - { - if (bpmnShape.Flow == BpmnFlowType.MessageFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.InitiatingMessageFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Initiating") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.NonInitiatingMessageFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Non-Initiating") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - if (bpmnShape.Flow == BpmnFlowType.SequenceFlow || bpmnShape.Flow == BpmnFlowType.ConditionalSequenceFlow || bpmnShape.Flow == BpmnFlowType.DefaultSequenceFlow) - { - if (item.ID.Split('_')[0] == "bpmn" && (!BpmnSequenceConnector.Contains(item.ID.Split('_')[1]) || node != null && node.Shape is BpmnTextAnnotation)) - { - args.HiddenItems.Add(item.ID); - } - if (item.ID.Split('_')[0] == "bpmn" && (BpmnSequenceConnector.Contains(item.ID.Split('_')[1]) || node != null && node.Shape is BpmnTextAnnotation)) - { - if (item.Text == "Sequence Flow") - { - item.IconCss = "e-icons e-check"; - } - else - { - item.IconCss = "e-icons e-uncheck"; - } - if (item.Text == "Condition") - { - if (bpmnShape.Flow == BpmnFlowType.SequenceFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "None") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.ConditionalSequenceFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Conditional") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - if (bpmnShape.Flow == BpmnFlowType.DefaultSequenceFlow) - { - foreach (var subItem in item.Items) - { - if (subItem.Text == "Default") - { - subItem.IconCss = "e-icons e-check"; - } - else - { - subItem.IconCss = "e-icons e-uncheck"; - } - } - } - } - } - } - } - } - } - else if (DiagramComponentRef.SelectionSettings.Nodes.Count == 0 && DiagramComponentRef.SelectionSettings.Connectors.Count == 0) - { - foreach (var item in args.Items) - { - if (item.ID.Split('_')[0] == "bpmn") - { - args.HiddenItems.Add(item.ID); - } - } - } - } - string data; - public async Task ShowHideSymbolPalette() - { - await JsRuntime.InvokeAsync("openPalette"); - } - public void Dispose() - { - if (SymbolPreviewSettings != null) - { - SymbolPreviewSettings = null; - } - if (SymbolMarginSettings != null) - { - SymbolMarginSettings = null; - } - DiagramComponentRef = null; - PaletteComponentRef = null; - if (NodeCollection != null) - { - NodeCollection.Clear(); - NodeCollection = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } -#pragma warning restore BL0005 - if (BPMNShapeSymbols != null) - { - BPMNShapeSymbols.Clear(); - BPMNShapeSymbols = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - if (ContextMenuItems != null) - { - ContextMenuItems.Clear(); - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/CircuitDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/CircuitDiagram.razor deleted file mode 100644 index 13c242c0..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/CircuitDiagram.razor +++ /dev/null @@ -1,212 +0,0 @@ -@page "/diagramcomponent/Circuit-Diagram" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample visualizes implementation of an electrical circuit design using the Blazor Diagram component. The shapes for the circuits were designed with the Diagram's path node feature.

-
- -

This example shows how to create an electrical circuit design using diagram Path shapes. The Type property of a shape can be used to create Path nodes. The Data property of a shape allows you to define the path data of the path shape.


-
-@*End:Hidden*@ - -
- - - - -
- -@code{ - public SfDiagramComponent DiagramInstance; - DiagramConstraints Constraints = DiagramConstraints.Default; - DiagramInteractions DiagramInteractionTools { get; set; }= DiagramInteractions.Default; - - //Define DiagramNodes collection - public DiagramObjectCollection DiagramNodes { get; set; } - - //Define connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } - - //Define circuit shape - public string JunctionShapePath { get; set; } - public string Capacitor120ShapePath { get; set; } - public string Resistor6_8KShapePath { get; set; } - public string DiodeIN4007ShapePath { get; set; } - public string DiodeIN4001ShapePath { get; set; } - public string Capacitor20uFShapePath { get; set; } - public string Resistor22KShapePath { get; set; } - public string LampShapePath { get; set; } - public string GroundShapePath { get; set; } - public string SwitchShapePath { get; set; } - public string PowerSourceShapePath { get; set; } - - - protected override void OnInitialized() - { - @*Hidden:Lines*@ - SampleService.Spinner.Show(); - - @*End:Hidden*@ - - Constraints |= DiagramConstraints.Bridging; - DiagramInteractionTools = DiagramInteractions.ZoomPan; - - //path value for all shapes - JunctionShapePath = "M 349.019,84.9688C 370.959,84.9688 389.941,92.8208 405.962,108.525C 421.985,124.229 429.994,143.053 429.994,164.993C 429.994,187.567 421.985,206.75 405.962,222.541C 389.941,238.331 370.959,246.226 349.019,246.226C 327.369,246.226 308.575,238.331 292.639,222.541C 276.705,206.75 268.737,187.567 268.737,164.993C 268.737,143.053 276.705,124.229 292.639,108.525C 308.575,92.8208 327.369,84.9688 349.019,84.9688 Z"; - Capacitor120ShapePath = "M 307.316,180.406C 335.896,171.458 364.65,171.458 393.575,180.406L 393.575,185.95C 386.3,184.564 379.428,183.294 372.963,182.14C 366.496,180.985 359.915,180.406 353.218,180.406L 353.218,246.314L 347.328,246.314L 347.328,180.406C 340.572,180.406 333.976,180.985 327.539,182.14C 321.1,183.294 314.36,184.564 307.316,185.95M 347.328,85.0543L 353.218,85.0543L 353.218,151.394L 393.575,151.394L 393.575,156.937L 307.316,156.937L 307.316,151.394L 347.328,151.394L 347.328,85.0543 Z"; - Resistor6_8KShapePath = "M 363.62,168.975L 333.048,158.583L 363.014,146.113L 333.395,133.726L 363.014,118.917L 348.898,111.815L 348.898,84.9686L 352.535,84.9686L 352.535,109.477L 372.714,119.61L 342.143,133.381L 372.714,146.113L 342.143,158.237L 372.714,168.282L 342.143,180.753L 372.714,192.791L 341.795,207.255L 351.928,216.003L 351.928,246.226L 347.511,246.226L 347.511,217.647L 334.088,206.562L 363.014,193.138L 331.403,180.753L 363.62,168.975 Z"; - DiodeIN4007ShapePath = "M 360.324,68.4401L 360.324,7.38678L 367.039,7.38678L 367.039,68.4401L 456.947,4.92816L 456.947,68.4401L 456.94,68.4401L 456.94,83.1815L 456.947,83.1815L 456.947,135.824L 367.039,83.1815L 367.039,142.841L 360.324,142.841L 360.324,83.1815"; - DiodeIN4001ShapePath = "M 360.324,68.4401L 360.324,7.38678L 367.039,7.38678L 367.039,68.4401L 456.947,4.92816L 456.947,68.4401L 456.94,68.4401L 456.94,83.1815L 456.947,83.1815L 456.947,135.824L 367.039,83.1815L 367.039,142.841L 360.324,142.841L 360.324,83.1815"; - Capacitor20uFShapePath = "M 391.299,21.6218C 401.965,55.6898 401.965,89.9684 391.299,124.454L 384.689,124.454C 386.341,115.782 387.856,107.588 389.232,99.8804C 390.609,92.1724 391.299,84.3231 391.299,76.3417L 312.727,76.3417L 312.727,69.319L 391.299,69.319C 391.299,61.2657 390.609,53.4031 389.232,45.7284C 387.856,38.0538 386.341,30.0164 384.689,21.6218M 504.971,69.319L 504.971,76.3417L 425.883,76.3417L 425.883,124.454L 419.277,124.454L 419.277,21.6218L 425.883,21.6218L 425.883,69.319L 504.971,69.319 Z"; - Resistor22KShapePath = "M 404.969,85.1068L 415.361,54.5334L 427.833,84.5001L 440.219,54.8801L 455.028,84.5001L 462.131,70.3828L 488.976,70.3828L 488.976,74.0215L 464.469,74.0215L 454.336,94.2001L 440.565,63.6281L 427.833,94.2001L 415.708,63.6281L 405.663,94.2001L 393.192,63.6281L 381.153,94.2001L 366.689,63.2814L 357.941,73.4135L 327.719,73.4135L 327.719,68.9975L 356.297,68.9975L 367.383,55.5735L 380.807,84.5001L 393.192,52.8881L 404.969,85.1068 Z"; - LampShapePath = "M 382.478,165.944L 373.73,144.12L 375.723,144.12L 383.43,162.913L 390.878,144.12L 393.217,144.12L 384.47,165.944M 359.267,111.556C 356.15,111.093 353.926,110.863 352.599,110.863L 352.599,125.585L 366.023,136.065L 337.443,148.104L 356.583,154.86C 358.43,155.552 360.321,156.245 362.255,156.937C 364.189,157.631 366.11,158.38 368.014,159.189C 362.991,160.92 357.969,162.74 352.946,164.644C 347.922,166.549 342.986,168.312 338.137,169.927C 342.986,171.66 347.879,173.305 352.815,174.864C 357.753,176.423 362.473,178.04 366.975,179.713L 344.198,190.8L 336.403,194.524L 352.599,203.531L 352.599,219.639C 357.679,219.639 363.049,218.659 368.707,216.695C 383.43,211.383 394.053,201.279 400.578,186.383C 403.753,178.531 404.995,170.217 404.302,161.44C 403.61,152.664 401.242,144.639 397.201,137.364C 393.159,130.841 387.919,125.255 381.482,120.607C 375.043,115.959 367.639,112.941 359.267,111.556 Z M 347.143,110.516C 345.757,110.691 344.399,110.863 343.073,111.036C 341.743,111.209 340.417,111.383 339.089,111.556C 331.525,113.057 324.957,115.771 319.386,119.696C 313.813,123.624 308.863,128.503 304.534,134.333C 300.838,139.587 298.167,145.895 296.522,153.256C 294.877,160.617 294.747,167.648 296.133,174.344C 296.133,175.211 296.247,175.875 296.478,176.336C 298.267,185.576 302.05,193.557 307.825,200.284C 313.597,207.011 320.439,212.135 328.35,215.656C 330.023,216.175 331.654,216.724 333.243,217.301C 334.83,217.879 336.577,218.34 338.482,218.687C 338.943,218.86 339.435,218.976 339.954,219.033C 340.474,219.091 340.994,219.205 341.514,219.38C 342.669,219.38 344.097,219.524 345.801,219.812C 347.503,220.101 348.875,220.159 349.914,219.985L 349.914,205.263L 336.403,197.469L 330.687,194.524L 359.961,180.06L 329.735,169.927L 357.622,159.881L 359.614,158.843L 329.735,148.451L 360.653,135.372L 349.914,126.972L 349.914,110.516M 352.599,84.9693L 352.599,107.832C 353.407,108.005 354.403,108.121 355.587,108.179C 356.77,108.237 357.882,108.352 358.922,108.525C 375.203,111.181 388.194,119.467 397.894,133.38C 401.934,139.385 404.85,146.661 406.641,155.205C 408.142,164.789 407.39,174.257 404.389,183.612C 401.386,192.965 396.537,200.732 389.839,206.909C 384.815,211.471 379.187,215.165 372.951,217.993C 366.715,220.823 359.93,222.383 352.599,222.671L 352.599,246.227L 349.914,246.227L 349.914,223.017C 348.875,222.729 347.431,222.583 345.585,222.583C 343.735,222.583 342.147,222.412 340.821,222.064C 338.742,221.717 336.881,221.315 335.234,220.852C 333.589,220.391 331.87,219.899 330.082,219.38C 324.193,217.013 318.693,213.78 313.583,209.68C 308.474,205.581 304.33,200.847 301.155,195.476C 296.767,188.779 294.039,181.013 292.971,172.18C 291.902,163.347 292.725,154.888 295.439,146.805C 298.267,138.26 302.858,130.856 309.21,124.589C 315.561,118.325 322.95,113.749 331.381,110.863C 332.13,110.863 332.91,110.633 333.719,110.169C 334.931,109.708 336.634,109.248 338.829,108.784C 342.639,108.149 346.334,107.832 349.914,107.832L 349.914,84.9693L 352.599,84.9693 Z"; - GroundShapePath = "M 325.579,240.685L 373.557,240.685L 373.557,246.488L 325.579,246.488M 313.627,222.671L 385.423,222.671L 385.423,228.385L 313.627,228.385M 301.761,204.656L 397.373,204.656L 397.373,210.719L 301.761,210.719M 343.592,85.228L 355.457,85.228L 355.457,186.556L 409.585,186.556L 409.585,192.705L 289.809,192.705L 289.809,186.556L 343.592,186.556L 343.592,85.228 Z"; - SwitchShapePath = "M 363.552,161.18L 340.081,161.18L 340.081,170.188L 363.552,170.188M 365.976,158.409L 365.976,172.959L 337.311,172.959L 337.311,165.685L 337.311,158.409M 374.984,181.62L 374.984,184.391L 353.247,184.391L 353.247,213.489L 353.247,246.313L 350.475,246.313L 350.475,184.391L 328.649,184.391L 328.649,181.62M 353.247,85.0546L 353.247,146.976L 374.984,146.976L 374.984,149.749L 328.649,149.749L 328.649,146.976L 350.475,146.976L 350.475,85.0546L 353.247,85.0546 Z"; - PowerSourceShapePath = "M 381.324,170.62C 380.804,170.62 379.474,170.477 377.34,170.188C 375.204,169.898 373.644,169.841 372.662,170.014L 372.662,227L 379.937,226.308C 381.265,225.961 382.622,225.673 384.008,225.441C 385.394,225.21 386.924,224.836 388.598,224.314C 392.582,223.161 396.189,221.776 399.424,220.158C 402.657,218.542 405.601,216.146 408.258,212.972C 410.566,210.026 412.156,206.42 413.021,202.146C 413.886,197.872 413.742,193.83 412.589,190.021C 411.029,185.344 408.432,181.736 404.794,179.196C 401.157,176.653 397.085,174.69 392.582,173.305C 387.906,171.805 384.152,170.91 381.324,170.62 Z M 372.662,167.329C 379.937,167.502 387.184,168.586 394.401,170.578C 401.617,172.569 407.565,176.481 412.242,182.313L 429.909,182.313L 429.909,184.997L 413.628,184.997C 416.166,190.482 416.946,196.141 415.966,201.972C 415.62,203.532 415.144,205.033 414.537,206.476C 413.93,207.92 413.396,209.305 412.934,210.633L 429.909,210.633L 429.909,213.664L 411.636,213.664C 405.802,220.592 397.576,225.24 386.953,227.606C 380.601,229.281 375.058,229.945 370.324,229.598L 370.324,215.309L 354.996,215.309L 354.996,210.286L 370.324,209.94L 369.978,183.958L 354.996,183.958L 354.996,178.674L 370.324,178.674L 370.324,167.329M 301.3,168.976L 301.3,177.636L 311.953,177.636L 311.953,182.658L 287.704,182.658L 287.704,177.636L 298.702,177.636L 298.702,168.976C 297.778,168.976 296.998,169.092 296.364,169.321C 291.514,170.188 287.212,172.08 283.46,174.994C 279.706,177.91 276.674,181.36 274.366,185.344C 272.172,189.846 271.205,194.756 271.465,200.066C 271.725,205.378 273.124,210.112 275.665,214.269C 279.59,220.909 285.133,225.24 292.293,227.26C 292.466,227.433 292.769,227.549 293.202,227.606C 293.636,227.664 294.025,227.78 294.372,227.953C 294.66,228.126 295.034,228.242 295.497,228.3C 295.96,228.358 296.45,228.473 296.97,228.646C 297.144,228.646 297.388,228.704 297.706,228.818C 298.022,228.934 298.356,228.992 298.702,228.992L 298.702,218.946L 287.704,218.946L 287.704,213.664L 311.953,213.664L 311.953,218.946L 301.3,218.946L 301.3,228.992C 302.454,228.992 304.36,228.762 307.017,228.3C 311.52,227.492 315.59,225.702 319.228,222.929C 322.865,220.158 325.78,216.954 327.974,213.317C 332.305,204.253 332.536,195.246 328.668,186.297C 324.394,177.06 317.177,171.4 307.017,169.321C 305.861,169.092 303.956,168.976 301.3,168.976 Z M 301.3,151.308L 301.3,165.685C 302.281,166.032 303.336,166.202 304.461,166.202C 305.588,166.202 306.757,166.349 307.969,166.637C 316.457,168.541 323.472,173.336 329.014,181.013C 331.958,185.864 333.561,191.434 333.821,197.728C 334.08,204.021 332.796,209.65 329.966,214.616C 327.196,220.158 322.98,224.374 317.322,227.26C 312.645,230.148 307.304,231.592 301.3,231.592L 301.3,246.314L 298.702,246.314L 298.702,231.937C 298.817,232.109 297.922,231.909 296.017,231.33C 294.632,231.157 293.333,230.854 292.12,230.422C 290.908,229.988 289.637,229.513 288.309,228.992C 283.806,226.972 279.865,224.028 276.488,220.158C 273.11,216.292 270.844,211.672 269.689,206.302C 268.765,203.589 268.534,200.037 268.996,195.649C 268.996,194.726 269.226,193.398 269.689,191.665C 271.652,182.428 276.761,175.414 285.018,170.62C 288.309,168.6 291.744,167.273 295.324,166.637C 296.017,166.406 297.144,166.29 298.702,166.29L 298.702,151.308L 301.3,151.308 Z"; - - //create a node - DiagramNodes = new DiagramObjectCollection(); - - CreateNode("CapacitorJunction", 200, 175, JunctionShapePath, 10, 10, null); - CreateNode("DiodeAndCapaciterJunction", 200, 110, JunctionShapePath, 10, 10, null); - CreateNode("DiodeJunction", 300, 110, JunctionShapePath, 10, 10, null); - CreateNode("ResisterAndDiodeJunction", 525, 110, JunctionShapePath, 10, 10, null); - CreateNode("ResisitorJunction", 525, 275, JunctionShapePath, 10, 10, null); - CreateNode("DiodeAndDiodeJunction", 110, 350, JunctionShapePath, 10, 10, null); - CreateNode("ResistorAndGroundjunction", 200, 585, JunctionShapePath, 10, 10, null); - CreateNode("CapacitorAndGroundJunction", 300, 585, JunctionShapePath, 10, 10, null); - CreateNode("LampAndDiodeJunction", 375, 350, JunctionShapePath, 10, 10, null); - CreateNode("ResistorAndGroundpointJunction", 525, 585, JunctionShapePath, 10, 10, null); - CreateNode("LampAndGroundpointJunction", 600, 525, JunctionShapePath, 10, 10, null); - CreateNode("CapacitorDiodeAndGroundJunction", 300, 275, JunctionShapePath, 10, 10, null); - CreateNode("LampToGroundJunction", 375, 525, JunctionShapePath, 10, 10, null); - CreateNode("CapacitorNode", 199.5, 275, Capacitor120ShapePath, 30, 50, null); - CreateNode("ResistorNode", 199.5, 475, Resistor6_8KShapePath, 20, 75, null); - CreateNode("Diode4007", 375, 110, DiodeIN4007ShapePath, 22, 22, null); - CreateNode("Diode4001", 450, 350, DiodeIN4001ShapePath, 25, 25, null); - CreateNode("Capacitor20F", 350, 275, Capacitor20uFShapePath, 50, 30, null); - CreateNode("Resistor22k", 450, 275, Resistor22KShapePath, 50, 20, null); - CreateNode("Lamp50V", 375, 430, LampShapePath, 40, 50, null); - CreateNode("Earth", 375, 605, GroundShapePath, 35, 40, null); - CreateNode("Switch", 600, 250, SwitchShapePath, 25, 75, null); - CreateNode("Lamp12V", 600, 430, LampShapePath, 40, 50, null); - CreateNode("Power", 830.75, 260, PowerSourceShapePath, 100, 100, null); - CreateNode("C1120uF", 150, 275, "", 100, 50, new ShapeAnnotation() { Content = "C1 120 uF" }); - CreateNode("C220uF", 353, 250, "", 100, 50, new ShapeAnnotation() { Content = "C2 20 uF" }); - CreateNode("label3", 450, 250, "", 100, 50, new ShapeAnnotation() { Content = "R2 22K" }); - CreateNode("D1IN4007", 375, 85, "", 100, 50, new ShapeAnnotation() { Content = "D1 IN4007" }); - CreateNode("Resistor68K", 240, 475, "", 100, 50, new ShapeAnnotation() { Content = "R1 6.8K" }); - CreateNode("LAMP12V", 660, 425, "", 100, 50, new ShapeAnnotation() { Content = "12V LAMP" }); - CreateNode("SPST_SWITCH", 670, 250, "", 100, 50, new ShapeAnnotation() { Content = "SPST SWITCH" }); - CreateNode("LAMP50V", 430, 450, "", 100, 50, new ShapeAnnotation() { Content = "50V LAMP" }); - CreateNode("DiodeIN4001", 450, 325, "", 100, 50, new ShapeAnnotation() { Content = "D1 IN4001" }); - - //create connectors - DiagramConnectors = new DiagramObjectCollection(); - - CreateConnector(new DiagramPoint() { X = 110, Y = 110 }, new DiagramPoint() { X = 600, Y = 110}); - CreateConnector(new DiagramPoint() { X = 110, Y = 110 }, new DiagramPoint() { X = 110, Y = 585}); - CreateConnector(new DiagramPoint() { X = 600, Y = 110 }, new DiagramPoint() { X = 600, Y = 212.5}); - CreateConnector(new DiagramPoint() { X = 110, Y = 585 }, new DiagramPoint() { X = 600, Y = 585}); - CreateConnector(new DiagramPoint() { X = 110, Y = 350 }, new DiagramPoint() { X = 800, Y = 350}); - CreateConnector(new DiagramPoint() { X = 202, Y = 175 }, new DiagramPoint() { X = 802, Y = 175}); - CreateConnector(new DiagramPoint() { X = 800, Y = 175 }, new DiagramPoint() { X = 800, Y = 350}); - CreateConnector(new DiagramPoint() { X = 200, Y = 110 }, new DiagramPoint() { X = 200, Y = 175}); - CreateConnector(new DiagramPoint() { X = 200, Y = 175 }, new DiagramPoint() { X = 200, Y = 250}); - CreateConnector(new DiagramPoint() { X = 300, Y = 110 }, new DiagramPoint() { X = 300, Y = 585}); - CreateConnector(new DiagramPoint() { X = 525, Y = 110 }, new DiagramPoint() { X = 525, Y = 585}); - CreateConnector(new DiagramPoint() { X = 200, Y = 300 }, new DiagramPoint() { X = 199.5, Y = 438}); - CreateConnector(new DiagramPoint() { X = 199.5, Y = 510 }, new DiagramPoint() { X = 199.5, Y = 585}); - CreateConnector(new DiagramPoint() { X = 300, Y = 275.25 }, new DiagramPoint() { X = 325, Y = 275.25}); - CreateConnector(new DiagramPoint() { X = 373, Y = 275.25 }, new DiagramPoint() { X = 425, Y = 275.25}); - CreateConnector(new DiagramPoint() { X = 473, Y = 275.25 }, new DiagramPoint() { X = 525, Y = 275.25}); - CreateConnector(new DiagramPoint() { X = 375, Y = 350 }, new DiagramPoint() { X = 375, Y = 405}); - CreateConnector(new DiagramPoint() { X = 375, Y = 453 }, new DiagramPoint() { X = 375, Y = 605}); - CreateConnector(new DiagramPoint() { X = 375, Y = 525 }, new DiagramPoint() { X = 599, Y = 525}); - CreateConnector(new DiagramPoint() { X = 600, Y = 286 }, new DiagramPoint() { X = 600, Y = 406}); - CreateConnector(new DiagramPoint() { X = 600, Y = 454 }, new DiagramPoint() { X = 600, Y = 585}); - } - - @*Hidden:Lines*@ - private void OnCreated() - { - SampleService.Spinner.Hide(); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - - } - @*End:Hidden*@ - - private void CreateNode(string id, double offsetX, double offsetY, string pathData, double width, double height, ShapeAnnotation annotation) - { - Node node = new Node() - { - ID = id, - OffsetX = offsetX, - OffsetY = offsetY, - Shape = new PathShape() { Type = NodeShapes.Path, Data = pathData }, - Height = height, - Width = width, - Style = new ShapeStyle() - { - Fill = "black", - StrokeColor = "black", - StrokeWidth = 0.25, - }, - }; - - if(annotation != null) - { - annotation.Style = new TextStyle() - { - FontFamily = "Segoe UI", - FontSize = 14, - }; - node.Annotations = new DiagramObjectCollection() { annotation }; - } - DiagramNodes.Add(node); - } - - private void CreateConnector(DiagramPoint sourcePoint, DiagramPoint targetPoint) - { - Connector connector = new Connector() - { - SourcePoint = sourcePoint, - TargetPoint = targetPoint, - Style = new ShapeStyle() - { - StrokeColor = "black", - StrokeWidth = 2, - }, - TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.None - }, - Type = ConnectorSegmentType.Straight - }; - DiagramConnectors.Add(connector); - } - - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ComplexHierarchicalTree.razor b/Common/Pages/DiagramComponent/DiagramComponent/ComplexHierarchicalTree.razor deleted file mode 100644 index 4b721575..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ComplexHierarchicalTree.razor +++ /dev/null @@ -1,455 +0,0 @@ -@page "/diagramcomponent/complexhierarchical" - -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using ButtonChangeArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable; - -

This sample demonstrates a complex hierarchical template built from an external data source using a complex hierarchical tree algorithm.

-
- -

In this example, you can see how to generate a complex hierarchical tree from external data sources. You can customize the spacing among the objects in the tree. You can use the HorizontalSpacing and VerticalSpacing properties of Layout to customize the space between the objects in the tree. You can use the Orientation property of Layout to change the orientation of the tree.

-

To change the orientation of the tree, you can also click the templates in the property panel.

-
- -@*End:Hidden*@ -
-
- - - - - - - - -
-
-@*Hidden:Lines*@ -
-
- Properties -
-
-
-
- Orientation -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Behaviour -
-
-
-
Horizontal Spacing
-
-
- - - -
-
-
-
-
Vertical Spacing
-
-
- - - -
-
-
-
-
Left Margin
-
-
- - - -
-
-
-
-
Top Margin
-
-
- - - -
-
-
- -
- -
-
- -
-
-@*End:Hidden*@ -@code -{ - private const string SelectedItemClass = "image-pattern-style e-selected-orientation-style"; - private const string UnselectedItemClass = "image-pattern-style"; - private const string SelectedPatternItemClass = "image-pattern-style e-selected-pattern-style"; - ScrollLimitMode ScrollLimit { get; set; } = ScrollLimitMode.Diagram; - private Orientation SubTreeOrientation { get; set; } = Orientation.Vertical; - private bool IsSamePoint { get; set; } = false; - private SubTreeAlignmentType subTreeAlignment { get; set; } = SubTreeAlignmentType.Right; - private int RowCount { get; set; } = 0; - private string SelectedPattern { get; set; } - private double ElementOffset { get; set; } = 20; - public Dictionary OrientationClassDictionary = new Dictionary() { - { "topToBottom", SelectedItemClass }, - { "bottomToTop", UnselectedItemClass }, - { "leftToRight", UnselectedItemClass }, - { "rightToLeft", UnselectedItemClass } - }; - - bool IsCheckBoxSelected { get; set; } = true; - public SfDiagramComponent Diagram; - public LayoutOrientation OrientationType = LayoutOrientation.TopToBottom; - public int? HorizontalValue { get; set; } = 40; - public int? VerticalValue { get; set; } = 40; - public int? MaginXValue { get; set; } = 22; - public int? MaginYValue { get; set; } = 22; - public LayoutType LayoutStyle = LayoutType.ComplexHierarchicalTree; - public HorizontalAlignment HorizontalAlignment = HorizontalAlignment.Left; - public VerticalAlignment VerticalAlignment = VerticalAlignment.Top; - public int HorizontalSpacing { get; set; } = 40; - public int VerticalSpacing { get; set; } = 40; - public double TopPosition { get; set; } = 50; - public double BottomPosition { get; set; } = 0; - public double RightPosition { get; set; } = 0; - public double LeftPosition { get; set; } = 10; - public int TopSpacingValue { get; set; } = 50; - public int LeftSpacingValue { get; set; } = 10; - - - // Defines default values for Node object - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Width = 40; node.Height = 40; - //Initialize shape - HierarchicalDetails hierarchicalDetails = node.Data as HierarchicalDetails; - node.Shape = new BasicShape() { Type =Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle, CornerRadius = 7 }; - node.Style = new ShapeStyle() { Fill = hierarchicalDetails.FilllColor, StrokeWidth = 1, StrokeColor = hierarchicalDetails.Border }; - } - // Defines default values for Connector object - private void OnConnectorCreating(IDiagramObject connector1) - { - Connector connector = (connector1 as Connector); - connector.Type = ConnectorSegmentType.Orthogonal; - connector.CornerRadius = 7; - connector.Style = new ShapeStyle() - { - StrokeColor= "#6d6d6d", - }; - connector.TargetDecorator.Height = 7; - connector.TargetDecorator.Width = 7; - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - public class HierarchicalDetails - { - public string Id { get; set; } - public string FilllColor { get; set; } - public string Border { get; set; } - public string Label { get; set; } - public List ReportingPerson { get; set; } - } - //DataSource Items. - public List DataSource = new List() -{ - new HierarchicalDetails() { Id= "node11", Label = "StackPanel",FilllColor="#e7704c", Border="#c15433" }, - new HierarchicalDetails() { Id= "node12", Label= "StackPanel1", ReportingPerson = new List(){ "node114" },FilllColor="#efd46e", Border="#d6b123" }, - new HierarchicalDetails() { Id= "node13", Label= "StackPanel2",ReportingPerson = new List(){ "node12" },FilllColor="#58b087", Border="#16955e" }, - new HierarchicalDetails() { Id= "node14", Label= "StackPanel3",ReportingPerson = new List(){ "node12"},FilllColor="#58b087", Border="#16955e" }, - new HierarchicalDetails() { Id= "node15", Label= "StackPanel4", ReportingPerson = new List(){ "node12" },FilllColor="#58b087", Border="#16955e" }, - new HierarchicalDetails() { Id= "node116", Label= "StackPanel16",ReportingPerson = new List(){ "node22", "node12"},FilllColor="#58b087", Border="#16955e" }, - new HierarchicalDetails() { Id= "node17", Label= "StackPanel6",ReportingPerson = new List(){ "node13", "node14", "node15"},FilllColor="#659be5", Border="#3a6eb5"}, - new HierarchicalDetails() { Id= "node19", Label= "StackPanel8",ReportingPerson = new List(){"node16", "node17", "node18" },FilllColor="#8dbe6c", Border="#489911"}, - new HierarchicalDetails() { Id= "node110", Label= "StackPanel9", ReportingPerson = new List(){ "node16", "node17", "node18" },FilllColor="#8dbe6c", Border="#489911" }, - new HierarchicalDetails() { Id= "node111", Label= "StackPanel10",ReportingPerson = new List(){"node16", "node17", "node18","node116" },FilllColor="#8dbe6c", Border="#489911"}, - new HierarchicalDetails() { Id= "node21", Label= "StackPanel11" ,FilllColor="#e7704c", Border="#c15433"}, - new HierarchicalDetails() { Id= "node22", Label= "StackPanel12",ReportingPerson = new List(){"node114" },FilllColor="#efd46e", Border="#d6b123"}, - new HierarchicalDetails() { Id= "node23", Label= "StackPanel13", ReportingPerson = new List(){ "node22" } ,FilllColor="#58b087", Border="#16955e"}, - new HierarchicalDetails() { Id= "node24", Label= "StackPanel14",ReportingPerson = new List(){ "node22" },FilllColor="#58b087", Border="#16955e" }, - new HierarchicalDetails() { Id= "node25", Label= "StackPanel15",ReportingPerson = new List(){"node22" },FilllColor="#58b087", Border="#16955e"}, - new HierarchicalDetails() { Id= "node27", Label= "StackPanel17",ReportingPerson = new List(){"node23", "node24", "node25" },FilllColor="#659be5", Border="#3a6eb5"}, - new HierarchicalDetails() { Id= "node29", Label= "StackPanel19",ReportingPerson = new List(){ "node26", "node27", "node28", "node116" } ,FilllColor="#8dbe6c", Border="#489911" }, - new HierarchicalDetails() { Id= "node210", Label= "StackPanel20",ReportingPerson = new List(){"node26", "node27", "node28"} ,FilllColor="#8dbe6c", Border="#489911"}, - new HierarchicalDetails() { Id= "node211", Label= "StackPanel21",ReportingPerson = new List(){ "node26", "node27", "node28" } ,FilllColor="#8dbe6c", Border="#489911" }, - new HierarchicalDetails() { Id= "node31", Label= "StackPanel22" ,FilllColor="#e7704c", Border="#c15433"}, - new HierarchicalDetails() { Id= "node114", Label= "StackPanel23", ReportingPerson = new List(){ "node11", "node21", "node31" } ,FilllColor="#f3904a", Border="#d3722e" }, - - }; - private TreeInfo GetLayoutInfo(IDiagramObject obj, TreeInfo options) - { - if (RowCount == 0) - { - if (RowCount == 0 && options.Rows != null) - options.Rows = null; - Node node = obj as Node; - if (SelectedPattern == "LeftOrientationVertical50" || SelectedPattern == "RightOrientationVertical50") - { - options.Offset = -50; - } - - if (!options.HasSubTree) - { - options.AlignmentType = subTreeAlignment; - options.Orientation = SubTreeOrientation; - options.AlignmentType = subTreeAlignment; - } - } - else - { - if (!options.HasSubTree) - { - options.AlignmentType = subTreeAlignment; - options.Orientation = SubTreeOrientation; - options.Offset = ElementOffset; - } - } - return options; - } - - public void LeftToRight() - { - OrientationType = LayoutOrientation.LeftToRight; - } - - public class ImageFields - { - public string Text { get; set; } - } - - private void HSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - HorizontalValue = (int)args.Value; - HorizontalSpacing = int.Parse(args.Value.ToString()); - - } - private void VSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - VerticalValue = (int)args.Value; - VerticalSpacing = int.Parse(args.Value.ToString()); - } - private void MarginLeftChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - LeftSpacingValue = (int)args.Value; - LeftPosition = (double)args.Value; - } - private void MarginTopChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - TopSpacingValue = (int)args.Value; - TopPosition = (double)args.Value; ; - } - private void ToptoBottomClick() - { - OrientationType = LayoutOrientation.TopToBottom; - UpdateSelection("topToBottom"); - } - private void LefttoRightClick() - { - OrientationType = LayoutOrientation.LeftToRight; - UpdateSelection("leftToRight"); - } - private void RighttoLeftClick() - { - OrientationType = LayoutOrientation.RightToLeft; - UpdateSelection("rightToLeft"); - } - private void BottomtoTopClick() - { - OrientationType = LayoutOrientation.BottomToTop; - UpdateSelection("bottomToTop"); - } - - private void LinearChange(ButtonChangeArgs args) - { - IsCheckBoxSelected = args.Checked; - if (IsCheckBoxSelected) - { - IsSamePoint = false; - } - else - { - IsSamePoint = true; - } - } - // Method is used to apply the selection to the prroperty panel. - private void UpdateSelection(string id) - { - for (int i = 0; i < OrientationClassDictionary.Count; i++) - { - var value = OrientationClassDictionary.Values.ElementAt(i); - var key = OrientationClassDictionary.Keys.ElementAt(i); - if (OrientationClassDictionary.ContainsKey(id) && key == id) - { - value = SelectedPatternItemClass; - } - else - { - value = UnselectedItemClass; - } - OrientationClassDictionary.Remove(key); - OrientationClassDictionary.Add(key, value); - } - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (OrientationClassDictionary != null) - { - OrientationClassDictionary.Clear(); - OrientationClassDictionary = null; - } - Diagram = null; - SelectedPattern = null; - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ConnectorSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/ConnectorSample.razor deleted file mode 100644 index 8a6572c6..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ConnectorSample.razor +++ /dev/null @@ -1,991 +0,0 @@ -@page "/diagramcomponent/connectors" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.DropDowns -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@using ButtonChangeArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs - -@*Hidden:Lines*@ - -

This sample illustrates the flow of data in a marketing process created using a Connector. Different types of connectors and decorators are used to customize the appearance, path, and direction of the data flow.

-
- -

In this example, you can see how to add connectors to connect shapes and customize their appearance. A collection of connectors is added to a diagram using the Connectors property of the SfDiagramComponent. You can use the Style property to customize its stroke style and the CornerRadius property to add rounded corners to connectors. The Shape property of SegmentThumbSettings customizes the appearance of the segment shape for both Orthogonal and Bezier connectors.

-

Click different styles in the properties panel to customize the appearance of the connector. The Lock option enables or disables connector editing.

-
-@*End:Hidden*@ - -
-
- - - - - - - - -
-
- -@*Hidden:Lines*@ -
- - -
- Properties -
-
- Apply To -
-
- - -
-
- -
-
Appearance
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Behavior -
-
- -
-
-
-
- Source Decorators -
-
- - - - -
-
-
-
- Target Decorators -
-
- - - - -
-
-
-
- Segment Shape -
-
- - - - -
-
- -
-@*End:Hidden*@ - -@code -{ - public DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - @*Hidden:Lines*@ - private string SelectedShapeOption { get; set; } = "All shapes"; - private string AllShapes { get; set; } = "All shapes"; - private string SelectedShapes { get; set; } = "Selected Shapes"; - bool IsChecked { get; set; } = false; - const string DefaultCssClass = "image-pattern-style"; - const string SelectedCssClass = "image-pattern-style e-selected-style"; - public int DiagramConnectorCount { get; set; } - public string SourceDecoratorShape { get; set; } = "None"; - public string SelectedTargetDecorator { get; set; } = "Arrow"; - public string SelectedConnectorType { get; set; } = "Bezier"; - public string ThumbShape { get; set; } = "Circle"; - public Dictionary CssClass { get; set; } - - @*End:Hidden*@ - SfDiagramComponent DiagramInstance { get; set; } - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - //Defines diagram's nodes collection - DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - - //Defines diagram's connectors collection - DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - @*Hidden:Lines*@ - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - @*Hidden:Lines*@ - List shape = new List() - { - new DiagramShapeModel() { Value = "Arrow", Text = "Arrow" }, - new DiagramShapeModel() { Value = "None", Text = "None" }, - new DiagramShapeModel() { Value = "OpenFletch", Text = "Open Fletch" }, - new DiagramShapeModel() { Value = "DimensionLine", Text = "Dimension Line" }, - new DiagramShapeModel() { Value = "ClosedSharp", Text = "Closed Sharp" }, - new DiagramShapeModel() { Value = "IndentedClosed", Text = "Indented Closed"}, - new DiagramShapeModel() { Value = "OutdentedClosed", Text = "Outdented Closed"}, - new DiagramShapeModel() { Value = "ClosedFlench", Text = "Closed Flench"}, - new DiagramShapeModel() { Value = "BackSlash", Text = "Back Slash"}, - new DiagramShapeModel() { Value = "Diamond", Text = "Diamond"}, - new DiagramShapeModel() { Value = "Ellipse", Text = "Ellipse"}, - new DiagramShapeModel() { Value = "Rectangle", Text = "Rectangle"}, - new DiagramShapeModel() { Value = "ClosedDouble", Text = "Closed Double"}, - }; - - List segmentShape = new List() - { - new DiagramShapeModel() { Value = "Arrow", Text = "Arrow" }, - new DiagramShapeModel() { Value = "Circle", Text = "Circle" }, - new DiagramShapeModel() { Value = "Diamond", Text = "Diamond" }, - new DiagramShapeModel() { Value = "DoubleArrow", Text = "DoubleArrow" }, - new DiagramShapeModel() { Value = "Fletch", Text = "Fletch" }, - new DiagramShapeModel() { Value = "IndentedArrow", Text = "IndentedArrow"}, - new DiagramShapeModel() { Value = "OpenArrow", Text = "OpenArrow"}, - new DiagramShapeModel() { Value = "OpenFetch", Text = "OpenFetch"}, - new DiagramShapeModel() { Value = "OutdentedArrow", Text = "OutdentedArrow"}, - new DiagramShapeModel() { Value = "Rhombus", Text = "Rhombus"}, - new DiagramShapeModel() { Value = "Square", Text = "Square"}, - new DiagramShapeModel() { Value = "Rectangle", Text = "Rectangle"}, - new DiagramShapeModel() { Value = "Ellipse", Text = "Ellipse"}, - }; - - //Method to update the source decorator style - private async Task OnSourceDecoratorChange(ChangeEventArgs args) - { - DiagramInstance.StartGroupAction(); - DiagramInstance.BeginUpdate(); - if (SelectedShapeOption == "All shapes") - { - for (int i = 0; i < DiagramInstance.Connectors.Count; i++) - { - this.UpdateSourceDecoratorShape(args, DiagramInstance.Connectors[i]); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector selectedConnector = DiagramInstance.SelectionSettings.Connectors[i] as Connector; - this.UpdateSourceDecoratorShape(args, selectedConnector); - } - }; - await DiagramInstance.EndUpdateAsync(); - DiagramInstance.EndGroupAction(); - } - - //Method to update the target decorator style - private async Task OnTargetDecoratorChange(ChangeEventArgs args) - { - DiagramInstance.StartGroupAction(); - DiagramInstance.BeginUpdate(); - if (SelectedShapeOption == "All shapes") - { - for (int i = 0; i < DiagramInstance.Connectors.Count; i++) - { - this.UpdateTargetDecoratorShape(args, DiagramInstance.Connectors[i]); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector selectedConnector = DiagramInstance.SelectionSettings.Connectors[i] as Connector; - this.UpdateTargetDecoratorShape(args, selectedConnector); - } - }; - await DiagramInstance.EndUpdateAsync(); - DiagramInstance.EndGroupAction(); - } - private void UpdateSourceDecoratorShape(ChangeEventArgs args, Connector connector) - { - switch (args.Value) - { - case "Arrow": - connector.SourceDecorator.Shape = DecoratorShape.Arrow; - break; - case "None": - connector.SourceDecorator.Shape = DecoratorShape.None; - break; - case "Diamond": - connector.SourceDecorator.Shape = DecoratorShape.Diamond; - break; - case "Ellipse": - connector.SourceDecorator.Shape = DecoratorShape.Circle; - break; - case "Rectangle": - connector.SourceDecorator.Shape = DecoratorShape.Square; - break; - case "OpenFletch": - connector.SourceDecorator.Shape = DecoratorShape.OpenFletch; - break; - case "DimensionLine": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M230.5,994.5L241.5,980.5"; - break; - case "ClosedSharp": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M360.5,228.5L371.5,234.5L360.5,240.5L360.5,228.5z"; - break; - case "IndentedClosed": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M374.5,284.5L361.5,290.5C363.548,286.723,363.548,282.277,361.5,278.5L374.5,284.5z"; - break; - case "OutdentedClosed": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M361.7583,333.5L373.4953,339.287L361.9823,345.5C360.0823,341.756,359.9993,337.311,361.7583,333.5z"; - break; - case "ClosedFlench": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M357.5,394.5C360.569,390.723,365.387,388.5,370.5,388.5C365.387,388.5,360.569,386.277,357.5,382.5C359.909,386.133,359.909,390.867,357.5,394.5z"; - break; - case "BackSlash": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M364.2808,602.5L351.3318,590.5"; - break; - case "ClosedDouble": - connector.SourceDecorator.Shape = DecoratorShape.Custom; - connector.SourceDecorator.PathData = "M10.5,0.5 L19.493982,4.9999999 10.5,9.4999999 z M0.5,0.5 L9.4939995,4.9999999 0.5,9.4999999 z"; - break; - } - } - private void UpdateTargetDecoratorShape(ChangeEventArgs args, Connector connector) - { - switch (args.Value) - { - case "Arrow": - connector.TargetDecorator.Shape = DecoratorShape.Arrow; - break; - case "None": - connector.TargetDecorator.Shape = DecoratorShape.None; - break; - case "Diamond": - connector.TargetDecorator.Shape = DecoratorShape.Diamond; - break; - case "Ellipse": - connector.TargetDecorator.Shape = DecoratorShape.Circle; - break; - case "Rectangle": - connector.TargetDecorator.Shape = DecoratorShape.Square; - break; - case "OpenFletch": - connector.TargetDecorator.Shape = DecoratorShape.OpenFletch; - break; - case "DimensionLine": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M230.5,994.5L241.5,980.5"; - break; - case "ClosedSharp": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M360.5,228.5L371.5,234.5L360.5,240.5L360.5,228.5z"; - break; - case "IndentedClosed": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M374.5,284.5L361.5,290.5C363.548,286.723,363.548,282.277,361.5,278.5L374.5,284.5z"; - break; - case "OutdentedClosed": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M361.7583,333.5L373.4953,339.287L361.9823,345.5C360.0823,341.756,359.9993,337.311,361.7583,333.5z"; - break; - case "ClosedFlench": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M357.5,394.5C360.569,390.723,365.387,388.5,370.5,388.5C365.387,388.5,360.569,386.277,357.5,382.5C359.909,386.133,359.909,390.867,357.5,394.5z"; - break; - case "BackSlash": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M364.2808,602.5L351.3318,590.5"; - break; - case "ClosedDouble": - connector.TargetDecorator.Shape = DecoratorShape.Custom; - connector.TargetDecorator.PathData = "M10.5,0.5 L19.493982,4.9999999 10.5,9.4999999 z M0.5,0.5 L9.4939995,4.9999999 0.5,9.4999999 z"; - break; - } - } - public class DiagramShapeModel - { - public string Value { get; set; } - public string Text { get; set; } - } - @*End:Hidden*@ - - protected override void OnInitialized() - { - - GridLineIntervals = new double[]{ 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - selectionSettings.Constraints = (SelectorConstraints.ConnectorSourceThumb | SelectorConstraints.ConnectorTargetThumb); - @*Hidden:Lines*@ - CssClass = new Dictionary() - { - { "Straight", DefaultCssClass }, - { "Orthogonal", DefaultCssClass }, - { "Bezier", DefaultCssClass }, - { "StraightWithStroke", DefaultCssClass }, - { "OrthogonalWithStroke", DefaultCssClass }, - { "BezierWithStroke", SelectedCssClass }, - { "StraightWithDashArray", DefaultCssClass }, - { "OrthogonalWithDashArray", DefaultCssClass }, - { "BezierWithDashArray", DefaultCssClass }, - { "CornerRadious", DefaultCssClass }, - { "SourceDecorator", DefaultCssClass }, - { "SourceDecoratorWithDashArray", DefaultCssClass }, - }; - @*End:Hidden*@ - - // Creating ports for node - var port1 = CreatePort("port1", 1, .25); - var port2 = CreatePort("port2", 1, .5); - var port3 = CreatePort("port3", 1, .75); - var ports1 = new DiagramObjectCollection() { port1, port2, port3 }; - var port4 = CreatePort("port4", 0, 0.46); - var port5 = CreatePort("port5", 0, 0.5); - var port6 = CreatePort("port6", 0, 0.54); - var ports6 = new DiagramObjectCollection() { port4, port5, port6 }; - var inPort = CreatePort("inPort", 0, 0.5); - var outPort = CreatePort("outPort", 1, 0.5); - var ports3 = new DiagramObjectCollection() { inPort, outPort }; - var ports4 = new DiagramObjectCollection() { inPort, outPort }; - var ports5 = new DiagramObjectCollection() { inPort, outPort }; - var ports2 = new DiagramObjectCollection() { inPort, outPort }; - - // Creating Node - Node stackNode = new Node(); - stackNode.ID = "stackNode"; - stackNode.OffsetX = 510; - stackNode.OffsetY = 302; - stackNode.Ports = new DiagramObjectCollection() { port4, port5, port6 }; - DiagramNodes.Add(stackNode); - - CreateNode("Promotion", 50, 302, "Promotion"); - CreateNode("Lead", 180, 302, "Lead", ports1); - CreateNode("Account", 340, 239, "Account", ports2); - CreateNode("Information", 340, 302, "Information", ports3); - CreateNode("Opportunity", 340, 364, "Opportunity", ports4); - - DiagramConnectors = new DiagramObjectCollection(); - // Creating Connector - CreateConnector("Promotion", "Lead", null, null); - CreateConnector("Lead", "Account", "port1", "inPort"); - CreateConnector("Lead", "Information", "port2", "inPort"); - CreateConnector("Lead", "Opportunity", "port3", "inPort"); - CreateConnector("stackNode", "Account", "port4", "outPort"); - CreateConnector("stackNode", "Information", "port5", "outPort"); - CreateConnector("stackNode", "Opportunity", "port6", "outPort"); - } - - // Method to update node style in common - private CommonElement SetNodeContent(IDiagramObject node) - { - Node templateNode = node as Node; - - if (templateNode.ID == "stackNode") - { - StackPanel column1 = CreateStackPanelNode("Events"); - StackPanel column2 = CreateStackPanelNode("Emails"); - StackPanel column3 = CreateStackPanelNode("Calls"); - StackPanel column4 = CreateStackPanelNode("Smart contents"); - - StackPanel table = new StackPanel(); - table.Style = new ShapeStyle() { Fill = "#e6e0eb", StrokeColor = "#6F409F", StrokeWidth = 2 }; - table.Orientation = Orientation.Vertical; - table.Children = new ObservableCollection() { column1, column2, column3, column4 }; - return table; - } - else - { - templateNode.Style = new ShapeStyle() { StrokeColor = "#6F409F", StrokeWidth = 2 }; - templateNode.Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Rectangle, CornerRadius = 10 }; - } - return null; - } - - // Method to create stackpanel node - private StackPanel CreateStackPanelNode(string text) - { - return new StackPanel() - { - Style = new ShapeStyle() { Fill = "#6F409F", StrokeColor = "#6F409F" }, - Margin = new DiagramThickness() { Bottom = 10, Left = 10, Right = 10, Top = 10 }, - Padding = new DiagramThickness() { Bottom = 10, Left = 10, Right = 10, Top = 10 }, - Children = new ObservableCollection() { GetTextElement(text) } - }; - } - - // Method to update text for stackpanel node - private TextElement GetTextElement(string text) - { - var textElement = new TextElement(); - textElement.Width = 60; - textElement.Height = 20; - textElement.Content = text; - textElement.Style = new TextStyle() { Color = "white" }; - return textElement; - } - - @*Hidden:Lines*@ - private void SelectionChanged(SelectionChangedEventArgs arg) - { - if (arg.NewValue != null && arg.NewValue.Count > 0) - { - if (arg.NewValue[0] is Connector) - { - Connector connector = null; - if (arg.NewValue[0] != null && arg.NewValue.Count > 0) - { - connector = arg.NewValue[0] as Connector; - } - if (connector != null) - { - if (connector.Constraints == (connector.Constraints | ConnectorConstraints.Default & ~(ConnectorConstraints.ReadOnly))) - { - IsChecked = false; - } - else - { - IsChecked = true; - } - - CssClass = new Dictionary() - { - { "Straight", DefaultCssClass }, - { "Orthogonal", DefaultCssClass }, - { "Bezier", DefaultCssClass }, - { "StraightWithStroke", DefaultCssClass }, - { "OrthogonalWithStroke", DefaultCssClass }, - { "BezierWithStroke", DefaultCssClass }, - { "StraightWithDashArray", DefaultCssClass }, - { "OrthogonalWithDashArray", DefaultCssClass }, - { "BezierWithDashArray", DefaultCssClass }, - { "CornerRadious", DefaultCssClass }, - { "SourceDecorator", DefaultCssClass }, - { "SourceDecoratorWithDashArray", DefaultCssClass }, - }; - - if (connector.Style.StrokeDashArray != "5,5" && connector.SourceDecorator.Shape == DecoratorShape.None) - { - if (connector.Type == ConnectorSegmentType.Straight && connector.Style.StrokeWidth == 1) - { - UpdateSelection("Straight"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal && connector.CornerRadius == 5) - { - UpdateSelection("CornerRadious"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal && connector.SourceDecorator.Shape == DecoratorShape.Circle && connector.Style.StrokeDashArray == "5,5") - { - UpdateSelection("SourceDecoratorWithDashArray"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal && connector.SourceDecorator.Shape == DecoratorShape.Circle) - { - UpdateSelection("SourceDecorator"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal && connector.Style.StrokeWidth == 1) - { - UpdateSelection("Orthogonal"); - } - else if (connector.Type == ConnectorSegmentType.Bezier && connector.Style.StrokeWidth == 1) - { - UpdateSelection("Bezier"); - } - else if (connector.Type == ConnectorSegmentType.Straight && connector.Style.StrokeWidth == 2) - { - UpdateSelection("StraightWithStroke"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal && connector.Style.StrokeWidth == 2) - { - UpdateSelection("OrthogonalWithStroke"); - } - else if (connector.Type == ConnectorSegmentType.Bezier && connector.Style.StrokeWidth == 2) - { - UpdateSelection("BezierWithStroke"); - } - } - if (connector.Style.StrokeDashArray == "5,5" && connector.SourceDecorator.Shape == DecoratorShape.None) - { - if (connector.Type == ConnectorSegmentType.Straight) - { - UpdateSelection("StraightWithDashArray"); - } - else if (connector.Type == ConnectorSegmentType.Orthogonal) - { - UpdateSelection("OrthogonalWithDashArray"); - } - else if (connector.Type == ConnectorSegmentType.Bezier) - { - UpdateSelection("BezierWithDashArray"); - } - } - - if (connector.SourceDecorator.Shape == DecoratorShape.Circle) - { - if (connector.Style.StrokeDashArray == "5,5") - { - UpdateSelection("SourceDecoratorWithDashArray"); - - } - else - { - UpdateSelection("SourceDecorator"); - } - } - ThumbShape = connector.SegmentThumbSettings.Shape.ToString(); - SourceDecoratorShape = connector.SourceDecorator.Shape.ToString(); - SelectedTargetDecorator = connector.TargetDecorator.Shape.ToString(); - if (SourceDecoratorShape == "Custom") - { - switch (connector.SourceDecorator.PathData) - { - case "M230.5,994.5L241.5,980.5" : - SourceDecoratorShape = "DimensionLine"; - break; - case "M360.5,228.5L371.5,234.5L360.5,240.5L360.5,228.5z": - SourceDecoratorShape = "ClosedSharp"; - break; - case "M374.5,284.5L361.5,290.5C363.548,286.723,363.548,282.277,361.5,278.5L374.5,284.5z" : - SourceDecoratorShape = "IndentedClosed"; - break; - case "M361.7583,333.5L373.4953,339.287L361.9823,345.5C360.0823,341.756,359.9993,337.311,361.7583,333.5z" : - SourceDecoratorShape = "OutdentedClosed"; - break; - case "M357.5,394.5C360.569,390.723,365.387,388.5,370.5,388.5C365.387,388.5,360.569,386.277,357.5,382.5C359.909,386.133,359.909,390.867,357.5,394.5z" : - SourceDecoratorShape = "ClosedFlench"; - break; - case "M364.2808,602.5L351.3318,590.5": - SourceDecoratorShape = "BackSlash"; - break; - case "M10.5,0.5 L19.493982,4.9999999 10.5,9.4999999 z M0.5,0.5 L9.4939995,4.9999999 0.5,9.4999999 z" : - SourceDecoratorShape = "ClosedDouble"; - break; - } - } - if (SelectedTargetDecorator == "Custom") - { - switch (connector.TargetDecorator.PathData) - { - case "M230.5,994.5L241.5,980.5": - SelectedTargetDecorator = "DimensionLine"; - break; - case "M360.5,228.5L371.5,234.5L360.5,240.5L360.5,228.5z": - SelectedTargetDecorator = "ClosedSharp"; - break; - case "M374.5,284.5L361.5,290.5C363.548,286.723,363.548,282.277,361.5,278.5L374.5,284.5z": - SelectedTargetDecorator = "IndentedClosed"; - break; - case "M361.7583,333.5L373.4953,339.287L361.9823,345.5C360.0823,341.756,359.9993,337.311,361.7583,333.5z": - SelectedTargetDecorator = "OutdentedClosed"; - break; - case "M357.5,394.5C360.569,390.723,365.387,388.5,370.5,388.5C365.387,388.5,360.569,386.277,357.5,382.5C359.909,386.133,359.909,390.867,357.5,394.5z": - SelectedTargetDecorator = "ClosedFlench"; - break; - case "M364.2808,602.5L351.3318,590.5": - SelectedTargetDecorator = "BackSlash"; - break; - case "M10.5,0.5 L19.493982,4.9999999 10.5,9.4999999 z M0.5,0.5 L9.4939995,4.9999999 0.5,9.4999999 z": - SelectedTargetDecorator = "ClosedDouble"; - break; - } - } - } - } - } - } - - private void UpdateSelection(string id) - { - for (int i = 0; i < CssClass.Count; i++) - { - var value = CssClass.Values.ElementAt(i); - var key = CssClass.Keys.ElementAt(i); - if (CssClass.ContainsKey(id) && key == id) - { - value = SelectedCssClass; - } - else - { - value = DefaultCssClass; - } - CssClass.Remove(key); - CssClass.Add(key, value); - } - } - - public void ChangeConnectorAppearance(string typeSelected) - { - CssClass = new Dictionary() - { - { "Straight", DefaultCssClass}, - { "Orthogonal", DefaultCssClass }, - { "Bezier", DefaultCssClass }, - { "StraightWithStroke", DefaultCssClass }, - { "OrthogonalWithStroke", DefaultCssClass }, - { "BezierWithStroke", DefaultCssClass }, - { "StraightWithDashArray", DefaultCssClass }, - { "OrthogonalWithDashArray", DefaultCssClass }, - { "BezierWithDashArray", DefaultCssClass }, - { "CornerRadious", DefaultCssClass }, - { "SourceDecorator", DefaultCssClass }, - { "SourceDecoratorWithDashArray", DefaultCssClass }, - }; - - switch (typeSelected) - { - case "Straight": - ApplyStyle(ConnectorSegmentType.Straight, 1); - break; - case "Orthogonal": - ApplyStyle(ConnectorSegmentType.Orthogonal, 1); - break; - case "Bezier": - ApplyStyle(ConnectorSegmentType.Bezier, 1); - break; - case "StraightWithStroke": - ApplyStyle(ConnectorSegmentType.Straight, 2); - break; - case "OrthogonalWithStroke": - ApplyStyle(ConnectorSegmentType.Orthogonal, 2); - break; - case "BezierWithStroke": - ApplyStyle(ConnectorSegmentType.Bezier, 2); - break; - case "StraightWithDashArray": - ApplyStyle(ConnectorSegmentType.Straight, 2, true); - break; - case "OrthogonalWithDashArray": - ApplyStyle(ConnectorSegmentType.Orthogonal, 2, true); - break; - case "BezierWithDashArray": - ApplyStyle(ConnectorSegmentType.Bezier, 2, true); - break; - case "CornerRadious": - ApplyStyle(ConnectorSegmentType.Orthogonal, 2, false, false, true); - break; - case "SourceDecorator": - ApplyStyle(ConnectorSegmentType.Straight, 2, false, true); - break; - case "SourceDecoratorWithDashArray": - ApplyStyle(ConnectorSegmentType.Straight, 2, true, true); - break; - } - - CssClass[SelectedConnectorType] = DefaultCssClass; - SelectedConnectorType = typeSelected; - CssClass[SelectedConnectorType] = SelectedCssClass; - } - - private void UpdateConnectorStyle(Connector connector, ConnectorSegmentType type, int strokeWidth, bool isDashedLine = false, bool hasSourceDecorator = false, bool isRounded = false) - { - if (hasSourceDecorator) - { - connector.SourceDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.Circle, - Style = new ShapeStyle() - { - StrokeColor = "#6f409f", - Fill = "#6f409f", - StrokeWidth = strokeWidth - } - }; - } - else - { - connector.SourceDecorator.Shape = DecoratorShape.None; - } - connector.Type = type; - connector.Style.StrokeWidth = strokeWidth; - connector.CornerRadius = isRounded ? 5 : 0; - connector.Style.StrokeDashArray = isDashedLine ? "5,5" : string.Empty; - connector.TargetDecorator.Style.StrokeWidth = strokeWidth; - } - - private void ApplyStyle(ConnectorSegmentType type, int strokeWidth, bool isDashedLine = false, bool hasSourceDecorator = false, bool isRounded = false) - { - if (SelectedShapeOption == "All shapes") - { - DiagramInstance.StartGroupAction(); - foreach (Connector connector in DiagramInstance.Connectors) - { - this.UpdateConnectorStyle(connector, type, strokeWidth, isDashedLine, hasSourceDecorator, isRounded); - } - DiagramInstance.EndGroupAction(); - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - DiagramInstance.StartGroupAction(); - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector selectedconnector = selectionSettings.Connectors[i] as Connector; - this.UpdateConnectorStyle(selectedconnector, type, strokeWidth, isDashedLine, hasSourceDecorator, isRounded); - } - DiagramInstance.EndGroupAction(); - }; - } - - private void UpdateConstraintsValue(Connector connector, ButtonChangeArgs args) - { - if (args.Checked) - { - connector.Constraints = (connector.Constraints & ~(ConnectorConstraints.DragSourceEnd - | ConnectorConstraints.DragTargetEnd | ConnectorConstraints.DragSegmentThumb | ConnectorConstraints.Drag)) | ConnectorConstraints.ReadOnly; - } - else - { - connector.Constraints = (connector.Constraints | ConnectorConstraints.Default | ConnectorConstraints.DragSegmentThumb) & ~(ConnectorConstraints.ReadOnly); - } - } - - public void ConstraintsChange(ButtonChangeArgs args) - { - IsChecked = args.Checked; - DiagramInstance.BeginUpdate(); - if (DiagramInstance.Connectors.Count > 0) - { - if (SelectedShapeOption == "All shapes") - { - for (int i = 0; i < DiagramInstance.Connectors.Count; i++) - { - this.UpdateConstraintsValue(DiagramInstance.Connectors[i], args); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector selectedConnector = DiagramInstance.SelectionSettings.Connectors[i] as Connector; - this.UpdateConstraintsValue(selectedConnector, args); - } - }; - _ = DiagramInstance.EndUpdateAsync(); - } - } - @*End:Hidden*@ - - // Method to update common style for connector - private void ConnectorCreating(IDiagramObject obj) - { - Connector connector = new Connector() - { - TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.Arrow, - Style = new ShapeStyle() { Fill = "#6f409f", StrokeColor = "#6f409f", StrokeWidth = 2 } - }, - Style = new ShapeStyle() { StrokeColor = "#6f409f", StrokeWidth = 2 }, - Type = ConnectorSegmentType.Bezier, - }; - } - - // Method to create port - private PointPort CreatePort(string id, double x, double y) - { - return new PointPort() - { - ID = id, - Offset = new DiagramPoint() { X = x, Y = y }, - Visibility = PortVisibility.Hidden - }; - } - - // Method to create node - private void CreateNode(string id, double x, double y, string label, object ports = null) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = 80, - Height = 35, - Annotations = new DiagramObjectCollection() { new ShapeAnnotation() { Content = label } }, - }; - if (ports != null) - { - diagramNode.Ports = ports as DiagramObjectCollection; - } - DiagramNodes.Add(diagramNode); - } - - // Method to create connector - private void CreateConnector(string sourceId, string targetId, string sourcePort, string targetPort) - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++DiagramConnectorCount), - SourceID = sourceId, - Style = new ShapeStyle() { StrokeColor = "#6f409f", StrokeWidth = 2 }, - TargetID = targetId, - SourcePortID = sourcePort, - TargetPortID = targetPort, - SourceDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.None, - Style = new ShapeStyle() { Fill = "#6f409f", StrokeColor = "#6f409f", StrokeWidth = 2 } - }, - TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.Arrow, - Style = new ShapeStyle() { Fill = "#6f409f", StrokeColor = "#6f409f", StrokeWidth = 2 } - }, - Type = ConnectorSegmentType.Bezier, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.DragSegmentThumb - }; - diagramConnector.BezierConnectorSettings.AllowSegmentsReset = false; - DiagramConnectors.Add(diagramConnector); - } - - private void OnSegmentShapeChange(ChangeEventArgs args) - { - DiagramInstance.BeginUpdate(); - if (SelectedShapeOption == "All shapes") - { - for (int i = 0; i < DiagramInstance.Connectors.Count; i++) - { - this.UpdateSegmentShape(DiagramInstance.Connectors[i], args.Value.ToString()); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - DiagramInstance.StartGroupAction(); - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - Connector selectedconnector = selectionSettings.Connectors[i] as Connector; - this.UpdateSegmentShape(selectedconnector, args.Value.ToString()); - } - DiagramInstance.EndGroupAction(); - } - _ = DiagramInstance.EndUpdateAsync(); - } - - private void UpdateSegmentShape(Connector connector, string shape) - { - connector.SegmentThumbSettings.Shape = Enum.Parse(shape, true); - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ConstraintsSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/ConstraintsSample.razor deleted file mode 100644 index a27a625c..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ConstraintsSample.razor +++ /dev/null @@ -1,609 +0,0 @@ -@page "/diagramcomponent/constraints" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates the flow of data in a marketing process created using a Connector. Different types of connectors and decorators are used to customize the appearance, path, and direction of the data flow.

-
- -

In this example, you can see how to add connectors to connect shapes and customize their appearance. A collection of connectors is added to a diagram using the Connectors property of the SfDiagramComponent. You can use the Style property to customize its stroke style and the CornerRadius property to add rounded corners to connectors. The Shape property of SegmentThumbSettings customizes the appearance of the segment shape for both Orthogonal and Bezier connectors.

-

Click different styles in the properties panel to customize the appearance of the connector. The Lock option enables or disables connector editing.

-
-@*End:Hidden*@ -@*Hidden:Lines*@ -
- - @*End:Hidden*@ -
- - - - - - - - - - - -
-
- - - - -
- @*Hidden:Lines*@ -
- -
-
- Diagram Constraints -
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
-
-@*End:Hidden*@ -@code{ - @*Hidden:Lines*@ - public string AppearanceClass { get; set; } = "e-remove-selection"; - public bool IsZoomEnabled { get; set; } = true; - public bool IsUndoEnabled { get; set; } = true; - public bool IsUndoRedoEnabled { get; set; } = false; - public bool ZoomValue { get; set; } = false; - public bool IsSelectable { get; set; } = true; - public bool IsDraggable { get; set; } = true; - public bool IsTextEditingEnabled { get; set; } = true; - @*End:Hidden*@ - //Defines sfdiagramComponent - public SfDiagramComponent DiagramInstance { get; set; } - - //Defines diagram constraints - public DiagramConstraints Constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - Constraints = DiagramConstraints.Default; - CreateNode("textnode", 390, NodeBasicShapes.Rectangle, "Node Constraints", "Node"); - CreateNode("connector", 390, NodeBasicShapes.Rectangle, "Connector Constraints", "Connector"); - CreateNode("select", 80, NodeBasicShapes.Rectangle, "Selection = False", "Selection"); - CreateNode("drag", 230, NodeBasicShapes.Ellipse, "Dragging = False", "Drag"); - CreateNode("delete", 380, NodeBasicShapes.Heptagon, "Delete = False", "Delete"); - CreateNode("rotate", 530, NodeBasicShapes.Cylinder, "Rotate = False", "Rotate"); - CreateNode("edit", 680, NodeBasicShapes.Plus, "TextEdit = False", "Edit"); - CreateNode("resize", 820, NodeBasicShapes.Diamond, "Resizing = False", "Resize"); - - CreateConnector(new DiagramPoint(80, 500), new DiagramPoint(140, 600), "Selection = False", "Selection", "selection"); - CreateConnector(new DiagramPoint(210, 500), new DiagramPoint(270, 600), "Dragging = True", "Drag", "dragging"); - CreateConnector(new DiagramPoint(360, 500), new DiagramPoint(420, 600), "Delete = False", "Delete", "deleting"); - CreateConnector(new DiagramPoint(510, 500), new DiagramPoint(570, 600), "DragTargetEnd = False", "DragTargetEnd", "targetend"); - CreateConnector(new DiagramPoint(660, 500), new DiagramPoint(720, 600), "DragSourceEnd = False", "DragSourceEnd", "sourceend"); - CreateConnector(new DiagramPoint(790, 500), new DiagramPoint(850, 600), "DragSegmentThumb = True", "SegmentThumb", "segmentthumb"); - } - @*Hidden:Lines*@ - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - DiagramInstance.FitToPage(mobileoptions); - } - } - //Enable or disable text edit constraints - private void TextEditChanged(ChangeEventArgs args) - { - for (var i = 0; i < DiagramInstance.Connectors.Count; i++) - { - var connector = DiagramInstance.Connectors[i]; - for (var j = 0; j < connector.Annotations.Count; j++) - { - PathAnnotation pathAnnotation = connector.Annotations[j]; - if (args.Checked == true) - { - IsTextEditingEnabled = true; - pathAnnotation.Constraints &= ~AnnotationConstraints.ReadOnly; - } - else - { - IsTextEditingEnabled = false; - pathAnnotation.Constraints = AnnotationConstraints.ReadOnly; - } - } - } - - for (var i = 0; i < DiagramInstance.Nodes.Count; i++) - { - var node = DiagramInstance.Nodes[i]; - for (var j = 0; j < node.Annotations.Count; j++) - { - ShapeAnnotation shapeAnnotation = node.Annotations[j]; - if (args.Checked == true) - { - if (node.ID == "edit") - { - shapeAnnotation.Constraints = AnnotationConstraints.ReadOnly; - } - else - { - IsTextEditingEnabled = true; - shapeAnnotation.Constraints &= ~AnnotationConstraints.ReadOnly; - } - } - else - { - IsTextEditingEnabled = false; - shapeAnnotation.Constraints = AnnotationConstraints.ReadOnly; - } - } - } - } - //Enable or disable Zoom constraints - private void ZoomChanged(ChangeEventArgs args) - { - if (args.Checked == true) - { - IsZoomEnabled = true; - ZoomValue = false; - Constraints |= DiagramConstraints.Zoom; - } - else - { - IsZoomEnabled = false; - ZoomValue = true; - Constraints &= ~DiagramConstraints.Zoom; - } - } - //Enable or disable undo/redo constraints - private void UndoChanged(ChangeEventArgs args) - { - if (args.Checked == true) - { - IsUndoEnabled = true; - IsUndoRedoEnabled = false; - Constraints |= DiagramConstraints.UndoRedo; - } - else - { - IsUndoEnabled = false; - IsUndoRedoEnabled = true; - Constraints &= ~DiagramConstraints.UndoRedo; - } - } - //Enable or disable select constraints - private void SelectChanged(ChangeEventArgs args) - { - for (var i = 0; i < DiagramInstance.Connectors.Count; i++) - { - var connector = DiagramInstance.Connectors[i]; - if (args.Checked == true) - { - if (connector.ID == "selection") - { - connector.Constraints &= ~ConnectorConstraints.Select; - } - else - { - IsSelectable = true; - connector.Constraints |= ConnectorConstraints.Select; - } - } - else - { - IsSelectable = false; - connector.Constraints &= ~ConnectorConstraints.Select; - } - } - - for (var i = 0; i < DiagramInstance.Nodes.Count; i++) - { - var node = DiagramInstance.Nodes[i]; - if (args.Checked == true) - { - if (node.ID == "select") - { - node.Constraints &= ~NodeConstraints.Select; - } - else - { - IsSelectable = true; - node.Constraints |= NodeConstraints.Select; - } - } - else - { - IsSelectable = false; - node.Constraints &= ~NodeConstraints.Select; - } - } - } - //Enable or disable drag constraints - private void DragChanged(ChangeEventArgs args) - { - for (var i = 0; i < DiagramInstance.Connectors.Count; i++) - { - var connector = DiagramInstance.Connectors[i]; - if (args.Checked == true) - { - if (connector.ID == "dragging") - { - connector.Constraints &= ~ConnectorConstraints.Drag; - } - else - { - IsDraggable = true; - connector.Constraints |= ConnectorConstraints.Drag; - } - } - else - { - IsDraggable = false; - connector.Constraints &= ~ConnectorConstraints.Drag; - } - } - - for (var i = 0; i < DiagramInstance.Nodes.Count; i++) - { - var node = DiagramInstance.Nodes[i]; - if (args.Checked == true) - { - IsDraggable = true; - if (node.ID == "drag") - { - node.Constraints &= ~NodeConstraints.Drag; - } - else - { - node.Constraints |= NodeConstraints.Drag; - } - } - else - { - IsDraggable = false; - node.Constraints &= ~NodeConstraints.Drag; - } - } - } - - //Create connector - private void CreateConnector(DiagramPoint point1, DiagramPoint point2, string annotation, string constraints, string id) - { - PathAnnotation pathAnnotation = new PathAnnotation() - { - Content = annotation, - Alignment = AnnotationAlignment.After, - Margin = new DiagramThickness { Left = 0, Top = 10, Right = 30, Bottom = 0 }, - }; - - Connector con = new Connector() - { - ID = id, - SourcePoint = point1, - TargetPoint = point2, - Type = ConnectorSegmentType.Orthogonal, - Style = new ShapeStyle() { StrokeColor = "#1587FF", StrokeWidth = 1 }, - Annotations = new DiagramObjectCollection() { pathAnnotation } - }; - switch (constraints) - { - case "Selection": - con.Constraints &= ~ConnectorConstraints.Select; - break; - case "Drag": - con.Constraints |= ConnectorConstraints.Drag; - break; - case "DragTargetEnd": - con.Constraints &= ~ConnectorConstraints.DragTargetEnd; - break; - case "DragSourceEnd": - con.Constraints &= ~ConnectorConstraints.DragSourceEnd; - break; - case "Delete": - con.Constraints &= ~ConnectorConstraints.Delete; - break; - case "SegmentThumb": - con.Constraints |= ConnectorConstraints.DragSegmentThumb; - break; - } - DiagramConnectors.Add(con); - } - //Create Node - private void CreateNode(string id, double offsetx, NodeBasicShapes shape, string annotation, string constraints) - { - bool textConnector = false; - bool textNode = false; - if (constraints.Equals("Connector")) - { - textConnector = true; - } - if (constraints.Equals("Node")) - { - textNode = true; - } - - ShapeStyle shapeStyle = new ShapeStyle() { Fill = "#C7E6FF", StrokeWidth = 1, StrokeColor = "#1587FF" }; - ShapeStyle nodeStyle = new ShapeStyle() { Fill = "Transparent", StrokeColor = "Transparent", StrokeWidth = 0 }; - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() - { - Content = annotation, - }; - - Node node = new Node() - { - OffsetX = offsetx, - ID = id, - OffsetY = textConnector ? 420 : textNode ? 80 : 210, - Height = textConnector ? 60 : textNode ? 60 : 100, - Width = textConnector ? 700 : textNode ? 700 : 100, - Style = textConnector ? nodeStyle : textNode ? nodeStyle : shapeStyle, - Shape = new BasicShape() { Shape = shape, Type = shapes.Basic }, - Annotations = new DiagramObjectCollection() { shapeAnnotation }, - }; - if (node.ID == "resize") - { - node.Width = 130; - } - TextStyle newStyle = node.Annotations[0].Style; - newStyle.Color = textConnector ? "#323232" : textNode ? "#323232" : "black"; - newStyle.Bold = textConnector ? true : textNode ? true : false; - newStyle.FontSize = textConnector ? 20 : textNode ? 20 : 12.0; - newStyle.FontFamily = textConnector ? "Segoe UI" : textNode ? "Segoe UI" : "Arial"; - node.Annotations[0].Height = textConnector ? 60 : textNode ? 60 : 12; - switch (constraints) - { - case "Selection": - case "Node": - case "Connector": - node.Constraints &= ~NodeConstraints.Select; - break; - case "Drag": - node.Constraints &= ~NodeConstraints.Drag; - break; - case "Resize": - node.Constraints &= ~NodeConstraints.Resize; - break; - case "Rotate": - node.ID = "Rotate"; - node.RotationAngle = 45; - node.Constraints &= ~NodeConstraints.Rotate; - break; - case "Delete": - node.Constraints &= ~NodeConstraints.Delete; - break; - case "Edit": - node.Annotations[0].Constraints = AnnotationConstraints.ReadOnly; - break; - } - DiagramNodes.Add(node); - } - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ - - public void OnUndoItemClick() - { - DiagramInstance.Undo(); - } - public void OnRedoItemClick() - { - DiagramInstance.Redo(); - } - public void OnZoomInItemClick() - { - DiagramInstance.Zoom(1.2, new DiagramPoint() { X = 100, Y = 100 }); - } - public void OnZoomOutItemClick() - { - DiagramInstance.Zoom(1/1.2, new DiagramPoint() { X = 100, Y = 100 }); - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ContainerSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/ContainerSample.razor deleted file mode 100644 index de6dd5cd..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ContainerSample.razor +++ /dev/null @@ -1,606 +0,0 @@ -@page "/diagramcomponent/container" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.DropDowns - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

- This sample demonstrates how to visualize the Azure Container Apps Environment using the built-in container shapes in Syncfusion Blazor Diagram. -

-
- -

- This sample illustrates how an Azure Container Apps Environment is structured, with various microservices and dependencies grouped within a container. The container is added to the diagram using the built-in container shapes in Syncfusion Blazor Diagram. Using the Children property of the container, nodes representing services such as ingestion, workflow, and delivery can be added inside it. Additionally, external dependencies like Azure Cosmos DB, Azure Monitor, and Azure Key Vault are linked to represent the complete system architecture. -

-
-@*End:Hidden*@ -@*Hidden:Lines*@ -
- - @*End:Hidden*@ - -
-
- - - - - - - - - - - - - -
-
- - - - - - -
-
- @*Hidden:Lines*@ -
-@*End:Hidden*@ -@*Hidden:Lines*@ - -@*End:Hidden*@ -@code -{ - @*Hidden:Lines*@ - private bool IsBold { get; set; } = false; - private bool IsItalic { get; set; } = false; - private bool IsUnderLine { get; set; } = false; - private bool IsFontfamilyEnabled { get; set; } = true; - private bool IsFontSize { get; set; } = true; - private bool IsColorPickerDisabled { get; set; } = false; - private int FontSizeValue { get; set; } = 0; - private string FillColor { get; set; } = "#c9c6ac"; - private string FontStyle { get; set; } = "Arial"; - private string styleValue { get; set; } = "background-color:#008000"; - private DecoratorSettings decoratorSettings = new DecoratorSettings() - { - Shape = DecoratorShape.Arrow, - Style = new ShapeStyle() - { - Fill = "#5E5E5E", - StrokeColor = "#5E5E5E", - StrokeWidth = 1 - } - }; - private string TextStyle { get; set; } = "background-color:#cccccc;color:black;width:40px"; - - @*End:Hidden*@ - - //Define sfdiagramComponent - private SfDiagramComponent DiagramInstance { get; set; } - - public DiagramConstraints Constraints { get; set; } = DiagramConstraints.Default | DiagramConstraints.Bridging; - - //Defines diagrams's nodes collection - public DiagramObjectCollection Nodes { get; set; } = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection Connectors { get; set; } = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - CreateNode("node1", 100, 300, 60, 100, "HTTP Traffic"); - CreateNode("node2", 300, 300, 60, 100, "Ingestion service"); - CreateNode("node3", 450, 300, 60, 100, "Workflow service"); - CreateNode("node4", 300, 415, 60, 100, "Package service"); - CreateNode("node5", 450, 415, 60, 150, "Drone Scheduler service"); - CreateNode("node6", 600, 415, 60, 100, "Delivery service"); - CreateNode("node7", 380, 130, 60, 90, "Azure Service Bus"); - CreateNode("node8", 615, 130, 60, 100, "Managed Identities"); - CreateNode("node9", 800, 130, 60, 100, "Azure Key Vault"); - CreateNode("node10", 300, 550, 60, 100, "Azure Cosmos DB for MongoDB API"); - CreateNode("node11", 450, 550, 60, 100, "Azure Cosmos DB"); - CreateNode("node12", 600, 550, 60, 100, "Azure Cache for Redis"); - CreateNode("node13", 840, 255, 60, 100, "Azure Application Insights"); - CreateNode("node14", 940, 350, 60, 100, "Azure Monitor"); - CreateNode("node15", 840, 445, 60, 100, "Azure Log Analytics workspace"); - Container container = new Container() - { - ID = "container", - Header = new ContainerHeader() - { - ID = "containerHeader", - Height = 40, - Annotation = new ShapeAnnotation() - { - ID = "label", - Style = new TextStyle() - { - FontSize = 18, - Bold = true, - }, - Content = "Azure Container Apps Environment" - }, - - Style = new TextStyle() - { - Fill = "Transparent", - StrokeColor = "Transparent", - }, - }, - Style = new ShapeStyle() - { - Fill = "#E9EEFF", - StrokeColor = "#2546BB", - StrokeWidth = 1, - }, - Height = 300, - Width = 520, - OffsetX = 460, - OffsetY = 350, - Children = new string[] { "node2", "node3", "node4", "node5", "node6" } - }; - - Nodes.Add(container); - CreateConnector("connector1", "node1", "node2"); - CreateConnector("connector2", "node4", "node10"); - CreateConnector("connector3", "node5", "node11"); - CreateConnector("connector4", "node6", "node12"); - CreateConnector("connector5", "node8", "node9"); - CreateConnector("connector6", "container", "node13"); - CreateConnector("connector7", "container", "node15"); - CreateConnector("connector8", "node3", "node4", Nodes[2].Ports[0].ID); - CreateConnector("connector9", "node3", "node5", Nodes[2].Ports[1].ID); - CreateConnector("connector10", "node3", "node6", Nodes[2].Ports[2].ID); - CreateConnector("connector11", "node2", "node7", "", Nodes[6].Ports[0].ID); - CreateConnector("connector12", "node7", "node3", Nodes[6].Ports[1].ID); - CreateConnector("connector13", "node13", "node14", Nodes[12].Ports[0].ID); - CreateConnector("connector14", "node15", "node14", Nodes[14].Ports[0].ID); - CreateConnector("connector16", "node8", "node5", Nodes[7].Ports[0].ID, Nodes[4].Ports[0].ID, decoratorSettings); - CreateConnector("connector17", "node8", "node6", Nodes[7].Ports[1].ID, Nodes[5].Ports[0].ID, decoratorSettings); - } - // DiagramInstance connector defaults - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Style = new ShapeStyle() { StrokeColor = "#5E5E5E", StrokeWidth = 1 }; - connector.Type = ConnectorSegmentType.Orthogonal; - if (connector.TargetDecorator != null) - connector.TargetDecorator.Style = new ShapeStyle() - { - Fill = "#5E5E5E", - StrokeColor = "#5E5E5E", - StrokeWidth = 1 - }; - } - private void OnCreated() - { - FitOptions options = new FitOptions() { Mode = FitMode.Width, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(options); - } - // Create connector - private void CreateConnector(string id, string node1, string node2, string sourcePortId = "", string targetPortId = "", DecoratorSettings sourceDecorator = null) - { - Connector connector = new Connector() - { - ID = id, - SourceID = node1, - TargetID = node2, - SourcePortID = sourcePortId, - TargetPortID = targetPortId - }; - if (sourceDecorator != null) - connector.SourceDecorator = sourceDecorator; - Connectors.Add(connector); - } - // Create node. - private void CreateNode(string id, int offsetx, int offsety, int height, int width, string content) - { - Node node = new Node() - { - ID = id, - Height = height, - Width = width, - OffsetX = offsetx, - OffsetY = offsety, - Shape = new BasicShape() { CornerRadius = 4 }, - Style = new ShapeStyle() - { - StrokeColor = "#2546BB", - Fill = "White", - }, - }; - if (id == "node5") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint(){X=0.9,Y=0}) - }; - } - if (id == "node6") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 0.9, Y = 0 }) - }; - } - - if (id == "node13") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 1, Y = 0.5 }) - }; - } - - if (id == "node15") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 1, Y = 0.5 }) - }; - } - - if (id == "node3") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 0.25, Y = 1 }), - CreatePort(new DiagramPoint() { X = 0.5, Y = 1 }), - CreatePort(new DiagramPoint() { X = 0.75, Y = 1 }), - }; - } - if (id == "node7") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 0, Y = 0.5 }), - CreatePort(new DiagramPoint() { X = 1, Y = 0.5 }) - }; - } - - if (id == "node8") - { - node.Ports = new DiagramObjectCollection() - { - CreatePort(new DiagramPoint() { X = 0.25, Y = 1 }), - CreatePort(new DiagramPoint() { X = 0.75, Y = 1 }) - }; - } - if (content != "") - { - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = content, - HorizontalAlignment = HorizontalAlignment.Center, - Style=new TextStyle(){Color="#343434"} - }, - }; - } - - Nodes.Add(node); - } - // Create ports for nodes - private PointPort CreatePort(DiagramPoint offset) - { - PointPort port = new PointPort() - { - Offset = offset, - Height = 10, - Width = 10, - Visibility = PortVisibility.Hidden, - Shape = PortShapes.Square - }; - return port; - } - //Update annotation bold property - private void FontBold() - { - UpdateAnnotation("bold", true); - - } - - //Update annotation italic property - private void FontItalic() - { - UpdateAnnotation("italic", true); - - } - - //Update annotation underline property - private void FontUnderLine() - { - UpdateAnnotation("underline", true); - - } - - //Update annotation fontfamily - private void FontChange(ChangeEventArgs args) - { - UpdateAnnotation("fontfamily", args.Value); - } - - //Update annotation fontsize value - private void FontSizeChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - FontSizeValue = int.Parse(args.Value.ToString()); - UpdateAnnotation("fontsize", FontSizeValue); - } - - //Update fill color for annotations - public void OnFillColorChange(ColorPickerEventArgs args) - { - styleValue = "background-color:" + args.CurrentValue.Hex; - UpdateAnnotation("fontcolor", args.CurrentValue.Hex); - - } - //Update annotation - private void UpdateAnnotation(string name, object value) - { - DiagramInstance.StartGroupAction(); - if (DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - var connector = DiagramInstance.SelectionSettings.Connectors[i]; - for (var j = 0; j < connector.Annotations.Count; j++) - { - TextStyle annotationStyle = connector.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - - } - } - } - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - var node = DiagramInstance.SelectionSettings.Nodes[i]; - if (node is Container container && container.Header != null) - { - UpdateAnnotationStyle(name, container.Header.Annotation.Style, value); - } - else - UpdateNodeAnnotationStyles(node, name, value); - } - } - DiagramInstance.EndGroupAction(); - } - - private void UpdateNodeAnnotationStyles(Node node, string name, object value) - { - for (var j = 0; j < node.Annotations.Count; j++) - { - TextStyle annotationStyle = node.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - } - } - //Update annotation style - private void UpdateAnnotationStyle(string option, TextStyle textStyle, object value) - { - switch (option) - { - case "fontsize": - textStyle.FontSize = Double.Parse(value.ToString()); - break; - case "underline": - textStyle.TextDecoration = textStyle.TextDecoration == TextDecoration.Underline ? TextDecoration.None : TextDecoration.Underline; - break; - case "fontfamily": - textStyle.FontFamily = value.ToString(); - break; - case "bold": - if (textStyle.Bold) - textStyle.Bold = false; - else - textStyle.Bold = true; - break; - case "italic": - if (textStyle.Italic) - textStyle.Italic = false; - else - textStyle.Italic = true; - break; - case "fontcolor": - textStyle.Color = value.ToString(); - break; - - } - } - @*Hidden:Lines*@ - public class FontFamily - { - public string Name { get; set; } - } - - private List FontFamilyLists = new List() - { - new FontFamily() { Name = "Arial" }, - new FontFamily() { Name = "Aharoni" }, - new FontFamily() { Name = "Bell MT" }, - new FontFamily() { Name = "Fantasy" }, - new FontFamily() { Name = "Times New Roman" }, - new FontFamily() { Name = "Segoe UI" }, - new FontFamily() { Name = "Verdana" }, - }; - - public class TextWrapping - { - public string Name { get; set; } - } - - private List TextWrappingList = new List() - { - new TextWrapping() { Name = "NoWrap" }, - new TextWrapping() { Name = "Wrap" }, - new TextWrapping() { Name = "WrapWithOverflow" }, - }; - - public class TextOverFlow - { - public string Name { get; set; } - } - - private List TextOverFlowList = new List() - { - new TextOverFlow() { Name = "Ellipsis" }, - new TextOverFlow() { Name = "Wrap" }, - new TextOverFlow() { Name = "Clip" }, - }; - - public void Dispose() - { - if (Nodes != null) - { - Nodes.Clear(); - Nodes = null; - } - - if (Connectors != null) - { - Connectors.Clear(); - Connectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/DiagramWithTreeView.razor b/Common/Pages/DiagramComponent/DiagramComponent/DiagramWithTreeView.razor deleted file mode 100644 index 1940ecfe..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/DiagramWithTreeView.razor +++ /dev/null @@ -1,719 +0,0 @@ -@page "/diagramcomponent/diagramwithtreeview" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent - -

This sample illustrates how to create a tree view and diagram with a data source. This sample provides support for selecting, adding, deleting, expanding, collapsing, and editing the annotations of the nodes during runtime. These actions will replicate in the corresponding nodes of the TreeView component.

-
- -

- In Diagram, the Selection operation is achieved with the Select method. In TreeView, it is achieved with the selectedNodes property. When a node is added or removed in Diagram during runtime, the AddedNodes or RemoveNodes methods will also add or remove the relevant nodes in the TreeView component. The ExpandAllAsync() and CollapseAllAsync() functions will expand or collapse the necessary nodes in the TreeView component whenever a node in the corresponding Diagram is expanded or collapsed during runtime. -

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ -
- Add Node - Delete Node -
- @{ - if (!isMobileDevice) - { -
- Diagram Binding With TreeView -
- } - } -
-
-
-
- - @*End:Hidden*@ -
- @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ -
-
- - - - -
-
-
- - - - - - - - -
-
- -
-
-
-@*Hidden:Lines*@ - -@*End:Hidden*@ - -@code -{ - private string[] SelectedNodes { get; set; } - private SfTreeView TreeViewComponentInstance { get; set; } - public SfDiagramComponent DiagramInstance { get; set; } - public double LayoutMarginTop { get; set; } = 50; - public double LayoutMarginBottom { get; set; } = 50; - public double LayoutMarginRight { get; set; } = 50; - public double LayoutMarginLeft { get; set; } = 50; - public bool IsAddEnabled { get; set; } = true; - public bool IsDeleteEnabled { get; set; } = true; - //Defines diagram constraints - public DiagramConstraints Constraints { get; set; } = DiagramConstraints.Default & ~DiagramConstraints.UndoRedo; - public NodeBase selectedElement; - public LayoutType DiagramLayoutType { get; set; } = LayoutType.OrganizationalChart; - public LayoutOrientation LayoutOrientation { get; set; } = LayoutOrientation.TopToBottom; - public HorizontalAlignment LayoutHorizontalAlignment { get; set; } = HorizontalAlignment.Auto; - public VerticalAlignment LayoutVerticalAlignment { get; set; } = VerticalAlignment.Auto; - public int HorizontalSpacing { get; set; } = 30; - public int VerticalSpacing { get; set; } = 30; - private string FixedNode { get; set; } = null; - int id = 18; - private List array = new List(); - private String[] Emptystring { get; set; } - int text = 8; - public void OnKeyPressHandler(NodeKeyPressEventArgs args) - { - if(args.Key == "Delete") - { - DeleteNode(); - } - selectedElement = null; - StateHasChanged(); - } - private void OnKeyDown(KeyEventArgs args) - { - if(args.Key == "Delete") - { - DeleteNode(); - } - selectedElement = null; - StateHasChanged(); - } - private async void DeleteNode() - { - if (selectedElement is Node) - { - array.Clear(); - var node = selectedElement as Node; - HierarchicalDetails deletenodes = node.Data as HierarchicalDetails; - DataSource.Remove(deletenodes); - await DiagramInstance.RefreshDataSourceAsync(); - int? id=0; - bool isParent = false; - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (deletenodes.Id == treeviewnodes[i].Id.ToString()) - { - id = treeviewnodes[i].ParentId; - array.Add(treeviewnodes[i].Id.ToString()); - treeviewnodes.Remove(treeviewnodes[i]); - } - } - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (id == treeviewnodes[i].ParentId) - { - isParent = true; - } - } - if (!isParent) - { - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (id!=null&&id == treeviewnodes[i].Id) - { - treeviewnodes[i].HasChild = false; - } - } - } - Emptystring = array.ToArray(); - TreeViewComponentInstance.RemoveNodes(Emptystring); - } - } - private async Task Add() - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - - Node node = DiagramInstance.SelectionSettings.Nodes[0]; - HierarchicalDetails nodes = node.Data as HierarchicalDetails; - DataSource.Add(new HierarchicalDetails() { Id = id.ToString(), Role = "Craft Personnel" + text, Manager = nodes.Id, }); - await DiagramInstance.RefreshDataSourceAsync(); - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (DiagramInstance.Nodes[i].Annotations[0].Content == "Craft Personnel" + text) - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[i] }); - - } - } - for (int i = 0; i < treeviewnodes.Count; i++) - { - - if (nodes.Id == treeviewnodes[i].Id.ToString()) - { - List album = new List(); - TreeItem Addednode = new TreeItem(); - Addednode.Id = id; - Addednode.Name = "Craft Personnel" + text; - Addednode.ParentId = treeviewnodes[i].Id; - album.Add(Addednode); - TreeViewComponentInstance.AddNodes(album); - treeviewnodes.Add(Addednode); - SelectedNodes = null; - - } - if (nodes.Id == treeviewnodes[i].Id.ToString()) - { - treeviewnodes[i].HasChild = true; - treeviewnodes[i].Expanded = true; - array.Add(treeviewnodes[i].Id.ToString()); - Emptystring = array.ToArray(); - await TreeViewComponentInstance.ExpandAllAsync(Emptystring); - } - - } - for (int j = 0; j < DiagramInstance.Nodes.Count; j++) - { - if (treeviewnodes[j].Name == "Craft Personnel" + text) - { - SelectedNodes = new string[] { treeviewnodes[j].Id.ToString() }; - } - } - } - id++; - text++; - StateHasChanged(); - } - private async Task NodeEditing(NodeEditEventArgs args) - { - array.Clear(); - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (args.OldText == DiagramInstance.Nodes[i].Annotations[0].Content) - { - DiagramInstance.Nodes[i].Annotations[0].Content = args.NewText; - array.Add(args.NodeData.Id.ToString()); - HierarchicalDetails nodes = DiagramInstance.Nodes[i].Data as HierarchicalDetails; - nodes.Role = args.NewText; - Emptystring = array.ToArray(); - await TreeViewComponentInstance.ExpandAllAsync(Emptystring); - break; - } - } - args.NodeData.Text = args.NewText; - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (args.NodeData.Text == DiagramInstance.Nodes[i].Annotations[0].Content) - { - DiagramInstance.Nodes[i].IsExpanded = true; - break; - - } - } - } - private void textchange(TextChangeEventArgs args) - { - - if (args.Element is Node) - { - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (args.OldValue == treeviewnodes[i].Name) - { - treeviewnodes[i].Name = args.NewValue; - } - } - } - if (args.Element is Node) - { - var node = args.Element as Node; - HierarchicalDetails nodes = node.Data as HierarchicalDetails; - nodes.Role = args.NewValue; - } - } - private async void Delete() - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - array.Clear(); - var node = DiagramInstance.SelectionSettings.Nodes[0]; - HierarchicalDetails deletenodes = node.Data as HierarchicalDetails; - if (deletenodes.Id != "1") - { - DataSource.Remove(deletenodes); - await DiagramInstance.RefreshDataSourceAsync(); - int? id = 0; - bool isParent = false; - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (deletenodes.Id == treeviewnodes[i].Id.ToString()) - { - id = treeviewnodes[i].ParentId; - array.Add(treeviewnodes[i].Id.ToString()); - treeviewnodes.Remove(treeviewnodes[i]); - } - } - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (id == treeviewnodes[i].ParentId) - { - isParent = true; - } - } - if (!isParent) - { - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (id != null && id == treeviewnodes[i].Id) - { - treeviewnodes[i].HasChild = false; - } - } - } - Emptystring = array.ToArray(); - TreeViewComponentInstance.RemoveNodes(Emptystring); - } - } - StateHasChanged(); - } - private void SelectionChanged(SelectionChangedEventArgs args) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0 || DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - IsAddEnabled = false; - IsDeleteEnabled = false; - } - else - { - IsAddEnabled = true; - IsDeleteEnabled = true; - } - } - - public void NodeCollapse(NodeExpandEventArgs args) - { - - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (args.NodeData.Id == DiagramInstance.Nodes[i].ID) - { - DiagramInstance.Nodes[i].IsExpanded = false; - break; - } - } - } - public void NodeExpand(NodeExpandEventArgs args) - { - - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (args.NodeData.Text == DiagramInstance.Nodes[i].Annotations[0].Content && args.Name == "NodeExpanding") - { - DiagramInstance.Nodes[i].IsExpanded = true; - break; - } - } - } - // Triggers when TreeView node is clicked - public void nodeClicked(NodeClickEventArgs args) - { - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - if (args.NodeData.Id == DiagramInstance.Nodes[i].ID) - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[i] }); - } - } - - } - private async Task OnClick(Syncfusion.Blazor.Diagram.ClickEventArgs args) - { - selectedElement = (args.Element != null)? args.Element as NodeBase : null; - TreeItem tree = new TreeItem(); - array.Clear(); - if (args.Element is Node) - { - for (int i = 0; i < treeviewnodes.Count; i++) - { - if (treeviewnodes[i].Id.ToString() == (args.Element as Node).ID) - { - if ((args.Element as Node).IsExpanded == true) - { - array.Add(treeviewnodes[i].Id.ToString()); - Emptystring = array.ToArray(); - if (treeviewnodes[i].HasChild == false) - { - break; - } - else - { - await TreeViewComponentInstance.ExpandAllAsync(Emptystring); - break; - } - } - else - { - array.Add(treeviewnodes[i].Id.ToString()); - Emptystring = array.ToArray(); - await TreeViewComponentInstance.CollapseAllAsync(Emptystring); - break; - } - } - } - SelectedNodes = null; - if (args.ActualObject is Node) - { - for (int i = 0; i < treeviewnodes.Count; i++) - { - - if (treeviewnodes[i].IsSelected == true) - { - treeviewnodes[i].IsSelected = false; - } - if (treeviewnodes[i].Id.ToString() == (args.ActualObject as Node).ID) - { - SelectedNodes = new string[] { treeviewnodes[i].Id.ToString() }; - } - } - } - StateHasChanged(); - } - } - public class HierarchicalDetails - { - public string Id { get; set; } - public string Role { get; set; } - public string Manager { get; set; } - - } - public List DataSource = new List() - { - new HierarchicalDetails() { Id= "1", Role= "Plant Manager" }, - new HierarchicalDetails() { Id= "2", Role= "Production Manager", Manager= "1", }, - new HierarchicalDetails() { Id= "3", Role= "Administrative Officer", Manager= "1" }, - new HierarchicalDetails() { Id= "4", Role= "Maintenance Manager", Manager= "1" }, - new HierarchicalDetails() { Id= "5", Role= "Control Room", Manager= "2" }, - new HierarchicalDetails() { Id= "6", Role= "Foreman1", Manager= "5" }, - new HierarchicalDetails() { Id= "7", Role= "Craft Personnel5", Manager= "6" }, - new HierarchicalDetails() { Id= "8", Role= "Craft Personnel6", Manager= "6" }, - new HierarchicalDetails() { Id= "9", Role= "Plant Operator", Manager= "2" }, - new HierarchicalDetails() { Id= "10", Role= "Foreman2", Manager= "9" }, - new HierarchicalDetails() { Id= "11", Role= "Craft Personnel7", Manager= "10" }, - new HierarchicalDetails() { Id= "12", Role= "Electrical Supervisor", Manager= "4" }, - new HierarchicalDetails() { Id= "13", Role= "Craft Personnel1", Manager= "12" }, - new HierarchicalDetails() { Id= "14", Role= "Craft Personnel2", Manager= "12" }, - new HierarchicalDetails() { Id= "15", Role= "Mechanical Supervisor", Manager= "4" }, - new HierarchicalDetails() { Id= "16", Role= "Craft Personnel3", Manager= "15" }, - new HierarchicalDetails() { Id= "17", Role= "Craft Personnel4", Manager= "15" }, - }; - - private void NodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - HierarchicalDetails hierarchicalData = node.Data as HierarchicalDetails; - node.ID = hierarchicalData.Id; - node.Width = 135; - node.Height = 40; - node.Style.Fill = "CornflowerBlue"; - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = hierarchicalData.Role, - Style =new TextStyle(){Color = "white"} - } - }; - node.ExpandIcon = new DiagramExpandIcon() - { - Shape = DiagramExpandIcons.Minus, - Height = 15, - Width = 15, - CornerRadius = 10 - }; - node.CollapseIcon = new DiagramCollapseIcon() - { - Shape = DiagramCollapseIcons.Plus, - Height = 15, - Width = 15, - CornerRadius = 10 - }; - } - private void ConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Orthogonal; - (connector as Connector).TargetDecorator.Shape = DecoratorShape.Arrow; - (connector as Connector).TargetDecorator.Style.Fill = (connector as Connector).Style.Fill = (connector as Connector).Style.StrokeColor = (connector as Connector).TargetDecorator.Style.StrokeColor = "CornflowerBlue"; - } - // Specifies the DataSource value for TreeView component. - List treeviewnodes = new List(); - - protected override void OnInitialized() - { - - - base.OnInitialized(); - treeviewnodes.Add(new TreeItem - { - Id = 1, - Name = "Plant Manager", - HasChild = true, - Expanded = true, - - }); - treeviewnodes.Add(new TreeItem - { - Id = 2, - ParentId = 1, - Name = "Production Manager", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 3, - ParentId = 1, - Name = "Administrative Officer", - - }); - treeviewnodes.Add(new TreeItem - { - Id = 4, - ParentId = 1, - Name = "Maintenance Manager", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 5, - ParentId = 2, - HasChild = true, - Name = "Control Room", - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 6, - ParentId = 5, - Name = "Foreman1", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 7, - Name = "Craft Personnel5", - ParentId = 6, - }); - treeviewnodes.Add(new TreeItem - { - Id = 8, - ParentId = 6, - Name = "Craft Personnel6" - }); - treeviewnodes.Add(new TreeItem - { - Id = 9, - ParentId = 2, - Name = "Plant Operator", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 10, - ParentId = 9, - Name = "Foreman2", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 11, - ParentId = 10, - Name = "Craft Personnel7" - }); - treeviewnodes.Add(new TreeItem - { - Id = 12, - ParentId = 4, - Name = "Electrical Supervisor", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 13, - ParentId = 12, - Name = "Craft Personnel1" - }); - treeviewnodes.Add(new TreeItem - { - Id = 14, - - ParentId = 12, - Name = "Craft Personnel2", - - - }); - treeviewnodes.Add(new TreeItem - { - Id = 15, - ParentId = 4, - Name = "Mechanical Supervisor", - HasChild = true, - Expanded = true - }); - treeviewnodes.Add(new TreeItem - { - Id = 16, - Name = "Craft Personnel3", - ParentId = 15, - }); - treeviewnodes.Add(new TreeItem - { - Id = 17, - Name = "Craft Personnel4", - ParentId = 15, - }); - - } - - class TreeItem - { - public int Id { get; set; } - public int? ParentId { get; set; } - public string Name { get; set; } - public bool Expanded { get; set; } - public bool? IsSelected { get; set; } - public bool HasChild { get; set; } - public string IconCss { get; set; } - } - bool isMobileDevice = false; - private void OnCreated() - { - if (SampleService.IsDevice) - { - isMobileDevice = SampleService.IsDevice; - StateHasChanged(); - } - } - [Inject] - protected IJSRuntime jsRuntime { get; set; } - private async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/DrawingToolSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/DrawingToolSample.razor deleted file mode 100644 index 38857666..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/DrawingToolSample.razor +++ /dev/null @@ -1,521 +0,0 @@ -@page "/diagramcomponent/drawingtool" -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using ButtonEventArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample demonstrates how to draw nodes and connectors interactively during runtime by clicking and dragging on the Diagram page using drawing tools.

-
- -

This example illustrates how to interactively draw shapes and connections. Rulers, gridlines, and snapping options are enabled to assist with drawing. The InteractionController property is used to enable drawing, with DrawOnce or ContinuousDraw options for drawing modes. The DrawingObject property defines the shape or connector to be drawn.

-

Templates for various shapes and connectors are available in the palette. Click on a template to start drawing basic shapes and connectors. With each left-click, a corner or point is added to reshape polygons, and the drawing completes with a right-click or double-click.

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ - - @*End:Hidden*@ -
- - - - - - - - - - @{ -
-
-
-
-
- Daniel Tonini -
-
- Project Lead -
- -
-
- - } -
-
-
-
-
-@*Hidden:Lines*@ -
-
- Properties -
-
-
-
- Shapes -
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
- -
-
-
- Connectors -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -
-
- -@*End:Hidden*@ -@code{ - @*Hidden:Lines*@ - public bool IsContinuousDrawing { get; set; } = true; - const string unselecteditem = "image-pattern-style"; - const string selectedItem = "image-pattern-style e-selected-style"; - public Dictionary dictionary = new Dictionary() { { "textnode", unselecteditem }, { "polyline", unselecteditem }, { "user", unselecteditem }, { "customnode", unselecteditem }, { "bezier", unselecteditem }, { "orthogonal", unselecteditem }, { "straight", unselecteditem }, { "star", unselecteditem }, { "ellipse", unselecteditem }, { "pentagon", unselecteditem }, { "hexagon", unselecteditem }, { "rectangle", selectedItem }, { "triangle", unselecteditem },{ "freehand", unselecteditem} }; - @*End:Hidden*@ - public DiagramInteractions DrawingTools = DiagramInteractions.ContinuousDraw; - - //Define drawing object - public IDiagramObject CurrentDrawingObject { get; set; } - - //Refer to diagram - public SfDiagramComponent DiagramInstance; - - //Defines diagram's nodes collection - public DiagramObjectCollection DiagramNodes = new DiagramObjectCollection(); - - //Defines diagram's connectors collection - public DiagramObjectCollection DiagramConnectors = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - - Node node = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Rectangle } - }; - CurrentDrawingObject = node; - } - @*Hidden:Lines*@ - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - DiagramInstance.FitToPage(mobileoptions); - } - } - private void UpdateDrawingTool(ButtonEventArgs args) - { - if (args.Checked) - { - DrawingTools |= DiagramInteractions.ContinuousDraw; - DrawingTools &= ~DiagramInteractions.DrawOnce; - for (int i = 0; i < dictionary.Count; i++) - { - if (dictionary.ElementAt(i).Value == selectedItem) - { - string id = dictionary.ElementAt(i).Key; - UpdateTools(id); - } - } - } - else - { - DrawingTools |= DiagramInteractions.DrawOnce; - DrawingTools &= ~DiagramInteractions.ContinuousDraw; - } - } - - private void UpdateSelection(string id) - { - for (int i = 0; i < dictionary.Count; i++) - { - var value = dictionary.Values.ElementAt(i); - var key = dictionary.Keys.ElementAt(i); - if (dictionary.ContainsKey(id) && key == id) - { - value = selectedItem; - } - else - { - value = unselecteditem; - } - dictionary.Remove(key); - dictionary.Add(key, value); - } - } - - private void UpdateTools(string id) - { - switch (id) - { - case "rectangle": - Node node = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Rectangle } - }; - CurrentDrawingObject = node; - break; - case "user": - Node imageNode = new Node() - { - Shape = new ImageShape() { Type = shapes.Image, Source = SampleService.WebAssetsPath + "/images/diagram/drawing-tool/image.png" } - }; - CurrentDrawingObject = imageNode; - break; - case "customnode": - Node customNode = new Node() - { - ID = "node", - Height = 200, - Width = 200, - Shape = new Shape() { Type = shapes.HTML }, - }; - CurrentDrawingObject = customNode; - break; - case "ellipse": - Node ellipseNode = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Ellipse } - }; - CurrentDrawingObject = ellipseNode; - break; - case "star": - Node starNode = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Star } - }; - CurrentDrawingObject = starNode; - break; - case "hexagon": - Node hexagonNode = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Hexagon } - }; - CurrentDrawingObject = hexagonNode; - break; - case "pentagon": - Node pentagonNode = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Pentagon } - }; - CurrentDrawingObject = pentagonNode; - break; - case "triangle": - Node triangleNode = new Node() - { - Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Triangle } - }; - CurrentDrawingObject = triangleNode; - break; - case "straight": - Connector straightConnector = new Connector() { ID = "straightConnector", SourcePoint = new DiagramPoint() { X = 100, Y = 10 }, TargetPoint = new DiagramPoint() { X = 200, Y = 100 }, Type = ConnectorSegmentType.Straight }; - CurrentDrawingObject = straightConnector; - break; - case "orthogonal": - Connector orthogonalConnector = new Connector() { ID = "orthogonalConnector", SourcePoint = new DiagramPoint() { X = 100, Y = 10 }, TargetPoint = new DiagramPoint() { X = 200, Y = 100 }, Type = ConnectorSegmentType.Orthogonal }; - CurrentDrawingObject = orthogonalConnector; - break; - case "bezier": - Connector bezierConnector = new Connector() { ID = "bezierConnector", SourcePoint = new DiagramPoint() { X = 100, Y = 10 }, TargetPoint = new DiagramPoint() { X = 200, Y = 100 }, Type = ConnectorSegmentType.Bezier }; - CurrentDrawingObject = bezierConnector; - break; - case "polyline": - Connector polylineConnector = new Connector() { ID = "polylineConnector", Type = ConnectorSegmentType.Polyline }; - CurrentDrawingObject = polylineConnector; - break; - case "freehand": - Connector freeHandConnector = new Connector() { ID = "freehandConnector", Type = ConnectorSegmentType.Freehand, Constraints = ConnectorConstraints.Default | ConnectorConstraints.DragSegmentThumb }; - CurrentDrawingObject = freeHandConnector; - break; - case "textnode": - Node textNode = new Node() - { - ID = "textnode", - Shape = new TextShape() { Type = shapes.Text } - }; - CurrentDrawingObject = textNode; - break; - } - UpdateSelection(id); - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Events.razor b/Common/Pages/DiagramComponent/DiagramComponent/Events.razor deleted file mode 100644 index 489c5c11..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Events.razor +++ /dev/null @@ -1,988 +0,0 @@ -@page "/diagramcomponent/events" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using ClickEventArgs = Syncfusion.Blazor.Diagram.ClickEventArgs -@using DragStartEventArgs = Syncfusion.Blazor.Diagram.DragStartEventArgs -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This Blazor Diagram example demonstrates the available events in the diagram component.

-
- -

Events are actions that trigger specific operations, and event arguments provide information about these actions. For instance, you might want to perform an operation when a user clicks on a node. This can be achieved using the Click event of the diagram. This example illustrates how to utilize various diagram events and handle their arguments effectively.

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ -
- -
- @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ - @*End:Hidden*@ -
- - -
-
- - - - - - - - -
- @*Hidden:Lines*@ -
-
-
-
-
-
Options
-
- - - - Log - -
-
- @{ - foreach (string eventDetails in EventValue) - { -

@eventDetails event is triggered.

-
- } - } -
-
- -
-
-
-
- - Events - -
- -
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
- @*End:Hidden*@ -
- -@code{ - - bool dropEvent = false; - bool dragStartEvent = false; - bool dragOverEvent = false; - bool selectionChangedEvent = true; - bool selectionChangingEvent = false; - bool positionChangedEvent = true; - bool positionChangingEvent = false; - bool sourcePointChangedEvent = false; - bool targetPointChangedEvent = false; - bool collectionChangedEvent = true; - bool collectionChangingEvent = false; - bool rotationChangedEvent = true; - bool rotationChangingEvent = false; - bool textChangedEvent = true; - bool clickEvent = false; - bool mouseEnterEvent = false; - bool mouseLeaveEvent = false; - bool mouseHoverEvent = false; - bool sizeChangedEvent = true; - bool sizeChangingEvent = false; - bool historyChangedEvent = true; - bool connectionChangedEvent = true; - bool connectionChangingEvent = false; - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 10, Right = 10, Top = 10, Bottom = 10 }; - public SfDiagramComponent DiagramInstance; - public SfSymbolPaletteComponent PaletteInstance; - @*Hidden:Lines*@ - private int SelectedTab { get; set; } = 0; - private bool ConnectorEvents { get; set; } = false; - private bool DiagramEvents { get; set; } = false; - private bool NodeEvents { get; set; } = false; - private bool PaletteEvents { get; set; } = false; - @*End:Hidden*@ - - List EventValue = new List(); - - //Defines Diagram's Nodes collection - private DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - - //Defines Diagram's Connectors collection - private DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - //Define palattes collection - private DiagramObjectCollection DiagramPalettes { get; set; } = new DiagramObjectCollection(); - - // Defines palette's basic-shape collection - private DiagramObjectCollection PalettesShapeSymbols { get; set; } = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection PalettesFlowShapes { get; set; } = new DiagramObjectCollection(); - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - // Defines palette's connector collection - private DiagramObjectCollection DiagramConnectorSymbols { get; set; } = new DiagramObjectCollection(); - [Inject] - protected IJSRuntime jsRuntime { get; set; } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - DiagramInstance - }; - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - InitPaletteModel(); - CreateDiagramNode("Diagramnode1", 145, 60, 200, 180, NodeFlowShapes.Process, "Lamp doesn't work" ); - CreateDiagramNode("Diagramnode2", 145, 70, 200, 290, NodeFlowShapes.Decision, "Lamp plugged in?" ); - CreateDiagramNode("Diagramnode3", 145, 70, 200, 400, NodeFlowShapes.Decision, "Bulb burned out?" ); - CreateDiagramNode("Diagramnode4", 145, 60, 200, 510, NodeFlowShapes.Process, "Buy new lamp" ); - CreateDiagramNode("Diagramnode5", 145, 60, 400, 290, NodeFlowShapes.Process, "plugged in lamp" ); - CreateDiagramNode("Diagramnode6", 145, 60, 400, 400, NodeFlowShapes.Process, "Replace bulb" ); - CreateDiagramConnector("Diagramconnector1", "Diagramnode1", "Diagramnode2", ConnectorSegmentType.Straight, ""); - CreateDiagramConnector("Diagramconnector2", "Diagramnode2", "Diagramnode3", ConnectorSegmentType.Straight, "Yes"); - CreateDiagramConnector("Diagramconnector3", "Diagramnode3", "Diagramnode4", ConnectorSegmentType.Straight, "No"); - CreateDiagramConnector("Diagramconnector4", "Diagramnode2", "Diagramnode5", ConnectorSegmentType.Straight, "No"); - CreateDiagramConnector("Diagramconnector5", "Diagramnode3", "Diagramnode6", ConnectorSegmentType.Straight, "Yes"); - } - - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - DiagramPalettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - - PalettesShapeSymbols = new DiagramObjectCollection(); - CreatePaletteNode(NodeBasicShapes.Rectangle, "Rectangle"); - CreatePaletteNode(NodeBasicShapes.Ellipse, "Ellipse"); - CreatePaletteNode(NodeBasicShapes.Triangle, "Triangle"); - CreatePaletteNode(NodeBasicShapes.Plus, "Plus"); - CreatePaletteNode(NodeBasicShapes.Star, "Star"); - CreatePaletteNode(NodeBasicShapes.Pentagon, "Pentagon"); - CreatePaletteNode(NodeBasicShapes.Hexagon, "Hexagon"); - CreatePaletteNode(NodeBasicShapes.Heptagon, "Heptagon"); - CreatePaletteNode(NodeBasicShapes.Octagon, "Octagon"); - CreatePaletteNode(NodeBasicShapes.Trapezoid, "Trapezoid"); - CreatePaletteNode(NodeBasicShapes.Decagon, "Decagon"); - CreatePaletteNode(NodeBasicShapes.RightTriangle, "RightTriangle"); - - // Palette which contains flow shape nodes - PalettesFlowShapes = new DiagramObjectCollection() - { - CreateFlowNode("Terminator",NodeFlowShapes.Terminator), - CreateFlowNode("Process",NodeFlowShapes.Process), - CreateFlowNode("Sort",NodeFlowShapes.Sort), - CreateFlowNode("Document",NodeFlowShapes.Document), - CreateFlowNode("Predefined Process",NodeFlowShapes.PreDefinedProcess), - CreateFlowNode("Punched Tape",NodeFlowShapes.PaperTap), - CreateFlowNode("Direct Data",NodeFlowShapes.DirectData), - CreateFlowNode("Sequential Data",NodeFlowShapes.SequentialData), - }; - - DiagramConnectorSymbols = new DiagramObjectCollection(); - CreatePaletteConnector("Orthogonal With Arrrow", ConnectorSegmentType.Orthogonal, DecoratorShape.Arrow); - CreatePaletteConnector("Orthogonal", ConnectorSegmentType.Orthogonal, DecoratorShape.None); - CreatePaletteConnector("Straight With Arrow", ConnectorSegmentType.Straight, DecoratorShape.Arrow); - CreatePaletteConnector("Straight", ConnectorSegmentType.Straight, DecoratorShape.None); - CreatePaletteConnector("Bezier", ConnectorSegmentType.Bezier, DecoratorShape.None); - - DiagramPalettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() {Symbols = PalettesShapeSymbols, Title = "Basic Shapes", ID = "Basic Shapes"}, - new Palette() {Symbols = PalettesFlowShapes, Title = "Flow Shapes", ID = "Flow Shapes"}, - new Palette() {Symbols = DiagramConnectorSymbols, Title = "Connectors", IsExpanded = true}, - #pragma warning restore BL0005 - }; - } - - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Style.Fill = "#357BD2"; - if (!(node.ID.StartsWith("Annotation"))) - node.Style.StrokeColor = "White"; - node.Style.Opacity = 1; - } - - // Method to create flow shape node - private Node CreateFlowNode(string id, NodeFlowShapes type) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node node = new Node() - { - ID = NodeID, - Shape = new FlowShape() - { - Type = shapes.Flow, - Shape = type - }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeWidth = 1, StrokeColor = "#757575" } - }; - if (isSpace) - { - node.Tooltip = new DiagramTooltip() - { - Content = id, - }; - node.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - return node; - } - - @*Hidden:Lines*@ - private void onChangeNodeEvents(Microsoft.AspNetCore.Components.ChangeEventArgs args) - { - if (NodeEvents) - { - sizeChangedEvent = true; - sizeChangingEvent = true; - rotationChangingEvent = true; - rotationChangedEvent = true; - } - else - { - sizeChangedEvent = false; - sizeChangingEvent = false; - rotationChangingEvent = false; - rotationChangedEvent = false; - } - } - - private void onChangeConnectorEvents(Microsoft.AspNetCore.Components.ChangeEventArgs args) - { - if (ConnectorEvents) - { - sourcePointChangedEvent = true; - targetPointChangedEvent = true; - connectionChangedEvent = true; - connectionChangingEvent = true; - } - else - { - sourcePointChangedEvent = false; - targetPointChangedEvent = false; - connectionChangedEvent = false; - connectionChangingEvent = false; - } - } - private void onChangeDiagramEvents(Microsoft.AspNetCore.Components.ChangeEventArgs args) - { - if (DiagramEvents) - { - selectionChangingEvent = true; - selectionChangedEvent = true; - positionChangingEvent = true; - positionChangedEvent = true; - collectionChangingEvent = true; - collectionChangedEvent = true; - clickEvent = true; - mouseEnterEvent = true; - mouseHoverEvent = true; - mouseLeaveEvent = true; - historyChangedEvent = true; - } - else - { - selectionChangingEvent = false; - selectionChangedEvent = false; - positionChangingEvent = false; - positionChangedEvent = false; - collectionChangingEvent = false; - collectionChangedEvent = false; - clickEvent = false; - mouseEnterEvent = false; - mouseHoverEvent = false; - mouseLeaveEvent = false; - historyChangedEvent = false; - } - } - - private void onChangePaletteEvents(Microsoft.AspNetCore.Components.ChangeEventArgs args) - { - if (PaletteEvents) - { - dropEvent = true; - dragStartEvent = true; - dragOverEvent = true; - } - else - { - dropEvent = false; - dragStartEvent = false; - dragOverEvent = false; - } - } - @*End:Hidden*@ - - private void OnDragDrop(DropEventArgs args) - { - if (dropEvent) - { - EventValue.Add("\n DragDrop"); - } - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector && connector.Tooltip != null) - { - connector.Tooltip = null; - connector.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - - private void OnDragStart(DragStartEventArgs args) - { - if (dragStartEvent) - { - EventValue.Add("\n DragStart"); - } - } - - private void OnDragging(DraggingEventArgs args) - { - if (dragOverEvent) - { - EventValue.Add("\n Dragging"); - } - } - - private void OnHistoryChanged(HistoryChangedEventArgs args) - { - if (historyChangedEvent) - { - EventValue.Add("\n HistoryChanged"); - } - } - - private void OnConnectionChanging(ConnectionChangingEventArgs args) - { - if (connectionChangingEvent) - { - EventValue.Add("\n ConnectionChanging"); - } - } - - private void OnConnectionChanged(ConnectionChangedEventArgs args) - { - if (connectionChangedEvent) - { - EventValue.Add("\n ConnectionChanged"); - } - } - - private void OnSelectionChanged(SelectionChangedEventArgs args) - { - if (selectionChangedEvent) - { - EventValue.Add("\n SelectionChanged"); - } - } - - private void OnSelectionChanging(SelectionChangingEventArgs args) - { - if (selectionChangingEvent) - { - EventValue.Add("\n SelectionChanging"); - } - } - - private void OnPositionChanged(PositionChangedEventArgs args) - { - if (positionChangedEvent) - { - EventValue.Add("\n PositionChanged"); - } - } - - private void OnPositionChanging(PositionChangingEventArgs args) - { - if (positionChangingEvent) - { - EventValue.Add("\n PositionChanging"); - } - } - - private void OnSourcePointChanged(EndPointChangedEventArgs args) - { - if (sourcePointChangedEvent) - { - EventValue.Add("\n SourcePointChanged"); - } - } - - private void OnTargetPointChanged(EndPointChangedEventArgs args) - { - if (targetPointChangedEvent) - { - EventValue.Add("\n TargetPointChanged"); - } - } - - private void OnCollectionChanged(CollectionChangedEventArgs args) - { - if (collectionChangedEvent) - { - EventValue.Add("\n CollectionChanged"); - } - } - - private void OnCollectionChanging(CollectionChangingEventArgs args) - { - if (collectionChangingEvent) - { - EventValue.Add("\n CollectionChanging"); - } - } - - private void OnRotationChanged(RotationChangedEventArgs args) - { - if (rotationChangedEvent) - { - EventValue.Add("\n RotationChanged"); - } - } - - private void OnRotationChanging(RotationChangingEventArgs args) - { - if (rotationChangingEvent) - { - EventValue.Add("\n RotationChanging"); - } - } - - private void OnTextChanged(TextChangeEventArgs args) - { - if (textChangedEvent) - { - EventValue.Add("\n TextChanged"); - } - } - - private void OnMouseEnter(DiagramElementMouseEventArgs args) - { - if (mouseEnterEvent) - { - EventValue.Add("\n MouseEnter"); - } - } - - private void OnMouseHover(DiagramElementMouseEventArgs args) - { - if (mouseHoverEvent) - { - EventValue.Add("\n MouseHover"); - } - } - - private void OnMouseLeave(DiagramElementMouseEventArgs args) - { - if (mouseLeaveEvent) - { - EventValue.Add("\n MouseLeave"); - } - } - - private void OnClick(ClickEventArgs args) - { - if (clickEvent) - { - EventValue.Add("\n Click"); - } - } - - private void OnSizeChanging(SizeChangingEventArgs args) - { - if (sizeChangingEvent) - { - EventValue.Add("\n SizeChanging"); - } - } - - private void OnSizeChanged(SizeChangedEventArgs args) - { - if (sizeChangedEvent) - { - EventValue.Add("\n SizeChanged"); - } - } - - private void OnConnectorCreating(IDiagramObject obj) - { - Connector node = obj as Connector; - node.Style.Fill = "#357BD2"; - node.Style.StrokeColor = "#357BD2"; - node.Style.Opacity = 1; - node.TargetDecorator.Style.Fill = "#357BD2"; - node.TargetDecorator.Style.StrokeColor = "#357BD2"; - } - - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeBasicShapes basicShape, string id) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new BasicShape() { Type = shapes.Basic, Shape = basicShape }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeColor = "#757575", StrokeWidth = 1 }, - }; - PalettesShapeSymbols.Add(diagramNode); - } - - @*Hidden:Lines*@ - private void OnClearEventTracker() - { - EventValue.Clear(); - } - @*End:Hidden*@ - - // Method is used to create a Connector for the palette. - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DecoratorShape decoratorShape) - { - - string connectorID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - connectorID = id.Replace(" ", ""); - } - Connector diagramConnector = new Connector() - { - ID = connectorID, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#357BD2" }, - TargetDecorator = new DecoratorSettings() - { - Shape = decoratorShape, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#357BD2", Fill = "#357BD2" } - } - }; - if (isSpace) - { - diagramConnector.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramConnector.Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip; - } - DiagramConnectorSymbols.Add(diagramConnector); - } - - // Method is used to create a node for the diagram. - private void CreateDiagramNode(string id, int width, int height, int x, int y, NodeFlowShapes flowShape, string content ) - { - Node diagramNode = new Node() - { - ID = id, - Width = width, - Height = height, - OffsetX = x, - OffsetY = y, - Shape = new FlowShape() { Type = shapes.Flow, Shape = flowShape }, - Annotations = new DiagramObjectCollection { new ShapeAnnotation { Content = content, Style = new TextStyle() { Color = "White", Fill = "transparent" } } } - }; - DiagramNodes.Add(diagramNode); - } - - // Method is used to create a connector for the diagram. - private void CreateDiagramConnector(string id, string source, string target, ConnectorSegmentType segmentType, string content ) - { - Connector diagramConnector = new Connector() - { - ID = id, - SourceID = source, - TargetID = target, - Type = segmentType, - Annotations = new DiagramObjectCollection { new PathAnnotation { Content = content } } - }; - DiagramConnectors.Add(diagramConnector); - } - public async void ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - - if (SymbolMargin != null) - { - SymbolMargin = null; - } - DiagramInstance = null; - PaletteInstance = null; - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - - #pragma warning disable BL0005 - if (DiagramPalettes != null) - { - for (int i = 0; i < DiagramPalettes.Count; i++) - { - DiagramPalettes[i].ID = null; - DiagramPalettes[i].Title = null; - DiagramPalettes[i].IconCss = null; - if (DiagramPalettes[i].Symbols != null) - { - for (int j = 0; j < DiagramPalettes[i].Symbols.Count; j++) - { - DiagramPalettes[i].Symbols[j] = null; - } - DiagramPalettes[i].Symbols.Clear(); - DiagramPalettes[i].Symbols = null; - } - } - DiagramPalettes.Clear(); - DiagramPalettes = null; - } - #pragma warning restore BL0005 - if (PalettesShapeSymbols != null) - { - PalettesShapeSymbols.Clear(); - PalettesShapeSymbols = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - if (DiagramConnectorSymbols != null) - { - DiagramConnectorSymbols.Clear(); - DiagramConnectorSymbols = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ExpandAndCollapse.razor b/Common/Pages/DiagramComponent/DiagramComponent/ExpandAndCollapse.razor deleted file mode 100644 index 833c520a..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ExpandAndCollapse.razor +++ /dev/null @@ -1,146 +0,0 @@ -@page "/diagramcomponent/expandcollapse" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This example demonstrates how to toggle the visibility of child nodes in a diagram by clicking the icon of the associated parent node.

-
- -

The Diagram component supports managing the state of nodes, such as whether they are expanded or collapsed. The IsExpanded property controls the expansion or collapse of child nodes. This feature helps condense the hierarchical view by displaying only root elements. The ExpandIcon and CollapseIcon properties visually indicate a node’s expanded or collapsed state.

-
-@*End:Hidden*@ - -
- - - - - - - -
- -@code { - public SfDiagramComponent DiagramInstance { get; set; } - -// Layout properties for the diagram - public double MarginTop { get; set; } = 50; - public double MarginBottom { get; set; } = 50; - public double MarginRight { get; set; } = 50; - public double MarginLeft { get; set; } = 50; - public LayoutType LayoutType { get; set; } = LayoutType.OrganizationalChart; - public LayoutOrientation LayoutOrientation { get; set; } = LayoutOrientation.TopToBottom; - public HorizontalAlignment HorizontalAlign { get; set; } = HorizontalAlignment.Auto; - public VerticalAlignment VerticalAlign { get; set; } = VerticalAlignment.Auto; - public int HorizontalSpacing { get; set; } = 30; - public int VerticalSpacing { get; set; } = 30; - public string FixedNode { get; set; } - -// Data source for hierarchical nodes - public List HierarchicalData { get; set; } = new List - { - new HierarchicalNode { Id = "1", Role = "Board", Color = "#71AF17" }, - new HierarchicalNode { Id = "2", Role = "General Manager", ManagerId = "1", ChartType = "right", Color = "#13ab11" }, - new HierarchicalNode { Id = "3", Role = "Human Resource\n Manager", ManagerId = "2", Color = "#1859B7" }, - new HierarchicalNode { Id = "4", Role = "Design Manager", ManagerId = "2", ChartType = "right", Color = "#1859B7" }, - new HierarchicalNode { Id = "5", Role = "Operations Manager", ManagerId = "2", Color = "#1859B7" }, - new HierarchicalNode { Id = "6", Role = "Marketing Manager", ManagerId = "2", Color = "#1859B7" }, - new HierarchicalNode { Id = "61", Role = "Trainers", ManagerId = "3", Color = "#2E95D8" }, - new HierarchicalNode { Id = "7", Role = "Recruiting Team", ManagerId = "3", ChartType = "right", Color = "#2E95D8" }, - new HierarchicalNode { Id = "8", Role = "Design Supervisor", ManagerId = "4", Color = "#2E95D8" }, - new HierarchicalNode { Id = "9", Role = "Development \nSupervisor", ManagerId = "4", Color = "#2E95D8" }, - new HierarchicalNode { Id = "10", Role = "Statistics Department", ManagerId = "5", Color = "#2E95D8" }, - new HierarchicalNode { Id = "11", Role = "Logistics Department", ManagerId = "5", ChartType = "right", Color = "#2E95D8" }, - new HierarchicalNode { Id = "12", Role = "Overseas Sales \nManager", ManagerId = "6", Color = "#2E95D8" }, - new HierarchicalNode { Id = "13", Role = "Service Department \nManager", ManagerId = "6", Color = "#2E95D8" } - }; - - private void OnNodeCreating(IDiagramObject obj) - { - if (obj is Node node) - { - InitializeNodeProperties(node); - } - } - - private void OnConnectorCreating(IDiagramObject connector) - { - if (connector is Connector connection) - { - connection.Type = ConnectorSegmentType.Orthogonal; - connection.TargetDecorator.Shape = DecoratorShape.None; - } - } - -// Initializes node properties based on hierarchical data - private void InitializeNodeProperties(Node node) - { - if (node.Data is System.Text.Json.JsonElement jsonData) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(jsonData.ToString()); - } - - if (node.Data is HierarchicalNode hierarchicalData) - { - node.Width = 150; - node.Height = 50; - node.Style.Fill = hierarchicalData.Color; - node.Annotations = CreateAnnotations(hierarchicalData.Role); - node.ExpandIcon = CreateExpandIcon(); - node.CollapseIcon = CreateCollapseIcon(); - } - } - -// Creates annotations for the node - private DiagramObjectCollection CreateAnnotations(string content) - { - return new DiagramObjectCollection - { - new ShapeAnnotation - { - Content = content, - Style = new TextStyle { Color = "white" } - } - }; - } - -// Configures the expand icon for nodes - private DiagramExpandIcon CreateExpandIcon() - { - return new DiagramExpandIcon - { - Shape = DiagramExpandIcons.Minus, - Height = 15, - Width = 15, - CornerRadius = 10 - }; - } - -// Configures the collapse icon for nodes - private DiagramCollapseIcon CreateCollapseIcon() - { - return new DiagramCollapseIcon - { - Shape = DiagramCollapseIcons.Plus, - Height = 15, - Width = 15, - CornerRadius = 10 - }; - } - -// Represents each hierarchical node with clear property names - public class HierarchicalNode - { - public string Id { get; set; } - public string Role { get; set; } - public string ManagerId { get; set; } - public string ChartType { get; set; } - public string Color { get; set; } - } - -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ExportSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/ExportSample.razor deleted file mode 100644 index 711c7c11..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ExportSample.razor +++ /dev/null @@ -1,474 +0,0 @@ -@page "/diagramcomponent/export" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.DropDowns; -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs; -@using Syncfusion.PdfExport; -@using System.IO; -@inject IJSRuntime JS; -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample demonstrates how to export a Diagram as an image.

-
- -

- This example shows how to export the Diagram in image formats (*.jpeg, *.png) and SVG format. Use the DiagramExportFormat property to specify the desired export format. The ExportAsync method enables exporting by accepting options such as file formats, export mode, and the region to export. The MultiplePage property allows multi-page export control, while the ClipBounds property in DiagramExportSettings defines the specific region to export. -

-
-@*End:Hidden*@ - -
-
- - - - - - -
- @*Hidden:Lines*@ - -
-
- Export Settings -
-
- -
-
- File Format -
-
- - - - -
-
-
-
- Export Mode -
-
- - - - -
-
-
-
- Multiple/Single Page -
-
-
- -
-
- -
-
-
-
- Clip -
-
- -
- X -
-
- - -
-
-
-
- Y -
-
- - -
-
-
-
- Width -
-
- - -
-
-
-
- Height -
-
- - -
-
-
-
- Export -
-
- @*End:Hidden*@ -
- -@code - { - @*Hidden:Lines*@ - private string SelectedFileFormat { get; set; } = "PNG"; - private bool IsClipBoundsEnabled { get; set; }=false; - private string SelectedExportMode { get; set; } = "PageSettings"; - private bool IsFileEnabled { get; set; } = true; - private string SelectedPageOption { get; set; } = "multiple"; - private string ClipX { get; set; } = "0"; - private string ClipY { get; set; } = "0"; - private string ClipWidth { get; set; } = "0"; - private string ClipHeight { get; set; } = "0"; - private double MarginLeft { get; set; } = 0; - private double MarginTop { get; set; } = 0; - private double MarginRight { get; set; } = 0; - private double MarginBottom { get; set; } = 0; - private DiagramExportFormat ExportFormat { get; set; } = DiagramExportFormat.PNG; - @*End:Hidden*@ - private double PageWidth { get; set; } = 410; - private double PageHeight { get; set; } = 550; - private bool IsMultiplePage { get; set; } = true; - private bool DisplayPageBreaks { get; set; } = true; - private DiagramPrintExportRegion PrintExportRegion { get; set; } = DiagramPrintExportRegion.PageSettings; - private PageOrientation orientation = PageOrientation.Portrait; - - //Refer to diagram - public SfDiagramComponent DiagramInstance { get; set; } - //Define node's collection - public DiagramObjectCollection DiagramNodes { get; set; } - //Define connector's collection - public DiagramObjectCollection DiagramConnectors { get; set; } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - DiagramInstance.FitToPage(mobileoptions); - - } - } - @*Hidden:Lines*@ - private void PageWidthvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - PageWidth = args.Value; - } - private void PageHeightvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - PageHeight = args.Value; - } - private void xvalueChanged(string value) - { - ClipX = value; - } - private void yvalueChanged(string value) - { - ClipY = value; - } - private void widthvalueChanged(string value) - { - ClipWidth = value; - } - private void heightvalueChanged(string value) - { - ClipHeight = value; - } - public void FileFormateChange(ChangeEventArgs args) - { - ExportFormat = args.Value.ToString() == "PNG" ? DiagramExportFormat.PNG : args.Value.ToString() == "JPEG" ? DiagramExportFormat.JPEG : args.Value.ToString() == "SVG" ? DiagramExportFormat.SVG : DiagramExportFormat.PNG; - } - public void ExportModeChange(ChangeEventArgs args) - { - PrintExportRegion = args.Value.ToString() == "PageSettings" ? DiagramPrintExportRegion.PageSettings : args.Value.ToString() == "Content" ? DiagramPrintExportRegion.Content : args.Value.ToString() == "ClipBounds" ? DiagramPrintExportRegion.ClipBounds : DiagramPrintExportRegion.PageSettings; - if (PrintExportRegion == DiagramPrintExportRegion.Content || PrintExportRegion == DiagramPrintExportRegion.PageSettings) - { - ClipWidth = "0"; - ClipHeight = "0"; - ClipY = "0"; - ClipX = "0"; - } - IsClipBoundsEnabled = PrintExportRegion.ToString() == "ClipBounds" ? true : false; - - } - public void ContentChange(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - PrintExportRegion = DiagramPrintExportRegion.Content; - } - private void OnMultiplePage(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - IsMultiplePage = true; - } - private void OnSinglePage(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - IsMultiplePage = false; - } - @*End:Hidden*@ - protected override void OnInitialized() - { - - - DiagramNodes = new DiagramObjectCollection(); - CreateNode("sourceNode1", 80, 160, "Source document"); - CreateNode("censusNode2", 80, 260, "Census \n record"); - CreateNode("booksNode3", 80, 375, "Books and magazine"); - CreateNode("recordNode4", 270, 260, "Record template"); - CreateNode("traditionalNode5", 270, 385, "Traditional template"); - CreateNode("nontraditionalNode6", 80, 485, "Non traditional"); - CreateNode("radial1", 610, 342, "Health fitness"); - CreateNode("radial2", 610, 202, "Diet"); - CreateNode("radial3", 750, 258, "Flexibility"); - CreateNode("radial4", 730, 442, "Muscular endurance"); - CreateNode("radial5", 470, 258, "Cardiovascular strength"); - CreateNode("radial6", 490, 442, "Muscular strength"); - - DiagramConnectors = new DiagramObjectCollection(); - CreateConnector("connector1", "sourceNode1", "censusNode2"); - CreateConnector("connector2", "censusNode2", "booksNode3"); - CreateConnector("connector3", "booksNode3", "nontraditionalNode6"); - CreateConnector("connector4", "censusNode2", "recordNode4"); - CreateConnector("connector5", "booksNode3", "traditionalNode5"); - CreateConnector("connector6", "radial1", "radial2"); - CreateConnector("connector7", "radial1", "radial3"); - CreateConnector("connector8", "radial1", "radial4"); - CreateConnector("connector9", "radial1", "radial5"); - CreateConnector("connector10", "radial1", "radial6"); - } - private void CreateNode(string id, double x, double y, string label) - { - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() { Content = label }; - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Height = 50, - Width = 100, - Style = new ShapeStyle() { Fill = "#90ee90", StrokeColor = "#666666" }, - Annotations = new DiagramObjectCollection() { shapeAnnotation } - }; - if (id == "radial1" || id == "radial2" || id == "radial3" || id == "radial4" || id == "radial5" || id == "radial6") - { - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse }; - diagramNode.Height = 75; - diagramNode.Width = 100; - diagramNode.Style = new ShapeStyle() { Fill = "#ffb6c1", StrokeColor = "#666666" }; - } - if (id == "radial1") - { - diagramNode.Height = 50; - diagramNode.Style = new ShapeStyle() { Fill = "#fffcc8", StrokeColor = "#666666" }; - } - if (id == "censusNode2" || id == "booksNode3") - { - diagramNode.Height = 75; - diagramNode.Width = 100; - diagramNode.Style = new ShapeStyle() { Fill = "#87ceeb", StrokeColor = "#666666" }; - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Diamond }; - } - if (id == "sourceNode1" || id == "censusNode2") - { - diagramNode.Annotations[0].Margin = new DiagramThickness() { Left = 15, Top = 15, Right = 15, Bottom = 15 }; - } - DiagramNodes.Add(diagramNode); - } - - private void CreateConnector(string id, string sourceID, string targetID) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceID, - TargetID = targetID, - Style = new ShapeStyle() { StrokeColor = "Black" }, - }; - DiagramConnectors.Add(connector); - } - @*Hidden:Lines*@ - public class FileFomatItem - { - public string Name { get; set; } - } - private List FileFomatLists = new List() { - new FileFomatItem() { Name ="PNG"}, - new FileFomatItem() { Name ="JPEG" }, - new FileFomatItem() { Name ="SVG"}, - new FileFomatItem() { Name ="PDF"}, - }; - public class ExportMode - { - public string Name { get; set; } - } - private List ExportModeLists = new List() { - new ExportMode() { Name ="PageSettings"}, - new ExportMode() { Name ="Content" }, - new ExportMode() { Name ="ClipBounds"}, - - }; - @*End:Hidden*@ - private async Task OnExport() - { - DiagramExportSettings print = new DiagramExportSettings(); - print.Region = PrintExportRegion; - print.PageWidth = PageWidth; - print.PageHeight = PageHeight; - print.Orientation = orientation; - print.FitToPage = !IsMultiplePage; - print.Margin = new DiagramThickness() { Left = MarginLeft, Top = MarginTop, Right = MarginRight, Bottom = MarginBottom }; - print.ClipBounds = new DiagramRect() { X = double.Parse(ClipX), Y = double.Parse(ClipY), Width = double.Parse(ClipWidth), Height = double.Parse(ClipHeight) }; - ExportFormat = SelectedFileFormat == "PNG" ? DiagramExportFormat.PNG : SelectedFileFormat == "JPEG" ? DiagramExportFormat.JPEG : SelectedFileFormat == "SVG" ? DiagramExportFormat.SVG : DiagramExportFormat.PNG; - if (SelectedFileFormat == "PDF") - { - await OnExportEntry(); - } - else - { - //To export the diagram - await DiagramInstance.ExportAsync("diagram", ExportFormat, print); - } - } - - private async Task OnExportEntry() - { - DiagramExportSettings print = new DiagramExportSettings(); - print.Region = PrintExportRegion; - print.PageWidth = PageWidth; - print.PageHeight = PageHeight; - print.Orientation = orientation; - print.FitToPage = !IsMultiplePage; - print.Margin = new DiagramThickness() { Left = MarginLeft, Top = MarginTop, Right = MarginRight, Bottom = MarginBottom }; - print.ClipBounds = new DiagramRect() { X = double.Parse(ClipX), Y = double.Parse(ClipY), Width = double.Parse(ClipWidth), Height = double.Parse(ClipHeight) }; - //To export the diagram into base64 - var images = await DiagramInstance.ExportAsync(ExportFormat, print); - var pdforientation = orientation == PageOrientation.Landscape ? PdfPageOrientation.Landscape : PdfPageOrientation.Portrait; - await ExportToPdf("diagram", pdforientation, true, images); - return images; - } - - private async Task ExportToPdf(string fileName, PdfPageOrientation orientation, bool allowDownload, string[] images) - { - PdfDocument document = new PdfDocument(); - document.PageSettings.Orientation = orientation; - document.PageSettings.Margins = new PdfMargins() { Left = 0, Right = 0, Top = 0, Bottom = 0 }; - string base64String; - var dict = images; - for (int i = 0; i < dict.Count(); i++) - { - base64String = dict[i]; - using (MemoryStream initialStream = new MemoryStream(Convert.FromBase64String(base64String.Split("base64,")[1]))) - { - Stream stream = initialStream as Stream; - PdfPage page = document.Pages.Add(); - PdfGraphics graphics = page.Graphics; - #pragma warning disable CA2000 - PdfBitmap image = new PdfBitmap(stream); - #pragma warning restore CA2000 - graphics.DrawImage(image, 0, 0); - } - } - using (MemoryStream memoryStream = new MemoryStream()) - { - document.Save(memoryStream); - memoryStream.Position = 0; - base64String = Convert.ToBase64String(memoryStream.ToArray()); - if (allowDownload) - { - await JSRuntimeExtensions.InvokeAsync(JS, "downloadPdf", new object[] { base64String, fileName }); - base64String = string.Empty; - } - else - { - base64String = "data:application/pdf;base64," + base64String; - } - document.Dispose(); - } - return base64String; - } - - - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/FileUtil.cs b/Common/Pages/DiagramComponent/DiagramComponent/FileUtil.cs deleted file mode 100644 index 75f6d952..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/FileUtil.cs +++ /dev/null @@ -1,45 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using Microsoft.JSInterop; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace BlazorDemos.Pages -{ - -#pragma warning disable CA1052 // Static holder types should be Static or NotInheritable - public class FileUtil -#pragma warning restore CA1052 // Static holder types should be Static or NotInheritable - { - public async static Task SaveAs(IJSRuntime js, string data, string fileName) - { - await js.InvokeAsync( - "saveDiagram", -#pragma warning disable CA1305 // Specify IFormatProvider - Convert.ToString(data), fileName).ConfigureAwait(true); -#pragma warning restore CA1305 // Specify IFormatProvider - } - public async static Task Click(IJSRuntime js) - { - await js.InvokeAsync( - "click").ConfigureAwait(true); - } - public async static Task LoadFile(IJSRuntime js, object data) - { - return await js.InvokeAsync( - "loadFile", data).ConfigureAwait(true); - } - - //public async static Task SetGradient(IJSRuntime js, int level) - //{ - // await js.InvokeAsync("setWaterLevel", level).ConfigureAwait(true); - //} - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/FishboneDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/FishboneDiagram.razor deleted file mode 100644 index 38179b1f..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/FishboneDiagram.razor +++ /dev/null @@ -1,235 +0,0 @@ -@page "/diagramcomponent/fishbone-diagram" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample demonstrates a basic fishbone (Ishikawa) diagram using Syncfusion Blazor Diagram. The diagram nodes and annotations are used to construct the fishbone structure.

-
- -

This sample demonstrates how to build a fishbone (Ishikawa) diagram with the Diagram component. Zoom and pan functionalities are enabled. You can control these interactions through the InteractionController property of the Diagram control. The diagram is displayed in read-only mode.

-
-@*End:Hidden*@ -
-
- - - -
-
- -@code{ - //Defines Diagram's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } - //Defines Diagram's connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } - @*Hidden:Lines*@ - - private NodeShapes BasicShape { get; set; } = NodeShapes.Basic; - private NodeShapes PathShape { get; set; } = NodeShapes.Path; - private string FishBonePath { get; set; } = "M0 50H140L160 25L140 0H0L20 25L0 50Z"; - private string TailPath { get; set; } = "M0 0H60L80 25L60 50H0V25V0Z"; - private string HeadPath { get; set; } = "M0 0H115.5L132 25L115.5 50H0V25V0Z"; - private SfDiagramComponent DiagramInstance { get; set; } - @*End:Hidden*@ - protected override void OnInitialized() - { - - DiagramNodes = new DiagramObjectCollection(); - DiagramObjectCollection Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID="port1", - Offset =new DiagramPoint(){X=1,Y=0.5}, - Visibility = PortVisibility.Hidden - } - }; - DiagramObjectCollection equipmentAnnotation = CreateAnnotations("Equipment", "white", "Segoe UI", 16, true); - DiagramObjectCollection environmentAnnotation = CreateAnnotations("Environment", "white", "Segoe UI", 16, true); - DiagramObjectCollection personAnnotation = CreateAnnotations("Person", "white", "Segoe UI", 16, true); - DiagramObjectCollection materialsAnnotation = CreateAnnotations("Materials", "white", "Segoe UI", 16, true); - DiagramObjectCollection machineAnnotation = CreateAnnotations("Machine", "white", "Segoe UI", 16, true); - DiagramObjectCollection methodAnnotation = CreateAnnotations("Method", "white", "Segoe UI", 16, true); - DiagramObjectCollection productivityAnnotation = CreateAnnotations("Productivity \n Increase", "white", "Segoe UI", 16, true); - DiagramObjectCollection textAnnotation = CreateAnnotations("Text Programs", "Black", "Roboto"); - DiagramObjectCollection ventilatorsAnnotation = CreateAnnotations("Ventilators Sound", "Black", "Roboto"); - DiagramObjectCollection educationAnnotation = CreateAnnotations("Education", "Black", "Roboto"); - DiagramObjectCollection dataBooksAnnotation = CreateAnnotations("DataBooks", "Black", "Roboto"); - DiagramObjectCollection fixturesAnnotation = CreateAnnotations("Fixtures", "Black", "Roboto"); - DiagramObjectCollection noiseAnnotation = CreateAnnotations("Noise", "Black", "Roboto"); - DiagramObjectCollection motivationAnnotation = CreateAnnotations("Motivation", "Black", "Roboto"); - DiagramObjectCollection tirednessAnnotation = CreateAnnotations("Tiredness", "Black", "Roboto"); - DiagramObjectCollection storerAnnotation = CreateAnnotations("Storer", "Black", "Roboto"); - DiagramObjectCollection computerAnnotation = CreateAnnotations("Computer", "Black", "Roboto"); - DiagramObjectCollection qualityAnnotation = CreateAnnotations("Quality of Element", "Black", "Roboto"); - DiagramObjectCollection orderAnnotation = CreateAnnotations("Order", "Black", "Roboto"); - DiagramObjectCollection softwareAnnotation = CreateAnnotations("Software", "Black", "Roboto"); - DiagramObjectCollection procurementAnnotation = CreateAnnotations("Procurement", "Black", "Roboto"); - DiagramObjectCollection standardizationAnnotation = CreateAnnotations("Standardization", "Black", "Segoe UI"); - CreateNode("Equipment", 250, 80, 160, 50, "#3941C4", "#3941C4", 1, PathShape, FishBonePath, equipmentAnnotation, Ports); - CreateNode("Environment", 506, 80, 160, 50, "#9F771E", "#9F771E", 1, PathShape, FishBonePath, environmentAnnotation, Ports); - CreateNode("Person", 762, 80, 160, 50, "#742D2A", "#742D2A", 1, PathShape, FishBonePath, personAnnotation, Ports); - CreateNode("Materials", 250, 560, 160, 50, "#299090", "#299090", 1, PathShape, FishBonePath, materialsAnnotation, Ports); - CreateNode("Machine", 506, 560, 160, 50, "#327FC7", "#327FC7", 1, PathShape, FishBonePath, machineAnnotation, Ports); - CreateNode("Methods", 762, 560, 160, 50, "#5F3890", "#5F3890", 1, PathShape, FishBonePath, methodAnnotation, Ports); - CreateNode("ellipse1", 359, 130, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse2", 387, 183, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse3", 416, 237, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse4", 614, 130, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse5", 641, 182, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse6", 870, 130, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse7", 896, 179, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse8", 917, 221, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse9", 940, 264, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse10", 392, 440, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse11", 874, 500, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse12", 905, 440, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse13", 618, 500, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse14", 649, 440, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("ellipse15", 360, 500, 9, 9, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("Colorellipse1", 968, 319, 15, 15, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("Colorellipse2", 712, 319, 15, 15, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("Colorellipse3", 456, 319, 15, 15, "#464646", "#464646", 1, BasicShape, "Ellipse"); - CreateNode("Colorellipse4", 100, 319, 80, 50, "#475B6B", "#475B6B", 1, PathShape, TailPath); - CreateNode("Colorellipse5", 1100, 319, 132, 50, "#475B6B", "#475B6B", 1, PathShape, HeadPath, productivityAnnotation); - CreateNode("TextPrograms", 260, 130, 80, 20, "transparent", "", 0, BasicShape, "", textAnnotation); - CreateNode("Ventilatorssound", 496, 130, 96, 20, "transparent", "", 0, BasicShape, "", ventilatorsAnnotation); - CreateNode("Education", 770, 130, 55, 20, "transparent", "", 0, BasicShape, "", educationAnnotation); - CreateNode("DataBooks", 289, 183, 60, 20, "transparent", "", 0, BasicShape, "", dataBooksAnnotation); - CreateNode("Fixtures", 316, 237, 44, 20, "transparent", "", 0, BasicShape, "", fixturesAnnotation); - CreateNode("Noise", 539, 182, 32, 20, "transparent", "", 0, BasicShape, "", noiseAnnotation); - CreateNode("Motivation", 797, 179, 58, 20, "transparent", "", 0, BasicShape, "", motivationAnnotation); - CreateNode("Tiredness", 817, 221, 60, 20, "transparent", "", 0, BasicShape, "", tirednessAnnotation); - CreateNode("Storer", 841, 264, 33, 20, "transparent", "", 0, BasicShape, "", storerAnnotation); - CreateNode("Computer", 290, 440, 70, 20, "transparent", "", 0, BasicShape, "", computerAnnotation); - CreateNode("Quality", 527, 440, 100, 20, "transparent", "", 0, BasicShape, "", qualityAnnotation); - CreateNode("Order", 804, 440, 30, 20, "transparent", "", 0, BasicShape, "", orderAnnotation); - CreateNode("Software", 260, 500, 70, 20, "transparent", "", 0, BasicShape, "", softwareAnnotation); - CreateNode("Procurement", 517, 500, 71, 20, "transparent", "", 0, BasicShape, "", procurementAnnotation); - CreateNode("Standardization", 774, 500, 86, 20, "transparent", "", 0, BasicShape, "", standardizationAnnotation); - DiagramConnectors = new DiagramObjectCollection(); - CreateConnector("equipellise", "5,5", "Equipment", "ellipse1", "#3941C4", 1, "port1"); - CreateConnector("connect12", "5,5", "ellipse1", "ellipse2", "#3941C4", 1); - CreateConnector("connect13", "5,5", "ellipse2", "ellipse3", "#3941C4", 1); - CreateConnector("connect14", "5,5", "ellipse3", "Colorellipse3", "#3941C4", 1); - CreateConnector("connect15", "5,5", "Environment", "ellipse4", "#B67D00", 1, "port1"); - CreateConnector("connect16", "5,5", "ellipse4", "ellipse5", "#B67D00", 1); - CreateConnector("connect17", "5,5", "ellipse4", "ellipse5", "#B67D00", 1); - CreateConnector("connect18", "5,5", "ellipse5", "Colorellipse2", "#B67D00", 1); - CreateConnector("connect19", "5,5", "Person", "ellipse6", "#742D2A", 1, "port1"); - CreateConnector("connect20", "5,5", "ellipse6", "ellipse7", "#742D2A", 1); - CreateConnector("connect21", "5,5", "ellipse7", "ellipse8", "#742D2A", 1); - CreateConnector("connect22", "5,5", "ellipse8", "ellipse9", "#742D2A", 1); - CreateConnector("connect23", "5,5", "ellipse9", "Colorellipse1", "#742D2A", 1); - CreateConnector("connect24", "5,5", "Materials", "ellipse15", "#299090", 1, "port1"); - CreateConnector("connect25", "5,5", "ellipse15", "ellipse10", "#299090", 1); - CreateConnector("connect26", "5,5", "ellipse10", "Colorellipse3", "#299090", 1); - CreateConnector("connect27", "5,5", "Machine", "ellipse13", "#2B762C", 1, "port1"); - CreateConnector("connect28", "5,5", "ellipse13", "ellipse14", "#2B762C", 1); - CreateConnector("connect29", "5,5", "ellipse14", "Colorellipse2", "#2B762C", 1); - CreateConnector("connect30", "5,5", "Methods", "ellipse11", "#5F3890", 1, "port1"); - CreateConnector("connect31", "5,5", "ellipse11", "ellipse12", "#5F3890", 1); - CreateConnector("connect32", "5,5", "ellipse12", "Colorellipse1", "#5F3890", 1); - CreateConnector("connect33", "", "Colorellipse4", "Colorellipse3", "#464646", 1); - CreateConnector("connect34", "", "Colorellipse3", "Colorellipse2", "#464646", 1); - CreateConnector("connect35", "", "Colorellipse2", "Colorellipse1", "#464646", 1); - CreateConnector("connect36", "", "Colorellipse1", "Colorellipse5", "#464646", 1); - CreateConnector("connect37", "", "TextPrograms", "ellipse1", "#464646", 1, "", 10); - CreateConnector("connect38", "", "DataBooks", "ellipse2", "#464646", 1, "", 10); - CreateConnector("connect39", "", "Fixtures", "ellipse3", "#464646", 1, "", 10); - CreateConnector("connect40", "", "Ventilatorssound", "ellipse4", "#464646", 1, "", 10); - CreateConnector("connect41", "", "Noise", "ellipse5", "#464646", 1, "", 10); - CreateConnector("connect42", "", "Education", "ellipse6", "#464646", 1, "", 10); - CreateConnector("connect43", "", "Motivation", "ellipse7", "#464646", 1, "", 10); - CreateConnector("connect44", "", "Tiredness", "ellipse8", "#464646", 1, "", 10); - CreateConnector("connect45", "", "Storer", "ellipse9", "#464646", 1, "", 10); - CreateConnector("connect46", "", "Software", "ellipse15", "#464646", 1, "", 10); - CreateConnector("connect47", "", "Computer", "ellipse10", "#464646", 1, "", 10); - CreateConnector("connect48", "", "Procurement", "ellipse13", "#464646", 1, "", 10); - CreateConnector("connect49", "", "Quality", "ellipse14", "#464646", 1, "", 10); - CreateConnector("connect50", "", "Order", "ellipse12", "#464646", 1, "", 10); - CreateConnector("connect51", "", "Standardization", "ellipse11", "#464646", 1, "", 10); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - // Method is used to create a Connector for the DiagramInstance. - private void CreateConnector(string id, string lineDashArray, string source, string target, string lineColor, int lineWidth, string portId = null, int padding = 0) - { - Connector connector = new Connector() - { - ID = id, - SourceID = source, - TargetID = target, - Style = new ShapeStyle { StrokeColor = lineColor, StrokeWidth = lineWidth, StrokeDashArray = lineDashArray }, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }, - SourcePadding = padding - }; - if (id != "connect33" && id != "connect34" && id != "connect35" && id != "connect36") - { - connector.TargetDecorator.Style = new ShapeStyle() { StrokeColor = "#A52A2A", Fill = "#A52A2A" }; - } - if (portId != null && portId != "") - connector.SourcePortID = portId; - DiagramConnectors.Add(connector); - } - // Method is used to create a Node for the diagram. - private void CreateNode(string id, double x, double y, double width, double height, string fill, string strokeColor, int strokeWidth, Syncfusion.Blazor.Diagram.NodeShapes shape, string pathData = null, DiagramObjectCollection annotations = null, DiagramObjectCollection ports = null) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = width, - Height = height, - Style = new ShapeStyle { Fill = fill, StrokeColor = strokeColor, StrokeWidth = strokeWidth } - }; - if (shape == Syncfusion.Blazor.Diagram.NodeShapes.Basic) - { - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse }; - } - else - { - diagramNode.Shape = new PathShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Path, Data = pathData }; - } - if (annotations != null) - diagramNode.Annotations = annotations; - if (ports != null) - diagramNode.Ports = ports; - DiagramNodes.Add(diagramNode); - } - // Method is used to create an annotation for the diagram. - private DiagramObjectCollection CreateAnnotations(string content1, string color, string fontFamily, int fontSize = 12, bool bold = false) - { - DiagramObjectCollection Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() { Content = content1, Style = new TextStyle() { Bold = bold, Color= color, FontFamily = fontFamily, FontSize = fontSize }} - }; - return Annotations; - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/FlowChart.razor b/Common/Pages/DiagramComponent/DiagramComponent/FlowChart.razor deleted file mode 100644 index 8f87d0ad..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/FlowChart.razor +++ /dev/null @@ -1,1310 +0,0 @@ - -@page "/diagramcomponent/flowchart" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.SplitButtons -@using Syncfusion.Blazor.Inputs -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable - -

This Blazor Diagram example visualizes the order processing workflow for credit card purchases using built-in flow shapes in the Syncfusion Blazor Diagram component.

-
- -

This example demonstrates how to create a basic flowchart using the Diagram component. The Node class defines the various stages of the process, and the Connector class represents the flow between stages.

-

To simplify flowchart creation, several predefined shapes are available in the symbol palette. You can drag and drop these shapes into the drawing area, and the Symbols property allows you to add more symbols to the palette.

-

Undo and redo functionalities are enabled in this example, with keyboard shortcuts (Ctrl+Z for undo, Ctrl+Y for redo). A search feature also allows users to find symbols by ID or search tags.

-

The toolbar menu provides options to save and load diagrams, draw nodes and connectors, execute z-order commands, zoom in/out, and print. Additionally, alignment commands, flip actions, and pan/pointer tool toggles are available.

-
-@*End:Hidden*@ - - -
- @*Hidden:Lines*@ - - - - @*End:Hidden*@ -
- @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
- - - - - - - - - - - - - - - - - -
-
-
-
- - - - -
-
- -@code { - private int ConnectorCount { get; set; } = 0; - public DiagramSelectionSettings SelectionSettings { get; set; } = new DiagramSelectionSettings(); - public DiagramSize SymbolPreview { get; set; } - public SymbolMargin SymbolMargin { get; set; } = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent DiagramInstance { get; set; } - public SfSymbolPaletteComponent PaletteInstance { get; set; } - public string ZoomItemDropdownContent { get; set; } = "100 %"; - public enum PdfPageOrientation - { - Portrait, - Landscape - } - public string data; - public bool IsEnablePasteButton { get; set; } = true; - public bool IsEnableCutButton { get; set; } = true; - public bool IsEnableCopyButton { get; set; } = true; - public bool IsEnableUndoButton { get; set; } = true; - public bool IsEnableRedoButton { get; set; } = true; - public string ExtensionType { get; set; } = ".json"; - public bool IsDeleteDisable { get; set; } = true; - public bool IsLockDisable { get; set; } = true; - public bool IsMultipleNode { get; set; } = true; - public bool IsSingleNode { get; set; } = true; - private IDiagramObject DiagramDrawingObject { get; set; } - private DiagramInteractions DiagramTool { get; set; } = DiagramInteractions.Default; - public DiagramObjectCollection UserHandles { get; set; } = new DiagramObjectCollection(); - //Defines DiagramInstance's nodes collection - private DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - //Defines Diagram's connectors collection - private DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - //Define DiagramPalettes collection - private DiagramObjectCollection DiagramPalettes { get; set; } = new DiagramObjectCollection(); - // Defines palette's flow-shape collection - private DiagramObjectCollection PalettesFlowShapes { get; set; } = new DiagramObjectCollection(); - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - // Defines palette's connector collection - private DiagramObjectCollection PalettesConnectorSymbols { get; set; } = new DiagramObjectCollection(); - //Reference to uploder - public SfUploader UploadFiles { get; set; } - [Inject] - protected IJSRuntime jsRuntime { get; set; } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - UpdateHandle(); - } - PaletteInstance.Targets = new DiagramObjectCollection - { - DiagramInstance - }; - } - List undoStack = new List(); - List redoStack = new List(); - - private void OnHistoryChange(HistoryChangedEventArgs arg) - { - if (arg.ActionTrigger == HistoryChangedAction.CustomAction) - { - if (redoStack.Count > 0) - { - redoStack.Clear(); - } - string entryLog = arg.EntryType.ToString(); - undoStack.Add(entryLog); - } - else if (arg.ActionTrigger == HistoryChangedAction.Redo && redoStack.Count > 0) - { - undoStack.Add(redoStack[^1]); - redoStack.RemoveAt(redoStack.Count - 1); - } - else if (arg.ActionTrigger == HistoryChangedAction.Undo && undoStack.Count > 0) - { - redoStack.Add(undoStack[^1]); - undoStack.RemoveAt(undoStack.Count - 1); - } - - IsEnableUndoButton = undoStack.Count == 0; - IsEnableRedoButton = redoStack.Count == 0; - } - - private void DragDropEvent(DropEventArgs args) - { - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector && connector.Tooltip != null) - { - connector.Tooltip = null; - connector.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - private void UpdateToolbarItems() - { - int? nodeCount = DiagramInstance?.SelectionSettings.Nodes.Count; - int? ConnectorCount = DiagramInstance?.SelectionSettings.Connectors.Count; - if (nodeCount + ConnectorCount == 0) - { - IsEnableCopyButton = true; - IsEnableCutButton = true; - } - else - { - IsEnableCopyButton = false; - IsEnableCutButton = false; - } - if (nodeCount > 0) - { - IsSingleNode = false; - IsLockDisable = false; - IsDeleteDisable = false; - - if (nodeCount >= 2) - { - IsMultipleNode = false; - } - } - else - { - IsSingleNode = true; - IsLockDisable = true; - IsDeleteDisable = true; - IsMultipleNode = true; - } - } - private void OnSelectionChanged(Syncfusion.Blazor.Diagram.SelectionChangedEventArgs args) - { - this.UpdateToolbarItems(); - if (args.NewValue.Count > 0 && args.NewValue[0] is Node) - { - DiagramInstance.SelectionSettings.Constraints = DiagramInstance.SelectionSettings.Constraints | SelectorConstraints.UserHandle; - } - else if (args.NewValue.Count > 0) - { - DiagramInstance.SelectionSettings.Constraints = DiagramInstance.SelectionSettings.Constraints & ~SelectorConstraints.UserHandle; - } - } - - private void OnCreated() - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[0] }); - FitOptions options = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(options); - } - - // Method to customize the tool - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "Draw") - { - tool = new DrawTool(DiagramInstance); - } - else - { - tool = new AddDeleteTool(DiagramInstance); - } - return tool; - } - // Custom tool to delete the node. - public class AddDeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - Node deleteObject = null; - public AddDeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - if (sfDiagram.SelectionSettings.Nodes.Count > 0 && ((sfDiagram.SelectionSettings.Nodes[0]) is Node)) - { - deleteObject = (sfDiagram.SelectionSettings.Nodes[0]) as Node; - } - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - if (deleteObject != null) - { - sfDiagram.StartGroupAction(); - sfDiagram.BeginUpdate(); - sfDiagram.Nodes.Remove(deleteObject); - _ = sfDiagram.EndUpdateAsync(); - sfDiagram.EndGroupAction(); - } - base.OnMouseUp(args); - this.InAction = true; - } - } - - public class DrawTool : ConnectorDrawingController - { - SfDiagramComponent sfDiagram; - Connector newConnector = null; - public DrawTool(SfDiagramComponent Diagram) : base(Diagram, DiagramElementAction.ConnectorSourceEnd) - { - sfDiagram = Diagram; - newConnector = new Connector() - { - ID = "OrthogonalConnector", - SourceID = sfDiagram.SelectionSettings.Nodes[0].ID, - Type = ConnectorSegmentType.Orthogonal, - }; - @*Hidden:Lines*@ -#pragma warning disable BL0005 - @*End:Hidden*@ - Diagram.InteractionController = DiagramInteractions.DrawOnce; - Diagram.DrawingObject = newConnector; - @*Hidden:Lines*@ -#pragma warning restore BL0005 - @*End:Hidden*@ - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - base.OnMouseUp(args); - } - } - - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 - }; - InitDiagramModel(); - InitPaletteModel(); - - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - CreateNode("node1", 300, 80, NodeFlowShapes.Terminator, "Place order"); - CreateNode("node2", 300, 160, NodeFlowShapes.Process, "Start transaction"); - CreateNode("node3", 300, 240, NodeFlowShapes.Process, "Verification"); - CreateNode("node4", 300, 330, NodeFlowShapes.Decision, "Credit card valid?"); - CreateNode("node5", 300, 430, NodeFlowShapes.Decision, "Funds available?"); - CreateNode("node6", 530, 330, NodeFlowShapes.Process, "Enter payment method"); - CreateNode("node7", 300, 530, NodeFlowShapes.Process, "Complete transaction"); - CreateNode("node8", 110, 530, NodeFlowShapes.Data, "Send e-mail"); - CreateNode("node9", 475, 530, NodeFlowShapes.DirectData, "Customer \n database"); - CreateNode("node10", 300, 630, NodeFlowShapes.Terminator, "Log transaction"); - CreateNode("node11", 480, 630, NodeFlowShapes.Process, "Reconcile the entries"); - CreateConnector("node1", "node2"); - CreateConnector("node2", "node3"); - CreateConnector("node3", "node4"); - CreateConnector("node4", "node5", "Yes"); - CreateConnector("node4", "node6", "No", false, "port3", "port1"); - CreateConnector("node5", "node6", "No", false, "port3", "port4"); - CreateConnector("node5", "node7", "Yes"); - CreateConnector("node6", "node2", default(string), false, "port2", "port3"); - CreateConnector("node7", "node8"); - CreateConnector("node7", "node9"); - CreateConnector("node7", "node10"); - CreateConnector("node10", "node11", default(string), true); - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - DiagramPalettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - PalettesFlowShapes = new DiagramObjectCollection(); - CreatePaletteNode(NodeFlowShapes.Terminator, "Terminator"); - CreatePaletteNode(NodeFlowShapes.Process, "Process"); - CreatePaletteNode(NodeFlowShapes.Decision, "Decision"); - CreatePaletteNode(NodeFlowShapes.Document, "Document"); - CreatePaletteNode(NodeFlowShapes.PreDefinedProcess, "Pre-Defined Process"); - CreatePaletteNode(NodeFlowShapes.PaperTap, "Punched Tape"); - CreatePaletteNode(NodeFlowShapes.DirectData, "Direct Data"); - CreatePaletteNode(NodeFlowShapes.SequentialData, "Sequential Data"); - CreatePaletteNode(NodeFlowShapes.Sort, "Sort"); - CreatePaletteNode(NodeFlowShapes.MultiDocument, "Multi-Document"); - CreatePaletteNode(NodeFlowShapes.Collate, "Collate"); - CreatePaletteNode(NodeFlowShapes.SummingJunction, "Summing Junction"); - CreatePaletteNode(NodeFlowShapes.Or, "OR"); - CreatePaletteNode(NodeFlowShapes.InternalStorage, "Internal Storage"); - CreatePaletteNode(NodeFlowShapes.Extract, "Extract"); - CreatePaletteNode(NodeFlowShapes.SequentialAccessStorage, "Sequential Access Storage"); - CreatePaletteNode(NodeFlowShapes.Annotation, "Annotation"); - CreatePaletteNode(NodeFlowShapes.Data, "Data"); - CreatePaletteNode(NodeFlowShapes.Card, "Card"); - CreatePaletteNode(NodeFlowShapes.Delay, "Delay"); - - PalettesConnectorSymbols = new DiagramObjectCollection(); - CreatePaletteConnector("Orthogonal With Arrow", ConnectorSegmentType.Orthogonal, DecoratorShape.Arrow); - CreatePaletteConnector("Orthogonal", ConnectorSegmentType.Orthogonal, DecoratorShape.None); - CreatePaletteConnector("Straight With Arrow", ConnectorSegmentType.Straight, DecoratorShape.Arrow); - CreatePaletteConnector("Straight", ConnectorSegmentType.Straight, DecoratorShape.None); - CreatePaletteConnector("Bezier", ConnectorSegmentType.Bezier, DecoratorShape.None); - - DiagramPalettes = new DiagramObjectCollection() - { - @*Hidden:Lines*@ - #pragma warning disable BL0005 - @*End:Hidden*@ - new Palette() {Symbols = PalettesFlowShapes, Title = "Flow Shapes", ID = "FlowShapes", IconCss = "e-ddb-icons e-flow"}, - new Palette() {Symbols = PalettesConnectorSymbols, Title = "Connectors",ID="Connectors", IsExpanded = true, IconCss = "e-ddb-icons e-connector"}, - @*Hidden:Lines*@ - #pragma warning restore BL0005 - @*End:Hidden*@ - }; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Style.Fill = "#357BD2"; - if (!(node.ID.StartsWith("Annotation") || node.ID.StartsWith("SequentialData"))) - node.Style.StrokeColor = "White"; - node.Style.Opacity = 1; - } - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Style.Fill = "black"; - connector.Style.StrokeColor = "black"; - connector.Style.Opacity = 1; - connector.TargetDecorator.Style.Fill = "black"; - connector.TargetDecorator.Style.StrokeColor = "black"; - } - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeFlowShapes flowShape, string id) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node diagramNode = new Node() - { - ID = NodeID, - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = flowShape }, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - SearchTags = new List() { "flow" }, - }; - if (isSpace) - { - diagramNode.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramNode.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - if (id == "Terminator" || id == "Process") - { - diagramNode.Width = 80; - diagramNode.Height = 40; - } - else if (id == "Decision" || id == "Document" || id == "PreDefined Process" || - id == "Punched Tape" || id == "Direct Data" || id == "MultiDocument" || id == "Data") - { - diagramNode.Width = 50; - diagramNode.Height = 40; - } - else - { - diagramNode.Width = 50; - diagramNode.Height = 50; - } - double oldWidth = Convert.ToDouble(diagramNode.Width); - double oldHeight = Convert.ToDouble(diagramNode.Height); - double ratio = 100 / oldWidth; - diagramNode.Width = 100; - diagramNode.Height *= ratio; - PalettesFlowShapes.Add(diagramNode); - } - - // used to create a Port. - private DiagramObjectCollection CreatePort() - { - DiagramObjectCollection defaultsPorts = new DiagramObjectCollection(); - PointPort port1 = new PointPort() - { - ID = "port1", - Shape = PortShapes.Circle, - Offset = new DiagramPoint() { X = 0, Y = 0.5 } - }; - PointPort port2 = new PointPort() - { - ID = "port2", - Shape = PortShapes.Circle, - Offset = new DiagramPoint() { X = 0.5, Y = 0 } - }; - PointPort port3 = new PointPort() - { - ID = "port3", - Shape = PortShapes.Circle, - Offset = new DiagramPoint() { X = 1, Y = 0.5 } - }; - PointPort port4 = new PointPort() - { - ID = "port4", - Shape = PortShapes.Circle, - Offset = new DiagramPoint() { X = 0.5, Y = 1 } - }; - defaultsPorts.Add(port1); - defaultsPorts.Add(port2); - defaultsPorts.Add(port3); - defaultsPorts.Add(port4); - return defaultsPorts; - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string sourceId, string targetId, string label = default(string), bool isDashLine = false, string sport = "", string tport = "") - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++ConnectorCount), - SourceID = sourceId, - TargetID = targetId, - SourcePortID = sport, - TargetPortID = tport, - }; - if (isDashLine) - { - diagramConnector.Style = new ShapeStyle() { StrokeDashArray = "2,2" }; - } - if (label != default(string)) - { - var annotation = new PathAnnotation() - { - Content = label, - Style = new TextStyle() { Fill = "white" } - }; - if ((sourceId == "node5" && targetId == "node6") || label == "Yes" || label == "No") - { - annotation.Height = 10; - annotation.Width = 15; - } - diagramConnector.Annotations = new DiagramObjectCollection() { annotation }; - } - diagramConnector.Type = ConnectorSegmentType.Orthogonal; - - DiagramConnectors.Add(diagramConnector); - } - // Method is used to create a node for the diagram. - private void CreateNode(string id, double x, double y, NodeFlowShapes shape, string label) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = 145, - Ports = CreatePort(), - Height = 60, - Style = new ShapeStyle { Fill = "#357BD2", StrokeColor = "White" }, - - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = shape }, - Annotations = new DiagramObjectCollection - { - new ShapeAnnotation - { - Content = label, - Style = new TextStyle() - { - Color="White", Fill = "transparent" - } - } - } - }; - DiagramNodes.Add(diagramNode); - } - // Method is used to create a Connector for the palette. - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DecoratorShape decoratorShape) - { - string connectorID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - connectorID = id.Replace(" ", ""); - } - Connector diagramConnector = new Connector() - { - ID = connectorID, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575" }, - SearchTags = new List() { "connector" }, - TargetDecorator = new DecoratorSettings() - { - Shape = decoratorShape, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575", Fill = "#757575" } - } - }; - if (isSpace) - { - diagramConnector.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramConnector.Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip; - } - PalettesConnectorSymbols.Add(diagramConnector); - } - private void UpdateHandle() - { - UserHandle deleteHandle = AddHandle("Delete", "delete", Direction.Bottom, 0.5); - UserHandle drawHandle = AddHandle("Draw", "draw", Direction.Right, 0.5); - UserHandles.Add(deleteHandle); - UserHandles.Add(drawHandle); - SelectionSettings.UserHandles = UserHandles; - } - - private UserHandle AddHandle(string name, string path, Direction direction, double offset) - { - UserHandle handle = new UserHandle() - { - Name = name, - Visible = true, - Offset = offset, - Side = direction, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - if (path == "delete") - { - handle.PathData = "M0.54700077,2.2130003 L7.2129992,2.2130003 7.2129992,8.8800011 C7.2129992,9.1920013 7.1049975,9.4570007 6.8879985,9.6739998 6.6709994,9.8910007 6.406,10 6.0939997,10 L1.6659999,10 C1.3539997,10 1.0890004,9.8910007 0.87200136,9.6739998 0.65500242,9.4570007 0.54700071,9.1920013 0.54700077,8.8800011 z M2.4999992,0 L5.2600006,0 5.8329986,0.54600048 7.7599996,0.54600048 7.7599996,1.6660004 0,1.6660004 0,0.54600048 1.9270014,0.54600048 z"; - } - else - { - handle.PathData = "M3.9730001,0 L8.9730001,5.0000007 3.9730001,10.000001 3.9730001,7.0090005 0,7.0090005 0,2.9910006 3.9730001,2.9910006 z"; - } - return handle; - } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - private async Task ToolbarEditorClick(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - var value = args.Item.TooltipText; - switch (value) - { - case "New Diagram": - DiagramInstance.Clear(); - SetElements(); - break; - case "Open Diagram": - LoadDiagram(); - break; - case "Save Diagram": - string fileName = "Flow Chart"; - await Download(fileName); - break; - case "Print Diagram": - DiagramPrintSettings print = new DiagramPrintSettings(); - print.PageWidth = 700; - print.PageHeight = 1200; - await DiagramInstance.PrintAsync(print); - break; - case "Cut": - DiagramInstance.Cut(); - IsEnablePasteButton = false; - break; - case "Copy": - DiagramInstance.Copy(); - IsEnablePasteButton = false; - break; - case "Paste": - DiagramInstance.Paste(); - break; - case "Undo": - DiagramInstance.Undo(); - this.UpdateToolbarItems(); - break; - case "Redo": - DiagramInstance.Redo(); - break; - case "Pan": - DiagramTool = DiagramInteractions.ZoomPan; - break; - case "Select": - DiagramTool = DiagramInteractions.SingleSelect | DiagramInteractions.MultipleSelect; - break; - case "Delete": - DiagramInstance.Delete(); - break; - case "Lock": - OnLockItemClick(); - break; - case "Text Tool": - DiagramDrawingObject = new Node() { Shape = new TextShape() { Type = NodeShapes.Text } }; - DiagramTool = DiagramInteractions.ContinuousDraw; - break; - } - } - private void SelectedItem(Syncfusion.Blazor.SplitButtons.MenuEventArgs args) - { - var value = args.Item.Text; - switch (value) - { - case "Send To Back": - DiagramInstance.SendToBack(); - break; - case "Bring To Front": - DiagramInstance.BringToFront(); - break; - case "Bring Forward": - DiagramInstance.BringForward(); - break; - case "Send Backward": - DiagramInstance.SendBackward(); - break; - case "Group": - if (DiagramInstance.SelectionSettings.Nodes.Count + DiagramInstance.SelectionSettings.Connectors.Count > 1) - { - DiagramInstance.Group(); - } - break; - case "Ungroup": - if (DiagramInstance.SelectionSettings.Nodes.Count + DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - DiagramInstance.Ungroup(); - } - IsSingleNode = true; - IsLockDisable = true; - IsDeleteDisable = true; - IsMultipleNode = true; - break; - case "Flip Horizontal": - FlipAll(FlipDirection.Horizontal); - break; - case "Flip Vertical": - FlipAll(FlipDirection.Vertical); - break; - case "Rotate Clockwise": - DiagramInstance.Rotate(DiagramInstance.SelectionSettings, 90); - break; - case "Rotate Counter-Clockwise": - DiagramInstance.Rotate(DiagramInstance.SelectionSettings, -90); - break; - case "JPG": - case "PNG": - case "SVG": - Export(value); - break; - case "Straight": - DiagramDrawingObject = new Connector() { Type = ConnectorSegmentType.Straight }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Orthogonal": - DiagramDrawingObject = new Connector() { Type = ConnectorSegmentType.Orthogonal }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Bezier": - DiagramDrawingObject = new Connector() { Type = ConnectorSegmentType.Bezier }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Rectangle": - DiagramDrawingObject = new Node() { Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle } }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Ellipse": - DiagramDrawingObject = new Node() { Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse } }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Polygon": - DiagramDrawingObject = new Node() { Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Polygon } }; - DiagramTool = DiagramInteractions.DrawOnce; - break; - case "Align Left": - DiagramInstance.SetAlign(AlignmentOptions.Left); - break; - case "Align Center": - DiagramInstance.SetAlign(AlignmentOptions.Center); - break; - case "Align Right": - DiagramInstance.SetAlign(AlignmentOptions.Right); - break; - case "Align Top": - DiagramInstance.SetAlign(AlignmentOptions.Top); - break; - case "Align Middle": - DiagramInstance.SetAlign(AlignmentOptions.Middle); - break; - case "Align Bottom": - DiagramInstance.SetAlign(AlignmentOptions.Bottom); - break; - case "Distribute Objects Vertically": - DiagramInstance.SetDistribute(DistributeOptions.RightToLeft); - break; - case "Distribute Objects Horizontally": - DiagramInstance.SetDistribute(DistributeOptions.BottomToTop); - break; - } - } - private void SelectedZoomItem(Syncfusion.Blazor.SplitButtons.MenuEventArgs args) - { - var value = args.Item.Text; - var currentZoom = DiagramInstance.ScrollSettings.CurrentZoom; - switch (value) - { - case "Zoom In": - case "Zoom Out": - var ZoomFactor = 0.2; - ZoomFactor = value == "Zoom Out" ? 1 / (1 + ZoomFactor) : (1 + ZoomFactor); - DiagramInstance.Zoom(ZoomFactor, null); - break; - case "Zoom to Fit": - FitOptions fitoption = new FitOptions() - { - Mode = FitMode.Both, - Region = DiagramRegion.PageSettings, - }; - DiagramInstance.FitToPage(fitoption); - break; - case "Zoom to 50%": - ZoomFactor = 0.5 / currentZoom; - DiagramInstance.Zoom(ZoomFactor, null); - break; - case "Zoom to 100%": - ZoomFactor = 1 / currentZoom; - DiagramInstance.Zoom(ZoomFactor, null); - break; - case "Zoom to 200%": - ZoomFactor = 2 / currentZoom; - DiagramInstance.Zoom(ZoomFactor, null); - break; - } - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(DiagramInstance.ScrollSettings.CurrentZoom * 100)}") + "%"; - } - public async void SetElements() - { - IsSingleNode = true; - IsLockDisable = true; - IsDeleteDisable = true; - IsMultipleNode = true; - DiagramInstance.ClearHistory(); - DiagramInstance.ResetZoom(); - StateHasChanged(); - } - public async Task Download(string fileName) - { - string data = DiagramInstance.SaveDiagram(); - await FileUtil.SaveAs(jsRuntime, data, fileName); - } - private async Task Export(string value) - { - DiagramExportSettings export = new DiagramExportSettings(); - export.FitToPage = true; - if(value=="JPG") - await DiagramInstance.ExportAsync("Diagram", DiagramExportFormat.JPEG, export); - else if(value=="PNG") - await DiagramInstance.ExportAsync("DiagramInstance", DiagramExportFormat.PNG, export); - else if(value=="SVG") - await DiagramInstance.ExportAsync("Diagram", DiagramExportFormat.SVG, export); - } - public async Task LoadDiagram() - { - DiagramInstance.BeginUpdate(); - ExtensionType = ".json"; - await FileUtil.Click(jsRuntime); - await DiagramInstance.EndUpdateAsync(); - } - public async Task OnUploadFileSelected(UploadingEventArgs args) - { - if (args.FileData.Type == "json") - { - string json = await FileUtil.LoadFile(jsRuntime, args.FileData); - json = json.Replace(System.Environment.NewLine, string.Empty); - await DiagramInstance.LoadDiagramAsync(json.ToString()); - FitOptions options = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(options); - await UploadFiles.ClearAllAsync(); - } - } - public void FlipAll(FlipDirection direction) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (int i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - DiagramInstance.SelectionSettings.Nodes[i].FlipMode = DiagramFlipMode.All; - if (DiagramInstance.SelectionSettings.Nodes[i].Flip.HasFlag(direction)) - { - DiagramInstance.SelectionSettings.Nodes[i].Flip &= ~direction; - } - else - { - DiagramInstance.SelectionSettings.Nodes[i].Flip |= direction; - } - } - } - } - - private void ScrollChanged(ScrollChangedEventArgs args) - { - ZoomItemDropdownContent = FormattableString.Invariant($"{Math.Round(DiagramInstance.ScrollSettings.CurrentZoom * 100)}") + "%"; - } - private void OnLockItemClick() - { - bool isLock = false; - bool isPreventPropertyChange = false; - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - var node = DiagramInstance.SelectionSettings.Nodes[i]; - if (node.Constraints.HasFlag(NodeConstraints.Default)) - { - if (!isPreventPropertyChange) - { - node.Constraints = node.Constraints & ~(NodeConstraints.Resize | NodeConstraints.Drag | NodeConstraints.Rotate); - node.Constraints = node.Constraints | NodeConstraints.ReadOnly; - if (node.Ports.Count > 0) - { - for (var k = 0; k < node.Ports.Count; k++) - { - var port = node.Ports[k]; - port.Constraints = port.Constraints & ~(PortConstraints.Draw); - } - } - isLock = true; - } - } - else - { - if (!isPreventPropertyChange) - { - node.Constraints = NodeConstraints.Default; - if (node.Ports.Count > 0) - { - for (var k = 0; k < node.Ports.Count; k++) - { - var port = node.Ports[k]; - port.Constraints = port.Constraints | PortConstraints.Draw; - } - } - } - else - isLock = true; - } - } - for (var j = 0; j < DiagramInstance.SelectionSettings.Connectors.Count; j++) - { - var connector = DiagramInstance.SelectionSettings.Connectors[j]; - if (connector.Constraints.HasFlag(ConnectorConstraints.Default)) - { - if (!isPreventPropertyChange) - { - connector.Constraints = (connector.Constraints & ~(ConnectorConstraints.DragSourceEnd - | ConnectorConstraints.DragTargetEnd | ConnectorConstraints.DragSegmentThumb)) | ConnectorConstraints.ReadOnly; - isLock = true; - } - } - else - { - if (!isPreventPropertyChange) - { - connector.Constraints = ConnectorConstraints.Default; - } - else - isLock = true; - } - } - } - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - if (SymbolMargin != null) - { - SymbolMargin = null; - } - DiagramInstance = null; - PaletteInstance = null; - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } -#pragma warning disable BL0005 - if (DiagramPalettes != null) - { - for (int i = 0; i < DiagramPalettes.Count; i++) - { - DiagramPalettes[i].ID = null; - DiagramPalettes[i].Title = null; - DiagramPalettes[i].IconCss = null; - if (DiagramPalettes[i].Symbols != null) - { - for (int j = 0; j < DiagramPalettes[i].Symbols.Count; j++) - { - DiagramPalettes[i].Symbols[j] = null; - } - DiagramPalettes[i].Symbols.Clear(); - DiagramPalettes[i].Symbols = null; - } - } - DiagramPalettes.Clear(); - DiagramPalettes = null; - } -#pragma warning restore BL0005 - if (PalettesFlowShapes != null) - { - PalettesFlowShapes.Clear(); - PalettesFlowShapes = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - if (PalettesConnectorSymbols != null) - { - PalettesConnectorSymbols.Clear(); - PalettesConnectorSymbols = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/FlowExecution.razor b/Common/Pages/DiagramComponent/DiagramComponent/FlowExecution.razor deleted file mode 100644 index c5e778cf..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/FlowExecution.razor +++ /dev/null @@ -1,475 +0,0 @@ -@page "/diagramcomponent/flow-execution" - -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable - -

This sample demonstrates how to retrieve and process consecutive nodes and connectors within a diagram.

-
- -

Retrieve inward and outward connections of a node using its InEdges and OutEdges properties. Identify nodes connected to a specific connector using the SourceID and TargetID properties of the connector. To retrieve detailed information about a node, use the GetObject method of the diagram component.

-
-@*End:Hidden*@ -
-
- - - -
-
-@*Hidden:Lines*@ -
- -
- Choose a flow -
- -
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
-@*End:Hidden*@ - -@code -{ - private int DiagramConnectorCount { get; set; } - private string currentButton = "NodesReachable"; - private string IsRadiobuttoChecked { get; set; } = "NodesReachable"; - private bool IsDisabled { get; set; } = false; - private List HighLightedConnector { get; set; } = new List(); - private List HighLightedNode { get; set; } = new List(); - private List ReachableConnectors { get; set; } = new List(); - - public SnapConstraints Constraints { get; set; } = SnapConstraints.None; - - // Reference to diagram - public SfDiagramComponent DiagramInstance { get; set; } - // Defines diagram's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } - // Defines diagram's connector collection - public DiagramObjectCollection DiagramConnectors { get; set; } - - private void OnCreated() - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[2] }); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - /// - /// Initializing the objects - /// - protected override void OnInitialized() - { - InitDiagramModel(); - } - private async Task OnSelectionChanged(SelectionChangedEventArgs args) - { - if (DiagramInstance != null) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0 || DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - IsDisabled = false; - } - else - { - IsDisabled = true; - } - await ApplyChanges(currentButton); - } - } - private void InitDiagramModel() - { - DiagramNodes = new DiagramObjectCollection(); - DiagramConnectors = new DiagramObjectCollection(); - - CreateNode("node1", 100, 125, NodeFlowShapes.Terminator, "Begin"); - CreateNode("node2", 300, 125, NodeFlowShapes.Process, "Specify collection"); - CreateNode("node3", 500, 125, NodeFlowShapes.Decision, "Particulars \n required?"); - CreateNode("node4", 730, 125, NodeFlowShapes.Process, "Specify particulars"); - CreateNode("node5", 500, 225, NodeFlowShapes.Process, "Design collection"); - CreateNode("node6", 500, 320, NodeFlowShapes.Process, "Cluster of events"); - CreateNode("node7", 500, 420, NodeFlowShapes.Process, "Start the process"); - CreateNode("node8", 730, 320, NodeFlowShapes.Process, "Record and analyze \n results"); - CreateNode("node9", 730, 420, NodeFlowShapes.Terminator, "End"); - - OrthogonalSegment segment1 = new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 75, - Direction = Direction.Bottom - }; - - CreateConnector("node1", "node2"); - CreateConnector("node2", "node3"); - CreateConnector("node3", "node4", "Yes"); - CreateConnector("node3", "node5", "No"); - CreateConnector("node5", "node6"); - CreateConnector("node6", "node7"); - CreateConnector("node8", "node6"); - CreateConnector("node7", "node9"); - CreateConnector("node4", "node5", default(string), segment1); - } - - private void CreateNode(string id, double x, double y, NodeFlowShapes shape, string label) - { - ShapeAnnotation annotation = new ShapeAnnotation() { Content = label }; - - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = 150, - Height = 50, - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = shape }, - Annotations = new DiagramObjectCollection() { annotation }, - Style = new ShapeStyle() { Fill = "#FBF6E1", StrokeColor = "#E8DFB6", StrokeWidth = 2 } - }; - if (id == "node3") - { - diagramNode.Height = 60; - } - DiagramNodes.Add(diagramNode); - } - - private void CreateConnector(string sourceId, string targetId, string label = default(string), OrthogonalSegment segment = null) - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++DiagramConnectorCount), - SourceID = sourceId, - TargetID = targetId, - Style = new ShapeStyle() { StrokeWidth = 2, StrokeColor = "#8D8D8D" }, - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() { StrokeColor = "#8D8D8D", Fill = "#8D8D8D" } - } - }; - - if (label != default(string)) - { - var annotation = new PathAnnotation() - { - Content = label, - Style = new TextStyle() - { - Fill = "white" - } - }; - diagramConnector.Annotations = new DiagramObjectCollection() { annotation }; - } - - if (segment != null) - { - diagramConnector.Type = ConnectorSegmentType.Orthogonal; - diagramConnector.Segments = new DiagramObjectCollection() { segment }; - } - DiagramConnectors.Add(diagramConnector); - } - - private async Task OnCheckedItemChange(ChangeArgs args) - { - currentButton = args.Value; - await ApplyChanges(currentButton); - } - - public async Task ApplyChanges(string selectedButton) - { - DiagramInstance.BeginUpdate(); - UnHighLight(); - switch (selectedButton) - { - case "LinksInto": - LinkedConnector(false); - break; - case "LinksOutOf": - LinkedConnector(true); - break; - case "LinksConnected": - LinkedConnector(false); - LinkedConnector(true); - break; - case "NodesInto": - LinkedNode(false); - break; - case "NodesOutOf": - LinkedNode(true); - break; - case "NodesConnected": - LinkedNode(false); - LinkedNode(true); - break; - case "NodesReachable": - await ChildrenFlow(); - break; - } - await DiagramInstance.EndUpdateAsync(); - } - - public void LinkedConnector(bool isOutEdge) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - Node nodeId = this.DiagramInstance.SelectionSettings.Nodes[0]; - List inEdges = nodeId.InEdges; - List outEdge = nodeId.OutEdges; - List edges = new List(); - if (isOutEdge) - { - foreach (string s in outEdge) - { - edges.Add(s); - } - } - else - { - foreach (string s in inEdges) - { - edges.Add(s); - } - } - - foreach (string edge in edges) - { - IDiagramObject obj = DiagramInstance.GetObject(edge); - Connector connector = obj as Connector; - HighLightedConnector.Add(connector); - if (connector != null) - { - connector.Style.StrokeColor = "#1413F8"; - connector.TargetDecorator.Style.StrokeColor = "#1413F8"; - connector.TargetDecorator.Style.Fill = "#1413F8"; - } - } - } - } - - public void LinkedNode(bool isOutEdge) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - Node nodeId = this.DiagramInstance.SelectionSettings.Nodes[0]; - List inEdges = nodeId.InEdges; - List outEdge = nodeId.OutEdges; - List edges = new List(); - if (!isOutEdge) - { - foreach (string s in inEdges) - { - edges.Add(s); - } - } - else - { - foreach (string s in outEdge) - { - edges.Add(s); - } - } - - //string[] edges = await DiagramInstance.GetEdges(nodeId, isOutEdge); - foreach (string edge in edges) - { - IDiagramObject obj = DiagramInstance.GetObject(edge); - Connector connector = obj as Connector; - Node node = null; - if (isOutEdge) - { - if (connector != null) - { - IDiagramObject obj1 = DiagramInstance.GetObject(connector.TargetID); - Node objj = obj1 as Node; - node = objj; - } - } - else - { - if (connector != null) - { - IDiagramObject obj1 = DiagramInstance.GetObject(connector.SourceID) as IDiagramObject; - Node objj = obj1 as Node; - node = objj; - } - } - - HighLightedNode.Add(node); - if (node != null) node.Style.StrokeColor = "#1413F8"; - } - } - } - - public async Task ChildrenFlow() - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - string nodeId = this.DiagramInstance.SelectionSettings.Nodes[0].ID; - await FindReachable(nodeId); - if (ReachableConnectors.Count > 0) - { - foreach (Connector connector in ReachableConnectors) - { - HighLightedConnector.Add(connector); - connector.Style.StrokeColor = "#1413F8"; - connector.TargetDecorator.Style.StrokeColor = "#1413F8"; - connector.TargetDecorator.Style.Fill = "#1413F8"; - } - - ReachableConnectors.Clear(); - } - } - } - - public async Task> FindReachable(string nodeId) - { - IDiagramObject node = DiagramInstance.GetObject(nodeId); - if (node is Node nodes) - { - List outEdge = nodes.OutEdges; - List edges = new List(); - foreach (string s in outEdge) - { - edges.Add(s); - } - - foreach (string edge in edges) - { - IDiagramObject obj = DiagramInstance.GetObject(edge); - Connector connector = obj as Connector; - if (ReachableConnectors.Contains(connector)) - { - continue; - } - - if (connector != null && (connector.Annotations == null || connector.Annotations.Count == 0 || connector.Annotations[0].Content != "No")) - { - ReachableConnectors.Add(connector); - await FindReachable(connector.TargetID); - } - } - } - return ReachableConnectors; - } - - public void UnHighLight() - { - foreach (Node node in HighLightedNode) - { - node.Style.StrokeColor = "#E8DFB6"; - } - - foreach (Connector connector in HighLightedConnector) - { - connector.Style.StrokeColor = "#8D8D8D"; - connector.TargetDecorator.Style.StrokeColor = "#8D8D8D"; - connector.TargetDecorator.Style.Fill = "#8D8D8D"; - } - - HighLightedNode.Clear(); - HighLightedConnector.Clear(); - } - - @*Hidden:Lines*@ - public void Dispose() - { - currentButton = null; - IsRadiobuttoChecked = null; - if (HighLightedConnector != null) - { - HighLightedConnector.Clear(); - HighLightedConnector = null; - } - if (HighLightedNode != null) - { - HighLightedNode.Clear(); - HighLightedNode = null; - } - if (ReachableConnectors != null) - { - ReachableConnectors.Clear(); - ReachableConnectors = null; - } - DiagramInstance = null; - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/FlowchartLayout.razor b/Common/Pages/DiagramComponent/DiagramComponent/FlowchartLayout.razor deleted file mode 100644 index 33261664..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/FlowchartLayout.razor +++ /dev/null @@ -1,463 +0,0 @@ -@page "/diagramcomponent/flowchart-layout" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs -@inherits SampleBaseComponent; -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This Blazor Diagram example demonstrates an online purchasing process, illustrating a flowchart layout using built-in flow shapes in the component.

-
- -

This example shows how to use the Orientation property of the layout to adjust the flowchart’s orientation. The YesBranchDirection and NoBranchDirection properties allow customization of the directions for Yes and No branches. Additionally, spacing between objects in the layout can be controlled using the HorizontalSpacing and VerticalSpacing properties of the Layout.

-
-@*End:Hidden*@ - -
-
-
- - - - - - - - - - - - - -
-
- @*Hidden:Lines*@ - -
-
- Properties -
-
-
-
-
-
Orientation
-
-
- - - - -
-
-
-
-
Yes branch direction
-
-
- - - - -
-
-
-
-
No branch direction
-
-
- - - - -
-
-
-
-
Horizontal spacing
-
-
- - - -
-
-
-
-
Vertical spacing
-
-
- - - -
-
-
-
-
- @*End:Hidden*@ -
-@code -{ - public FlowchartLayoutSettings FlowchartSettings { get; set; } = new FlowchartLayoutSettings() - { - YesBranchDirection = BranchDirection.RightInFlow, - NoBranchDirection = BranchDirection.LeftInFlow - }; - public ScrollLimitMode ScrollLimit { get; set; } = ScrollLimitMode.Diagram; - public SfDiagramComponent DiagramInstance { get; set; } - public LayoutType DiagramLayoutType { get; set; } = LayoutType.Flowchart; - public LayoutOrientation LayoutOrientationType { get; set; } = LayoutOrientation.TopToBottom; - public int HorizontalSpacing { get; set; } = 50; - public int VerticalSpacing { get; set; } = 50; - public string DropDownOrientation { get; set; } = "Vertical"; - public string YesBranchDirection { get; set; } = "left"; - public string NoBranchDirection { get; set; } = "right"; - - public class Orientationvalue - { - public string Text { get; set; } - public string Value { get; set; } - } - - private List Orientation = new List() - { - new Orientationvalue { Text ="Horizontal", Value= "Horizontal" }, - new Orientationvalue { Text = "Vertical", Value = "Vertical" }, - }; - - public class BranchDirectionvalue - { - public string Text { get; set; } - public string Value { get; set; } - } - - public class BranchDirectionvalue1 - { - public string Text { get; set; } - public string Value { get; set; } - } - - private List BranchDirection1 = new List() - { - new BranchDirectionvalue { Text ="same", Value= "Same as flow" }, - new BranchDirectionvalue { Text = "left", Value = "Left in flow" }, - new BranchDirectionvalue { Text = "right", Value = "Right in flow" }, - }; - private List BranchDirection2 = new List() - { - new BranchDirectionvalue1 { Text ="same", Value= "Same as flow" }, - new BranchDirectionvalue1 { Text = "left", Value = "Left in flow" }, - new BranchDirectionvalue1 { Text = "right", Value = "Right in flow" }, - }; - private void OnDataLoaded(object obj) - { - for (int i = 0; i < DiagramInstance.Connectors.Count; i++) - { - var connector = DiagramInstance.Connectors[i]; - { - var node = DiagramInstance.GetObject(connector.TargetID) as Node; - var srcNode = DiagramInstance.GetObject(connector.SourceID) as Node; - if (node.Data != null && node.Data is ItemInfo itemInfo) - { - if (itemInfo.Label != null && itemInfo.Label.Count > 0) - { - if (itemInfo.ParentId.IndexOf((srcNode.Data as ItemInfo).Id) != -1) - { - var parentIndex = itemInfo.ParentId.IndexOf((srcNode.Data as ItemInfo).Id); - if (itemInfo.Label.Count > parentIndex) - { - connector.Annotations = new DiagramObjectCollection() - { - new PathAnnotation() { Content = itemInfo.Label[parentIndex] } - }; - } - } - } - } - } - } - } - private void OnConnectorCreating(IDiagramObject obj) - { - if (obj is Connector connector) - { - connector.Type = ConnectorSegmentType.Orthogonal; - } - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data != null && node.Data is ItemInfo) - { - ItemInfo employeeDetails = node.Data as ItemInfo; - node.Width = employeeDetails._Width; - node.Height = employeeDetails._Height; - if (employeeDetails._Shape == "Rectangle") - { - node.Shape = new FlowShape() { Shape = NodeFlowShapes.Process }; - } - else if (employeeDetails._Shape == "StartOrEnd") - { - node.Shape = new FlowShape() { Shape = NodeFlowShapes.Terminator }; - } - else - node.Shape = new FlowShape() { Shape = (NodeFlowShapes)Enum.Parse(typeof(NodeFlowShapes), employeeDetails._Shape.ToString()) }; - node.Style.Fill = employeeDetails._Color; - node.Style.StrokeColor = employeeDetails._Color; - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation(){ Content = employeeDetails.Name, Style = new TextStyle(){ Color="white"} } - }; - } - } - public List DataSource = new List(){ - new ItemInfo() - { - Id = "1", - Name = "Start", - _Shape = "StartOrEnd", - _Width = 120, - _Height = 40, - _Color = "#8E44CC" - }, - new ItemInfo() - { - Id = "2", - Name = "Open the browser and go to Amazon site", - ParentId = new List { "1" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "3", - Name = "Already a customer?", - ParentId = new List { "2" }, - _Shape = "Decision", - _Width = 150, - _Height = 80, - _Color = "#2F95D8" - }, - new ItemInfo() - { - Id = "4", - Label = new List { "No" }, - Name = "Create an account", - ParentId = new List { "3" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#70AF16" - }, - new ItemInfo() - { - Id = "5", - Label = new List { "Yes" }, - Name = "Enter login information", - ParentId = new List() { "3" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#70AF16" - }, - new ItemInfo() - { - Id = "6", - Name = "Search for the book in the search bar", - ParentId = new List { "5", "4" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "7", - Name = "Select the preferred book", - ParentId = new List { "6" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "8", - Name = "Is the book new or used?", - ParentId = new List { "7" }, - _Shape = "Decision", - _Width = 180, - _Height = 80, - _Color = "#2F95D8" - }, - new ItemInfo() - { - Id = "9", - Label = new List { "Yes" }, - Name = "Select the new book", - ParentId = new List { "8" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#70AF16" - }, - new ItemInfo() - { - Id = "10", - Label = new List { "No" }, - Name = "Select the used book", - ParentId = new List { "8" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#70AF16" - }, - new ItemInfo() - { - Id = "11", - Name = "Add to Cart & Proceed to Checkout", - ParentId = new List { "9", "10" }, - _Shape = "Rectangle", - _Width = 155, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "12", - Label = new List { "", "False" }, - Name = "Enter shipping and payment details", - ParentId = new List { "11", "13" }, - _Shape = "Rectangle", - _Width = 155, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "13", - Name = "Is the information correct?", - ParentId = new List { "12" }, - _Shape = "Decision", - _Width = 180, - _Height = 100, - _Color = "#2F95D8" - }, - new ItemInfo() - { - Id = "14", - Label = new List { "True" }, - Name = "Review and place the order", - ParentId = new List { "13" }, - _Shape = "Rectangle", - _Width = 150, - _Height = 50, - _Color = "#1759B7" - }, - new ItemInfo() - { - Id = "15", - Name = "End", - ParentId = new List { "14" }, - _Shape = "StartOrEnd", - _Width = 120, - _Height = 40, - _Color = "#8E44CC" - } - }; - public class ItemInfo - { - public string Name { get; set; } - public string Id { get; set; } - public List Label { get; set; } - public List ParentId { get; set; } - public string _Shape { get; set; } - public double _Width { get; set; } - public double _Height { get; set; } - public string _Color { get; set; } - - } - - public void OrientationTypeChange(ChangeEventArgs args) - { - LayoutOrientationType = args.ItemData.Value == "Vertical" ? LayoutOrientation.TopToBottom : LayoutOrientation.LeftToRight; - } - - public void YesBranchDirectionChange(ChangeEventArgs args) - { - if (args.ItemData.Text == "same") - { - FlowchartSettings.YesBranchDirection = BranchDirection.SameAsFlow; - } - if (args.ItemData.Text == "left") - { - FlowchartSettings.YesBranchDirection = BranchDirection.LeftInFlow; - } - if (args.ItemData.Text == "right") - { - FlowchartSettings.YesBranchDirection = BranchDirection.RightInFlow; - } - } - public void NoBranchDirectionChange(ChangeEventArgs args) - { - if (args.ItemData.Text == "same") - { - FlowchartSettings.NoBranchDirection = BranchDirection.SameAsFlow; - } - if (args.ItemData.Text == "left") - { - FlowchartSettings.NoBranchDirection = BranchDirection.LeftInFlow; - } - if (args.ItemData.Text == "right") - { - FlowchartSettings.NoBranchDirection = BranchDirection.RightInFlow; - } - } - private void OnHorizontalSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - int val = Convert.ToInt32(args.Value); - HorizontalSpacing = val; - } - private void OnVerticalSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - int val = Convert.ToInt32(args.Value); - VerticalSpacing = val; - } - -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/HierarchicalTree.razor b/Common/Pages/DiagramComponent/DiagramComponent/HierarchicalTree.razor deleted file mode 100644 index 72c42780..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/HierarchicalTree.razor +++ /dev/null @@ -1,429 +0,0 @@ -@page "/diagramcomponent/hierarchical-tree" - -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates how to generate a hierarchical tree structure from an external data source using the Syncfusion Blazor Diagram component.

-
- -

This example demonstrates how to generate a hierarchical tree from an external data source. Customize the spacing between nodes using the HorizontalSpacing and VerticalSpacing properties of the Layout class. Use the Orientation property to adjust the orientation of the tree.

-

To change the orientation of the tree layout dynamically, click the templates provided in the property panel.

-
- -@*End:Hidden*@ -
-
- - - - - - - - - - @{ Node node1 = (context as Node); - string NameId = (node1.Data as HierarchicalDetails).Name; - string TeamName = (node1.Data as HierarchicalDetails).TeamName; - string EmpId = (node1.Data as HierarchicalDetails).EmployeeID; - string Team = (node1.Data as HierarchicalDetails).Name; - string Teamsize = (node1.Data as HierarchicalDetails).TeamSize; - string role = (node1.Data as HierarchicalDetails).Designation; - string BgImage = (node1.Data as HierarchicalDetails).BG; - Syncfusion.Blazor.Diagram.NodeShapes type = (context as Node).Shape.Type; - if (type == Syncfusion.Blazor.Diagram.NodeShapes.HTML) - { -
-
-
-
-
- @NameId -
-
- @role -
-
-
- - - - - - - - - - - - - - - -
- Emp ID - - @EmpId -
- Team - - @TeamName -
- Team Size - @Teamsize -
-
-
-
- } - } -
-
-
- -
-
-@*Hidden:Lines*@ -
-
- Properties -
-
-
- Appearance -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Layout Spacing -
-
-
-
Horizontal Spacing
-
-
- - - -
-
-
-
-
Vertical Spacing
-
-
- - - -
-
-
-
-@*End:Hidden*@ - -@code -{ - private const string SelectedItemClass = "image-pattern-style e-selected-style"; - private const string UnselecteditemClass = "image-pattern-style"; - ScrollLimitMode ScrollLimit { get; set; } = ScrollLimitMode.Diagram; - public int? HValue { get; set; } = 60; - public int? VValue { get; set; } = 60; - public LayoutType DiagramLayoutType { get; set; } = LayoutType.HierarchicalTree; - public LayoutOrientation LayoutOrientationType { get; set; } = LayoutOrientation.TopToBottom; - public HorizontalAlignment HorizontalAlignment { get; set; } = HorizontalAlignment.Auto; - public VerticalAlignment VerticalAlignment { get; set; } = VerticalAlignment.Auto; - public int HorizontalSpacing { get; set; } = 60; - public int VerticalSpacing { get; set; } = 60; - public double MarginTop { get; set; } = 50; - public double MarginBottom { get; set; } = 50; - public double MarginRight { get; set; } = 50; - public double MarginLeft { get; set; } = 50; - - - Dictionary dict = new Dictionary() { { "topToBottom", SelectedItemClass }, { "bottomToTop", UnselecteditemClass }, { "leftToRight", UnselecteditemClass }, { "rightToLeft", UnselecteditemClass } }; - - private void OnConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Orthogonal; - (connector as Connector).TargetDecorator.Shape = DecoratorShape.None; - (connector as Connector).Style = new ShapeStyle() { StrokeColor = "#F16256", StrokeWidth = 1, StrokeDashArray = "3,3" }; - (connector as Connector).Constraints = 0; - (connector as Connector).TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.Circle, - Style = new ShapeStyle() - { - StrokeColor = "#F16256", - Fill = "#F16256", - StrokeWidth = 1, - } - }; - } - - private TreeInfo GetLayoutInfo(IDiagramObject obj, TreeInfo options) - { - options.EnableSubTree = true; - options.Orientation = Orientation.Horizontal; - return options; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Width = 210; - node.Height = 104; - node.Shape = new Shape() - { Type = Syncfusion.Blazor.Diagram.NodeShapes.HTML }; - } - - public class HierarchicalDetails - { - public string Name { get; set; } - public string Designation { get; set; } - public string EmployeeID { get; set; } - public string TeamName { get; set; } - public string TeamSize { get; set; } - public string ParentID { get; set; } - public string BG { get; set; } - public string ConnetColor { get; set; } - - } - public List DataSource = new List() - { - new HierarchicalDetails(){ Name = "Liam James", Designation="President", EmployeeID="SF10001", TeamName="Web-Diagram", TeamSize="10", ParentID = "", BG= "images/diagram/overview/himage1.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Diana", Designation="Vice President", EmployeeID="SF10002", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/overview/himage2.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Kale Nate", Designation="Vice President", EmployeeID="SF10003", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/overview/himage3.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Sam", Designation="Manager", EmployeeID="SF10004", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10002", BG= "images/diagram/overview/himage4.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Stan West", Designation="Manager", EmployeeID="SF10005", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10002", BG= "images/diagram/overview/himage5.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Paul", Designation="Manager", EmployeeID="SF10006", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10003", BG= "images/diagram/overview/himage6.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Rick", Designation="Manager", EmployeeID="SF10007", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10003", BG= "images/diagram/overview/himage7.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Renly Dent", Designation="Employee", EmployeeID="SF10008", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10004", BG= "images/diagram/overview/himage8.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Christi", Designation="Employee", EmployeeID="SF10009", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10008", BG= "images/diagram/overview/himage9.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Scharlet", Designation="Employee", EmployeeID="SF100010", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10006", BG= "images/diagram/overview/himage10.png", ConnetColor="Blue" }, - new HierarchicalDetails(){ Name = "Rob Wayne", Designation="Employee", EmployeeID="SF100011", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100010", BG= "images/diagram/overview/himage11.png", ConnetColor="Blue" }, - }; - - //Update the section to the property panel - private void UpdateSelection(string id) - { - for (int i = 0; i < dict.Count; i++) - { - var value = dict.Values.ElementAt(i); - var key = dict.Keys.ElementAt(i); - if (dict.ContainsKey(id) && key == id) - { - value = SelectedItemClass; - } - else - { - value = UnselecteditemClass; - } - dict.Remove(key); - dict.Add(key, value); - } - } - - public class ImageFields - { - public string Text { get; set; } - } - private void HSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - HValue = (int)args.Value; - HorizontalSpacing = int.Parse(args.Value.ToString()); - } - private void VSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - VValue = (int)args.Value; - VerticalSpacing = int.Parse(args.Value.ToString()); - } - - private void ToptoBottomClick() - { - UpdateSelection("topToBottom"); - LayoutOrientationType = LayoutOrientation.TopToBottom; - } - private void LefttoRightClick() - { - UpdateSelection("leftToRight"); - LayoutOrientationType = LayoutOrientation.LeftToRight; - } - private void RighttoLeftClick() - { - UpdateSelection("rightToLeft"); - LayoutOrientationType = LayoutOrientation.RightToLeft; - } - private void BottomtoTopClick() - { - UpdateSelection("bottomToTop"); - LayoutOrientationType = LayoutOrientation.BottomToTop; - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (dict != null) - { - dict.Clear(); - dict = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/HistoryManager.razor b/Common/Pages/DiagramComponent/DiagramComponent/HistoryManager.razor deleted file mode 100644 index 06c55b53..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/HistoryManager.razor +++ /dev/null @@ -1,893 +0,0 @@ -@page "/diagramcomponent/historymanager" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.DropDowns -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

- This sample demonstrates viewing, deleting, and limiting the diagram history, as well as grouping diagram actions to store them as single entries in the history manager. -

-
- -

- The Undo and Redo methods allow you to revert or restore changes. The StackLimit property restricts the number of history entries stored in the history list, limiting the IsUndoEnabled and redo actions. -
- You can group actions as single entries in the history manager using the StartGroupAction and EndGroupAction methods. Use the ClearHistory method to clear all entries in the undo and redo stacks. -

-
-@*End:Hidden*@ -@*Hidden:Lines*@ -
- - @*End:Hidden*@ - -
-
- - - - - - - - - - - - - - - -
-
- - - - - -
-
- @*Hidden:Lines*@ -
-@*End:Hidden*@ -@*Hidden:Lines*@ -
-
- History Manager Settings -
-
-
-
-
- @UndoText - Undo -
-
-
- @if (UndoStack.Count > 0) - { - if (stackLimit != 0 && UndoStack.Count > stackLimit) - { - UndoStack.Remove(UndoStack[0]); - } - for (int i = 0; i < UndoStack.Count; i++) - { - @UndoStack[i] -
- } - } -
-
-
-
-
- @Redotext - Redo -
-
-
-
- @if (RedoStack.Count > 0) - { - for (int i = 0; i < RedoStack.Count; i++) - { - @RedoStack[i] -
- } - } -
-
-
-
- @Stacktext -
- -
- - - - - -
-
-
- -
- @ChangedAction - Clear History -
-
-
-
-
-@*End:Hidden*@ -@code -{ - @*Hidden:Lines*@ - private bool IsBold { get; set; } = false; - private bool IsItalic { get; set; } = false; - private bool IsUnderLine { get; set; } = false; - private bool IsFontfamilyEnabled { get; set; } = true; - - private bool IsFontSize { get; set; } = true; - private bool IsUndoDisabled { get; set; } = true; - private bool IsRedoDisabled { get; set; } = true; - private string ChangedAction { get; set; } = "Start Group Action"; - private bool IsColorPickerDisabled { get; set; } = false; - private string SelectedPanel { get; set; } = "center"; - private bool IsUpdatePanelOnly { get; set; } = false; - private const string SelectedItemClass = "image-pattern-style e-selected-style"; - private int FontSizeValue { get; set; } = 0; - private int stackLimit = 0; - private string FillColor { get; set; } = "#c9c6ac"; - private string StrokeColor { get; set; } = "#edb879"; - private string FontStyle { get; set; } = "Arial"; - private const string UnselecteditemClass = "image-pattern-style"; - private List UndoStack { get; set; } = new List(); - private List RedoStack { get; set; } = new List(); - private string styleValue { get; set; } = "background-color:#008000"; - private string UndoText { get; set; } = "Undo\nstack"; - private string Redotext { get; set; } = "Redo\nstack"; - private string Stacktext { get; set; } = "Stack Limit"; - - private string TextStyle { get; set; } = "background-color:#cccccc;color:black;width:40px"; - - //Define selected item/unselected item dictionary - Dictionary dictionary = new Dictionary() { { "left", UnselecteditemClass }, { "centertext", UnselecteditemClass }, { "belowcenter", UnselecteditemClass }, { "abovecenter", UnselecteditemClass }, { "targettext", UnselecteditemClass }, { "sourcetext", UnselecteditemClass }, { "right", UnselecteditemClass }, { "center", UnselecteditemClass }, { "bottomr", UnselecteditemClass }, { "bottoml", UnselecteditemClass }, { "bottomcenter_top", UnselecteditemClass } }; - - @*End:Hidden*@ - - //Define sfdiagramComponent - private SfDiagramComponent DiagramInstance { get; set; } - - public DiagramConstraints Constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - private void OnCreated() - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[2] }); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - - protected override void OnInitialized() - { - - Constraints = DiagramConstraints.Default; - - Node newProject = CreateNode(130, 50, 430, 80, NodeFlowShapes.Terminator, "Start", "newProject", "#ffb6c1"); - Node design = CreateNode(130, 40, 430, 160, NodeFlowShapes.Process, "Design", "design", "#cccccc"); - Node coding = CreateNode(130, 40, 430, 250, NodeFlowShapes.Process, "Coding", "coding", "#cccccc"); - Node testing = CreateNode(130, 40, 430, 360, NodeFlowShapes.Process, "Testing", "testing", "#cccccc"); - Node errors = CreateNode(130, 70, 430, 470, NodeFlowShapes.Decision, "Errors?", "errors", "#90ee90"); - Node designErrors = CreateNode(130, 70, 215, 250, NodeFlowShapes.Decision, "Design Error?", "designErrors", "#90ee90"); - Node completed = CreateNode(130, 40, 430, 570, NodeFlowShapes.Terminator, "End", "completed", "#90ee90"); - - - CreateNodePort(design, "designPort", 0, 0.5); - CreateNodePort(coding, "codingPort1", 1, 0.5); - CreateNodePort(coding, "codingPort2", 0, 0.5); - CreateNodePort(errors, "errorsPort2", 1, 0.5); - CreateNodePort(errors, "errorsPort1", 0, 0.5); - CreateNodePort(errors, "errorsPort2", 1, 0.5); - CreateNodePort(designErrors, "Port1", 0.5, 0); - CreateNodePort(designErrors, "Port2", 0.5, 1); - CreateNodePort(designErrors, "Port3", 1, 0.5); - OrthogonalSegment designOrthogonalSegment = new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Direction = Direction.Left, - Length = 120, - }; - OrthogonalSegment codingOrthogonalSegment = new OrthogonalSegment - { - Type = ConnectorSegmentType.Orthogonal, - Length = 100, - Direction = Direction.Right, - }; - OrthogonalSegment designErrorOrthogonalSegment = new OrthogonalSegment - { - Type = ConnectorSegmentType.Orthogonal, - Length = 50, - Direction = Direction.Top, - }; - DiagramObjectCollection designSegment = new DiagramObjectCollection() { designOrthogonalSegment }; - - DiagramObjectCollection codingSegment = new DiagramObjectCollection() { codingOrthogonalSegment }; - - DiagramObjectCollection designErrorSegment = new DiagramObjectCollection() { designErrorOrthogonalSegment }; - - CreateConnector("newProject", "design", "", "", "", null); - CreateConnector("design", "coding", "", "", "", null); - CreateConnector("coding", "testing", "", "", "", null); - CreateConnector("testing", "errors", "", "", "", null); - CreateConnector("errors", "completed", "No", "", "", null); - CreateConnector("errors", "designErrors", "Yes", "errorsPort1", "Port2", designSegment); - CreateConnector("designErrors", "coding", "No", "Port3", "codingPort2", null); - CreateConnector("designErrors", "design", "Yes", "Port1", "designPort", designErrorSegment); - } - - private void TextChange(TextChangeEventArgs arg) - { - string annotation = "Annotation\ncontent\nchanged"; - UndoStack.Add(annotation); - } - - private void OnHistoryChange(HistoryChangedEventArgs arg) - { - if (RedoStack.Count > 0 && arg.ActionTrigger == HistoryChangedAction.CustomAction) - { - RedoStack.Clear(); - } - - if (arg.ActionTrigger == HistoryChangedAction.CustomAction) - { - if (!(arg.EntryType == HistoryEntryType.PropertyChanged)) - { - string entrylog = null; - if (arg.EntryType == HistoryEntryType.RotationChanged) - { - entrylog = "Rotation\nchanged"; - UndoStack.Add(entrylog); - } - else if (arg.EntryType == HistoryEntryType.CollectionChanged) - { - entrylog = "Collection\nchanged"; - UndoStack.Add(entrylog); - } - else if (arg.EntryType == HistoryEntryType.ConnectionChanged) - { - entrylog = "Connection\nchanged"; - UndoStack.Add(entrylog); - } - else if (arg.EntryType == HistoryEntryType.PositionChanged) - { - entrylog = "Position\nchanged"; - UndoStack.Add(entrylog); - } - else if (arg.EntryType == HistoryEntryType.SizeChanged) - { - entrylog = "Size\nchanged"; - UndoStack.Add(entrylog); - } - - - } - - } - else if (arg.ActionTrigger == HistoryChangedAction.Redo) - { - for (int i = (RedoStack.Count - 1); i >= 0; i--) - { - if (i == (RedoStack.Count - 1)) - { - UndoStack.Add(RedoStack[RedoStack.Count - 1]); - RedoStack.Remove(RedoStack[RedoStack.Count - 1]); - break; - } - } - - } - else if (arg.ActionTrigger == HistoryChangedAction.Undo) - { - for (int i = 0; i < UndoStack.Count; i++) - { - if (i == (UndoStack.Count - 1)) - { - RedoStack.Add(UndoStack[i]); - UndoStack.Remove(UndoStack[i]); - break; - } - } - - } - - IsUndoDisabled = UndoStack.Count > 0 ? false : true; - IsRedoDisabled = RedoStack.Count > 0 ? false : true; - } - - private void group() - { - if (ChangedAction == "Start Group Action") - { - DiagramInstance.StartGroupAction(); - ChangedAction = "End Group Action"; - } - else if (ChangedAction == "End Group Action") - { - DiagramInstance.EndGroupAction(); - ChangedAction = "Start Group Action"; - } - } - - private void OnClearEventTracker() - { - UndoStack.Clear(); - RedoStack.Clear(); - DiagramInstance.ClearHistory(); - IsUndoDisabled = true; - IsRedoDisabled = true; - } - - private void OnUndo() - { - DiagramInstance.Undo(); - } - - private void OnRedo() - { - DiagramInstance.Redo(); - } - - //Create nodes - private Node CreateNode(double unitWidth, double unitHeight, double offsetx, double offsety, NodeFlowShapes shape, string text, string id, string fill) - { - TextStyle textStyle = new TextStyle() { FontSize = 13, TextWrapping = TextWrap.WrapWithOverflow, Bold = true }; - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() { Content = text, Style = textStyle }; - Node node = new Node() - { - Width = unitWidth, - Height = unitHeight, - OffsetX = offsetx, - OffsetY = offsety, - ID = id, - Style = new ShapeStyle() { Fill = fill }, - Shape = new FlowShape() { Shape = shape, Type = shapes.Flow }, - Annotations = new DiagramObjectCollection() { shapeAnnotation } - }; - DiagramNodes.Add(node); - return node; - } - - //Create ports - private void CreateNodePort(Node node, string id, double nodeoffsetx, double nodeoffsety) - { - PointPort nodePort = new PointPort() - { - ID = id, - Offset = new DiagramPoint() { X = nodeoffsetx, Y = nodeoffsety }, - }; - - node.Ports.Add(nodePort); - } - - //Create DiagramConnectors - private void CreateConnector(string sourceNode, string targetNode, string text, - string sourcePort, string targetPort, DiagramObjectCollection segment = null) - { - TextStyle textStyle = new TextStyle() { FontSize = 13, TextWrapping = TextWrap.WrapWithOverflow, Bold = true }; - PathAnnotation pathAnnotation = new PathAnnotation() { Content = text, Style = textStyle }; - Connector connector = new Connector() - { - SourceID = sourceNode, - TargetID = targetNode, - SourcePortID = sourcePort, - TargetPortID = targetPort, - Style = new ShapeStyle() { Fill = "#008000", StrokeWidth = 1 }, - Annotations = new DiagramObjectCollection() { pathAnnotation }, - }; - if (segment != null) - { - connector.Type = ConnectorSegmentType.Orthogonal; - connector.Segments = segment; - } - - DiagramConnectors.Add(connector); - } - - //Update annotation bold property - private void FontBold() - { - UpdateAnnotation("bold", true); - - } - - //Update annotation italic property - private void FontItalic() - { - UpdateAnnotation("italic", true); - - } - - //Update annotation underline property - private void FontUnderLine() - { - UpdateAnnotation("underline", true); - - } - - //Update annotation fontfamily - private void FontChange(ChangeEventArgs args) - { - UpdateAnnotation("fontfamily", args.Value); - - } - - - //Update annotation fontsize value - private void FontSizeChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - FontSizeValue = int.Parse(args.Value.ToString()); - UpdateAnnotation("fontsize", FontSizeValue); - - } - - private void StackLimitChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - stackLimit = int.Parse(args.Value.ToString()); - } - - private void SelectionChanged(SelectionChangedEventArgs args) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0 || DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - IsBold = false; - IsItalic = false; - IsUnderLine = false; - IsFontfamilyEnabled = true; - IsColorPickerDisabled = false; - IsFontSize = true; - TextStyle = "background-color:#cccccc;color:black;width:40px"; - } - else - { - IsBold = true; - IsItalic = true; - IsUnderLine = true; - IsFontfamilyEnabled = false; - IsColorPickerDisabled = true; - IsFontSize = false; - TextStyle = "background-color:#cccccc;color:#757575;width:40px"; - } - } - - //Update fill color for annotations - public void OnFillColorChange(ColorPickerEventArgs args) - { - styleValue = "background-color:" + args.CurrentValue.Hex; - UpdateAnnotation("fontcolor", args.CurrentValue.Hex); - - } - - //Update fill color for annotations - public void OnNodeFillColorChange(ColorPickerEventArgs args) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - DiagramInstance.SelectionSettings.Nodes[0].Style.Fill = args.CurrentValue.Hex; - string stackvaluenodefill = "\nNode" + "\nstyle" + "\nchanged"; - UndoStack.Add(stackvaluenodefill); - } - } - - //Update fill color for annotations - public void OnStrokeFillColorChange(ColorPickerEventArgs args) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - DiagramInstance.SelectionSettings.Nodes[0].Style.StrokeColor = args.CurrentValue.Hex; - string stackvaluenodestroke = "\nNode" + "\nstyle" + "\nchanged"; - UndoStack.Add(stackvaluenodestroke); - } - else - { - DiagramInstance.SelectionSettings.Connectors[0].Style.StrokeColor = args.CurrentValue.Hex; - string stackvaluenodestroke = "\nConnector" + "\nstyle" + "\nchanged"; - UndoStack.Add(stackvaluenodestroke); - } - } - - //Update annotation - private void UpdateAnnotation(string name, object value) - { - if (DiagramInstance.SelectionSettings.Connectors.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Connectors.Count; i++) - { - var connector = DiagramInstance.SelectionSettings.Connectors[i]; - for (var j = 0; j < connector.Annotations.Count; j++) - { - TextStyle annotationStyle = connector.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - - } - } - } - - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - var node = DiagramInstance.SelectionSettings.Nodes[i]; - for (var j = 0; j < node.Annotations.Count; j++) - { - TextStyle annotationStyle = node.Annotations[j].Style; - UpdateAnnotationStyle(name, annotationStyle, value); - } - } - } - } - - //Update annotation style - private void UpdateAnnotationStyle(string option, TextStyle textStyle, object value) - { - switch (option) - { - case "fontsize": - textStyle.FontSize = Double.Parse(value.ToString()); - string stackvaluesize = "\nAnnotation" + "\nfontsize" + "\nchanged"; - UndoStack.Add(stackvaluesize); - break; - case "underline": - textStyle.TextDecoration = textStyle.TextDecoration == TextDecoration.Underline ? TextDecoration.None : TextDecoration.Underline; - string stackvalueDecoration = "\nAnnotation" + "\nfontstyle" + "\nchanged"; - UndoStack.Add(stackvalueDecoration); - break; - case "fontfamily": - textStyle.FontFamily = value.ToString(); - string stackvalueFamily = "\nAnnotation" + "\nfontfamily" + "\nchanged"; - UndoStack.Add(stackvalueFamily); - break; - case "bold": - if (textStyle.Bold) - textStyle.Bold = false; - else - textStyle.Bold = true; - string stackvaluebold = "\nAnnotation" + "\nfontstyle" + "\nchanged"; - UndoStack.Add(stackvaluebold); - break; - case "italic": - if (textStyle.Italic) - textStyle.Italic = false; - else - textStyle.Italic = true; - string stackvalueitalic = "\nAnnotation" + "\nfontstyle" + "\nchanged"; - UndoStack.Add(stackvalueitalic); - break; - case "fontcolor": - textStyle.Color = value.ToString(); - string stackvaluecolor = "\nAnnotation" + "\nfontcolor" + "\nchanged"; - UndoStack.Add(stackvaluecolor); - break; - - } - } - - //Update pathannotation property panel value - private void UpateProprtyPanelValue(PathAnnotation annotation) - { - FontSizeValue = int.Parse(annotation.Style.FontSize.ToString()); - FontStyle = annotation.Style.FontFamily; - FillColor = annotation.Style.Color; - } - - //Update shapeannotation alignment - private void UpdateAnnotation(string id, ShapeAnnotation annotation) - { - DiagramInstance.BeginUpdate(); - if (!IsUpdatePanelOnly) - { - switch (id) - { - case "left": - SetAnnotationPosition(annotation, 0, 0, VerticalAlignment.Top, HorizontalAlignment.Left); - break; - case "right": - SetAnnotationPosition(annotation, 1, 0, VerticalAlignment.Top, HorizontalAlignment.Right); - break; - case "bottoml": - SetAnnotationPosition(annotation, 0, 1, VerticalAlignment.Bottom, HorizontalAlignment.Left); - break; - case "bottomr": - SetAnnotationPosition(annotation, 1, 1, VerticalAlignment.Bottom, HorizontalAlignment.Right); - break; - case "center": - SetAnnotationPosition(annotation, 0.5f, 0.5f, VerticalAlignment.Center, HorizontalAlignment.Center); - break; - case "bottomcenter_top": - SetAnnotationPosition(annotation, 0.5f, 1, VerticalAlignment.Top, HorizontalAlignment.Center); - break; - } - } - - UpdateSelection(id); - UpateProprtyPanel(annotation); - _ = DiagramInstance.EndUpdateAsync(); - } - - //Update shapeannotation property panel - private void UpateProprtyPanel(ShapeAnnotation annotation) - { - FontSizeValue = int.Parse(annotation.Style.FontSize.ToString()); - FontStyle = annotation.Style.FontFamily; - FillColor = annotation.Style.Color; - } - - //Update selection - private void UpdateSelection(string id) - { - for (int i = 0; i < dictionary.Count; i++) - { - var value = dictionary.Values.ElementAt(i); - var key = dictionary.Keys.ElementAt(i); - if (dictionary.ContainsKey(id) && key == id) - { - value = SelectedItemClass; - } - else - { - value = UnselecteditemClass; - } - - dictionary.Remove(key); - dictionary.Add(key, value); - } - - dictionary[SelectedPanel] = UnselecteditemClass; - SelectedPanel = id; - dictionary[id] = SelectedItemClass; - } - - //Set annotation position - private void SetAnnotationPosition(ShapeAnnotation annotation, float offsetX, float offsetY, VerticalAlignment vAlignment, HorizontalAlignment hAlignment) - { - if (annotation.Offset.X != offsetX) - annotation.Offset.X = offsetX; - if (annotation.Offset.Y != offsetY) - annotation.Offset.Y = offsetY; - annotation.VerticalAlignment = vAlignment; - annotation.HorizontalAlignment = hAlignment; - annotation.Margin = new DiagramThickness(); - if (vAlignment == VerticalAlignment.Top && hAlignment == HorizontalAlignment.Left) - { - annotation.HorizontalAlignment = HorizontalAlignment.Right; - annotation.VerticalAlignment = VerticalAlignment.Bottom; - annotation.Margin = new DiagramThickness() { Left = 3, Top = 3 }; - } - else if (vAlignment == VerticalAlignment.Top && hAlignment == HorizontalAlignment.Right) - { - annotation.HorizontalAlignment = HorizontalAlignment.Left; - annotation.VerticalAlignment = VerticalAlignment.Bottom; - annotation.Margin = new DiagramThickness() { Right = 3, Top = 3 }; - } - else if (vAlignment == VerticalAlignment.Bottom && hAlignment == HorizontalAlignment.Left) - { - annotation.HorizontalAlignment = HorizontalAlignment.Right; - annotation.VerticalAlignment = VerticalAlignment.Top; - annotation.Margin = new DiagramThickness() { Left = 3, Bottom = 3 }; - - } - else if (vAlignment == VerticalAlignment.Bottom && hAlignment == HorizontalAlignment.Right) - { - annotation.HorizontalAlignment = HorizontalAlignment.Left; - annotation.VerticalAlignment = VerticalAlignment.Top; - annotation.Margin = new DiagramThickness() { Right = 3, Bottom = 3 }; - } - else if (vAlignment == VerticalAlignment.Top && hAlignment == HorizontalAlignment.Center) - { - annotation.HorizontalAlignment = HorizontalAlignment.Center; - annotation.VerticalAlignment = VerticalAlignment.Bottom; - } - } - - @*Hidden:Lines*@ - public class FontFamily - { - public string Name { get; set; } - } - - private List FontFamilyLists = new List() - { - new FontFamily() { Name = "Arial" }, - new FontFamily() { Name = "Aharoni" }, - new FontFamily() { Name = "Bell MT" }, - new FontFamily() { Name = "Fantasy" }, - new FontFamily() { Name = "Times New Roman" }, - new FontFamily() { Name = "Segoe UI" }, - new FontFamily() { Name = "Verdana" }, - }; - - public class TextWrapping - { - public string Name { get; set; } - } - - private List TextWrappingList = new List() - { - new TextWrapping() { Name = "NoWrap" }, - new TextWrapping() { Name = "Wrap" }, - new TextWrapping() { Name = "WrapWithOverflow" }, - }; - - public class TextOverFlow - { - public string Name { get; set; } - } - - private List TextOverFlowList = new List() - { - new TextOverFlow() { Name = "Ellipsis" }, - new TextOverFlow() { Name = "Wrap" }, - new TextOverFlow() { Name = "Clip" }, - }; - - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/IshikawaDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/IshikawaDiagram.razor deleted file mode 100644 index e2d94824..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/IshikawaDiagram.razor +++ /dev/null @@ -1,154 +0,0 @@ -@page "/diagramcomponent/ishikawadiagram" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample visually represents a simple Ishikawa diagram using the Syncfusion Blazor Diagram component. Diagram nodes and annotations define the structure of the Ishikawa diagram.

-
- -

This example demonstrates how to create an Ishikawa diagram with the Diagram component. Zoom and pan options are enabled, allowing for better navigation. The InteractionController property of the Diagram control is used to enable or disable zoom and pan features. In this sample, read-only mode is enabled to restrict editing.

-
-@*End:Hidden*@ -
-
- - - -
-
- -@code{ - //Hidden:Lines - SfDiagramComponent DiagramInstance { get; set; } - //End:Hidden - //Defines Diagram's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } - //Defines Diagram's connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } - protected override void OnInitialized() - { - - DiagramNodes = new DiagramObjectCollection() - { - new Node() - { - ID = "Result", - OffsetX = 840, - OffsetY = 320, - Height = 100, - Width = 200, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "HIGH PETROL CONSUMPTION IN BIKE", - Style = new TextStyle() - { - Color = "White", - FontFamily = "Segoe UI", - FontSize = 16, - Bold = true - } - } - }, - Style = new ShapeStyle() - { - Fill = "#327FC7", - StrokeColor = "#327FC7" - } - } - }; - DiagramObjectCollection connector1Annotation = CreateAnnotations("MACHINERY", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -45, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector2Annotation = CreateAnnotations("METHOD", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -30, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector3Annotation = CreateAnnotations("PEOPLE", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -30, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector4Annotation = CreateAnnotations("MATERIAL", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -35, y: -25), AnnotationAlignment.After); - DiagramObjectCollection connector5Annotation = CreateAnnotations("MEASUREMENT", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -60, y: -25), AnnotationAlignment.After); - DiagramObjectCollection connector6Annotation = CreateAnnotations("ENVIRONMENT", "#327FC7", "Segoe UI", 16,"", true, TextDecoration.Underline, 0, new DiagramPoint(x: -45, y: -25), AnnotationAlignment.After); - DiagramObjectCollection connector7Annotation = CreateAnnotations("Wornout-Pistons", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector8Annotation = CreateAnnotations("Fast Driving", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector9Annotation = CreateAnnotations("Wrong Tire Pressure", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector10Annotation = CreateAnnotations("Wrong Gear", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector11Annotation = CreateAnnotations("Maintenance Habit", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector12Annotation = CreateAnnotations("Poor Quality Petrol", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector13Annotation = CreateAnnotations("Incorrect Lubricant", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector14Annotation = CreateAnnotations("Do Not Reset Odometer Properly", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector15Annotation = CreateAnnotations("Extreme Weather Condition", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: 0, y: -25), AnnotationAlignment.Before); - DiagramObjectCollection connector16Annotation = CreateAnnotations("No Owner Manual", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: -30, y: -25), AnnotationAlignment.After); - DiagramObjectCollection connector17Annotation = CreateAnnotations("Wrong Oil", "black", "Segoe UI", 11,"", false, TextDecoration.None, 0, new DiagramPoint(x: -15, y: -25), AnnotationAlignment.After); - - DiagramConnectors = new DiagramObjectCollection(); - CreateConnector("connector0", "", "Result", new DiagramPoint() { X = 40, Y = 320 }, null, 1, new DiagramObjectCollection()); - CreateConnector("connector1", "", "", new DiagramPoint() { X = 130, Y = 100 }, new DiagramPoint() { X = 240, Y = 320 }, 1, connector1Annotation); - CreateConnector("connector2", "", "", new DiagramPoint() { X = 330, Y = 100 }, new DiagramPoint() { X = 440, Y = 320 }, 1, connector2Annotation); - CreateConnector("connector3", "", "", new DiagramPoint() { X = 530, Y = 100 }, new DiagramPoint() { X = 640, Y = 320 }, 1, connector3Annotation); - CreateConnector("connector4", "", "", new DiagramPoint() { X = 170, Y = 540 }, new DiagramPoint() { X = 280, Y = 320 }, 1, connector4Annotation); - CreateConnector("connector5", "", "", new DiagramPoint() { X = 370, Y = 540 }, new DiagramPoint() { X = 480, Y = 320 }, 1, connector5Annotation); - CreateConnector("connector6", "", "", new DiagramPoint() { X = 570, Y = 540 }, new DiagramPoint() { X = 680, Y = 320 }, 1, connector6Annotation); - - CreateConnector("connector7", "", "", new DiagramPoint() { X = 50, Y = 160 }, new DiagramPoint() { X = 160, Y = 160 }, 1, connector7Annotation); - CreateConnector("connector8", "", "", new DiagramPoint() { X = 240, Y = 160 }, new DiagramPoint() { X = 360, Y = 160 }, 1, connector8Annotation); - CreateConnector("connector9", "", "", new DiagramPoint() { X = 60, Y = 220 }, new DiagramPoint() { X = 190, Y = 220 }, 1, connector9Annotation); - CreateConnector("connector10", "", "", new DiagramPoint() { X = 260, Y = 220 }, new DiagramPoint() { X = 390, Y = 220 }, 1, connector10Annotation); - CreateConnector("connector11", "", "", new DiagramPoint() { X = 460, Y = 220 }, new DiagramPoint() { X = 590, Y = 220 }, 1, connector11Annotation); - CreateConnector("connector12", "", "", new DiagramPoint() { X = 80, Y = 380 }, new DiagramPoint() { X = 250, Y = 380 }, 1, connector12Annotation); - CreateConnector("connector13", "", "", new DiagramPoint() { X = 60, Y = 480 }, new DiagramPoint() { X = 200, Y = 480 }, 1, connector13Annotation); - CreateConnector("connector14", "", "", new DiagramPoint() { X = 240, Y = 440 }, new DiagramPoint() { X = 420, Y = 440 }, 1, connector14Annotation); - CreateConnector("connector15", "", "", new DiagramPoint() { X = 440, Y = 440 }, new DiagramPoint() { X = 620, Y = 440 }, 1, connector15Annotation); - CreateConnector("connector16", "", "", new DiagramPoint() { X = 480, Y = 180 }, new DiagramPoint() { X = 540, Y = 220 }, 1, connector16Annotation); - CreateConnector("connector17", "", "", new DiagramPoint() { X = 120, Y = 440 }, new DiagramPoint() { X = 160, Y = 480 }, 1, connector17Annotation); - - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string id, string source, string target, DiagramPoint sourcePoint, DiagramPoint targetPoint, int lineWidth, DiagramObjectCollection pathAnnotations) - { - Connector connector = new Connector() - { - ID = id, - SourceID = source, - TargetID = target, - SourcePoint = sourcePoint, - TargetPoint = targetPoint, - Style = new ShapeStyle { StrokeColor = "black", StrokeWidth = lineWidth }, - Annotations = pathAnnotations, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.Arrow,Style = new ShapeStyle() { Fill = "#327FC7",StrokeColor = "#327FC7" } }, - }; - - DiagramConnectors.Add(connector); - } - - // Method is used to create a Annotations for the connectors. - private DiagramObjectCollection CreateAnnotations(string content1, string color, string fontFamily, int fontSize,string fill, bool bold, TextDecoration decoration, double offset, DiagramPoint displacement,AnnotationAlignment alignment ) - { - DiagramObjectCollection Annotations = new DiagramObjectCollection() - { - new PathAnnotation() { Content = content1, Style = new TextStyle() { Bold = bold, Color= color, FontFamily = fontFamily, FontSize = fontSize, TextDecoration = decoration , TextWrapping = TextWrap.NoWrap, Fill = fill },Offset = offset, Displacement = displacement, Alignment = alignment,} - }; - return Annotations; - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/KeyboardInteraction.razor b/Common/Pages/DiagramComponent/DiagramComponent/KeyboardInteraction.razor deleted file mode 100644 index 5c54ba7f..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/KeyboardInteraction.razor +++ /dev/null @@ -1,397 +0,0 @@ -@page "/diagramcomponent/keyboard-interaction" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample demonstrates keyboard interaction with the Diagram component through shortcut keys, managed by the command manager.

-
- -

This example shows how to interact with the Diagram component using shortcut keys. The CommandManager property maps KeyboardCommands to key gestures. Alongside the built-in commands, several custom commands are added, and some default commands (e.g., nudge) are overridden. For instance, pressing the arrow keys moves the selection to the next node rather than shifting selected objects. The property panel lists various interactions and their associated key gestures.

-
-@*End:Hidden*@ - -@*Hidden:Lines*@ - -@*End:Hidden*@ -
-
- - - - - - - - - - - -
-
-@*Hidden:Lines*@ -
-
-

Built-In Commands

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
Command
-
-
Gesture
-
Select All Ctrl + A
CutCtrl + X
CopyCtrl + C
PasteCtrl + V
UndoCtrl + Z
RedoCtrl + Y
DeleteDelete
Edit AnnotationF2
CancelEsc
-
-
-
-

Custom Commands

-
- - - - - - - - - - - - - - - -
-
- Command -
-
-
Gesture
-
NodeGroupCtrl + G
UngroupCtrl + U
-
-
-
-

Modified Commands

-
- - - - - - - - - - - - - - - - - - - - - - - -
-
- Command -
-
-
Gesture
-
Navigate to Parent Node Up Arrow
Navigate to Child Node Down Arrow
Navigate to Previous Child Left Arrow
Navigate to Next Child Right Arrow
-
-
-
-@*End:Hidden*@ -@code -{ - private SfDiagramComponent DiagramInstance { get; set; } - private LayoutType DiagramLayoutType { get; set; } = LayoutType.HierarchicalTree; - - private DiagramObjectCollection KeyboardCommands { get; set; } - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - KeyboardCommands = new DiagramObjectCollection() - { - CreateCustomCommand("customGroup", DiagramKeys.G, ModifierKeys.Control), - CreateCustomCommand("customUngroup", DiagramKeys.U, ModifierKeys.Control), - CreateCustomCommand("navigateUp", DiagramKeys.ArrowUp, ModifierKeys.None), - CreateCustomCommand("navigateDown", DiagramKeys.ArrowDown, ModifierKeys.None), - CreateCustomCommand("navigateLeft", DiagramKeys.ArrowLeft, ModifierKeys.None), - CreateCustomCommand("navigateRight", DiagramKeys.ArrowRight, ModifierKeys.None), - }; - } - - // Method to create custom command. - private KeyboardCommand CreateCustomCommand(string name, DiagramKeys key, ModifierKeys modifierkey) - { - KeyboardCommand command = new KeyboardCommand() - { - Name = name, - Gesture = new KeyGesture() { Key = key, Modifiers = modifierkey } - }; - return command; - } - - // Method to create common style for node - private void NodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - - if (node.Data != null) - { - DataModel organizationData = node.Data as DataModel; - ShapeAnnotation annotation = new ShapeAnnotation() { Content = organizationData.Id, Offset = new DiagramPoint(0.5, 0.5), Style = new TextStyle() { Color = "white" } }; - node.Width = 70; - node.Height = 70; - node.Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Ellipse, CornerRadius = 10 }; - node.Style.Fill = organizationData.Fill; - node.Style.StrokeColor = "white"; - if (node.Annotations.Count == 0) - { - node.Annotations = new DiagramObjectCollection() { annotation }; - } - } - } - - public class DataModel - { - public string Id { get; set; } - public string Fill { get; set; } - public string Ancestor { get; set; } - } - - // Method to determine whether this command can execute or not. - public void CanExecute(CommandKeyArgs args) - { - args.CanExecute = true; - } - - // Method to execute the custom command - public void ExecuteCommand(CommandKeyArgs obj) - { - DiagramInstance.BeginUpdate(); - switch (obj.Name) - { - case "customGroup": - DiagramInstance.Group(); - break; - case "customUngroup": - DiagramInstance.Ungroup(); - break; - case "navigateUp": - _ = this.NavigateLevels(false); - break; - case "navigateDown": - _ = this.NavigateLevels(true); - break; - case "navigateLeft": - _ = this.NavigateToSiblings(false); - break; - case "navigateRight": - _ = this.NavigateToSiblings(true); - break; - } - - _ = DiagramInstance.EndUpdateAsync(); - } - - public List DataSource = new List() - { - new DataModel { Id = "A", Fill = "#1ba1e2" }, - new DataModel { Id = "B", Ancestor = "A", Fill = "#e41404" }, - new DataModel { Id = "C", Ancestor = "A", Fill = "#e41404" }, - new DataModel { Id = "D", Ancestor = "A", Fill = "#e41404" }, - new DataModel { Id = "E", Ancestor = "B", Fill = "#f09609" }, - new DataModel { Id = "F", Ancestor = "B", Fill = "#f09609" }, - new DataModel { Id = "G", Ancestor = "D", Fill = "#f09609" }, - new DataModel { Id = "H", Ancestor = "D", Fill = "#f09609" }, - new DataModel { Id = "I", Ancestor = "F", Fill = "#e41404" }, - new DataModel { Id = "J", Ancestor = "F", Fill = "#e41404" }, - new DataModel { Id = "K", Ancestor = "H", Fill = "#e41404" }, - new DataModel { Id = "L", Ancestor = "H", Fill = "#e41404" }, - new DataModel { Id = "M", Ancestor = "I", Fill = "#2b862b" }, - new DataModel { Id = "N", Ancestor = "I", Fill = "#2b862b" }, - new DataModel { Id = "O", Ancestor = "K", Fill = "#2b862b" }, - new DataModel { Id = "P", Ancestor = "K", Fill = "#2b862b" }, - new DataModel { Id = "Q", Ancestor = "N", Fill = "#1ba1e2" }, - new DataModel { Id = "R", Ancestor = "N", Fill = "#1ba1e2" }, - new DataModel { Id = "S", Ancestor = "P", Fill = "#1ba1e2" }, - new DataModel { Id = "T", Ancestor = "P", Fill = "#1ba1e2" } - }; - - //This method is used to determine the parent node - private DiagramObjectCollection GetNode(string name, bool isParent) - { - DiagramObjectCollection nodes = new DiagramObjectCollection(); - Node node; - Connector connector = DiagramInstance.GetObject(name) as Connector; - if (connector != null) - { - string Id = (isParent ? connector.SourceID : connector.TargetID); - node = DiagramInstance.GetObject(Id) as Node; - nodes.Add(node); - } - - return nodes; - } - - @*Hidden:Lines*@ -#pragma warning disable 1998 - @*End:Hidden*@ - // This method is used to select the node - private async Task SelectNode(ObservableCollection node) - { - if (node != null && node.Count > 0) - { - DiagramInstance.ClearSelection(); - DiagramInstance.Select(node, false); - } - } - @*Hidden:Lines*@ -#pragma warning restore 1998 - @*End:Hidden*@ - - // This method is used to select the node(up or down) through arrow key - private async Task NavigateLevels(Boolean isParent) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - Node node = DiagramInstance.SelectionSettings.Nodes[0] as Node; - if (node.ID != "") - { - List inEdges = node.InEdges; - List outEdges = node.OutEdges; - List edges = isParent ? outEdges : inEdges; - if (edges.Count > 0) - { - string connectorId = edges[0]; - DiagramObjectCollection altNode = this.GetNode(connectorId, (isParent ? false : true)) as DiagramObjectCollection; - await this.SelectNode(altNode); - } - } - } - } - - // This method is used to select the sibling node(left or right) through arrow key - private async Task NavigateToSiblings(bool isRightSibling) - { - if (DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - Node child = DiagramInstance.SelectionSettings.Nodes[0] as Node; - if (child != null) - { - List inEdges = child.InEdges; - if (inEdges.Count > 0) - { - string connectorId = inEdges[0]; - string altConnectorId = ""; - DiagramObjectCollection parent = this.GetNode(connectorId, true); - if (parent != null && parent.Count > 0) - { - List edges = (parent[0] as Node).OutEdges; - for (int i = 0; i < edges.Count; i++) - { - if (edges[i] == connectorId) - { - if ((isRightSibling && edges.Count - 1 >= i + 1) || (!isRightSibling && i - 1 >= 0)) - { - altConnectorId = isRightSibling ? edges[i + 1] : edges[i - 1]; - } - } - } - - DiagramObjectCollection sibling = this.GetNode(altConnectorId, false); - await this.SelectNode(sibling); - } - } - } - } - } -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/LocalData.razor b/Common/Pages/DiagramComponent/DiagramComponent/LocalData.razor deleted file mode 100644 index 3f7884af..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/LocalData.razor +++ /dev/null @@ -1,137 +0,0 @@ -@page "/diagramcomponent/local-data" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable - -

This sample demonstrates visualizing species classifications using a hierarchical tree layout algorithm, with data binding enabled through Data Manager support.

-
- -

This example shows how to generate a diagram from external data. Use the DataSourceSettings property to map an external data source to the Diagram component. The ID property defines a unique field in the data, while the ParentID property specifies the relationships among data objects.

-
-@*End:Hidden*@ -
-
- - - - - - - - -
-
- -@code -{ - public LayoutType DiagramLayoutType { get; set; } = LayoutType.HierarchicalTree; - public int HorizontalSpacing { get; set; } = 15; - public int VerticalSpacing { get; set; } = 50; - public double MarginLeft { get; set; } = 10; - public double MarginRight { get; set; } = 10; - public double MarginTop { get; set; } = 10; - private SfDiagramComponent DiagramInstance { get; set; } - // Defines default values for Node object - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - - DataModel data = node.Data as DataModel; - node.Width = 95; - node.Height = 30; - - node.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle }; - node.Style = new ShapeStyle() { StrokeWidth = 1, Fill = "#6A51CB", StrokeColor = "#433285" }; - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - ID = "label1", - Content = data.Name, - Style = new TextStyle() { Color = "White",Fill="Transparent" } - } - }; - node.Ports = new DiagramObjectCollection() - { - new PointPort() - { ID="port1", - Offset =new DiagramPoint(){X=0,Y=0.5}, - Width=10, - Height=10, - Visibility = PortVisibility.Hidden, - Style = new ShapeStyle(){ Fill="Black"} - }, - new PointPort() - { - ID="port2", - Offset =new DiagramPoint(){X=1,Y=0.5}, - Width=10, - Height=10, - Visibility = PortVisibility.Hidden, - Style = new ShapeStyle(){ Fill="Black"} - }, - }; - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - // Defines default values for Connector object - private void OnConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Orthogonal; - (connector as Connector).TargetDecorator.Shape = DecoratorShape.None; - (connector as Connector).SourceDecorator.Shape = DecoratorShape.None; - (connector as Connector).Style = new ShapeStyle() { StrokeColor = "#4d4d4d" }; - } - - public class DataModel - { - public string Name { get; set; } - public string Category { get; set; } - public string Content { get; set; } - }; - - public List DataSource = new List() - { - new DataModel{ Name = "Species" }, - new DataModel{ Name = "Plants", Category = "Species" }, - new DataModel{ Name = "Fungi", Category = "Species" }, - new DataModel{ Name = "Lichens", Category = "Species" }, - new DataModel{ Name = "Animals", Category = "Species" }, - new DataModel{ Name = "Mosses", Category = "Plants" }, - new DataModel{ Name = "Ferns", Category = "Plants" }, - new DataModel{ Name = "Gymnosperms", Category = "Plants" }, - new DataModel{ Name = "Dicotyledens", Category = "Plants" }, - new DataModel{ Name = "Monocotyledens", Category = "Plants" }, - new DataModel{ Name = "Invertebrates", Category = "Animals" }, - new DataModel{ Name = "Vertebrates", Category = "Animals" }, - new DataModel{ Name = "Insects", Category = "Invertebrates" }, - new DataModel{ Name = "Molluscs", Category = "Invertebrates" }, - new DataModel{ Name = "Crustaceans", Category = "Invertebrates" }, - new DataModel{ Name = "Others", Category = "Invertebrates" }, - new DataModel{ Name = "Fish", Category = "Vertebrates" }, - new DataModel{ Name = "Amphibians", Category = "Vertebrates" }, - new DataModel{ Name = "Reptiles", Category = "Vertebrates" }, - new DataModel{ Name = "Birds", Category = "Vertebrates" }, - new DataModel{ Name = "Mammals", Category = "Vertebrates" } - }; - - @*Hidden:Lines*@ - public void Dispose() - { - if (DataSource != null) - { - DataSource.Clear(); - DataSource = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/LogicCircuitDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/LogicCircuitDiagram.razor deleted file mode 100644 index dd8b5dfe..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/LogicCircuitDiagram.razor +++ /dev/null @@ -1,580 +0,0 @@ -@page "/diagramcomponent/logic-circuit" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable - - -

This sample visualizes implementation of three input Boolean functions using universal logic gates. The shapes for the logic gates were designed with the Diagram's path node feature.

-
- -

This example shows how to create Boolean algebraic laws and theorems using diagram Path shapes. The Type property of a shape can be used to create Path nodes. The Data property of a shape allows you to define the path data of the path shape.


-
-@*End:Hidden*@ - -@*Hidden:Lines*@ -
- - -
-
-
-
- @*End:Hidden*@ -
- - - -
-
- - - - -
- @*Hidden:Lines*@ -
-
-@*End:Hidden*@ - -@code -{ - @*Hidden:Lines*@ - public string OrPathData { get; set; } - public string AndPathData { get; set; } - public string NotPathData { get; set; } - public string NorPathData { get; set; } - public string NandPathData { get; set; } - public string BufferPathData { get; set; } - public string NorGatePathData { get; set; } - public string XorGatePathData { get; set; } - public string EmitterPathData { get; set; } - public string NandGatePathData { get; set; } - public string LatchPathData { get; set; } - public string FlipFlopPathData { get; set; } - public string SyncPathData { get; set; } - public string JKPathData { get; set; } - public string DPathData { get; set; } - double SymbolHeight { get; set; } = 60; - double SymbolWidth { get; set; } = 62; - double align = 10; - @*End:Hidden*@ - - //Refer to diagram - SfDiagramComponent DiagramInstance { get; set; } - - //Refer to palette - SfSymbolPaletteComponent PaletteInstance { get; set; } - - //Defines palette collection - public DiagramObjectCollection DiagramPalettes { get; set; } - - //Define nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } - - //Define Connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } - - //Define symbol margin - SymbolMargin symbolMargin = new SymbolMargin() { Left = 10, Right = 10, Top = 10, Bottom = 10 }; - - //Define port collection - public DiagramObjectCollection OrPorts { get; set; } - public DiagramObjectCollection OrPortPallatte { get; set; } - public DiagramObjectCollection NotPort { get; set; } - public DiagramObjectCollection AndPort { get; set; } - public DiagramObjectCollection AndPortPallette { get; set; } - public DiagramObjectCollection FlipPorts { get; set; } - public DiagramObjectCollection JKPorts { get; set; } - public DiagramObjectCollection JKPortsPallatte { get; set; } - public DiagramObjectCollection JKPortsFlipFlopPallatte { get; set; } - public DiagramObjectCollection rPorts; - public DiagramObjectCollection rPortsPallatte; - - //Define symbol info - public SymbolInfo SymbolInfo { get; set; } - - //Define nodes collection - public DiagramObjectCollection Nodes { get; set; } - - //Define connectors collection - public DiagramObjectCollection Connectors { get; set; } - - protected override void OnInitialized() - { - - SymbolInfo = new SymbolInfo() - { - Fit = true - }; - @*Hidden:Lines*@ - DPathData = "M21.2,13.5h57v73h-57V13.5z M78.2,29.5h20 M78.2,70.5h20 M1.2,29.5h20 M1.2,70.5h20 M26.6,33.4 c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.8-0.7,1.1-1.2c0.3-0.5,0.4-1.1,0.4-1.8v-0.5c0-0.7-0.1-1.2-0.4-1.7c-0.3-0.5-0.6-0.9-1.1-1.2 s-1-0.4-1.6-0.4h-2v7.1H26.6z M26.7,27c0.7,0,1.2,0.2,1.6,0.7c0.4,0.4,0.6,1.1,0.6,1.9V30c0,0.8-0.2,1.5-0.6,1.9 c-0.4,0.4-1,0.7-1.7,0.7h-1V27H26.7z M48.9,56.6c1,0,1.9-0.2,2.7-0.7c0.8-0.4,1.4-1.1,1.8-1.9c0.4-0.8,0.6-1.8,0.6-2.8v-0.6 c0-1.1-0.2-2-0.6-2.8c-0.4-0.8-1-1.5-1.8-1.9c-0.8-0.4-1.7-0.7-2.7-0.7h-3.4v11.4H48.9z M48.9,46.8c1,0,1.8,0.3,2.3,1 c0.5,0.7,0.8,1.6,0.8,2.8v0.6c0,1.2-0.3,2.1-0.8,2.8s-1.4,1-2.4,1h-1.3v-8.2H48.9z M74.1,29.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V29.6z M73.1,30.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V30.1z M74.1,70.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V70.6z M73.1,71.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V71.1z M68.2,65.5h6 M31.2,70.5l-10-5v10L31.2,70.5z"; - JKPathData = "M22.5,14.5h56v72h-56V14.5z M28.9,31.4c0,0.4-0.1,0.7-0.3,1s-0.5,0.4-0.9,0.4c-0.4,0-0.8-0.1-1-0.3 s-0.3-0.6-0.3-1h-0.9c0,0.7,0.2,1.2,0.6,1.5c0.4,0.3,0.9,0.5,1.6,0.5c0.6,0,1.2-0.2,1.6-0.5s0.6-0.9,0.6-1.5v-5.1h-0.9V31.4z M30.4,73.4h1.1l-3-3.7l2.8-3.4h-1l-2.6,3.2H27v-3.2H26v7.1H27v-3.2h0.9L30.4,73.4z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M50.7,80.3 c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4 s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6c0.2-0.3,0.3-0.6,0.3-1 c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H48v7.1h0.9v-3.1H50.7z M48.9,77h1.6c0.5,0,0.9,0.1,1.1,0.3s0.4,0.5,0.4,0.9 c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V77z M51.5,23.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C51.9,22.9,51.8,23.2,51.5,23.4z M78.5,29.5h20 M78.5,70.5h20 M2.5,29.5h20 M2.5,70.5h20 M68.5,65.5h6 M2.5,50.5h20 M31.9,51.5 l-9.4-4.7v9.4L31.9,51.5z M50.5,14.5v-10 M50.5,96.5v-10"; - SyncPathData = "M21.5,11.5h56v72h-56V11.5z M28.5,29.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,28.9,28.8,29.2,28.5,29.4z M27.7,67.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,64h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V64z M73.5,26.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V26.2z M72.6,27.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V27.4z M73.5,67.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V67.2z M72.6,68.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V68.4z M77.5,26.5 h20 M77.5,67.5h20 M1.5,26.5h20 M1.5,67.5h20 M67.5,62.5h6 M1.5,47.5h20 M30.9,47.5l-9.4-4.7v9.4L30.9,47.5z"; - LatchPathData = "M21.5,11.5h57v73h-57V11.5z M28.5,30.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,29.9,28.8,30.2,28.5,30.4z M27.7,69.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,66h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V66z M49.5,54.6c1.6,0,2.9-0.4,3.8-1.3c0.9-0.9,1.4-2.1,1.4-3.6 v-1.5c0-1.5-0.5-2.7-1.4-3.6c-0.9-0.9-2.1-1.4-3.7-1.4H46v11.4H49.5z M49.5,44.7c1.1,0,1.9,0.3,2.4,0.9c0.5,0.6,0.8,1.4,0.8,2.5v1.5 c0,1.1-0.3,1.9-0.8,2.5s-1.4,0.9-2.5,0.9h-1.5v-8.3H49.5z M74.5,27.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9 c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2 l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V27.2z M73.6,28.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6 c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6 s0.5,1,0.5,1.6V28.4z M74.5,68.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V68.2z M73.6,69.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V69.4z M78.5,27.5h20 M78.5,68.5h20 M1.5,27.5h20 M1.5,68.5h20 M68.5,63.5h6"; - FlipFlopPathData = "M21.5,13.5h57v73h-57V13.5z M29.8,26.2h-5.4V27h2.2v6.4h0.9V27h2.2V26.2z M54.2,45.2h-9v1.5h3.5v9.9h1.9v-9.9 h3.6V45.2z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M78.5,29.5h20 M78.5,70.5h20 M1.5,29.5h20 M1.5,70.5h20 M68.5,65.5h6 M31.5,70.5l-10-5 v10L31.5,70.5z"; - NandGatePathData = "M173.2472,549L173.2472,539 M173.2472,466L173.2472,456 M154.6192,523L145.2472,518.305L145.2472,527.695L154.6192,523z M191.2472,518L197.2472,518 M125.2472,523L145.2472,523 M125.2472,482L145.2472,482 M201.2472,523L221.2472,523 M201.2472,482L221.2472,482 M196.2262,523.597C196.2162,524.421,196.0452,525.053,195.7132,525.494C195.3812,525.935,194.9122,526.156,194.3072,526.156C193.7012,526.156,193.2282,525.921,192.8892,525.453C192.5482,524.984,192.3782,524.343,192.3782,523.529L192.3782,523.006C192.3882,522.206,192.5622,521.58,192.9022,521.129C193.2432,520.678,193.7082,520.453,194.2972,520.453C194.9152,520.453,195.3922,520.68,195.7252,521.134C196.0592,521.588,196.2262,522.233,196.2262,523.07L196.2262,523.597z M197.1632,523.075C197.1632,522.381,197.0462,521.775,196.8112,521.256C196.5772,520.737,196.2422,520.339,195.8092,520.062C195.3732,519.785,194.8702,519.647,194.2972,519.647C193.7372,519.647,193.2402,519.786,192.8052,520.064C192.3712,520.343,192.0342,520.744,191.7972,521.268C191.5592,521.792,191.4402,522.396,191.4402,523.08L191.4402,523.592C191.4472,524.263,191.5702,524.853,191.8092,525.362C192.0492,525.872,192.3852,526.264,192.8172,526.539C193.2502,526.814,193.7472,526.952,194.3072,526.952C194.5672,526.952,194.8142,526.922,195.0492,526.864L196.5482,528.055L197.1872,527.464L195.9182,526.468C196.3112,526.188,196.6182,525.8,196.8362,525.304C197.0542,524.807,197.1632,524.216,197.1632,523.529L197.1632,523.075z M174.1562,473.249C174.4002,473.439,174.5222,473.709,174.5222,474.057C174.5222,474.405,174.3912,474.681,174.1272,474.882C173.8632,475.084,173.4842,475.185,172.9892,475.185C172.4592,475.185,172.0352,475.061,171.7172,474.812C171.4002,474.562,171.2412,474.223,171.2412,473.793L170.2992,473.793C170.2992,474.207,170.4142,474.576,170.6432,474.902C170.8732,475.228,171.1992,475.484,171.6222,475.671C172.0452,475.858,172.5012,475.952,172.9892,475.952C173.7412,475.952,174.3422,475.778,174.7912,475.432C175.2402,475.085,175.4652,474.624,175.4652,474.047C175.4652,473.686,175.3852,473.372,175.2232,473.105C175.0622,472.838,174.8142,472.604,174.4802,472.404C174.1472,472.204,173.6852,472.021,173.0942,471.854C172.5042,471.688,172.0852,471.505,171.8402,471.304C171.5942,471.104,171.4712,470.858,171.4712,470.568C171.4712,470.206,171.6002,469.923,171.8592,469.719C172.1172,469.516,172.4782,469.414,172.9402,469.414C173.4382,469.414,173.8242,469.537,174.0982,469.784C174.3712,470.03,174.5082,470.369,174.5082,470.8L175.4502,470.8C175.4502,470.406,175.3462,470.043,175.1352,469.711C174.9262,469.379,174.6292,469.119,174.2462,468.93C173.8642,468.741,173.4292,468.647,172.9402,468.647C172.2252,468.647,171.6432,468.83,171.1952,469.196C170.7472,469.562,170.5232,470.025,170.5232,470.585C170.5232,471.08,170.7072,471.496,171.0722,471.833C171.4392,472.17,172.0242,472.454,172.8282,472.685C173.4702,472.871,173.9122,473.059,174.1562,473.249z M171.6712,528.511L173.1062,528.511C173.6012,528.515,173.9792,528.633,174.2422,528.868C174.5042,529.103,174.6352,529.44,174.6352,529.881C174.6352,530.285,174.4972,530.608,174.2232,530.85C173.9472,531.091,173.5772,531.211,173.1112,531.211L171.6712,531.211L171.6712,528.511z M174.8842,534.854L175.8902,534.854L175.8902,534.795L174.2202,531.778C174.6462,531.615,174.9782,531.369,175.2192,531.041C175.4572,530.712,175.5772,530.326,175.5772,529.883C175.5772,529.187,175.3612,528.656,174.9302,528.292C174.4992,527.927,173.8832,527.745,173.0822,527.745L170.7282,527.745L170.7282,534.854L171.6712,534.854L171.6712,531.978L173.3412,531.978L174.8842,534.854z M196.2262,482.597C196.2162,483.421,196.0452,484.053,195.7132,484.494C195.3812,484.935,194.9122,485.156,194.3072,485.156C193.7012,485.156,193.2282,484.921,192.8892,484.453C192.5482,483.984,192.3782,483.343,192.3782,482.529L192.3782,482.006C192.3882,481.206,192.5622,480.58,192.9022,480.129C193.2432,479.678,193.7082,479.453,194.2972,479.453C194.9152,479.453,195.3922,479.68,195.7252,480.134C196.0592,480.588,196.2262,481.233,196.2262,482.07L196.2262,482.597z M197.1632,482.075C197.1632,481.381,197.0462,480.775,196.8112,480.256C196.5772,479.737,196.2422,479.339,195.8092,479.062C195.3732,478.785,194.8702,478.647,194.2972,478.647C193.7372,478.647,193.2402,478.786,192.8052,479.064C192.3712,479.343,192.0342,479.744,191.7972,480.268C191.5592,480.792,191.4402,481.396,191.4402,482.08L191.4402,482.592C191.4472,483.263,191.5702,483.853,191.8092,484.362C192.0492,484.872,192.3852,485.264,192.8172,485.539C193.2502,485.814,193.7472,485.952,194.3072,485.952C194.5672,485.952,194.8142,485.922,195.0492,485.864L196.5482,487.055L197.1872,486.464L195.9182,485.468C196.3112,485.188,196.6182,484.8,196.8362,484.304C197.0542,483.807,197.1632,483.216,197.1632,482.529L197.1632,482.075z M173.0302,499.315C174.0512,499.315,174.8302,499.641,175.3662,500.29C175.9022,500.94,176.1712,501.881,176.1712,503.113L176.1712,503.745C176.1602,504.956,175.8782,505.885,175.3232,506.532C174.7682,507.179,173.9732,507.503,172.9362,507.503L171.6472,507.503L171.6472,499.315L173.0302,499.315z M172.9442,509.097C173.9712,509.097,174.8812,508.875,175.6752,508.433C176.4692,507.99,177.0812,507.36,177.5112,506.542C177.9402,505.725,178.1552,504.776,178.1552,503.698L178.1552,503.128C178.1552,502.065,177.9412,501.123,177.5152,500.3C177.0882,499.477,176.4842,498.842,175.7062,498.394C174.9282,497.946,174.0352,497.722,173.0302,497.722L169.6712,497.722L169.6712,509.097L172.9442,509.097z M150.7652,479.511C151.4612,479.518,151.9992,479.745,152.3792,480.193C152.7582,480.641,152.9472,481.269,152.9472,482.077L152.9472,482.492C152.9472,483.323,152.7462,483.963,152.3442,484.413C151.9422,484.863,151.3802,485.087,150.6572,485.087L149.6712,485.087L149.6712,479.511L150.7652,479.511z M150.7012,485.854C151.3392,485.848,151.8982,485.709,152.3792,485.439C152.8582,485.169,153.2282,484.781,153.4862,484.277C153.7462,483.772,153.8752,483.185,153.8752,482.514L153.8752,482.06C153.8722,481.406,153.7402,480.826,153.4822,480.322C153.2232,479.817,152.8562,479.428,152.3812,479.155C151.9052,478.881,151.3582,478.745,150.7402,478.745L148.7332,478.745L148.7332,485.854L150.7012,485.854z M145.2382,466L201.2552,466L201.2552,539L145.2382,539z"; - EmitterPathData = "M75.5,49.5l-52,28v-56L75.5,49.5z M75.5,49.5h24 M1.5,49.5h22 M44.5,45.5h-5v8h5V45.5z M39.5,45.5h10 M34.5,53.5h10"; - XorGatePathData = "M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M73.4,48.5L73.4,48.5 M17.5,76.8L17.5,76.8c6.7-18.2,6.7-38.1,0-56.3l0-0.1 M77.5,48.5h22 M0,32.5h21 M0,65.5h21"; - NorGatePathData = "M14.5055,0.00562288 C14.3031,0.00562288 14.1078,0.0433293 13.9072,0.0542443 L13.9072,49.959 C14.1078,49.9699 14.3031,50.0079 14.5055,50.0079 C23.223,50.0079 30.29,28.3205 30.29,25.004 C30.29,22.2835 23.223,0.00562288 14.5055,0.00562288 z M13.9074,9.48911 L-0.00120828,9.48911 M13.9074,40.5218 L-0.00120828,40.5218 M36.3023,25.005 L50.0033,25.005 M36.2352,25.005 C36.2352,29.5191 35.0457,33.1879 33.5781,33.1879 C32.1105,33.1879 30.921,29.5191 30.921,25.005 C30.921,20.4908 32.1105,16.8223 33.5781,16.8223 C35.0457,16.8223 36.2352,20.4908 36.2352,25.005 z"; - BufferPathData = "M170.354,66.6523000000002L199.753,83.6253000000002L170.354,100.5983L170.354,66.6523000000002zM199.7534,83.6255000000001L214.5004,83.6255000000001M154.5,83.6255000000001L170.354,83.6255000000001"; - NandPathData = "M49.5,76.5h-28v-56h28c15.5,0,28,12.5,28,28v0C77.5,64,65,76.5,49.5,76.5z M83.5,48.5h16 M1.5,32.5h20 M1.5,65.5h20 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S82.2,45.5,80.5,45.5z"; - NorPathData = "M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M83.5,48.5h16 M1.5,32.5h24 M1.5,64.5h24 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S82.2,45.5,80.5,45.5z"; - OrPathData = "M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M99.5,48.5l-22,0 M0,31.5h25 M0,65.5h25"; - AndPathData = "M21.5,20.5h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h-28a0,0,0,0,1,0,0v-56a0,0,0,0,1,0,0Z M78,48.5 L 100,48.5Z M0,32.5 L 21.4,32.5Z M0,65.5 L 21.4,65.5z"; - NotPathData = "M75.5,50.5l-52,28v-56L75.5,50.5z M81.5,50.5h18 M1.5,50.5h22 M78.5,47.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S80.2,47.5,78.5,47.5z"; - @*End:Hidden*@ - OrPorts = new DiagramObjectCollection(); - OrPorts.Add(AddPorts("Or_port1", 0.01, 0.1963)); - OrPorts.Add(AddPorts("Or_port2", 0.26, 0.5)); - OrPorts.Add(AddPorts("Or_port3", 0.01, 0.805)); - OrPorts.Add(AddPorts("Or_port4", 0.99, 0.5)); - - //pallatte or port - OrPortPallatte = new DiagramObjectCollection(); - OrPortPallatte.Add(AddPorts("Or_port1", 0.01, 0.1963)); - OrPortPallatte.Add(AddPorts("Or_port3", 0.01, 0.805)); - OrPortPallatte.Add(AddPorts("Or_port4", 0.99, 0.5)); - - AndPort = new DiagramObjectCollection(); - AndPort.Add(AddPorts("And_port1", 0.01, 0.215)); - AndPort.Add(AddPorts("And_port2", 0.22, 0.5)); - AndPort.Add(AddPorts("And_port3", 0.01, 0.805)); - AndPort.Add(AddPorts("And_port4", 0.99, 0.5)); - - //pallette and ports - AndPortPallette = new DiagramObjectCollection(); - AndPortPallette.Add(AddPorts("And_port1", 0.01, 0.215)); - AndPortPallette.Add(AddPorts("And_port3", 0.01, 0.805)); - AndPortPallette.Add(AddPorts("And_port4", 0.99, 0.5)); - - NotPort = new DiagramObjectCollection(); - NotPort.Add(AddPorts("Not_port1", 0.01, 0.5)); - NotPort.Add(AddPorts("Not_port2", 0.99, 0.5)); - - FlipPorts = new DiagramObjectCollection(); - FlipPorts.Add(AddPorts(null, 0.01, 0.221)); - FlipPorts.Add(AddPorts(null, 0.01, 0.779)); - FlipPorts.Add(AddPorts(null, 0.99, 0.221)); - FlipPorts.Add(AddPorts(null, 0.99, 0.779)); - - JKPorts = new DiagramObjectCollection(); - JKPorts.Add(AddPorts(null, 0.01, 0.27)); - JKPorts.Add(AddPorts(null, 0.01, 0.5)); - JKPorts.Add(AddPorts(null, 0.01, 0.720)); - JKPorts.Add(AddPorts(null, 0.99, 0.270)); - JKPorts.Add(AddPorts(null, 0.99, 0.720)); - JKPorts.Add(AddPorts(null, 0.5, 0.01)); - JKPorts.Add(AddPorts(null, 0.5, 0.99)); - - //pallette jk ports - JKPortsPallatte = new DiagramObjectCollection(); - JKPortsPallatte.Add(AddPorts(null, 0.01, 0.27)); - JKPortsPallatte.Add(AddPorts(null, 0.01, 0.720)); - JKPortsPallatte.Add(AddPorts(null, 0.99, 0.270)); - JKPortsPallatte.Add(AddPorts(null, 0.99, 0.720)); - JKPortsPallatte.Add(AddPorts(null, 0.5, 0.01)); - JKPortsPallatte.Add(AddPorts(null, 0.5, 0.99)); - - //pallatte jk flipflop - JKPortsFlipFlopPallatte = new DiagramObjectCollection(); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.01, 0.27)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.01, 0.495)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.01, 0.720)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.99, 0.270)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.99, 0.720)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.5, 0.01)); - JKPortsFlipFlopPallatte.Add(AddPorts(null, 0.5, 0.99)); - - rPorts = new DiagramObjectCollection(); - rPorts.Add(AddPorts(null, 0.01, 0.210)); - rPorts.Add(AddPorts(null, 0.01, 0.778)); - rPorts.Add(AddPorts(null, 0.5, 0.218)); - rPorts.Add(AddPorts(null, 0.99, 0.210)); - rPorts.Add(AddPorts(null, 0.99, 0.778)); - - //pallatte or ports - rPortsPallatte = new DiagramObjectCollection(); - rPortsPallatte.Add(AddPorts(null, 0.01, 0.210)); - rPortsPallatte.Add(AddPorts(null, 0.01, 0.494)); - rPortsPallatte.Add(AddPorts(null, 0.01, 0.778)); - rPortsPallatte.Add(AddPorts(null, 0.99, 0.210)); - rPortsPallatte.Add(AddPorts(null, 0.99, 0.778)); - - Nodes = new DiagramObjectCollection(); - - createNode("OR1", 336 - align, 161.5, 70, 104, OrPathData, OrPorts); - createNode("OR2", 336 - align, 329, 70, 104, OrPathData, OrPorts); - createNode("OR3", 336 - align, 470, 70, 104, OrPathData, OrPorts); - createNode("Not1", 157 - align, 267, 58, 100, NotPathData, NotPort); - createNode("Not2", 135 - align, 329, 58, 100, NotPathData, NotPort); - createNode("Not3", 157 - align, 470, 58, 100, NotPathData, NotPort); - createNode("AndNode", 543 - align, 329, 70, 104, AndPathData, AndPort); - - DecoratorSettings SourceDecorator = new DecoratorSettings() - { - Height = 12, - Width = 12, - Shape = DecoratorShape.Circle, - Style = new ShapeStyle() { Fill = "white", StrokeColor = "#444", StrokeWidth = 1 } - }; - - DecoratorSettings TargetDecorator = new DecoratorSettings() - { - Height = 12, - Width = 12, - Shape = DecoratorShape.Circle, - Style = new ShapeStyle() { Fill = "white", StrokeColor = "#444", StrokeWidth = 1 }, - }; - - Connectors = new DiagramObjectCollection(); - createConnector("line1", new DiagramPoint() { X = 140 , Y = 130 - 30 }, new DiagramPoint() { X = 100, Y = 200 }, "", "OR1", "", "Or_port1", SourceDecorator, null, new PathAnnotation() { Content = "A", Margin = new DiagramThickness() { Left = -20 } }, true, false); - createConnector("line2", new DiagramPoint() { X = 140 , Y = 161.5 - 30 }, null, "", "OR1", "", "Or_port2", SourceDecorator, null, new PathAnnotation() { Content = "B", Margin = new DiagramThickness() { Left = -20 } }, true, false); - createConnector("line3", new DiagramPoint() { X = 140 , Y = 195 - 30 }, null, "", "OR1", "", "Or_port3", SourceDecorator, null, new PathAnnotation() { Content = "C", Margin = new DiagramThickness() { Left = -20 } }, true, false); - createConnector("line4", new DiagramPoint() { X = 85 - align, Y = 267 - 30 }, null, "", "Not1", "", "Not_port1", SourceDecorator, null, new PathAnnotation() { Content = "A", Margin = new DiagramThickness() { Left = -20 } }, false, false); - createConnector("line5", new DiagramPoint() { X = 65 - align, Y = 329 - 30 }, null, "", "Not2", "", "Not_port1", SourceDecorator, null, new PathAnnotation() { Content = "B", Margin = new DiagramThickness() { Left = -20 } }, false, false); - createConnector("line6", new DiagramPoint() { X = 85 - align, Y = 470 - 30 }, null, "", "Not3", "", "Not_port1", SourceDecorator, null, new PathAnnotation() { Content = "C", Margin = new DiagramThickness() { Left = -20 } }, false, false); - createConnector("line7", null, null, "Not1", "OR2", "Not_port2", "Or_port1", null, null, new PathAnnotation() { Content = "A\'", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, false, false); - createConnector("line8", null, null, "Not2", "OR2", "Not_port2", "Or_port2", null, null, new PathAnnotation() { Content = "B\'", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, false, false); - createConnector("line9", new DiagramPoint() { X = 140 - align, Y = 380 - 30 }, null, "", "OR2", "", "Or_port3", SourceDecorator, null, null, true, false); - createConnector("line10", new DiagramPoint() { X = 140 - align, Y = 420 - 30 }, null, "", "OR3", "", "Or_port1", SourceDecorator, null, null, true, false); - createConnector("line11", null, null, "Not3", "OR3", "Not_port2", "Or_port2", null, null, new PathAnnotation() { Content = "B\'", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, false, false); - createConnector("line12", new DiagramPoint() { X = 140 - align, Y = 520 - 30 }, null, "", "OR3", "", "Or_port3", SourceDecorator, null, null, true, false); - createConnector("line13", null, null, "OR1", "AndNode", "Or_port4", "And_port1", null, null, new PathAnnotation() { Content = "(A + B + C)", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, true, false); - createConnector("line14", null, null, "OR2", "AndNode", "Or_port4", "And_port2", null, null, new PathAnnotation() { Content = "(A\' + B\' + C)", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, true, false); - createConnector("line15", null, null, "OR3", "AndNode", "Or_port4", "And_port3", null, null, new PathAnnotation() { Content = "(A + B\' + C)", Margin = new DiagramThickness() { Left = 0, Top = -20 } }, true, false); - createConnector("line16", null, new DiagramPoint() { X = 600 - align, Y = 329 - 30 }, "AndNode", "", "And_port4", "", null, SourceDecorator, new PathAnnotation() { Content = "F =(A+B+C)*(A+B\'+C)*(A+B\'+C)", Margin = new DiagramThickness() { Left = -140, Top = 60 } }, true, true); - - InitializePalette(); - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - DiagramInstance - }; - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - //Initialize palette - private void InitializePalette() - { - DiagramPalettes = new DiagramObjectCollection(); - - PointPort port1 = new PointPort() - { - Offset = new DiagramPoint - { - X = 0.01, - Y = 0.19 - }, - }; - PointPort port2 = new PointPort() - { - Offset = new DiagramPoint - { - X = 0.01, - Y = 0.809 - } - }; - PointPort port3 = new PointPort() - { - Offset = new DiagramPoint - { - X = 0.99, - Y = 0.5 - } - }; - PointPort port4 = new PointPort() - { - Offset = new DiagramPoint - { - X = 0.01, - Y = 0.5 - }, - }; - PointPort port5 = new PointPort() - { - Offset = new DiagramPoint - { - X = 0.99, - Y = 0.5 - }, - }; - DiagramNodes = new DiagramObjectCollection(); - DiagramConnectors = new DiagramObjectCollection(); - DiagramObjectCollection norGatePorts = new DiagramObjectCollection() { port1, port2, port3 }; - DiagramObjectCollection bufferPorts = new DiagramObjectCollection() { port4, port5 }; - CreatePaletteNode("Or", OrPathData, OrPortPallatte); - CreatePaletteNode("Nor", NorPathData, OrPortPallatte); - CreatePaletteNode("And", AndPathData, AndPortPallette); - CreatePaletteNode("Nand", NandPathData, OrPortPallatte); - CreatePaletteNode("Not", NotPathData, NotPort); - CreatePaletteNode("Buffer", BufferPathData, bufferPorts); - CreatePaletteNode("NorGate", NorGatePathData, norGatePorts); - CreatePaletteNode("XorGate", XorGatePathData, OrPortPallatte); - CreatePaletteNode("ChEmitter", EmitterPathData, NotPort); - CreatePaletteNode("NandGate1", NandGatePathData, JKPortsPallatte); - CreatePaletteNode("Flipflop", FlipFlopPathData, FlipPorts); - CreatePaletteNode("RSLatch", LatchPathData, FlipPorts); - CreatePaletteNode("RSLatchSync", SyncPathData, rPortsPallatte); - CreatePaletteNode("JKflipflop", JKPathData, JKPortsFlipFlopPallatte); - CreatePaletteNode("Dflipflop", DPathData, FlipPorts); - - DiagramConnectors = new DiagramObjectCollection(); - CreatePaletteConnector("Orthogonal", new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575" }, ConnectorSegmentType.Orthogonal); - CreatePaletteConnector("DashedOrthogonal", new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575", StrokeDashArray = "5,5" }, ConnectorSegmentType.Orthogonal); - CreatePaletteConnector("Straight", new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575" }, ConnectorSegmentType.Straight); - CreatePaletteConnector("DashedStraight", new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#757575", StrokeDashArray = "5,5" }, ConnectorSegmentType.Straight); - @*Hidden:Lines*@ - #pragma warning disable BL0005 - @*End:Hidden*@ - DiagramPalettes = new DiagramObjectCollection() - { - new Palette(){Symbols =DiagramNodes,Title="Logic Gates",ID="Items",IsExpanded=true }, - new Palette(){Symbols =DiagramConnectors,Title="Connectors" ,IsExpanded = true}, - }; - @*Hidden:Lines*@ - #pragma warning restore BL0005 - @*End:Hidden*@ - } - private void CreatePaletteNode(string id, string pathData, DiagramObjectCollection ports) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new PathShape() { Type = shapes.Path, Data = pathData }, - }; - if (ports != null) - { - diagramNode.Ports = ports; - } - DiagramNodes.Add(diagramNode); - } - //Method to define node creation - private void createNode(string id, double offsetX, double offsetY, int height, int width, string pathData, DiagramObjectCollection ports) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = offsetX, - OffsetY = offsetY - 30, - Height = height, - Width = width, - Shape = new PathShape() { Type = shapes.Path, Data = pathData }, - Ports = ports - }; - Nodes.Add(diagramNode); - } - //DiagramInstance node defaults - private void onNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - foreach (PointPort port in node.Ports) - { - port.Constraints = PortConstraints.Default | PortConstraints.Draw; - if (!(node.ID.Contains("OR1") || node.ID.Contains("OR2") || node.ID.Contains("OR3") || node.ID.Contains("Not1") || node.ID.Contains("Not2") || node.ID.Contains("Not3") || node.ID.Contains("AndNode"))) - { - port.Shape = PortShapes.Circle; - port.Visibility = PortVisibility.Hover; - } - } - } - //Method to define addport - private PointPort AddPorts(string id, double x, double y) - { - return new PointPort() - { - ID = !(string.IsNullOrEmpty(id)) ? id : null, - Offset = new DiagramPoint() { X = x, Y = y }, - }; - } - private void CreatePaletteConnector(string id, ShapeStyle shapeStyle, ConnectorSegmentType type) - { - Connector connector = new Connector() - { - ID = id, - SourcePoint = new DiagramPoint() { X = 20, Y = 20 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Style = shapeStyle, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }, - CornerRadius = 5, - Type = type - }; - DiagramConnectors.Add(connector); - } - - //Method to define connector creation - private void createConnector(string id, DiagramPoint sourcePoint, DiagramPoint targetPoint, string sourceID, string targetID, - string sourcePortID, string targetPortID, DecoratorSettings sourceDecorator, DecoratorSettings targetDecorator, - PathAnnotation annotation, bool segments, bool isStraight) - { - Connector connector = new Connector() - { - ID = id, - SourcePoint = sourcePoint, - TargetPoint = targetPoint, - SourceID = sourceID, - TargetID = targetID, - SourcePortID = sourcePortID, - TargetPortID = targetPortID, - Annotations = new DiagramObjectCollection() { annotation }, - SourceDecorator = sourceDecorator, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }, - CornerRadius = 5, - }; - if (connector.Annotations[0] != null) - { - connector.Annotations[0].Style = new TextStyle() { FontFamily = "Segoe UI", TextWrapping = TextWrap.NoWrap, FontSize = 14 }; - connector.Annotations[0].Margin = new DiagramThickness() { Left = annotation.Margin.Left, Top = annotation.Margin.Top }; - connector.Annotations[0].Offset = 0; - } - if (id == "line9" || id == "line10" || id == "line12") - { - connector.Annotations[0] = new PathAnnotation(); - } - else if (id == "line7" || id == "line8" || id == "line11" || id == "line13" || id == "line14" || id == "line15") - { - connector.SourceDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - } - else if (id == "line16") - { - connector.TargetDecorator = targetDecorator; - connector.SourceDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - } - else - { - connector.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - } - - if (segments) - { - OrthogonalSegment orthogonalSegment=new OrthogonalSegment(){Length=100, Direction= Direction.Right, Type = ConnectorSegmentType.Orthogonal }; - connector.Segments = new DiagramObjectCollection(){orthogonalSegment}; - } - if (isStraight) - { - connector.Segments = new DiagramObjectCollection() { new StraightSegment() }; - connector.Type = ConnectorSegmentType.Straight; - } - else - { - connector.Type = ConnectorSegmentType.Orthogonal; - } - - Connectors.Add(connector); - } - [Inject] - protected IJSRuntime jsRuntime { get; set; } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (Nodes != null) - { - Nodes.Clear(); - Nodes = null; - } - if (Connectors != null) - { - Connectors.Clear(); - Connectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Mindmap.razor b/Common/Pages/DiagramComponent/DiagramComponent/Mindmap.razor deleted file mode 100644 index e6a15122..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Mindmap.razor +++ /dev/null @@ -1,579 +0,0 @@ -@page "/diagramcomponent/mindmap" - -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Inputs -@implements IDisposable -@*End:Hidden*@ -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent; - - -

This sample creatively demonstrates the application of a mind map layout algorithm.

-
- -

This example illustrates how to generate a mind map from an external data source. You can customize the spacing between objects in the layout using the HorizontalSpacing and VerticalSpacing properties of the Layout. The Orientation property of the Layout allows you to modify the chart's orientation. Additionally, the GetLayoutInfo method provides options to further customize the tree structure.

-
-@*End:Hidden*@ - -
-
- - - - - - - -
- @*Hidden:Lines*@ - -
-
- Properties -
-
-
-
-
-
Horizontal Spacing
-
-
- - - -
-
-
-
-
Vertical Spacing
-
-
- - - -
-
-
-
-
- @*End:Hidden*@ -
-@code -{ - static List MindmapData { get; set; } = new List(); - ScrollLimitMode ScrollLimit { get; set; } = ScrollLimitMode.Diagram; - SfDiagramComponent DiagramInstance { get; set; } - DiagramInteractions InteractionController { get; set; } = DiagramInteractions.SingleSelect; - int VerticalSpacing { get; set; } = 20; - int HorizontalSpacing { get; set; } = 80; - int? HorizontalValue { get; set; } = 80; - int? VerticalValue { get; set; } = 20; - DiagramSelectionSettings DiagramSelectionSettings { get; set; } = new DiagramSelectionSettings(); - DiagramObjectCollection Handles { get; set; } = new DiagramObjectCollection(); - - - private BranchType GetBranch(IDiagramObject obj) - { - BranchType Branch = ((obj as Node).Data as MindMapDetails).Branch; - return Branch; - } - - private void OnCreated() - { - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[0] }); - } - - private void OnHorizontalSpaceChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - HorizontalValue = (int)args.Value; - HorizontalSpacing = int.Parse(args.Value.ToString()); - } - - private void OnVerticalSpaceChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - VerticalValue = (int)args.Value; - VerticalSpacing = int.Parse(args.Value.ToString()); - } - - // Method to customize the tool - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "AddLeft") - { - tool = new AddRightTool(DiagramInstance); - } - else if(id == "AddRight") - { - tool = new AddLeftTool(DiagramInstance); - } - else - { - tool = new DeleteTool(DiagramInstance); - } - return tool; - } - - // Custom tool to add the node. - public class AddLeftTool : InteractionControllerBase - { - SfDiagramComponent DiagramInstance; - public AddLeftTool(SfDiagramComponent Diagram) : base(Diagram) - { - DiagramInstance = Diagram; - } - public override async void OnMouseDown(DiagramMouseEventArgs args) - { - int newChildID = DiagramInstance.Nodes.Count + 1; - string newchildColor = ""; - BranchType type = (DiagramInstance.SelectionSettings.Nodes[0].Data as MindMapDetails).Branch; - BranchType childType = BranchType.Left; - - switch (type.ToString()) - { - case "Root": - childType = BranchType.Left; - break; - case "Left": - childType = BranchType.SubLeft; - break; - case "SubLeft": - childType = BranchType.SubLeft; - break; - } - - if (DiagramInstance.SelectionSettings.Nodes[0].Style.Fill == "#034d6d") - { - newchildColor = "#1b80c6"; - } - else - { - newchildColor = "#3dbfc9"; - } - - MindMapDetails childNode = new MindMapDetails() - { - Id = newChildID.ToString(), - ParentId = (DiagramInstance.SelectionSettings.Nodes[0].Data as MindMapDetails).Id, - Fill = newchildColor, - Branch = childType, - Label = "New Child" - }; - DiagramInstance.BeginUpdate(); - await UpdatePortConnection(childNode, DiagramInstance); - await DiagramInstance.EndUpdateAsync(); - MindmapData.Add(childNode); - DiagramInstance.ClearSelection(); - base.OnMouseDown(args); - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[DiagramInstance.Nodes.Count - 1] }); - DiagramInstance.StartTextEdit(DiagramInstance.Nodes[DiagramInstance.Nodes.Count - 1]); - this.InAction = true; - } - } - private static async Task UpdatePortConnection(MindMapDetails childNode,SfDiagramComponent DiagramInstance) - { - Node node = new Node() - { - Data = childNode, - }; - Connector connector = new Connector() - { - TargetID = node.ID, - SourceID = DiagramInstance.SelectionSettings.Nodes[0].ID - }; - await DiagramInstance.AddDiagramElementsAsync(new DiagramObjectCollection() { node, connector }); - Node sourceNode = DiagramInstance.GetObject((connector as Connector).SourceID) as Node; - Node targetNode = DiagramInstance.GetObject((connector as Connector).TargetID) as Node; - if (targetNode != null && targetNode.Data != null) - { - MindMapDetails nodeInfo = (targetNode.Data as MindMapDetails); - if (nodeInfo.Branch == BranchType.Right || nodeInfo.Branch == BranchType.SubRight) - { - (connector as Connector).SourcePortID = sourceNode.Ports[0].ID; - (connector as Connector).TargetPortID = targetNode.Ports[1].ID; - } - else if (nodeInfo.Branch == BranchType.Left || nodeInfo.Branch == BranchType.SubLeft) - { - (connector as Connector).SourcePortID = sourceNode.Ports[1].ID; - (connector as Connector).TargetPortID = targetNode.Ports[0].ID; - } - } - await DiagramInstance.DoLayoutAsync(); - } - - // Custom tool to add the node. - public class AddRightTool : InteractionControllerBase - { - SfDiagramComponent DiagramInstance; - public AddRightTool(SfDiagramComponent Diagram) : base(Diagram) - { - DiagramInstance = Diagram; - } - public override async void OnMouseDown(DiagramMouseEventArgs args) - { - int newChildID = DiagramInstance.Nodes.Count + 1; - string newchildColor = ""; - BranchType type = (DiagramInstance.SelectionSettings.Nodes[0].Data as MindMapDetails).Branch; - BranchType childType = BranchType.Left; - - switch (type.ToString()) - { - case "Root": - childType = BranchType.Right; - break; - case "Right": - childType = BranchType.SubRight; - break; - case "SubRight": - childType = BranchType.SubRight; - break; - } - - if (DiagramInstance.SelectionSettings.Nodes[0].Style.Fill == "#034d6d") - { - newchildColor = "#1b80c6"; - } - else - { - newchildColor = "#3dbfc9"; - } - - MindMapDetails childNode = new MindMapDetails() - { - Id = newChildID.ToString(), - ParentId = (DiagramInstance.SelectionSettings.Nodes[0].Data as MindMapDetails).Id, - Fill = newchildColor, - Branch = childType, - Label = "New Child" - }; - DiagramInstance.BeginUpdate(); - await UpdatePortConnection(childNode, DiagramInstance); - await DiagramInstance.EndUpdateAsync(); - MindmapData.Add(childNode); - DiagramInstance.ClearSelection(); - base.OnMouseDown(args); - DiagramInstance.Select(new ObservableCollection() { DiagramInstance.Nodes[DiagramInstance.Nodes.Count - 1] }); - DiagramInstance.StartTextEdit(DiagramInstance.Nodes[DiagramInstance.Nodes.Count - 1]); - this.InAction = true; - } - } - - public class DeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - Node deleteObject = null; - public DeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - deleteObject = (sfDiagram.SelectionSettings.Nodes[0]) as Node; - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - if (deleteObject != null) - { - sfDiagram.BeginUpdate(); - RemoveData(deleteObject, sfDiagram); - sfDiagram.Nodes.Remove(deleteObject); - _ = sfDiagram.EndUpdateAsync(); - _ = sfDiagram.RefreshDataSourceAsync(); - } - base.OnMouseUp(args); - this.InAction = true; - } - } - - private static void RemoveData(Node node,SfDiagramComponent DiagramInstance) - { - if(node.OutEdges.Count>0) - { - for(int i=0;i< node.OutEdges.Count;i++) - { - Connector connector = DiagramInstance.GetObject(node.OutEdges[i]) as Connector; - Node targetnode = DiagramInstance.GetObject(connector.TargetID) as Node; - if(targetnode.OutEdges.Count > 0) - { - RemoveData(targetnode, DiagramInstance); - } - else - { - MindmapData.Remove(targetnode.Data as MindMapDetails); - } - } - MindmapData.Remove(node.Data as MindMapDetails); - } - else - { - MindmapData.Remove(node.Data as MindMapDetails); - } - } - - private void OnSelectionChanging(SelectionChangingEventArgs args) - { - if (args.NewValue.Count > 0) - { - if (args.NewValue[0] is Node && (args.NewValue[0] as Node).Data != null) - { - BranchType type = ((args.NewValue[0] as Node).Data as MindMapDetails).Branch; - if (type == BranchType.Root) - { - DiagramSelectionSettings.UserHandles[0].Visible = false; - DiagramSelectionSettings.UserHandles[1].Visible = false; - DiagramSelectionSettings.UserHandles[2].Visible = true; - DiagramSelectionSettings.UserHandles[3].Visible = true; - } - else if(type==BranchType.Left||type==BranchType.SubLeft) - { - DiagramSelectionSettings.UserHandles[0].Visible = false; - DiagramSelectionSettings.UserHandles[1].Visible = true; - DiagramSelectionSettings.UserHandles[2].Visible = true; - DiagramSelectionSettings.UserHandles[3].Visible = false; - } - else if (type == BranchType.Right || type == BranchType.SubRight) - { - DiagramSelectionSettings.UserHandles[0].Visible = true; - DiagramSelectionSettings.UserHandles[1].Visible = false; - DiagramSelectionSettings.UserHandles[2].Visible = false; - DiagramSelectionSettings.UserHandles[3].Visible = true; - } - } - } - } - - private void NodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - //node.Constraints = NodeConstraints.Default & ~NodeConstraints.Drag; - MindMapDetails hierarchicalData = null; - if (node.Data != null) - { - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - hierarchicalData = node.Data as MindMapDetails; - } - node.Height = 50; - node.Width = 100; - node.Shape = new BasicShape() { Type = shapes.Basic, Shape = NodeBasicShapes.Ellipse }; - - PointPort port21 = new PointPort() - { - ID = "left", - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Height = 10, - Width = 10, - }; - - PointPort port22 = new PointPort() - { - ID = "right", - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Height = 10, - Width = 10, - }; - - if (node.Data != null) - { - node.Style.Fill = hierarchicalData.Fill; - node.Style.StrokeColor = hierarchicalData.Fill; - node.Ports = new DiagramObjectCollection() - { - port21,port22 - }; - } - - string name = ""; - if (hierarchicalData != null) - { - name = hierarchicalData.Label; - } - else - { - name = "New Child"; - } - - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = name, - Style=new TextStyle(){Color="White",FontSize = 12,FontFamily="Segoe UI"}, - Offset=new DiagramPoint(){X=0.5,Y=0.5} - } - }; - node.Constraints &= ~NodeConstraints.Rotate; - } - - private void ConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Bezier; - (connector as Connector).BezierConnectorSettings = new BezierConnectorSettings() { AllowSegmentsReset = false }; - (connector as Connector).Constraints = ConnectorConstraints.Default & ~ConnectorConstraints.Select; - (connector as Connector).Style = new ShapeStyle() { StrokeColor = "#4f4f4f", StrokeWidth = 1 }; - (connector as Connector).TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - (connector as Connector).SourceDecorator.Shape = DecoratorShape.None; - Node sourceNode = DiagramInstance.GetObject((connector as Connector).SourceID) as Node; - Node targetNode = DiagramInstance.GetObject((connector as Connector).TargetID) as Node; - if (targetNode != null && targetNode.Data != null) - { - MindMapDetails nodeInfo = (targetNode.Data as MindMapDetails); - if (nodeInfo.Branch == BranchType.Right || nodeInfo.Branch == BranchType.SubRight) - { - (connector as Connector).SourcePortID = sourceNode.Ports[0].ID; - (connector as Connector).TargetPortID = targetNode.Ports[1].ID; - } - else if (nodeInfo.Branch == BranchType.Left || nodeInfo.Branch == BranchType.SubLeft) - { - (connector as Connector).SourcePortID = sourceNode.Ports[1].ID; - (connector as Connector).TargetPortID = targetNode.Ports[0].ID; - } - } - } - - - private void UpdateHandle() - { - UserHandle deleteLeftHandle = AddHandle("DeleteRight", "delete", Direction.Right); - - UserHandle addRightHandle = AddHandle("AddLeft", "add", Direction.Left); - - UserHandle addLeftHandle = AddHandle("AddRight", "add", Direction.Right); - - UserHandle deleteRightHandle = AddHandle("DeleteLeft", "delete", Direction.Left); - - Handles.Add(deleteLeftHandle); - Handles.Add(deleteRightHandle); - Handles.Add(addLeftHandle); - Handles.Add(addRightHandle); - - DiagramSelectionSettings.UserHandles = Handles; - } - - private UserHandle AddHandle(string name, string path, Direction direction) - { - UserHandle handle = new UserHandle() - { - Name = name, - Visible = true, - Offset = 0.5, - Side = direction, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - if (path == "delete") - { - handle.PathData = "M1.0000023,3 L7.0000024,3 7.0000024,8.75 C7.0000024,9.4399996 6.4400025,10 5.7500024,10 L2.2500024,10 C1.5600024,10 1.0000023,9.4399996 1.0000023,8.75 z M2.0699998,0 L5.9300004,0 6.3420029,0.99999994 8.0000001,0.99999994 8.0000001,2 0,2 0,0.99999994 1.6580048,0.99999994 z"; - } - else - { - handle.PathData = "M4.0000001,0 L6,0 6,4.0000033 10,4.0000033 10,6.0000033 6,6.0000033 6,10 4.0000001,10 4.0000001,6.0000033 0,6.0000033 0,4.0000033 4.0000001,4.0000033 z"; - } - return handle; - } - - public class MindMapDetails - { - public string Id { get; set; } - public string Label { get; set; } - public string ParentId { get; set; } - public BranchType Branch { get; set; } - public string Fill { get; set; } - } - - public object DataSource; - - protected override void OnInitialized() - { - - DiagramSelectionSettings.Constraints &= ~(SelectorConstraints.ResizeAll | SelectorConstraints.Rotate); - MindmapData = new List() - { - new MindMapDetails(){Id="1",Label="Business Planning",ParentId ="",Branch= BranchType.Root, Fill="#034d6d" }, - new MindMapDetails(){Id="2",Label= "Expectation",ParentId = "1",Branch= BranchType.Left,Fill= "#1b80c6" }, - new MindMapDetails(){Id="3",Label= "Requirements", ParentId="1",Branch= BranchType.Right,Fill= "#1b80c6" }, - new MindMapDetails(){Id="4",Label= "Marketing", ParentId="1",Branch= BranchType.Left,Fill= "#1b80c6" }, - new MindMapDetails(){Id="5",Label= "Budgets",ParentId= "1",Branch= BranchType.Right,Fill= "#1b80c6" }, - new MindMapDetails(){ Id="6", Label="Situation in Market", ParentId= "1", Branch = BranchType.Left, Fill= "#1b80c6" }, - new MindMapDetails(){ Id="7", Label="Product Sales", ParentId= "2", Branch = BranchType.SubLeft, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "8", Label= "Strategy", ParentId="2", Branch = BranchType.SubLeft, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "9", Label="Contacts", ParentId="2", Branch = BranchType.SubLeft, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "10", Label="Customer Groups", ParentId= "4", Branch = BranchType.SubLeft,Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "11", Label= "Branding", ParentId= "4", Branch = BranchType.SubLeft, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "12", Label= "Advertising", ParentId= "4", Branch = BranchType.SubLeft, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "13", Label= "Competitors", ParentId= "6", Branch = BranchType.SubLeft, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "14", Label="Location", ParentId="6", Branch = BranchType.SubLeft, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "15", Label= "Director", ParentId= "3", Branch = BranchType.SubRight, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "16", Label="Accounts Department", ParentId= "3", Branch = BranchType.SubRight, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "17", Label="Administration", ParentId= "3", Branch = BranchType.SubRight, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "18", Label= "Development", ParentId="3", Branch = BranchType.SubRight, Fill= "#3dbfc9" }, - new MindMapDetails() { Id = "19", Label= "Estimation", ParentId= "5", Branch = BranchType.SubRight, Fill="#3dbfc9" }, - new MindMapDetails() { Id = "20", Label= "Profit", ParentId= "5", Branch = BranchType.SubRight, Fill= "#3dbfc9" }, - new MindMapDetails(){ Id="21", Label="Funds", ParentId= "5", Branch = BranchType.SubRight, Fill= "#3dbfc9" } - }; - DataSource = MindmapData; - } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - UpdateHandle(); - } - } - @*Hidden:Lines*@ -public void Dispose() -{ - if (DiagramSelectionSettings != null) - { - if (DiagramSelectionSettings.UserHandles != null) - { - DiagramSelectionSettings.UserHandles.Clear(); - DiagramSelectionSettings.UserHandles = null; - } - DiagramSelectionSettings = null; - } - if (DiagramInstance != null) - { - DiagramInstance = null; - } - if (MindmapData != null) - { - MindmapData.Clear(); - MindmapData = null; - } -} - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/NetworkDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/NetworkDiagram.razor deleted file mode 100644 index de54714f..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/NetworkDiagram.razor +++ /dev/null @@ -1,935 +0,0 @@ -@page "/diagramcomponent/networkdiagram" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@inject NavigationManager NavigationManager - -

- This sample visualizes the graphical layout of a network diagram using the Diagram's SVG nodes feature. -

-
- -

- This example demonstrates how to host SVG content within a node. The Shape property of the node is utilized to embed SVG content. -

-
-@*End:Hidden*@ - - -@*Hidden:Lines*@ -
- - - @*End:Hidden*@ - @*Hidden:Lines*@ -
-
-
-
- @*End:Hidden*@ -
- - - - @{ - var id = (context as Node).ID; - if (id == "Server" || id.Contains("Server")) - { - - } - else if (id == "WorkStation" || id.Contains("WorkStation")) - { - - } - else if (id == "Modem") - { - - } - else if (id == "RemoteController") - { - - } - else if (id == "AnalogIO") - { - - - } - else if (id == "Sensor") - { - - } - else if (id == "DeviceDriver") - { - - } - else if (id == "HMI") - { - - } - else if (id == "Virtual-Server-Copy") - { - - - } - else if (id == "user") - { - - } - else if (id == "User-group") - { - - } - else if (id == "UPS") - { - - } - else if (id == "Tablet") - { - - - } - else if (id == "Switch") - { - - } - else if (id == "Subwoofer") - { - - } - else if (id == "Speaker") - { - - } - else if (id == "Security-camera") - { - path d="M10.7131909,30.4389491 C10.6918801,30.423109 10.6701242,30.4087605 10.6482026,30.395712 L10.7131909,30.4389491 Z M11,30.6451981 C13.289733,32.2606898 15.7637224,32.9992203 18.4541771,32.8758063 C21.0894422,32.7549239 23.2603428,31.9860703 25,30.5711756 L25,26.6652832 C25,22.79929 21.8659932,19.6652832 18,19.6652832 C14.1340068,19.6652832 11,22.79929 11,26.6652832 C11,27.7731018 11,27.7731018 11,28.8809204 C11,29.8134885 11,29.9610154 11,30.6452056 Z" id="Rectangle-4" stroke="#5C90DF" stroke-width="2"/> - - } - - else if (id == "TextNode") - { - - } - } - - - -
-
-
- - - - @{ - var id = (context as Node).ID; - if (id == "Server1" || id.Contains("Server")) - { - - } - else if (id == "WorkStation1" || id == "WorkStation2" || id == "WorkStation3" || id == "WorkStation4" || id.Contains("WorkStation")) - { - - } - else if (id == "modem1" || id == "modem2" || id == "modem3" || id == "modem4" || id == "modem5" || id.Contains("Modem")) - { - - } - else if (id == "RemoteController1" || id == "RemoteController2" || id == "RemoteController3" || id.Contains("RemoteController")) - { - - } - else if (id == "AnalogIO" || id.Contains("AnalogIO")) - { - - - } - else if (id == "Sensor" || id.Contains("Sensor")) - { - - } - else if (id == "DeviceDriver1" || id == "DeviceDriver2" || id == "DeviceDriver3" || id.Contains("DeviceDriver")) - { - - } - else if (id == "HMI" || id.Contains("HMI")) - { - - } - else if (id.Contains("Virtual-Server-Copy")) - { - - - } - else if (id.Contains("user")) - { - - } - else if (id.Contains("User-group")) - { - - } - else if (id.Contains("UPS")) - { - - } - else if (id.Contains("Tablet")) - { - - - } - else if (id.Contains("Switch")) - { - - } - else if (id.Contains("Subwoofer")) - { - - } - else if (id.Contains("Speaker")) - { - - } - else if (id.Contains("Security-camera")) - { - path d="M10.7131909,30.4389491 C10.6918801,30.423109 10.6701242,30.4087605 10.6482026,30.395712 L10.7131909,30.4389491 Z M11,30.6451981 C13.289733,32.2606898 15.7637224,32.9992203 18.4541771,32.8758063 C21.0894422,32.7549239 23.2603428,31.9860703 25,30.5711756 L25,26.6652832 C25,22.79929 21.8659932,19.6652832 18,19.6652832 C14.1340068,19.6652832 11,22.79929 11,26.6652832 C11,27.7731018 11,27.7731018 11,28.8809204 C11,29.8134885 11,29.9610154 11,30.6452056 Z" id="Rectangle-4" stroke="#5C90DF" stroke-width="2"/> - - } - - } - - - - - - -
-
-
- @*Hidden:Lines*@ -
-@*End:Hidden*@ - - -@code{ - public DiagramSize SymbolPreview { get; set; } - public SymbolMargin SymbolMargin { get; set; } = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent DiagramInstance { get; set; } - public SfSymbolPaletteComponent PaletteInstance { get; set; } - public DiagramPoint sourcePoint; - public DiagramPoint targetPoint; - public DecoratorSettings targetDecorator; - - //Defines Diagram's Nodes collection - private DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - - //Defines Diagram's Connectors collection - private DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - //Define palettes collection - private DiagramObjectCollection DiagramPalettes { get; set; } = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection FlowShapeSymbols { get; set; } = new DiagramObjectCollection(); - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - // Defines palette's connector collection - private DiagramObjectCollection PaltteConnectors { get; set; } = new DiagramObjectCollection(); - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - DiagramInstance - }; - } - public string arrow; - public DiagramObjectCollection port; - public DiagramObjectCollection portrc; - public DiagramObjectCollection porthmi; - public DiagramObjectCollection port2; - public DiagramObjectCollection portmo; - - DiagramObjectCollection T6nodes = new DiagramObjectCollection(); - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 - }; - InitDiagramModel(); - InitPaletteModel(); - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - arrow = "M 0 26.4576 L 26.4576 0 L 26.4576 0 L 26.4576 17.46239 L 26.4576 17.46239 L 113.3856 17.46239 L 113.3856 17.46239 L 113.3856 35.45279 L 113.3856 35.45279 L 26.4576 35.45279 L 26.4576 35.45279 L 26.4576 52.91519 L 26.4576 52.91519 L 0 26.4576 Z"; - DiagramNodes = new DiagramObjectCollection(); - DiagramConnectors = new DiagramObjectCollection(); - ShapeAnnotation serverAnnotation = new ShapeAnnotation() - { - Content = "Server", - }; - ShapeAnnotation workAnnotation = new ShapeAnnotation() - { - Content = "Work Station", - }; - ShapeAnnotation modemAnnotation = new ShapeAnnotation() - { - Content = "Modem", - }; - ShapeAnnotation modem2Annotation = new ShapeAnnotation() - { - Content = "Modem1", - }; - ShapeAnnotation remoteAnnotation = new ShapeAnnotation() - { - Content = "Remote Controller", - }; - ShapeAnnotation modem4Annotation = new ShapeAnnotation() - { - Content = "Modem4", - }; - ShapeAnnotation modem5Annotation = new ShapeAnnotation() - { - Content = "Modem2", - }; - ShapeAnnotation modem6Annotation = new ShapeAnnotation() - { - Content = "Modem3", - }; - ShapeAnnotation stationAnnotation = new ShapeAnnotation() - { - Content = "Remote Work Staions", - }; - ShapeAnnotation station1Annotation = new ShapeAnnotation() - { - Content = "Portable Work Staions", - }; - ShapeAnnotation controlAnnotation = new ShapeAnnotation() - { - Content = "Control Logic", - }; - ShapeAnnotation control2Annotation = new ShapeAnnotation() - { - Content = "Control Logic", - }; - ShapeAnnotation analogAnnotation = new ShapeAnnotation() - { - Content = "Analog IO", - }; - ShapeAnnotation sensorAnnotation = new ShapeAnnotation() - { - Content = "Sensor", - }; - ShapeAnnotation deviceAnnotation = new ShapeAnnotation() - { - Content = "DriverA", - }; - ShapeAnnotation device2Annotation = new ShapeAnnotation() - { - Content = "DriverB", - }; - ShapeAnnotation device3Annotation = new ShapeAnnotation() - { - Content = "DriverC", - }; - ShapeAnnotation hmAnnotation = new ShapeAnnotation() - { - Content = "HMI", - }; - - port = new DiagramObjectCollection(); - port.Add(AddPort("port1", 0, 0.5)); - port.Add(AddPort("port2", 1, 0.5)); - port.Add(AddPort("port3", 0.5, 0.1)); - port.Add(AddPort("port4", 0.5, 1.03)); - - portrc = new DiagramObjectCollection(); - portrc.Add(AddPort("port1", 0, 0.5)); - portrc.Add(AddPort("port2", 1, 0.5)); - portrc.Add(AddPort("port3", 0.85, 0)); - portrc.Add(AddPort("port4", 0.5, 1.0101)); - - porthmi = new DiagramObjectCollection(); - porthmi.Add(AddPort("port1", 0.34, 0.5)); - porthmi.Add(AddPort("port2", 0.75, 0.5)); - porthmi.Add(AddPort("port3", 0.5, 0)); - porthmi.Add(AddPort("port4", 0.6, 0.9)); - - port2 = new DiagramObjectCollection(); - port2.Add(AddPort("port1", 0.03, 0.5)); - port2.Add(AddPort("port2", 0.97, 0.5)); - port2.Add(AddPort("port3", 0.5, 0.97)); - - portmo = new DiagramObjectCollection(); - portmo.Add(AddPort("port1", 0.02, 0.6)); - portmo.Add(AddPort("port2", 0.98, 0.625)); - portmo.Add(AddPort("port3", 0.5, 0.22)); - portmo.Add(AddPort("port4", 0.5, 0.97)); - - ShapeAnnotation cntrlAnnotation = new ShapeAnnotation() - { - Content = "Control Net" - }; - ShapeAnnotation etherAnnotation = new ShapeAnnotation() - { - Content = "Ethernet", - - }; - ShapeAnnotation deviceNetAnnotation = new ShapeAnnotation() - { - Content = "Device Net" - }; - - CreateNode("Server1", 80, 75, new ShapeAnnotation() { Content = "Server", Offset = new DiagramPoint() { X = 0.5, Y = 0 }, Margin = new DiagramThickness() { Bottom = 10 } }, port); - CreateNode("WorkStation1", 250, 75, new ShapeAnnotation() { Content = "Work Station", Offset = new DiagramPoint() { X = 1.5, Y = 0.2 }, Margin = new DiagramThickness() { Bottom = 25 } }, port2); - CreateNode("WorkStation2", 350, 75, null, port2); - CreateNode("modem1", 450, 125, new ShapeAnnotation() { Content = "Modem", Offset = new DiagramPoint() { X = 0, Y = 0.5 }, Margin = new DiagramThickness() { Right = 25 } }, portmo); - CreateNode("modem2", 525, 175, new ShapeAnnotation() { Content = "Modem1", Offset = new DiagramPoint() { X = 0.5, Y = 0 }, Margin = new DiagramThickness() { Bottom = 10 } }, portmo); - CreateNode("RemoteController1", 600, 115, new ShapeAnnotation() { Content = "Remote Controller", Offset = new DiagramPoint() { X = 0.5, Y = 0 }, Margin = new DiagramThickness() { Bottom = 10 } }, portrc); - CreateNode("modem3", 350, 205, new ShapeAnnotation() { Content = "Modem4", Offset = new DiagramPoint() { X = 1, Y = 0.5 }, Margin = new DiagramThickness() { Left = 35 } }, portmo); - CreateNode("modem4", 450, 245, new ShapeAnnotation() { Content = "Modem2", Offset = new DiagramPoint() { X = 0.5, Y = 1.3 } }, portmo); - CreateNode("modem5", 350, 330, new ShapeAnnotation() { Content = "Modem3", Offset = new DiagramPoint() { X = 0, Y = 0.5 }, Margin = new DiagramThickness() { Right = 25 } }, portmo); - CreateNode("WorkStation3", 600, 250, new ShapeAnnotation() { Content = "Remote Work Staions", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 12 } }, port2); - CreateNode("WorkStation4", 600, 335, new ShapeAnnotation() { Content = "Portable Work Staions", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 12 } }, port2); - CreateNode("RemoteController2", 80, 400, new ShapeAnnotation() { Content = "Control Logic", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 8 } }, portrc); - CreateNode("RemoteController3", 500, 400, new ShapeAnnotation() { Content = "Control Logic", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 8 } }, portrc); - CreateNode("AnalogIO", 160, 500, new ShapeAnnotation() { Content = "Analog IO", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 13 } }, porthmi); - CreateNode("Sensor", 260, 500, new ShapeAnnotation() { Content = "Sensor", Offset = new DiagramPoint() { X = 0.5, Y = 1 }, Margin = new DiagramThickness() { Top = 10 } }, port); - CreateNode("DeviceDriver1", 360, 500, new ShapeAnnotation() { Content = "DriverA", Offset = new DiagramPoint() { X = 0.5, Y = 1.3 } }, porthmi); - CreateNode("DeviceDriver2", 460, 500, new ShapeAnnotation() { Content = "DriverB", Offset = new DiagramPoint() { X = 0.5, Y = 1.3 } }, porthmi); - CreateNode("DeviceDriver3", 550, 500, new ShapeAnnotation() { Content = "DriverC", Offset = new DiagramPoint() { X = 0.5, Y = 1.3 } }, porthmi); - CreateNode("HMI", 625, 450, new ShapeAnnotation() { Content = "HMI", Offset = new DiagramPoint() { X = 0.5, Y = 1.3 } }, port); - - CreateNode("connector1", 99, 175, null); - CreateNode("connector2", 250, 125, null); - CreateNode("connector3", 99, 300, null); - CreateNode("connector4", 178, 435, null); - CreateNode("connector5", 378, 435, null); - CreateNode("connector6", 370, 380, null); - CreateNode("controlNet", 218.5, 380, cntrlAnnotation, null, new Shape() { Type = shapes.Basic }); - CreateNode("etherNet", 218.5, 190, etherAnnotation, null, new Shape() { Type = shapes.Basic }); - CreateNode("deviceNet", 345.5, 575, deviceNetAnnotation, null, new Shape() { Type = shapes.Basic }); - - CreateConnector("connectora", "Server1", "WorkStation1", "", "port1", ConnectorSegmentType.Straight, null); - CreateConnector("connectorawork", "WorkStation1", "WorkStation2", "port2", "port1", ConnectorSegmentType.Straight, null); - CreateConnector("connectoraworkm", "WorkStation2", "modem1", "port2", "port3", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectorm1m2", "modem2", "modem1", "port1", "port4", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectorm2m3", "modem2", "RemoteController1", "port2", "port4", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectorws2m3", "WorkStation2", "modem3", "port3", "port3", ConnectorSegmentType.Straight, null); - CreateConnector("connectorws2m4", "modem4", "modem3", "port1", "port4", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectorm3m4", "modem5", "modem3", "port3", "port4", ConnectorSegmentType.Straight, null); - CreateConnector("connectorm4ws3", "modem5", "WorkStation4", "port2", "port1", ConnectorSegmentType.Straight, null); - CreateConnector("connectorm4m5", "modem4", "WorkStation3", "port2", "port1", ConnectorSegmentType.Straight, null); - CreateConnector("connectorr2r3", "RemoteController2", "RemoteController3", "", "port1", ConnectorSegmentType.Straight, null); - CreateConnector("connectorr2r3qq", "Server1", "RemoteController2", "port4", "", ConnectorSegmentType.Straight, null); - CreateConnector("connectorm3se1", "modem3", "Server1", "port1", "port4", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectorws2aio1", "RemoteController2", "AnalogIO", "port2", "port3", ConnectorSegmentType.Orthogonal, null); - CreateConnector("connectorb", "RemoteController2", "Sensor", "port2", "port3", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectord1", "RemoteController2", "DeviceDriver1", "port2", "port3", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectord2", "RemoteController2", "DeviceDriver2", "port2", "port3", ConnectorSegmentType.Orthogonal, new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, - Length = 35 - }); - CreateConnector("connectordh1d3", "HMI", "DeviceDriver3", "port1", "port3", ConnectorSegmentType.Orthogonal, null); - CreateConnector("connectordh1d2", "HMI", "DeviceDriver2", "port1", "port3", ConnectorSegmentType.Orthogonal, null); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - private PointPort AddPort(string id, double x, double y) - { - return new PointPort() - { - ID = id, - Offset = new DiagramPoint() { X = x, Y = y }, - }; - } - private void DragDrop(DropEventArgs args) - { - if (args.Element is Node && (args.Element as Node).ID.Contains("TextNode")) - { - (args.Element as Node).ID = "NewNode"; - (args.Element as Node).Style.Fill = "Transparent"; - (args.Element as Node).Style.StrokeColor = "Transparent"; - (args.Element as Node).Style.StrokeWidth = 0; - (args.Element as Node).Height = 40; - (args.Element as Node).Width = 20; - } - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - DiagramPalettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 80, - Height = 80 - }; - FlowShapeSymbols = new DiagramObjectCollection(); - CreatePaletteNode(shapes.SVG, "Server"); - - CreatePaletteNode(shapes.SVG, "WorkStation"); - CreatePaletteNode(shapes.SVG, "Modem"); - CreatePaletteNode(shapes.SVG, "RemoteController"); - CreatePaletteNode(shapes.SVG, "HMI"); - CreatePaletteNode(shapes.SVG, "AnalogIO"); - CreatePaletteNode(shapes.SVG, "Sensor"); - CreatePaletteNode(shapes.SVG, "DeviceDriver"); - CreatePaletteNode(shapes.SVG, "Virtual-Server-Copy"); - CreatePaletteNode(shapes.SVG, "user"); - CreatePaletteNode(shapes.SVG, "User-group"); - CreatePaletteNode(shapes.SVG, "UPS"); - CreatePaletteNode(shapes.SVG, "Tablet"); - CreatePaletteNode(shapes.SVG, "Switch"); - CreatePaletteNode(shapes.SVG, "Subwoofer"); - CreatePaletteNode(shapes.SVG, "Speaker"); - CreatePaletteNode(shapes.SVG, "Security-camera"); - CreatePaletteNode(shapes.Path, "Arrow1"); - CreatePaletteNode(shapes.Image, "TextNode"); - sourcePoint = new DiagramPoint() { X = 0, Y = 0 }; - targetPoint = new DiagramPoint() { X = 40, Y = 40 }; - - PaltteConnectors = new DiagramObjectCollection(); - CreatePaletteConnector("StraightWithArrow", ConnectorSegmentType.Straight, DecoratorShape.Arrow); - CreatePaletteConnector("OrthogonalWithArrow", ConnectorSegmentType.Orthogonal, DecoratorShape.Arrow); - - DiagramPalettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() {Symbols = FlowShapeSymbols, Title = "Network Shapes"}, - new Palette() {Symbols = PaltteConnectors, Title = "Connectors", IsExpanded = true}, - #pragma warning restore BL0005 - }; - } - // Method is used to create a node for the palette. - private void CreatePaletteNode(shapes shape, string id) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new Shape() { Type = shape }, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - if (id == "Arrow1") - { - diagramNode.Shape = new PathShape() { Type = shape, Data = arrow }; - diagramNode.Style.StrokeColor = "#5C90DF"; - } - if (id == "TextNode") - { - diagramNode.Shape = new Shape() { Type = shapes.SVG }; - diagramNode.Width = 40; - diagramNode.Height = 40; - diagramNode.Style.StrokeColor = "Black"; - diagramNode.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content="Text", - - } - }; - } - - FlowShapeSymbols.Add(diagramNode); - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string id, string sourceid, string targetid, string sourcportid, string targetportid, ConnectorSegmentType connectorSegment, OrthogonalSegment segments = null) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceid, - TargetID = targetid, - Type = connectorSegment, - SourcePortID = sourcportid, - TargetPortID = targetportid, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.DragSegmentThumb - }; - connector.TargetDecorator = new DecoratorSettings() { Width = 8, Height = 8, Style = new ShapeStyle() { Fill = "#5C90DF", StrokeColor = "#5C90DF" } }; - connector.Style.StrokeColor = "#5C90DF"; - if (connector.Annotations.Count != 0) - { - connector.Annotations[0].Style.Fill = "white"; - } - if (segments != null) - { - connector.Segments = new DiagramObjectCollection() - { - segments - }; - } - DiagramConnectors.Add(connector); - } - private void CreateNode(string id, double offsetx, double offsety, ShapeAnnotation annotation = null, DiagramObjectCollection ports = null, Shape shape = null) - { - Node node = new Node() - { - ID = id, - OffsetX = offsetx, - OffsetY = offsety, - - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.SVG }, - - }; - if(shape != null) - { - node.Shape = shape; - node.Style = new ShapeStyle() { Fill = "Transparent", StrokeColor = "Transparent", StrokeWidth = 0 }; - } - if (node.Shape.Type == shapes.SVG) - { - if (node.ID == "Server1") - { - node.Width = 50; - node.Height = 65; - } - - else if (node.ID == "WorkStation1" || node.ID == "WorkStation2" || node.ID == "WorkStation3" || node.ID == "WorkStation4") - { - node.Width = 60; - node.Height = 40; - } - else if (node.ID == "RemoteController1" || node.ID == "RemoteController2" || node.ID == "RemoteController3") - { - node.Width = 25; - node.Height = 50; - } - else if (node.ID == "modem1" || node.ID == "modem2" || node.ID == "modem3" || node.ID == "modem4" || node.ID == "modem5" || node.ID == "Sensor") - { - node.Width = 40; - node.Height = 30; - } - else if (node.ID == "DeviceDriver1" || node.ID == "DeviceDriver2" || node.ID == "DeviceDriver3") - { - node.Width = 30; - node.Height = 33; - } - else if (node.ID == "AnalogIO" || node.ID == "HMI") - { - node.Width = 40; - node.Height = 50; - } - } - if (annotation != null) - { - node.Annotations = new DiagramObjectCollection() { annotation }; - - } - - if (ports != null) - { - node.Ports = ports; - } - if (node.Annotations != null && node.Annotations.Count != 0 && node.Annotations[0] != null) - { - node.Annotations[0].Style.Color = "black"; - node.Annotations[0].Style.FontSize = 12; - node.Annotations[0].Style = new TextStyle() { TextWrapping = TextWrap.NoWrap }; - } - if (node.Ports != null && node.Ports.Count != 0) - { - for (int i = 0; i < node.Ports.Count; i++) - { - node.Ports[i].Visibility = PortVisibility.Hidden; - } - } - if (node.ID == "connector1" || node.ID == "connector2" || node.ID == "connector3" || node.ID == "connector4" || node.ID == "connector5" || node.ID == "connector6") - { - if (node.ID != "connector2" && node.ID != "connector6") - { - node.RotationAngle = 270; - } - node.Width = 50; - node.Height = 20; - node.Style = new ShapeStyle() { StrokeColor = "#5C90DF", Fill = "White" }; - node.Shape = new PathShape { Type = shapes.Path, Data = arrow }; - } - node.Style.StrokeColor = "#5C90DF"; - node.Style.Fill = "transparent"; - if (id == "Server" || id == "WorkStation" || id == "Modem11" || id == "Modem21" || id == "RemoteController11" || id == "Modem31" || id == "Modem41" || id == "Modem51" || id == "WorkStation31" || id == "WorkStation41" || id == "RemoteController21" || id == "RemoteController31" || id == "AnalogIO1" || id == "DeviceDriver11" || id == "DeviceDriver21" || id == "DeviceDriver31" || id == "HMI1") - { - node.Width = 80; - node.Height = 20; - } - if (id == "WorkStation31") - { - node.Width = 130; - node.Height = 20; - } - if (id == "WorkStation41") - { - node.Width = 170; - node.Height = 20; - } - if (id == "RemoteController11") - { - node.Width = 105; - node.Height = 20; - } - if (id == "controlNet" || id == "etherNet" || id == "deviceNet") - { - node.Style = new ShapeStyle() { Fill = "Transparent", StrokeColor = "Transparent", StrokeWidth = 0 }; - node.Width = 120; - node.Height = 20; - node.Annotations[0].Style.Bold = true; - node.Annotations[0].Style.FontSize = 16; - } - - DiagramNodes.Add(node); - } - // Method is used to create a Connector for the palette. - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DecoratorShape decoratorShape) - { - Connector diagramConnector = new Connector() - { - ID = id, - Type = type, - SourcePoint = sourcePoint, - TargetPoint = targetPoint, - TargetDecorator = new DecoratorSettings() { Shape = decoratorShape }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.DragSegmentThumb - - }; - diagramConnector.Style.StrokeColor = "#5C90DF"; - diagramConnector.Style.Fill = "#757575"; - diagramConnector.TargetDecorator = new DecoratorSettings() { Width = 8, Height = 8, Style = new ShapeStyle() { Fill = "#5C90DF", StrokeColor = "#5C90DF" } }; - - PaltteConnectors.Add(diagramConnector); - } - [Inject] - protected IJSRuntime jsRuntime { get; set; } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - - if (SymbolMargin != null) - { - SymbolMargin = null; - } - DiagramInstance = null; - PaletteInstance = null; - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - -#pragma warning disable BL0005 - if (DiagramPalettes != null) - { - for (int i = 0; i < DiagramPalettes.Count; i++) - { - DiagramPalettes[i].ID = null; - DiagramPalettes[i].Title = null; - DiagramPalettes[i].IconCss = null; - if (DiagramPalettes[i].Symbols != null) - { - for (int j = 0; j < DiagramPalettes[i].Symbols.Count; j++) - { - DiagramPalettes[i].Symbols[j] = null; - } - DiagramPalettes[i].Symbols.Clear(); - DiagramPalettes[i].Symbols = null; - } - } - DiagramPalettes.Clear(); - DiagramPalettes = null; - } -#pragma warning restore BL0005 - if (FlowShapeSymbols != null) - { - FlowShapeSymbols.Clear(); - FlowShapeSymbols = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - if (PaltteConnectors != null) - { - PaltteConnectors.Clear(); - PaltteConnectors = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/NodeContent.razor b/Common/Pages/DiagramComponent/DiagramComponent/NodeContent.razor deleted file mode 100644 index 65d5cc6e..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/NodeContent.razor +++ /dev/null @@ -1,853 +0,0 @@ -@page "/diagramcomponent/nodecontent" - -@using Syncfusion.Blazor.Diagram -@using Node = Syncfusion.Blazor.Diagram.Node -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable; -@inject NavigationManager NavigationManager - - -

This sample demonstrates how the node content can be updated using various shapes, including ellipses, rectangles, HTML, and path shapes.

-
- -

- The NodeTemplate property allows you to define a specific UI segment to be rendered for a node. To create distinct templates for each node, differentiate the nodes using the ID property. The Shape property enables you to specify the type of node. For path nodes, set the shape to Path, and use the Data property to define the path to be drawn. -

-
-@*End:Hidden*@ -
- - - - - - @{ - string id = (context as Node).ID; - if ((context as Node).Shape.Type == NodeShapes.SVG && ((context as Node).ID == "node5")) - { - - - - - - - - - - - - } - if ((context as Node).Shape.Type == NodeShapes.SVG && (context as Node).ID == "node6") - { - - - - - - - - - - } - if ((context as Node).Shape.Type == NodeShapes.SVG && (context as Node).ID == "node7") - { - - - - - - - - } - if ((context as Node).Shape.Type == NodeShapes.HTML && ((context as Node).ID == "node1")) - { - -
- - - - -
- - } - if ((context as Node).Shape.Type == NodeShapes.HTML && ((context as Node).ID == "node3")) - { -
- } - } -
-
-
-
- @code { - public SfDiagramComponent DiagramInstance { get; set; } - DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - - DiagramNodes = new DiagramObjectCollection() - { - new Node() - { - ID = "node1", - Width = 130, - Height = 120, - OffsetX = 200, - OffsetY = 100, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port1", - Visibility = PortVisibility.Visible, - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Height = 1, Width = 1, - Constraints = PortConstraints.OutConnect, - Style = new ShapeStyle() - { - Fill = "#0079d6", - - }, - } - }, - Shape = new Shape() - { - Type = NodeShapes.HTML, - }, - Style = new ShapeStyle() { Fill = "#f2f2f2", StrokeColor = "#f2f2f2" }, - }, - new Node() - { - ID = "node2", - Width = 115, - Height = 115, - OffsetX = 200, - OffsetY = 300, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port14", - Visibility = PortVisibility.Hidden, - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Height = 1, Width = 1, - Constraints = PortConstraints.OutConnect, - Style = new ShapeStyle() - { - Fill = "#0079d6", - - }, - } - }, - Shape = new BasicShape() - { - Type = NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "Application", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 0.5 }, - Style = new TextStyle() - { - Color = "white", - } - } - }, - Style = new ShapeStyle() { Fill = "#0199EE", StrokeColor = "#0199EE" } - }, - new Node() - { - ID = "node3", - Width = 100, - Height = 100, - OffsetX = 200, - OffsetY = 500, - Style = new ShapeStyle() { Fill = "white", StrokeColor = "white" }, - Shape = new Shape() - { - Type = NodeShapes.HTML, - }, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port2", - Visibility = PortVisibility.Hidden, - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Height = 1, Width = 1, - Constraints = PortConstraints.InConnect, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "User Login", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 1.2 }, - Style = new TextStyle() - { - FontSize = 15, - } - } - }, - - }, - new Node() - { - ID = "node4", - Width = 170, - Height = 80, - OffsetX = 500, - OffsetY = 300, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port12", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - }, - new PointPort() - { - ID = "port15", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - } - }, - Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "External-Configuration", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 0.5 }, - Style = new TextStyle() - { - Color = "white", - } - } - }, - Style = new ShapeStyle() { Fill = "#0199EE", StrokeColor = "#0199EE" } - }, - new Node() - { - ID = "node5", - Width = 100, - Height = 100, - OffsetX = 500, - OffsetY = 500, - Shape = new Shape() { Type = NodeShapes.SVG }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "Local Cache", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 1.2 }, - Style = new TextStyle() - { - FontSize = 15, - } - } - }, - }, - new Node() - { - ID = "node6", - Width = 130, - Height = 100, - OffsetX = 770, - OffsetY = 300, - Shape = new Shape() { Type = NodeShapes.SVG }, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port14", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - } - }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "Cloud Storage", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 1.2 }, - Style = new TextStyle() - { - FontSize = 15, - } - } - }, - - - }, - new Node() - { - ID = "node8", - Width = 20, - Height = 20, - OffsetX = 340, - OffsetY = 300, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port4", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - }, - new PointPort() - { - ID = "port5", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - }, - new PointPort() - { - ID = "port6", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0.5, Y = 0 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - - }, - new PointPort() - { - ID = "port7", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0.5, Y = 1 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - - }, - Shape = new BasicShape() - { - Type = NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse - }, - Style = new ShapeStyle() { Fill = "#0079d6", StrokeColor = "#0079d6" } - }, - new Node() - { - ID = "node9", - Width = 20, - Height = 20, - OffsetX = 640, - OffsetY = 300, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port8", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - new PointPort() - { - ID = "port9", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - new PointPort() - { - ID = "port10", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0.5, Y = 0 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - new PointPort() - { - ID = "port11", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0.5, Y = 1 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - }, - - }, - Shape = new BasicShape() - { - Type = NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse - }, - Style = new ShapeStyle() { Fill = "#0079d6", StrokeColor = "#0079d6" } - }, - new Node() - { - ID = "node7", - Width = 100, - Height = 100, - OffsetX = 770, - OffsetY = 500, - Shape = new Shape() { Type = NodeShapes.SVG }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = "DataBase(Alternative)", - // Sets the offset for an annotation content. - Offset = new DiagramPoint() { X = 0.5, Y = 1.2 }, - Style = new TextStyle() - { - FontSize = 15, - } - } - }, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID = "port3", - // Sets the offset for the port. - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Hidden, - Width = 1, - Height = 1, - Style = new TextStyle() - { - Color = "#0079d6", - } - } - } - }, - - }; - DiagramConnectors = new DiagramObjectCollection() - { - new Connector() - { - ID = "connector1", - //Source node id of the connector. - SourceID = "node1", - SourcePortID = "port1", - //Target node id of the connector. - TargetID = "node8", - - TargetPortID = "port6", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Orthogonal, - - }, - new Connector() - { - ID = "connector2", - //Source node id of the connector. - SourceID = "node2", - SourcePortID = "port14", - //Target node id of the connector. - TargetID = "node8", - - TargetPortID = "port5", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Straight, - - }, - new Connector() - { - ID = "connector3", - //Source node id of the connector. - SourceID = "node8", - SourcePortID = "port7", - //Target node id of the connector. - TargetID = "node3", - - TargetPortID = "port2", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Orthogonal, - - }, - new Connector() - { - ID = "connector4", - //Source node id of the connector. - SourceID = "node8", - SourcePortID = "port4", - //Target node id of the connector. - TargetID = "node4", - - TargetPortID = "port12", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Straight, - - }, - new Connector() - { - ID = "connector5", - //Source node id of the connector. - SourceID = "node4", - - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - //Target node id of the connector. - TargetID = "node5", - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - // Type of the connector. - Type = ConnectorSegmentType.Straight, - }, - new Connector() - { - ID = "connector6", - //Source node id of the connector. - SourceID = "node4", - SourcePortID = "port15", - //Target node id of the connector. - TargetID = "node9", - - TargetPortID = "port9", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Straight, - - }, - new Connector() - { - ID = "connector7", - //Source node id of the connector. - SourceID = "node9", - SourcePortID = "port1", - //Target node id of the connector. - TargetID = "node7", - - TargetPortID = "port3", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Type = ConnectorSegmentType.Orthogonal, - - }, - new Connector() - { - ID = "connector8", - //Source node id of the connector. - SourceID = "node9", - SourcePortID = "port8", - //Target node id of the connector. - TargetID = "node6", - - TargetPortID = "port14", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.Arrow, - }, - SourceDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - }, - Shape = DecoratorShape.None, - }, - - Style = new ShapeStyle() - { - Fill = "#0079d6", - StrokeColor = "#0079d6", - - }, - Type = ConnectorSegmentType.Straight, - - }, - }; - } - - public class UserHandleAppearance - { - public string Name { get; set; } - } - - private List UserHandleAppearanceLists = new List() - { - new UserHandleAppearance() { Name = "Item#1" }, - new UserHandleAppearance() { Name = "Item#2" }, - - }; - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - - @*End:Hidden*@ - } diff --git a/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.cs b/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.cs deleted file mode 100644 index 65a25753..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.cs +++ /dev/null @@ -1,14241 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace BlazorDemos.Pages -{ - public class ExpenseData - { - public string UniqueId { get; set; } - public DateTime DateTime { get; set; } - public string Category { get; set; } - public string PaymentMode { get; set; } - public string TransactionType { get; set; } - public string Description { get; set; } - public int Amount { get; set; } - public string MonthShort { get; set; } - public string MonthFull { get; set; } - public string FormattedDate { get; set; } - } - public class UserInfo - { - public string FirstName { get; set; } - public string FullName { get; set; } - public string Email { get; set; } - } - public class ExpenseDataService - { - public DateTime StartDate { get; set; } - public DateTime EndDate { get; set; } - public UserInfo UserInfo { get; set; } - public List CategoryIncomeData { get; set; } - public List CategoryExpenseData { get; set; } - public List ExpenseData { get; set; } - public string CurrentBalance { get; set; } - public IEnumerable CurrentExpenseData { get; set; } - public event Action OnChange; - public class CategoryData - { - public string Class { get; set; } - public string Category { get; set; } - public string Id { get; set; } - } - - public void SetDate(DateTime StartDate, DateTime EndDate) - { - this.StartDate = StartDate; - this.EndDate = EndDate; - } - - public void UpdateCurrentBalance(string currentBalance) - { - CurrentBalance = currentBalance; - OnChange?.Invoke(); - } - - public void SetCurrentData(IEnumerable currentExpenseData) - { - CurrentExpenseData = currentExpenseData; - } - - public ExpenseDataService() - { - StartDate = new DateTime(2021, 06, 01, 00, 00, 00); - EndDate = new DateTime(2021, 11, 30, 23, 59, 59); - CurrentBalance = "$0"; - - UserInfo = new UserInfo { FirstName = "Nicholas", FullName = "Nicholas Delacruz", Email = "nicholas@gmail.com" }; - - CategoryIncomeData = new List(); - CategoryIncomeData.AddRange(new List - { - new CategoryData { Class = "category-icon Salary", Category = "Salary", Id = "Salary" }, - new CategoryData { Class = "category-icon Interests", Category = "Interests", Id = "Interests" }, - new CategoryData { Class = "category-icon Business", Category = "Business", Id = "Business" }, - new CategoryData { Class = "category-icon Extra income", Category = "Extra income", Id = "Extra income" } - }); - - CategoryExpenseData = new List(); - CategoryExpenseData.AddRange(new List - { - new CategoryData { Class = "category-icon Rent", Category = "Mortgage / Rent", Id = "Mortgage / Rent" }, - new CategoryData { Class = "category-icon Food", Category = "Food", Id = "Food" }, - new CategoryData { Class = "category-icon Bills", Category = "Bills", Id = "Bills" }, - new CategoryData { Class = "category-icon Utilities", Category = "Utilities", Id = "Utilities" }, - new CategoryData { Class = "category-icon Transportation", Category = "Transportation", Id = "Transportation" }, - new CategoryData { Class = "category-icon Insurance", Category = "Insurance", Id = "Insurance" }, - new CategoryData { Class = "category-icon Shopping", Category = "Shopping", Id = "Shopping" }, - new CategoryData { Class = "category-icon Entertainment", Category = "Entertainment", Id = "Entertainment" }, - new CategoryData { Class = "category-icon Health Care", Category = "Health Care", Id = "Health Care" }, - new CategoryData { Class = "category-icon Housing", Category = "Housing", Id = "Housing" }, - new CategoryData { Class = "category-icon Taxes", Category = "Tax", Id = "Tax" }, - new CategoryData { Class = "category-icon Clothing", Category = "Clothing", Id = "Clothing" }, - new CategoryData { Class = "category-icon Education", Category = "Education", Id = "Education" }, - new CategoryData { Class = "category-icon Miscellaneous", Category = "Miscellaneous", Id = "Miscellaneous" }, - new CategoryData { Class = "category-icon Personal Care", Category = "Personal Care", Id = "Personal Care" } - }); - ExpenseData = new List(); - ExpenseData.AddRange(new List - { - new ExpenseData { - UniqueId = "T100001", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496288520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100002", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496308620000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T100003", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496330580000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 08:53 PM" - }, new ExpenseData { - UniqueId = "T100004", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496294040000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 10:44 AM" - }, new ExpenseData { - UniqueId = "T100005", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496310900000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 03:25 PM" - }, new ExpenseData { - UniqueId = "T100006", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496310480000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 155, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 03:18 PM" - }, new ExpenseData { - UniqueId = "T100007", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496312340000), - Category = "Mortgage / Rent", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100008", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496311500000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 6000, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/01/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T100009", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496376540000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100010", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496394900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100011", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496414460000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 08:11 PM" - }, new ExpenseData { - UniqueId = "T100012", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496378460000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100013", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496397300000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 03:25 PM" - }, new ExpenseData { - UniqueId = "T100014", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496411340000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 150, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 07:19 PM" - }, new ExpenseData { - UniqueId = "T100015", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496411160000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other household products", - Amount = 25, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/02/2021 07:16 PM" - }, new ExpenseData { - UniqueId = "T100016", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496461320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100017", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496480700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T100018", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496502480000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100019", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496465520000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T100020", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496483460000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 03:21 PM" - }, new ExpenseData { - UniqueId = "T100021", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496481300000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 350, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100022", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496480220000), - Category = "Bills", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 220, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/03/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T100023", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496549160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 09:36 AM" - }, new ExpenseData { - UniqueId = "T100024", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496567580000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 02:43 PM" - }, new ExpenseData { - UniqueId = "T100025", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496588700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100026", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496552100000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 10:25 AM" - }, new ExpenseData { - UniqueId = "T100027", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496571900000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100028", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496551920000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 160, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T100029", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496552700000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 20, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 10:35 AM" - }, new ExpenseData { - UniqueId = "T100030", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496554020000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from returns", - Amount = 120, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/04/2021 10:57 AM" - }, new ExpenseData { - UniqueId = "T100031", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496634120000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100032", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496653560000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T100033", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496673960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100034", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496637660000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100035", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496657040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 03:34 PM" - }, new ExpenseData { - UniqueId = "T100036", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496671860000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 30, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 07:41 PM" - }, new ExpenseData { - UniqueId = "T100037", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496671620000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Tennis Court Rent", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/05/2021 07:37 PM" - }, new ExpenseData { - UniqueId = "T100038", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496720520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100039", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496739060000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 02:21 PM" - }, new ExpenseData { - UniqueId = "T100040", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496761140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 08:29 PM" - }, new ExpenseData { - UniqueId = "T100041", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496726040000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 10:44 AM" - }, new ExpenseData { - UniqueId = "T100042", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496744760000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100043", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496753340000), - Category = "Health Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 06:19 PM" - }, new ExpenseData { - UniqueId = "T100044", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496752980000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from returns", - Amount = 120, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/06/2021 06:13 PM" - }, new ExpenseData { - UniqueId = "T100045", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496808120000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T100046", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496826300000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T100047", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496849100000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100048", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496811840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100049", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496828700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 03:15 PM" - }, new ExpenseData { - UniqueId = "T100050", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496849340000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Internet use", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/07/2021 08:59 PM" - }, new ExpenseData { - UniqueId = "T100051", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496893320000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100052", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496911560000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T100053", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496933700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 08:25 PM" - }, new ExpenseData { - UniqueId = "T100054", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496898660000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 10:41 AM" - }, new ExpenseData { - UniqueId = "T100055", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496915520000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T100056", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496901540000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 11:29 AM" - }, new ExpenseData { - UniqueId = "T100057", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496900940000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 120, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/08/2021 11:19 AM" - }, new ExpenseData { - UniqueId = "T100058", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496980140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 09:19 AM" - }, new ExpenseData { - UniqueId = "T100059", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496999040000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 02:34 PM" - }, new ExpenseData { - UniqueId = "T100060", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497021540000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 08:49 PM" - }, new ExpenseData { - UniqueId = "T100061", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496985300000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 10:45 AM" - }, new ExpenseData { - UniqueId = "T100062", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497002760000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 03:36 PM" - }, new ExpenseData { - UniqueId = "T100063", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496980860000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 40, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 09:31 AM" - }, new ExpenseData { - UniqueId = "T100064", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1496979840000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/09/2021 09:14 AM" - }, new ExpenseData { - UniqueId = "T100065", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497066120000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100066", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497084480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 02:18 PM" - }, new ExpenseData { - UniqueId = "T100067", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497108540000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 08:59 PM" - }, new ExpenseData { - UniqueId = "T100068", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497070140000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 10:19 AM" - }, new ExpenseData { - UniqueId = "T100069", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497087900000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 03:15 PM" - }, new ExpenseData { - UniqueId = "T100070", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497090000000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100071", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497088620000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Internet use", - Amount = 5, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/10/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T100072", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497154860000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 09:51 AM" - }, new ExpenseData { - UniqueId = "T100073", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497172500000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100074", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497192120000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 08:12 PM" - }, new ExpenseData { - UniqueId = "T100075", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497158400000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 10:50 AM" - }, new ExpenseData { - UniqueId = "T100076", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497175200000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 03:30 PM" - }, new ExpenseData { - UniqueId = "T100077", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497175260000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 65, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 03:31 PM" - }, new ExpenseData { - UniqueId = "T100078", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497174540000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100079", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497174120000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 100, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/11/2021 03:12 PM" - }, new ExpenseData { - UniqueId = "T100080", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497239280000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100081", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497258780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 02:43 PM" - }, new ExpenseData { - UniqueId = "T100082", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497280500000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T100083", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497243540000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 10:29 AM" - }, new ExpenseData { - UniqueId = "T100084", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497263100000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100085", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497256920000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 20, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 02:12 PM" - }, new ExpenseData { - UniqueId = "T100086", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497257640000), - Category = "Insurance", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 250, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/12/2021 02:24 PM" - }, new ExpenseData { - UniqueId = "T100087", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497327180000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T100088", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497345720000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100089", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497367740000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 08:59 PM" - }, new ExpenseData { - UniqueId = "T100090", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497330780000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 10:43 AM" - }, new ExpenseData { - UniqueId = "T100091", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497346980000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 03:13 PM" - }, new ExpenseData { - UniqueId = "T100092", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497354420000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 280, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 05:17 PM" - }, new ExpenseData { - UniqueId = "T100093", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497355380000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Taxi Start (Normal Tariff)", - Amount = 3, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 05:33 PM" - }, new ExpenseData { - UniqueId = "T100094", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497354720000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 120, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/13/2021 05:22 PM" - }, new ExpenseData { - UniqueId = "T100095", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497411900000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 09:15 AM" - }, new ExpenseData { - UniqueId = "T100096", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497432420000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 02:57 PM" - }, new ExpenseData { - UniqueId = "T100097", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497452400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 08:30 PM" - }, new ExpenseData { - UniqueId = "T100098", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497417540000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T100099", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497435300000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T100100", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497427860000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 220, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/14/2021 01:41 PM" - }, new ExpenseData { - UniqueId = "T100101", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497498840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 09:24 AM" - }, new ExpenseData { - UniqueId = "T100102", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497517380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 02:33 PM" - }, new ExpenseData { - UniqueId = "T100103", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497540300000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100104", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497502800000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 10:30 AM" - }, new ExpenseData { - UniqueId = "T100105", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497519900000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 03:15 PM" - }, new ExpenseData { - UniqueId = "T100106", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497537840000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T100107", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497539820000), - Category = "Bills", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Internet bills", - Amount = 380, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 08:47 PM" - }, new ExpenseData { - UniqueId = "T100108", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497538920000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 110, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/15/2021 08:32 PM" - }, new ExpenseData { - UniqueId = "T100109", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497585480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 09:28 AM" - }, new ExpenseData { - UniqueId = "T100110", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497603960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T100111", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497624360000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100112", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497590340000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T100113", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497608580000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 03:53 PM" - }, new ExpenseData { - UniqueId = "T100114", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497606960000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 135, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 03:26 PM" - }, new ExpenseData { - UniqueId = "T100115", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497607860000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance, repairs", - Amount = 15, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 03:41 PM" - }, new ExpenseData { - UniqueId = "T100116", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497606540000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema", - Amount = 4, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/16/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100117", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497671700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 09:25 AM" - }, new ExpenseData { - UniqueId = "T100118", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497689760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 02:26 PM" - }, new ExpenseData { - UniqueId = "T100119", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497711900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100120", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497675420000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100121", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497695160000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100122", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497692640000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 350, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/17/2021 03:14 PM" - }, new ExpenseData { - UniqueId = "T100123", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497758640000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T100124", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497776700000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T100125", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497796980000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100126", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497760860000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100127", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497781500000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100128", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497767280000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 65, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 11:58 AM" - }, new ExpenseData { - UniqueId = "T100129", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497765420000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Deodorant, roll-on", - Amount = 15, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/18/2021 11:27 AM" - }, new ExpenseData { - UniqueId = "T100130", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497845700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100131", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497862860000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100132", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497885660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T100133", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497848460000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 10:31 AM" - }, new ExpenseData { - UniqueId = "T100134", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497866700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T100135", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497880200000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 30, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 07:20 PM" - }, new ExpenseData { - UniqueId = "T100136", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497881280000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Debt repayment", - Amount = 3, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 07:38 PM" - }, new ExpenseData { - UniqueId = "T100137", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497880860000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 80, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/19/2021 07:31 PM" - }, new ExpenseData { - UniqueId = "T100138", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497931500000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 09:35 AM" - }, new ExpenseData { - UniqueId = "T100139", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497950700000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 02:55 PM" - }, new ExpenseData { - UniqueId = "T100140", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497971100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100141", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497935820000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 10:47 AM" - }, new ExpenseData { - UniqueId = "T100142", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497952680000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 03:28 PM" - }, new ExpenseData { - UniqueId = "T100143", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1497957360000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/20/2021 04:46 PM" - }, new ExpenseData { - UniqueId = "T100144", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498018140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/21/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100145", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498036500000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/21/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100146", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498056480000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/21/2021 08:18 PM" - }, new ExpenseData { - UniqueId = "T100147", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498022640000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/21/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T100148", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498040940000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/21/2021 03:59 PM" - }, new ExpenseData { - UniqueId = "T100149", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498103220000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T100150", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498122720000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 02:42 PM" - }, new ExpenseData { - UniqueId = "T100151", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498143060000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 08:21 PM" - }, new ExpenseData { - UniqueId = "T100152", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498108680000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T100153", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498125540000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100154", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498112160000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 60, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 11:46 AM" - }, new ExpenseData { - UniqueId = "T100155", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498110360000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from lottery", - Amount = 80, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/22/2021 11:16 AM" - }, new ExpenseData { - UniqueId = "T100156", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498189380000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 09:13 AM" - }, new ExpenseData { - UniqueId = "T100157", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498208400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 02:30 PM" - }, new ExpenseData { - UniqueId = "T100158", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498229580000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 08:23 PM" - }, new ExpenseData { - UniqueId = "T100159", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498194360000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 10:36 AM" - }, new ExpenseData { - UniqueId = "T100160", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498211160000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 03:16 PM" - }, new ExpenseData { - UniqueId = "T100161", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498202280000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 50, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 12:48 PM" - }, new ExpenseData { - UniqueId = "T100162", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498200120000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 12:12 PM" - }, new ExpenseData { - UniqueId = "T100163", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498202340000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Internet use", - Amount = 3, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/23/2021 12:49 PM" - }, new ExpenseData { - UniqueId = "T100164", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498277340000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100165", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498296360000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T100166", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498315440000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T100167", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498279980000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T100168", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498299900000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100169", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498315920000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 08:22 PM" - }, new ExpenseData { - UniqueId = "T100170", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498316460000), - Category = "Insurance", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal insurance", - Amount = 230, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/24/2021 08:31 PM" - }, new ExpenseData { - UniqueId = "T100171", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498362240000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 09:14 AM" - }, new ExpenseData { - UniqueId = "T100172", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498381140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 02:29 PM" - }, new ExpenseData { - UniqueId = "T100173", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498404360000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T100174", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498368360000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 10:56 AM" - }, new ExpenseData { - UniqueId = "T100175", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498386180000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 03:53 PM" - }, new ExpenseData { - UniqueId = "T100176", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498379160000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 01:56 PM" - }, new ExpenseData { - UniqueId = "T100177", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498376520000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cold medicine", - Amount = 15, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 01:12 PM" - }, new ExpenseData { - UniqueId = "T100178", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498379100000), - Category = "Tax", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Income tax", - Amount = 180, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/25/2021 01:55 PM" - }, new ExpenseData { - UniqueId = "T100179", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498450680000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 09:48 AM" - }, new ExpenseData { - UniqueId = "T100180", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498466400000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T100181", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498490160000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100182", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498453440000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100183", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498472040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100184", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498485060000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 30, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 07:21 PM" - }, new ExpenseData { - UniqueId = "T100185", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498486380000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from returns", - Amount = 120, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/26/2021 07:43 PM" - }, new ExpenseData { - UniqueId = "T100186", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498536120000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T100187", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498553400000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 02:20 PM" - }, new ExpenseData { - UniqueId = "T100188", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498574580000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 12, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100189", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498540080000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 10:38 AM" - }, new ExpenseData { - UniqueId = "T100190", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498556640000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 03:14 PM" - }, new ExpenseData { - UniqueId = "T100191", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498552140000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/27/2021 01:59 PM" - }, new ExpenseData { - UniqueId = "T100192", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498623540000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 8, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 09:49 AM" - }, new ExpenseData { - UniqueId = "T100193", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498641780000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 02:53 PM" - }, new ExpenseData { - UniqueId = "T100194", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498661580000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 08:23 PM" - }, new ExpenseData { - UniqueId = "T100195", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498624860000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100196", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498643940000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100197", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498639860000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Telephone services", - Amount = 200, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 02:21 PM" - }, new ExpenseData { - UniqueId = "T100198", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498641840000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from investments", - Amount = 220, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/28/2021 02:54 PM" - }, new ExpenseData { - UniqueId = "T100199", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498707660000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100200", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498726260000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 02:21 PM" - }, new ExpenseData { - UniqueId = "T100201", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498748460000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 08:31 PM" - }, new ExpenseData { - UniqueId = "T100202", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498714080000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 10:58 AM" - }, new ExpenseData { - UniqueId = "T100203", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498731180000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100204", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498742820000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 155, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 06:57 PM" - }, new ExpenseData { - UniqueId = "T100205", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498741800000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline (1 liter)", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/29/2021 06:40 PM" - }, new ExpenseData { - UniqueId = "T100206", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498796880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 09:58 AM" - }, new ExpenseData { - UniqueId = "T100207", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498812420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 02:17 PM" - }, new ExpenseData { - UniqueId = "T100208", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498835580000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 08:43 PM" - }, new ExpenseData { - UniqueId = "T100209", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498798920000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T100210", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498817040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 03:34 PM" - }, new ExpenseData { - UniqueId = "T100211", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498803720000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 145, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 11:52 AM" - }, new ExpenseData { - UniqueId = "T100212", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498802700000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 20, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 11:35 AM" - }, new ExpenseData { - UniqueId = "T100213", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498801560000), - Category = "Education", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 11:16 AM" - }, new ExpenseData { - UniqueId = "T100214", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498803720000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 80, - MonthShort = "Jun", - MonthFull = "June, 2021", - FormattedDate = "06/30/2021 11:52 AM" - }, new ExpenseData { - UniqueId = "T100215", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498880400000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 09:10 AM" - }, new ExpenseData { - UniqueId = "T100216", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498901160000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T100217", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498920780000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 08:23 PM" - }, new ExpenseData { - UniqueId = "T100218", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498885320000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T100219", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498903320000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 03:32 PM" - }, new ExpenseData { - UniqueId = "T100220", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498921860000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 60, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T100221", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498921500000), - Category = "Mortgage / Rent", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100222", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498920420000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 5500, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/01/2021 08:17 PM" - }, new ExpenseData { - UniqueId = "T100223", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498967400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100224", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498987500000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 02:55 PM" - }, new ExpenseData { - UniqueId = "T100225", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499008560000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100226", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498971480000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100227", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498991280000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T100228", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498985100000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 40, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 02:15 PM" - }, new ExpenseData { - UniqueId = "T100229", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1498987320000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other household products", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/02/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100230", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499054220000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 09:27 AM" - }, new ExpenseData { - UniqueId = "T100231", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499071440000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100232", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499093040000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T100233", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499057460000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 10:21 AM" - }, new ExpenseData { - UniqueId = "T100234", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499075520000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T100235", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499064660000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 12:21 PM" - }, new ExpenseData { - UniqueId = "T100236", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499064420000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Electricity bill", - Amount = 280, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/03/2021 12:17 PM" - }, new ExpenseData { - UniqueId = "T100237", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499142540000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100238", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499159880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100239", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499181180000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 08:43 PM" - }, new ExpenseData { - UniqueId = "T100240", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499143980000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T100241", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499161980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T100242", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499177520000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 50, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 07:42 PM" - }, new ExpenseData { - UniqueId = "T100243", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499178240000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cold medicine", - Amount = 15, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 07:54 PM" - }, new ExpenseData { - UniqueId = "T100244", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499176500000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from casino", - Amount = 90, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/04/2021 07:25 PM" - }, new ExpenseData { - UniqueId = "T100245", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499227500000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 09:35 AM" - }, new ExpenseData { - UniqueId = "T100246", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499246760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T100247", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499267820000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 08:47 PM" - }, new ExpenseData { - UniqueId = "T100248", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499230260000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 10:21 AM" - }, new ExpenseData { - UniqueId = "T100249", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499248200000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 03:20 PM" - }, new ExpenseData { - UniqueId = "T100250", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499259240000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 06:24 PM" - }, new ExpenseData { - UniqueId = "T100251", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499260020000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline (1 liter)", - Amount = 3, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/05/2021 06:37 PM" - }, new ExpenseData { - UniqueId = "T100252", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499312760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 09:16 AM" - }, new ExpenseData { - UniqueId = "T100253", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499332200000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 02:40 PM" - }, new ExpenseData { - UniqueId = "T100254", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499353680000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100255", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499316600000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 10:20 AM" - }, new ExpenseData { - UniqueId = "T100256", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499335080000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 03:28 PM" - }, new ExpenseData { - UniqueId = "T100257", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499323980000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 12:23 PM" - }, new ExpenseData { - UniqueId = "T100258", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499325540000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 90, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/06/2021 12:49 PM" - }, new ExpenseData { - UniqueId = "T100259", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499401020000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 09:47 AM" - }, new ExpenseData { - UniqueId = "T100260", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499417340000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 02:19 PM" - }, new ExpenseData { - UniqueId = "T100261", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499440260000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T100262", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499403360000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 10:26 AM" - }, new ExpenseData { - UniqueId = "T100263", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499422380000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100264", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499413680000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Monthly Pass (Regular Price)", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/07/2021 01:18 PM" - }, new ExpenseData { - UniqueId = "T100265", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499487000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 09:40 AM" - }, new ExpenseData { - UniqueId = "T100266", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499504880000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100267", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499527500000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100268", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499490900000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 10:45 AM" - }, new ExpenseData { - UniqueId = "T100269", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499509560000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100270", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499499960000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 55, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 01:16 PM" - }, new ExpenseData { - UniqueId = "T100271", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499502480000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 90, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/08/2021 01:58 PM" - }, new ExpenseData { - UniqueId = "T100272", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499573880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 09:48 AM" - }, new ExpenseData { - UniqueId = "T100273", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499591760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 02:46 PM" - }, new ExpenseData { - UniqueId = "T100274", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499613900000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100275", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499576640000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100276", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499594100000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 03:25 PM" - }, new ExpenseData { - UniqueId = "T100277", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499601180000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 40, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 05:23 PM" - }, new ExpenseData { - UniqueId = "T100278", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499602920000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/09/2021 05:52 PM" - }, new ExpenseData { - UniqueId = "T100279", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499660640000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 09:54 AM" - }, new ExpenseData { - UniqueId = "T100280", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499676480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 02:18 PM" - }, new ExpenseData { - UniqueId = "T100281", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499698680000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 08:28 PM" - }, new ExpenseData { - UniqueId = "T100282", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499663040000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100283", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499679720000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 03:12 PM" - }, new ExpenseData { - UniqueId = "T100284", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499663880000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 360, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T100285", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499664240000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Internet use", - Amount = 3, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/10/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T100286", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499745420000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 09:27 AM" - }, new ExpenseData { - UniqueId = "T100287", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499763720000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 02:32 PM" - }, new ExpenseData { - UniqueId = "T100288", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499785860000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T100289", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499750940000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T100290", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499766840000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100291", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499774340000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 65, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 05:29 PM" - }, new ExpenseData { - UniqueId = "T100292", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499775960000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Standard haircut", - Amount = 15, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 05:56 PM" - }, new ExpenseData { - UniqueId = "T100293", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499773800000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 120, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/11/2021 05:20 PM" - }, new ExpenseData { - UniqueId = "T100294", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499832420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T100295", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499851020000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T100296", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499872800000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 08:50 PM" - }, new ExpenseData { - UniqueId = "T100297", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499835240000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 10:24 AM" - }, new ExpenseData { - UniqueId = "T100298", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499855040000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 03:54 PM" - }, new ExpenseData { - UniqueId = "T100299", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499863380000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 06:13 PM" - }, new ExpenseData { - UniqueId = "T100300", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499863260000), - Category = "Insurance", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Life and other personal insurance", - Amount = 230, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/12/2021 06:11 PM" - }, new ExpenseData { - UniqueId = "T100301", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499919480000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 09:48 AM" - }, new ExpenseData { - UniqueId = "T100302", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499935560000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T100303", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499959740000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 08:59 PM" - }, new ExpenseData { - UniqueId = "T100304", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499921220000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T100305", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499941560000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100306", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499919180000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 60, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T100307", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499918820000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gym payment", - Amount = 5, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T100308", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1499918580000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 80, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/13/2021 09:33 AM" - }, new ExpenseData { - UniqueId = "T100309", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500003900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 09:15 AM" - }, new ExpenseData { - UniqueId = "T100310", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500021600000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T100311", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500043740000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100312", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500007260000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100313", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500025200000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 03:10 PM" - }, new ExpenseData { - UniqueId = "T100314", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500004800000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from investments", - Amount = 180, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/14/2021 09:30 AM" - }, new ExpenseData { - UniqueId = "T100315", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500092580000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T100316", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500110760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T100317", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500131760000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100318", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500094680000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100319", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500111960000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 03:16 PM" - }, new ExpenseData { - UniqueId = "T100320", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500115200000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 55, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 04:10 PM" - }, new ExpenseData { - UniqueId = "T100321", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500115440000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Internet bills", - Amount = 320, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 04:14 PM" - }, new ExpenseData { - UniqueId = "T100322", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500117660000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 100, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/15/2021 04:51 PM" - }, new ExpenseData { - UniqueId = "T100323", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500178140000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100324", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500195660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100325", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500216360000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100326", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500182640000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T100327", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500199980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100328", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500182580000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 35, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 10:53 AM" - }, new ExpenseData { - UniqueId = "T100329", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500182340000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T100330", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500181920000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 5, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/16/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100331", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500264540000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100332", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500282180000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 02:33 PM" - }, new ExpenseData { - UniqueId = "T100333", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500305100000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100334", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500268320000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100335", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500285840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 03:34 PM" - }, new ExpenseData { - UniqueId = "T100336", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500284460000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 130, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/17/2021 03:11 PM" - }, new ExpenseData { - UniqueId = "T100337", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500351360000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 09:46 AM" - }, new ExpenseData { - UniqueId = "T100338", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500369720000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100339", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500391500000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100340", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500355680000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 10:58 AM" - }, new ExpenseData { - UniqueId = "T100341", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500372840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100342", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500368340000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 55, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 02:29 PM" - }, new ExpenseData { - UniqueId = "T100343", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500370080000), - Category = "Personal Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/18/2021 02:58 PM" - }, new ExpenseData { - UniqueId = "T100344", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500438120000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 09:52 AM" - }, new ExpenseData { - UniqueId = "T100345", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500455700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100346", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500477120000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 08:42 PM" - }, new ExpenseData { - UniqueId = "T100347", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500441000000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 10:40 AM" - }, new ExpenseData { - UniqueId = "T100348", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500457380000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 03:13 PM" - }, new ExpenseData { - UniqueId = "T100349", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500454620000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 20, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T100350", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500453780000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Tennis Court Rent", - Amount = 3, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 02:13 PM" - }, new ExpenseData { - UniqueId = "T100351", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500456360000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from casino", - Amount = 120, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/19/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T100352", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500524940000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100353", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500540600000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 02:20 PM" - }, new ExpenseData { - UniqueId = "T100354", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500563460000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T100355", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500527700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 10:45 AM" - }, new ExpenseData { - UniqueId = "T100356", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500545940000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100357", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500543720000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 260, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/20/2021 03:12 PM" - }, new ExpenseData { - UniqueId = "T100358", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500610500000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/21/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100359", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500626520000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/21/2021 02:12 PM" - }, new ExpenseData { - UniqueId = "T100360", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500650340000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/21/2021 08:49 PM" - }, new ExpenseData { - UniqueId = "T100361", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500613800000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/21/2021 10:40 AM" - }, new ExpenseData { - UniqueId = "T100362", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500632460000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/21/2021 03:51 PM" - }, new ExpenseData { - UniqueId = "T100363", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500695040000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 09:14 AM" - }, new ExpenseData { - UniqueId = "T100364", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500715380000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 02:53 PM" - }, new ExpenseData { - UniqueId = "T100365", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500735720000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 08:32 PM" - }, new ExpenseData { - UniqueId = "T100366", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500699480000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100367", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500716880000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 03:18 PM" - }, new ExpenseData { - UniqueId = "T100368", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500706020000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 12:17 PM" - }, new ExpenseData { - UniqueId = "T100369", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500708060000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from casino", - Amount = 100, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/22/2021 12:51 PM" - }, new ExpenseData { - UniqueId = "T100370", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500782820000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T100371", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500801240000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 02:44 PM" - }, new ExpenseData { - UniqueId = "T100372", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500821340000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100373", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500784980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 10:13 AM" - }, new ExpenseData { - UniqueId = "T100374", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500804660000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 03:41 PM" - }, new ExpenseData { - UniqueId = "T100375", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500783120000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 50, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 09:42 AM" - }, new ExpenseData { - UniqueId = "T100376", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500781680000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 15, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100377", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500781500000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline (1 liter)", - Amount = 4, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/23/2021 09:15 AM" - }, new ExpenseData { - UniqueId = "T100378", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500869520000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 09:42 AM" - }, new ExpenseData { - UniqueId = "T100379", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500886020000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 02:17 PM" - }, new ExpenseData { - UniqueId = "T100380", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500908160000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 08:26 PM" - }, new ExpenseData { - UniqueId = "T100381", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500871860000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 10:21 AM" - }, new ExpenseData { - UniqueId = "T100382", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500891360000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T100383", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500906000000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 07:50 PM" - }, new ExpenseData { - UniqueId = "T100384", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500904080000), - Category = "Insurance", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal insurance", - Amount = 230, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/24/2021 07:18 PM" - }, new ExpenseData { - UniqueId = "T100385", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500956220000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 09:47 AM" - }, new ExpenseData { - UniqueId = "T100386", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500973500000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T100387", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500996000000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 08:50 PM" - }, new ExpenseData { - UniqueId = "T100388", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500958620000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100389", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500977940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100390", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500987120000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 55, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 06:22 PM" - }, new ExpenseData { - UniqueId = "T100391", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500988740000), - Category = "Personal Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Deodorant, roll-on", - Amount = 15, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 06:49 PM" - }, new ExpenseData { - UniqueId = "T100392", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1500989040000), - Category = "Tax", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Property tax", - Amount = 180, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/25/2021 06:54 PM" - }, new ExpenseData { - UniqueId = "T100393", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501041540000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 09:29 AM" - }, new ExpenseData { - UniqueId = "T100394", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501060200000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 02:40 PM" - }, new ExpenseData { - UniqueId = "T100395", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501082160000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100396", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501046520000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 10:52 AM" - }, new ExpenseData { - UniqueId = "T100397", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501063140000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100398", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501062900000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other household products", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 03:25 PM" - }, new ExpenseData { - UniqueId = "T100399", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501064880000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 110, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/26/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T100400", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501127460000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 09:21 AM" - }, new ExpenseData { - UniqueId = "T100401", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501147140000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 02:49 PM" - }, new ExpenseData { - UniqueId = "T100402", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501166700000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 08:15 PM" - }, new ExpenseData { - UniqueId = "T100403", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501131540000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 10:29 AM" - }, new ExpenseData { - UniqueId = "T100404", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501148700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 03:15 PM" - }, new ExpenseData { - UniqueId = "T100405", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501159980000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/27/2021 06:23 PM" - }, new ExpenseData { - UniqueId = "T100406", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501216020000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 09:57 AM" - }, new ExpenseData { - UniqueId = "T100407", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501232640000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 02:34 PM" - }, new ExpenseData { - UniqueId = "T100408", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501253760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 08:26 PM" - }, new ExpenseData { - UniqueId = "T100409", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501218360000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 10:36 AM" - }, new ExpenseData { - UniqueId = "T100410", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501237740000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 03:59 PM" - }, new ExpenseData { - UniqueId = "T100411", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501215600000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Telephone services", - Amount = 180, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 09:50 AM" - }, new ExpenseData { - UniqueId = "T100412", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501213200000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 180, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/28/2021 09:10 AM" - }, new ExpenseData { - UniqueId = "T100413", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501301340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100414", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501319880000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100415", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501340580000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T100416", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501304220000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100417", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501321980000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T100418", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501322220000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T100419", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501322220000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 4, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/29/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T100420", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501387380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 09:33 AM" - }, new ExpenseData { - UniqueId = "T100421", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501405680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 11, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100422", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501427760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 7, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100423", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501391340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 10:39 AM" - }, new ExpenseData { - UniqueId = "T100424", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501409640000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100425", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501388820000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 35, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 09:57 AM" - }, new ExpenseData { - UniqueId = "T100426", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501386420000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other household products", - Amount = 30, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T100427", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501386960000), - Category = "Education", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 09:26 AM" - }, new ExpenseData { - UniqueId = "T100428", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501386060000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 80, - MonthShort = "Jul", - MonthFull = "July, 2021", - FormattedDate = "07/30/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100429", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501559400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100430", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501579680000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 02:58 PM" - }, new ExpenseData { - UniqueId = "T100431", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501599840000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 08:34 PM" - }, new ExpenseData { - UniqueId = "T100432", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501563840000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100433", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501582680000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 03:48 PM" - }, new ExpenseData { - UniqueId = "T100434", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501576140000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 60, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 01:59 PM" - }, new ExpenseData { - UniqueId = "T100435", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501573560000), - Category = "Mortgage / Rent", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 01:16 PM" - }, new ExpenseData { - UniqueId = "T100436", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501573860000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 5000, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/01/2021 01:21 PM" - }, new ExpenseData { - UniqueId = "T100437", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501645620000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T100438", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501665600000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 02:50 PM" - }, new ExpenseData { - UniqueId = "T100439", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501685760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 08:26 PM" - }, new ExpenseData { - UniqueId = "T100440", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501650120000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T100441", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501669680000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T100442", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501651380000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 35, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 10:53 AM" - }, new ExpenseData { - UniqueId = "T100443", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501649160000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/02/2021 10:16 AM" - }, new ExpenseData { - UniqueId = "T100444", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501732320000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 09:22 AM" - }, new ExpenseData { - UniqueId = "T100445", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501749900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 02:15 PM" - }, new ExpenseData { - UniqueId = "T100446", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501772760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 08:36 PM" - }, new ExpenseData { - UniqueId = "T100447", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501737240000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 10:44 AM" - }, new ExpenseData { - UniqueId = "T100448", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501753440000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 03:14 PM" - }, new ExpenseData { - UniqueId = "T100449", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501755420000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 03:47 PM" - }, new ExpenseData { - UniqueId = "T100450", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501756080000), - Category = "Bills", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Electricity bill", - Amount = 200, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/03/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T100451", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501820100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100452", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501836060000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 02:11 PM" - }, new ExpenseData { - UniqueId = "T100453", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501858260000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 08:21 PM" - }, new ExpenseData { - UniqueId = "T100454", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501821840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 10:14 AM" - }, new ExpenseData { - UniqueId = "T100455", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501839720000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 03:12 PM" - }, new ExpenseData { - UniqueId = "T100456", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501860360000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 60, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T100457", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501857840000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T100458", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501858560000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from casino", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/04/2021 08:26 PM" - }, new ExpenseData { - UniqueId = "T100459", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501906200000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 09:40 AM" - }, new ExpenseData { - UniqueId = "T100460", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501924560000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 02:46 PM" - }, new ExpenseData { - UniqueId = "T100461", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501946460000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T100462", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501908420000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T100463", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501926780000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T100464", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501908540000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance, repairs", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 10:19 AM" - }, new ExpenseData { - UniqueId = "T100465", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501908780000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 2, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/05/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T100466", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501993380000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T100467", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502010180000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 02:33 PM" - }, new ExpenseData { - UniqueId = "T100468", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502030940000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100469", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1501995900000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 10:35 AM" - }, new ExpenseData { - UniqueId = "T100470", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502014500000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T100471", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502002680000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 60, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 12:28 PM" - }, new ExpenseData { - UniqueId = "T100472", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502002140000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 120, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/06/2021 12:19 PM" - }, new ExpenseData { - UniqueId = "T100473", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502078640000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T100474", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502097720000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100475", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502116920000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 08:12 PM" - }, new ExpenseData { - UniqueId = "T100476", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502082000000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 10:30 AM" - }, new ExpenseData { - UniqueId = "T100477", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502098980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 03:13 PM" - }, new ExpenseData { - UniqueId = "T100478", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502101500000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cappuccino (regular)", - Amount = 5, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/07/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100479", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502165400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 09:40 AM" - }, new ExpenseData { - UniqueId = "T100480", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502181900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 02:15 PM" - }, new ExpenseData { - UniqueId = "T100481", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502204580000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T100482", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502169360000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 10:46 AM" - }, new ExpenseData { - UniqueId = "T100483", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502185380000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 03:13 PM" - }, new ExpenseData { - UniqueId = "T100484", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502204340000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 60, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 08:29 PM" - }, new ExpenseData { - UniqueId = "T100485", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502205840000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 100, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/08/2021 08:54 PM" - }, new ExpenseData { - UniqueId = "T100486", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502250900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 09:25 AM" - }, new ExpenseData { - UniqueId = "T100487", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502270100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100488", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502291040000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 08:34 PM" - }, new ExpenseData { - UniqueId = "T100489", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502253720000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 10:12 AM" - }, new ExpenseData { - UniqueId = "T100490", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502274420000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 03:57 PM" - }, new ExpenseData { - UniqueId = "T100491", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502292120000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 45, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T100492", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502290140000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 30, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/09/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100493", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502336580000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 09:13 AM" - }, new ExpenseData { - UniqueId = "T100494", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502356620000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T100495", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502376360000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100496", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502340180000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 10:13 AM" - }, new ExpenseData { - UniqueId = "T100497", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502360640000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 03:54 PM" - }, new ExpenseData { - UniqueId = "T100498", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502349360000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 12:46 PM" - }, new ExpenseData { - UniqueId = "T100499", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502348940000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 4, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/10/2021 12:39 PM" - }, new ExpenseData { - UniqueId = "T100500", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502425680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 09:58 AM" - }, new ExpenseData { - UniqueId = "T100501", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502443620000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 02:57 PM" - }, new ExpenseData { - UniqueId = "T100502", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502464140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 08:39 PM" - }, new ExpenseData { - UniqueId = "T100503", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502427420000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100504", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502444940000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100505", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502442480000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100506", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502441100000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Deodorant, roll-on", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 02:15 PM" - }, new ExpenseData { - UniqueId = "T100507", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502441400000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 100, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/11/2021 02:20 PM" - }, new ExpenseData { - UniqueId = "T100508", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502510520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T100509", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502527440000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100510", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502550120000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 08:32 PM" - }, new ExpenseData { - UniqueId = "T100511", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502512860000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100512", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502532840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100513", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502525520000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 01:42 PM" - }, new ExpenseData { - UniqueId = "T100514", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502524260000), - Category = "Insurance", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 230, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/12/2021 01:21 PM" - }, new ExpenseData { - UniqueId = "T100515", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502596560000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 09:26 AM" - }, new ExpenseData { - UniqueId = "T100516", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502616180000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 02:53 PM" - }, new ExpenseData { - UniqueId = "T100517", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502636700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100518", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502599500000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 10:15 AM" - }, new ExpenseData { - UniqueId = "T100519", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502619600000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100520", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502598180000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T100521", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502596260000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Internet use", - Amount = 2, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 09:21 AM" - }, new ExpenseData { - UniqueId = "T100522", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502596140000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 120, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/13/2021 09:19 AM" - }, new ExpenseData { - UniqueId = "T100523", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502682600000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100524", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502701680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100525", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502723700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T100526", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502687160000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 10:36 AM" - }, new ExpenseData { - UniqueId = "T100527", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502705820000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 03:47 PM" - }, new ExpenseData { - UniqueId = "T100528", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502724540000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 20, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/14/2021 08:59 PM" - }, new ExpenseData { - UniqueId = "T100529", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502771100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 09:55 AM" - }, new ExpenseData { - UniqueId = "T100530", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502787660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100531", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502809620000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 08:37 PM" - }, new ExpenseData { - UniqueId = "T100532", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502774580000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 10:53 AM" - }, new ExpenseData { - UniqueId = "T100533", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502792820000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 03:57 PM" - }, new ExpenseData { - UniqueId = "T100534", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502777520000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 65, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 11:42 AM" - }, new ExpenseData { - UniqueId = "T100535", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502776920000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Internet bills", - Amount = 200, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 11:32 AM" - }, new ExpenseData { - UniqueId = "T100536", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502776260000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 100, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/15/2021 11:21 AM" - }, new ExpenseData { - UniqueId = "T100537", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502856960000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 09:46 AM" - }, new ExpenseData { - UniqueId = "T100538", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502873520000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 02:22 PM" - }, new ExpenseData { - UniqueId = "T100539", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502896980000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 08:53 PM" - }, new ExpenseData { - UniqueId = "T100540", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502859840000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100541", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502879160000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100542", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502856420000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 35, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T100543", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502856900000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 25, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100544", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502857140000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cinema", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/16/2021 09:49 AM" - }, new ExpenseData { - UniqueId = "T100545", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502943780000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T100546", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502959200000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T100547", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502982300000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T100548", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502947740000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T100549", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502963400000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 03:20 PM" - }, new ExpenseData { - UniqueId = "T100550", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1502958240000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 130, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/17/2021 01:54 PM" - }, new ExpenseData { - UniqueId = "T100551", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503029100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 09:35 AM" - }, new ExpenseData { - UniqueId = "T100552", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503048300000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 02:55 PM" - }, new ExpenseData { - UniqueId = "T100553", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503067440000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T100554", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503031920000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T100555", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503049980000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T100556", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503047520000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 55, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 02:42 PM" - }, new ExpenseData { - UniqueId = "T100557", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503047460000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "1 box of antibiotics (12 doses)", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/18/2021 02:41 PM" - }, new ExpenseData { - UniqueId = "T100558", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503114840000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 09:24 AM" - }, new ExpenseData { - UniqueId = "T100559", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503132480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 02:18 PM" - }, new ExpenseData { - UniqueId = "T100560", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503156300000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100561", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503118020000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T100562", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503137940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100563", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503147840000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 20, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 06:34 PM" - }, new ExpenseData { - UniqueId = "T100564", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503146520000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Taxi 1hour Waiting", - Amount = 5, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 06:12 PM" - }, new ExpenseData { - UniqueId = "T100565", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503147360000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from casino", - Amount = 120, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/19/2021 06:26 PM" - }, new ExpenseData { - UniqueId = "T100566", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503203280000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 09:58 AM" - }, new ExpenseData { - UniqueId = "T100567", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503218760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T100568", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503242640000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 08:54 PM" - }, new ExpenseData { - UniqueId = "T100569", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503204120000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 10:12 AM" - }, new ExpenseData { - UniqueId = "T100570", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503224040000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100571", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503234780000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/20/2021 06:43 PM" - }, new ExpenseData { - UniqueId = "T100572", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503287280000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/21/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100573", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503306840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/21/2021 02:44 PM" - }, new ExpenseData { - UniqueId = "T100574", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503329100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/21/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100575", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503290640000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/21/2021 10:14 AM" - }, new ExpenseData { - UniqueId = "T100576", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503309360000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/21/2021 03:26 PM" - }, new ExpenseData { - UniqueId = "T100577", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503376020000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 09:57 AM" - }, new ExpenseData { - UniqueId = "T100578", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503392880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100579", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503415680000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 08:58 PM" - }, new ExpenseData { - UniqueId = "T100580", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503378720000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100581", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503395040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 03:14 PM" - }, new ExpenseData { - UniqueId = "T100582", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503398640000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 55, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 04:14 PM" - }, new ExpenseData { - UniqueId = "T100583", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503398520000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 110, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/22/2021 04:12 PM" - }, new ExpenseData { - UniqueId = "T100584", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503461820000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 09:47 AM" - }, new ExpenseData { - UniqueId = "T100585", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503478620000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T100586", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503500880000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100587", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503464160000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 10:26 AM" - }, new ExpenseData { - UniqueId = "T100588", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503483960000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100589", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503477960000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 40, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T100590", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503478560000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other household products", - Amount = 25, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 02:26 PM" - }, new ExpenseData { - UniqueId = "T100591", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503477840000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 4, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/23/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100592", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503546780000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 09:23 AM" - }, new ExpenseData { - UniqueId = "T100593", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503566100000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100594", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503587520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 08:42 PM" - }, new ExpenseData { - UniqueId = "T100595", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503552240000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T100596", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503568440000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100597", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503571680000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 04:18 PM" - }, new ExpenseData { - UniqueId = "T100598", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503571920000), - Category = "Insurance", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Life and other personal insurance", - Amount = 250, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/24/2021 04:22 PM" - }, new ExpenseData { - UniqueId = "T100599", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503634680000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 09:48 AM" - }, - new ExpenseData { - UniqueId = "T100600", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503651000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 02:20 PM" - }, new ExpenseData { - UniqueId = "T100601", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503672180000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100602", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503638880000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 10:58 AM" - }, new ExpenseData { - UniqueId = "T100603", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503656160000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T100604", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503669960000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 65, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 07:36 PM" - }, new ExpenseData { - UniqueId = "T100605", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503669360000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 20, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 07:26 PM" - }, new ExpenseData { - UniqueId = "T100606", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503668760000), - Category = "Tax", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Licenses and occupational taxes", - Amount = 180, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/25/2021 07:16 PM" - }, new ExpenseData { - UniqueId = "T100607", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503719040000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 09:14 AM" - }, new ExpenseData { - UniqueId = "T100608", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503737880000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 02:28 PM" - }, new ExpenseData { - UniqueId = "T100609", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503758400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 08:10 PM" - }, new ExpenseData { - UniqueId = "T100610", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503723480000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100611", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503742440000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100612", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503756540000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 20, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 07:39 PM" - }, new ExpenseData { - UniqueId = "T100613", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503756720000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 90, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/26/2021 07:42 PM" - }, new ExpenseData { - UniqueId = "T100614", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503805920000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 09:22 AM" - }, new ExpenseData { - UniqueId = "T100615", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503824280000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 02:28 PM" - }, new ExpenseData { - UniqueId = "T100616", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503845940000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 12, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 08:29 PM" - }, new ExpenseData { - UniqueId = "T100617", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503810840000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 10:44 AM" - }, new ExpenseData { - UniqueId = "T100618", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503828900000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T100619", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503836400000), - Category = "Health Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/27/2021 05:50 PM" - }, new ExpenseData { - UniqueId = "T100620", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503891660000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100621", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503911160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T100622", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503933720000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T100623", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503896280000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100624", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503915120000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 03:42 PM" - }, new ExpenseData { - UniqueId = "T100625", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503898140000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 220, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T100626", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503896580000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 110, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/28/2021 10:33 AM" - }, new ExpenseData { - UniqueId = "T100627", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503979440000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 10, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T100628", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503997860000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 02:41 PM" - }, new ExpenseData { - UniqueId = "T100629", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504019280000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100630", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1503981600000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 10:10 AM" - }, new ExpenseData { - UniqueId = "T100631", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504000320000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T100632", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504003260000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 04:11 PM" - }, new ExpenseData { - UniqueId = "T100633", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504003680000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 3, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/29/2021 04:18 PM" - }, new ExpenseData { - UniqueId = "T100634", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504067160000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 09:56 AM" - }, new ExpenseData { - UniqueId = "T100635", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504084680000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100636", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504106280000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 08:48 PM" - }, new ExpenseData { - UniqueId = "T100637", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504070700000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 10:55 AM" - }, new ExpenseData { - UniqueId = "T100638", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504086540000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100639", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504093740000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 40, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 05:19 PM" - }, new ExpenseData { - UniqueId = "T100640", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504095540000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 15, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 05:49 PM" - }, new ExpenseData { - UniqueId = "T100641", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504095540000), - Category = "Education", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 05:49 PM" - }, new ExpenseData { - UniqueId = "T100642", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504095780000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from lottery", - Amount = 80, - MonthShort = "Aug", - MonthFull = "August, 2021", - FormattedDate = "08/30/2021 05:53 PM" - }, new ExpenseData { - UniqueId = "T100643", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504239060000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 09:41 AM" - }, new ExpenseData { - UniqueId = "T100644", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504255620000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 02:17 PM" - }, new ExpenseData { - UniqueId = "T100645", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504277340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100646", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504242720000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100647", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504259340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100648", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504261200000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100649", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504259640000), - Category = "Mortgage / Rent", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100650", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504259700000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 6000, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/01/2021 03:25 PM" - }, new ExpenseData { - UniqueId = "T100651", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504326180000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T100652", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504341840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100653", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504365300000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T100654", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504328460000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 10:31 AM" - }, new ExpenseData { - UniqueId = "T100655", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504347540000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100656", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504356060000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 40, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 06:11 PM" - }, new ExpenseData { - UniqueId = "T100657", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504357860000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/02/2021 06:41 PM" - }, new ExpenseData { - UniqueId = "T100658", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504410240000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 09:14 AM" - }, new ExpenseData { - UniqueId = "T100659", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504430100000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100660", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504450980000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T100661", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504414500000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 10:25 AM" - }, new ExpenseData { - UniqueId = "T100662", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504433340000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 03:39 PM" - }, new ExpenseData { - UniqueId = "T100663", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504433700000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 190, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T100664", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504433760000), - Category = "Bills", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Telephone services", - Amount = 220, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/03/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T100665", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504496880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100666", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504515060000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 02:21 PM" - }, new ExpenseData { - UniqueId = "T100667", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504537740000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 08:39 PM" - }, new ExpenseData { - UniqueId = "T100668", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504500780000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T100669", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504519320000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 03:32 PM" - }, new ExpenseData { - UniqueId = "T100670", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504537200000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 08:30 PM" - }, new ExpenseData { - UniqueId = "T100671", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504538280000), - Category = "Personal Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Standard haircut", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 08:48 PM" - }, new ExpenseData { - UniqueId = "T100672", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504538400000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/04/2021 08:50 PM" - }, new ExpenseData { - UniqueId = "T100673", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504583340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 09:19 AM" - }, new ExpenseData { - UniqueId = "T100674", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504601220000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 02:17 PM" - }, new ExpenseData { - UniqueId = "T100675", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504624320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 08:42 PM" - }, new ExpenseData { - UniqueId = "T100676", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504588680000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T100677", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504607040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 03:54 PM" - }, new ExpenseData { - UniqueId = "T100678", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504584060000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 09:31 AM" - }, new ExpenseData { - UniqueId = "T100679", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504582980000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/05/2021 09:13 AM" - }, new ExpenseData { - UniqueId = "T100680", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504672140000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100681", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504689720000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100682", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504710600000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 08:40 PM" - }, new ExpenseData { - UniqueId = "T100683", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504674720000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100684", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504692840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T100685", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504689240000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 02:44 PM" - }, new ExpenseData { - UniqueId = "T100686", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504687440000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 100, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/06/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100687", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504758000000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 09:50 AM" - }, new ExpenseData { - UniqueId = "T100688", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504773960000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T100689", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504796760000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 08:36 PM" - }, new ExpenseData { - UniqueId = "T100690", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504759380000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 10:13 AM" - }, new ExpenseData { - UniqueId = "T100691", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504779720000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 03:52 PM" - }, new ExpenseData { - UniqueId = "T100692", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504797900000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Tennis Court Rent", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/07/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100693", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504843980000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T100694", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504860240000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T100695", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504883640000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 08:44 PM" - }, new ExpenseData { - UniqueId = "T100696", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504847880000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T100697", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504864740000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100698", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504862520000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100699", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504862220000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 560, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/08/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T100700", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504931340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100701", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504947360000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 02:26 PM" - }, new ExpenseData { - UniqueId = "T100702", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504970520000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T100703", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504932420000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T100704", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504951080000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 03:28 PM" - }, new ExpenseData { - UniqueId = "T100705", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504943400000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 35, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 01:20 PM" - }, new ExpenseData { - UniqueId = "T100706", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1504944960000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance, repairs", - Amount = 15, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/09/2021 01:46 PM" - }, new ExpenseData { - UniqueId = "T100707", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505017620000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 09:57 AM" - }, new ExpenseData { - UniqueId = "T100708", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505034060000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100709", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505056680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 08:48 PM" - }, new ExpenseData { - UniqueId = "T100710", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505020620000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 10:47 AM" - }, new ExpenseData { - UniqueId = "T100711", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505038560000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T100712", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505056200000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 08:40 PM" - }, new ExpenseData { - UniqueId = "T100713", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505056380000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 205, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/10/2021 08:43 PM" - }, new ExpenseData { - UniqueId = "T100714", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505102220000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 09:27 AM" - }, new ExpenseData { - UniqueId = "T100715", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505121480000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100716", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505140980000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100717", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505107680000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 10:58 AM" - }, new ExpenseData { - UniqueId = "T100718", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505123940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100719", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505101260000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100720", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505101800000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "1 box of antibiotics (12 doses)", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100721", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505102460000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 180, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/11/2021 09:31 AM" - }, new ExpenseData { - UniqueId = "T100722", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505188080000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100723", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505207760000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 02:46 PM" - }, new ExpenseData { - UniqueId = "T100724", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505228520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 08:32 PM" - }, new ExpenseData { - UniqueId = "T100725", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505191320000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 10:12 AM" - }, new ExpenseData { - UniqueId = "T100726", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505210040000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100727", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505200500000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 25, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 12:45 PM" - }, new ExpenseData { - UniqueId = "T100728", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505198880000), - Category = "Insurance", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal insurance", - Amount = 260, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/12/2021 12:18 PM" - }, new ExpenseData { - UniqueId = "T100729", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505275860000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 09:41 AM" - }, new ExpenseData { - UniqueId = "T100730", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505293200000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 02:30 PM" - }, new ExpenseData { - UniqueId = "T100731", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505315940000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 08:49 PM" - }, new ExpenseData { - UniqueId = "T100732", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505279580000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 10:43 AM" - }, new ExpenseData { - UniqueId = "T100733", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505296320000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T100734", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505285580000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 12:23 PM" - }, new ExpenseData { - UniqueId = "T100735", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505287440000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Monthly Pass (Regular Price)", - Amount = 3, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 12:54 PM" - }, new ExpenseData { - UniqueId = "T100736", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505286060000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from lottery", - Amount = 180, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/13/2021 12:31 PM" - }, new ExpenseData { - UniqueId = "T100737", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505361000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100738", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505380080000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 02:38 PM" - }, new ExpenseData { - UniqueId = "T100739", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505402760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T100740", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505366940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T100741", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505384700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100742", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505364240000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 200, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/14/2021 10:14 AM" - }, new ExpenseData { - UniqueId = "T100743", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505448120000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T100744", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505465400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 02:20 PM" - }, new ExpenseData { - UniqueId = "T100745", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505486880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 08:18 PM" - }, new ExpenseData { - UniqueId = "T100746", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505453340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T100747", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505469240000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100748", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505466780000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 65, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 02:43 PM" - }, new ExpenseData { - UniqueId = "T100749", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505467320000), - Category = "Bills", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Telephone services", - Amount = 180, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T100750", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505467740000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/15/2021 02:59 PM" - }, new ExpenseData { - UniqueId = "T100751", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505533680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100752", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505552760000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T100753", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505574900000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T100754", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505538600000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 10:40 AM" - }, new ExpenseData { - UniqueId = "T100755", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505555820000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T100756", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505534100000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 40, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 09:25 AM" - }, new ExpenseData { - UniqueId = "T100757", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505535060000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 09:41 AM" - }, new ExpenseData { - UniqueId = "T100758", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505533680000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gym payment", - Amount = 2, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/16/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100759", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505622360000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 09:56 AM" - }, new ExpenseData { - UniqueId = "T100760", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505638740000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 02:29 PM" - }, new ExpenseData { - UniqueId = "T100761", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505660220000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 08:27 PM" - }, new ExpenseData { - UniqueId = "T100762", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505624940000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 10:39 AM" - }, new ExpenseData { - UniqueId = "T100763", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505642700000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T100764", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505656020000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 160, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/17/2021 07:17 PM" - }, new ExpenseData { - UniqueId = "T100765", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505707620000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T100766", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505725260000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100767", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505745780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100768", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505709600000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 10:10 AM" - }, new ExpenseData { - UniqueId = "T100769", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505727600000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 03:10 PM" - }, new ExpenseData { - UniqueId = "T100770", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505745900000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 65, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 08:15 PM" - }, new ExpenseData { - UniqueId = "T100771", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505748120000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Standard haircut", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/18/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T100772", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505794500000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100773", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505811240000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 02:24 PM" - }, new ExpenseData { - UniqueId = "T100774", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505833200000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 08:30 PM" - }, new ExpenseData { - UniqueId = "T100775", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505798220000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 10:47 AM" - }, new ExpenseData { - UniqueId = "T100776", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505814600000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 03:20 PM" - }, new ExpenseData { - UniqueId = "T100777", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505833260000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance, repairs", - Amount = 30, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 08:31 PM" - }, new ExpenseData { - UniqueId = "T100778", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505832300000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 08:15 PM" - }, new ExpenseData { - UniqueId = "T100779", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505832480000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 110, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/19/2021 08:18 PM" - }, new ExpenseData { - UniqueId = "T100780", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505880780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T100781", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505899620000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 02:57 PM" - }, new ExpenseData { - UniqueId = "T100782", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505920440000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 08:44 PM" - }, new ExpenseData { - UniqueId = "T100783", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505884320000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T100784", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505903160000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100785", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505886660000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 90, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/20/2021 11:21 AM" - }, new ExpenseData { - UniqueId = "T100786", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505965320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/21/2021 09:12 AM" - }, new ExpenseData { - UniqueId = "T100787", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505985420000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/21/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T100788", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506006240000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/21/2021 08:34 PM" - }, new ExpenseData { - UniqueId = "T100789", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505971680000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/21/2021 10:58 AM" - }, new ExpenseData { - UniqueId = "T100790", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1505988300000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/21/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T100791", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506054540000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100792", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506071880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100793", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506093960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T100794", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506055260000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100795", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506075600000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100796", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506075540000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100797", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506075960000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 110, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/22/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100798", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506139140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 09:29 AM" - }, new ExpenseData { - UniqueId = "T100799", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506156780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 02:23 PM" - }, new ExpenseData { - UniqueId = "T100800", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506180360000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T100801", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506144300000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 10:55 AM" - }, new ExpenseData { - UniqueId = "T100802", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506161940000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100803", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506169020000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 40, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 05:47 PM" - }, new ExpenseData { - UniqueId = "T100804", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506168120000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance, repairs", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 05:32 PM" - }, new ExpenseData { - UniqueId = "T100805", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506167220000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cappuccino (regular)", - Amount = 5, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/23/2021 05:17 PM" - }, new ExpenseData { - UniqueId = "T100806", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506227340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100807", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506243480000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 6, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 02:28 PM" - }, new ExpenseData { - UniqueId = "T100808", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506264120000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 08:12 PM" - }, new ExpenseData { - UniqueId = "T100809", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506229440000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100810", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506248760000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100811", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506251400000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 04:40 PM" - }, new ExpenseData { - UniqueId = "T100812", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506251880000), - Category = "Insurance", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 250, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/24/2021 04:48 PM" - }, new ExpenseData { - UniqueId = "T100813", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506311160000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 09:16 AM" - }, new ExpenseData { - UniqueId = "T100814", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506330180000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 02:33 PM" - }, new ExpenseData { - UniqueId = "T100815", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506350760000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100816", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506314520000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 10:12 AM" - }, new ExpenseData { - UniqueId = "T100817", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506334080000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 03:38 PM" - }, new ExpenseData { - UniqueId = "T100818", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506323880000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 12:48 PM" - }, new ExpenseData { - UniqueId = "T100819", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506322080000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "1 box of antibiotics (12 doses)", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 12:18 PM" - }, new ExpenseData { - UniqueId = "T100820", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506321780000), - Category = "Tax", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Estate and gift taxes", - Amount = 1180, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/25/2021 12:13 PM" - }, new ExpenseData { - UniqueId = "T100821", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506398640000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T100822", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506416340000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 02:29 PM" - }, new ExpenseData { - UniqueId = "T100823", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506436980000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 08:13 PM" - }, new ExpenseData { - UniqueId = "T100824", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506402180000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 10:33 AM" - }, new ExpenseData { - UniqueId = "T100825", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506421200000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100826", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506420780000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 30, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100827", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506420300000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/26/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T100828", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506485700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T100829", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506504420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 02:57 PM" - }, new ExpenseData { - UniqueId = "T100830", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506525660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T100831", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506489660000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 10:51 AM" - }, new ExpenseData { - UniqueId = "T100832", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506507600000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100833", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506485760000), - Category = "Health Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/27/2021 09:46 AM" - }, new ExpenseData { - UniqueId = "T100834", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506571920000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 09:42 AM" - }, new ExpenseData { - UniqueId = "T100835", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506589920000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 02:42 PM" - }, new ExpenseData { - UniqueId = "T100836", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506611040000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 08:34 PM" - }, new ExpenseData { - UniqueId = "T100837", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506574620000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100838", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506593880000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 03:48 PM" - }, new ExpenseData { - UniqueId = "T100839", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506585840000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Electricity bill", - Amount = 200, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 01:34 PM" - }, new ExpenseData { - UniqueId = "T100840", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506585480000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from investments", - Amount = 390, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/28/2021 01:28 PM" - }, new ExpenseData { - UniqueId = "T100841", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506656460000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100842", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506676260000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 02:41 PM" - }, new ExpenseData { - UniqueId = "T100843", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506698700000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 08:55 PM" - }, new ExpenseData { - UniqueId = "T100844", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506661200000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 10:30 AM" - }, new ExpenseData { - UniqueId = "T100845", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506680700000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100846", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506698820000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 55, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 08:57 PM" - }, new ExpenseData { - UniqueId = "T100847", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506696900000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 206, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/29/2021 08:25 PM" - }, new ExpenseData { - UniqueId = "T100848", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506745440000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 09:54 AM" - }, new ExpenseData { - UniqueId = "T100849", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506763200000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 02:50 PM" - }, new ExpenseData { - UniqueId = "T100850", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506783000000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 12, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 08:20 PM" - }, new ExpenseData { - UniqueId = "T100851", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506748740000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T100852", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506766080000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 03:38 PM" - }, new ExpenseData { - UniqueId = "T100853", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506784560000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 45, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T100854", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506784920000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 20, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T100855", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506782760000), - Category = "Education", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100856", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506782460000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 120, - MonthShort = "Sep", - MonthFull = "September, 2021", - FormattedDate = "09/30/2021 08:11 PM" - }, new ExpenseData { - UniqueId = "T100857", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506830940000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T100858", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506848460000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T100859", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506870900000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T100860", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506833220000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T100861", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506852600000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 03:40 PM" - }, new ExpenseData { - UniqueId = "T100862", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506865500000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 07:15 PM" - }, new ExpenseData { - UniqueId = "T100863", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506867000000), - Category = "Mortgage / Rent", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 07:40 PM" - }, new ExpenseData { - UniqueId = "T100864", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506865860000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 6000, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/01/2021 07:21 PM" - }, new ExpenseData { - UniqueId = "T100865", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506916620000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 09:27 AM" - }, new ExpenseData { - UniqueId = "T100866", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506936060000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 02:51 PM" - }, new ExpenseData { - UniqueId = "T100867", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506956880000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100868", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506921240000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 10:44 AM" - }, new ExpenseData { - UniqueId = "T100869", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506937800000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 03:20 PM" - }, new ExpenseData { - UniqueId = "T100870", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506944640000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 150, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 05:14 PM" - }, new ExpenseData { - UniqueId = "T100871", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1506944880000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 15, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/02/2021 05:18 PM" - }, new ExpenseData { - UniqueId = "T100872", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507002420000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T100873", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507020180000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 02:13 PM" - }, new ExpenseData { - UniqueId = "T100874", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507043160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 08:36 PM" - }, new ExpenseData { - UniqueId = "T100875", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507006140000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 10:19 AM" - }, new ExpenseData { - UniqueId = "T100876", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507024980000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 03:33 PM" - }, new ExpenseData { - UniqueId = "T100877", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507014300000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 160, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 12:35 PM" - }, new ExpenseData { - UniqueId = "T100878", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507013760000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 180, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/03/2021 12:26 PM" - }, new ExpenseData { - UniqueId = "T100879", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507089420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 09:27 AM" - }, new ExpenseData { - UniqueId = "T100880", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507107360000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 02:26 PM" - }, new ExpenseData { - UniqueId = "T100881", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507129680000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T100882", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507094760000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 10:56 AM" - }, new ExpenseData { - UniqueId = "T100883", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507110840000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 03:24 PM" - }, new ExpenseData { - UniqueId = "T100884", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507107120000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 65, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 02:22 PM" - }, new ExpenseData { - UniqueId = "T100885", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507109040000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Short visit to private Doctor", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 02:54 PM" - }, new ExpenseData { - UniqueId = "T100886", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507107540000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/04/2021 02:29 PM" - }, new ExpenseData { - UniqueId = "T100887", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507176000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 09:30 AM" - }, new ExpenseData { - UniqueId = "T100888", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507193340000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 02:19 PM" - }, new ExpenseData { - UniqueId = "T100889", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507216260000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T100890", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507179060000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 10:21 AM" - }, new ExpenseData { - UniqueId = "T100891", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507199340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 03:59 PM" - }, new ExpenseData { - UniqueId = "T100892", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507179960000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 30, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 10:36 AM" - }, new ExpenseData { - UniqueId = "T100893", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507181040000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Monthly Pass (Regular Price)", - Amount = 3, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/05/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T100894", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507263420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 09:47 AM" - }, new ExpenseData { - UniqueId = "T100895", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507281300000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T100896", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507302780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 08:43 PM" - }, new ExpenseData { - UniqueId = "T100897", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507266600000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 10:40 AM" - }, new ExpenseData { - UniqueId = "T100898", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507283940000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T100899", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507291500000), - Category = "Health Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 05:35 PM" - }, new ExpenseData { - UniqueId = "T100900", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507291500000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/06/2021 05:35 PM" - }, new ExpenseData { - UniqueId = "T100901", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507347660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100902", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507368540000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 02:59 PM" - }, new ExpenseData { - UniqueId = "T100903", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507387320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 08:12 PM" - } - }); - - ExpenseData.AddRange(new List { - new ExpenseData { - UniqueId = "T100904", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507352220000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 10:27 AM" - }, new ExpenseData { - UniqueId = "T100905", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507370640000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 03:34 PM" - }, new ExpenseData { - UniqueId = "T100906", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507376460000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 105, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/07/2021 05:11 PM" - }, new ExpenseData { - UniqueId = "T100907", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507434960000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 09:26 AM" - }, new ExpenseData { - UniqueId = "T100908", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507453380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 02:33 PM" - }, new ExpenseData { - UniqueId = "T100909", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507475400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 08:40 PM" - }, new ExpenseData { - UniqueId = "T100910", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507440300000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 10:55 AM" - }, new ExpenseData { - UniqueId = "T100911", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507457400000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 03:40 PM" - }, new ExpenseData { - UniqueId = "T100912", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507434600000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T100913", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507436880000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 90, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/08/2021 09:58 AM" - }, new ExpenseData { - UniqueId = "T100914", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507521720000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T100915", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507539300000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 02:25 PM" - }, new ExpenseData { - UniqueId = "T100916", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507561320000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 08:32 PM" - }, new ExpenseData { - UniqueId = "T100917", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507526280000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T100918", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507544340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T100919", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507532460000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 145, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 12:31 PM" - }, new ExpenseData { - UniqueId = "T100920", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507531740000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other household products", - Amount = 15, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/09/2021 12:19 PM" - }, new ExpenseData { - UniqueId = "T100921", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507608600000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 09:40 AM" - }, new ExpenseData { - UniqueId = "T100922", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507626600000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 02:40 PM" - }, new ExpenseData { - UniqueId = "T100923", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507647780000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T100924", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507613220000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 10:57 AM" - }, new ExpenseData { - UniqueId = "T100925", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507628940000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 03:19 PM" - }, new ExpenseData { - UniqueId = "T100926", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507632360000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 04:16 PM" - }, new ExpenseData { - UniqueId = "T100927", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507634040000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cinema", - Amount = 4, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/10/2021 04:44 PM" - }, new ExpenseData { - UniqueId = "T100928", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507695060000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 09:41 AM" - }, new ExpenseData { - UniqueId = "T100929", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507712760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T100930", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507733880000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 08:28 PM" - }, new ExpenseData { - UniqueId = "T100931", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507698960000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 10:46 AM" - }, new ExpenseData { - UniqueId = "T100932", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507716660000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 03:41 PM" - }, new ExpenseData { - UniqueId = "T100933", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507726260000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 50, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 06:21 PM" - }, new ExpenseData { - UniqueId = "T100934", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507728360000), - Category = "Personal Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "1 box of antibiotics (12 doses)", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 06:56 PM" - }, new ExpenseData { - UniqueId = "T100935", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507727700000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 120, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/11/2021 06:45 PM" - }, new ExpenseData { - UniqueId = "T100936", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507780980000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 09:33 AM" - }, new ExpenseData { - UniqueId = "T100937", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507799880000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T100938", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507821660000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T100939", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507783980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T100940", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507804080000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T100941", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507810680000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other household products", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 05:48 PM" - }, new ExpenseData { - UniqueId = "T100942", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507810560000), - Category = "Insurance", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 250, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/12/2021 05:46 PM" - }, new ExpenseData { - UniqueId = "T100943", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507866780000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 09:23 AM" - }, new ExpenseData { - UniqueId = "T100944", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507884900000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 02:25 PM" - }, new ExpenseData { - UniqueId = "T100945", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507905960000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T100946", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507870680000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 10:28 AM" - }, new ExpenseData { - UniqueId = "T100947", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507889580000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100948", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507875720000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 60, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 11:52 AM" - }, new ExpenseData { - UniqueId = "T100949", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507875960000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Monthly Pass (Regular Price)", - Amount = 2, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 11:56 AM" - }, new ExpenseData { - UniqueId = "T100950", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507875600000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/13/2021 11:50 AM" - }, new ExpenseData { - UniqueId = "T100951", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507955340000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T100952", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507971420000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T100953", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507992540000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100954", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507956720000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T100955", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507976700000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 03:55 PM" - }, new ExpenseData { - UniqueId = "T100956", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1507953840000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 190, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/14/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T100957", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508038860000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T100958", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508057280000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 02:18 PM" - }, new ExpenseData { - UniqueId = "T100959", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508078940000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T100960", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508042460000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T100961", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508061180000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T100962", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508065500000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 65, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 04:35 PM" - }, new ExpenseData { - UniqueId = "T100963", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508065380000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 180, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 04:33 PM" - }, new ExpenseData { - UniqueId = "T100964", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508064360000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 120, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/15/2021 04:16 PM" - }, new ExpenseData { - UniqueId = "T100965", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508126280000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 09:28 AM" - }, new ExpenseData { - UniqueId = "T100966", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508144040000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 02:24 PM" - }, new ExpenseData { - UniqueId = "T100967", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508167260000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T100968", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508130120000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T100969", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508147520000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T100970", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508148420000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 150, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 03:37 PM" - }, new ExpenseData { - UniqueId = "T100971", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508148780000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 15, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 03:43 PM" - }, new ExpenseData { - UniqueId = "T100972", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508149560000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 104, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/16/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T100973", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508211900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 09:15 AM" - }, new ExpenseData { - UniqueId = "T100974", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508229600000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T100975", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508251920000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 08:22 PM" - }, new ExpenseData { - UniqueId = "T100976", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508216640000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 10:34 AM" - }, new ExpenseData { - UniqueId = "T100977", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508234820000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 03:37 PM" - }, new ExpenseData { - UniqueId = "T100978", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508242140000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/17/2021 05:39 PM" - }, new ExpenseData { - UniqueId = "T100979", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508299980000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T100980", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508317920000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 02:42 PM" - }, new ExpenseData { - UniqueId = "T100981", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508339820000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 08:47 PM" - }, new ExpenseData { - UniqueId = "T100982", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508302200000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 10:20 AM" - }, new ExpenseData { - UniqueId = "T100983", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508319600000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 03:10 PM" - }, new ExpenseData { - UniqueId = "T100984", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508316540000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 65, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 02:19 PM" - }, new ExpenseData { - UniqueId = "T100985", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508316000000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Standard haircut", - Amount = 15, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/18/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T100986", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508384880000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 09:18 AM" - }, new ExpenseData { - UniqueId = "T100987", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508404860000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 02:51 PM" - }, new ExpenseData { - UniqueId = "T100988", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508426280000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 08:48 PM" - }, new ExpenseData { - UniqueId = "T100989", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508389500000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 10:35 AM" - }, new ExpenseData { - UniqueId = "T100990", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508408400000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T100991", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508424000000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other household products", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 08:10 PM" - }, new ExpenseData { - UniqueId = "T100992", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508425560000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 106, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 08:36 PM" - }, new ExpenseData { - UniqueId = "T100993", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508424840000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/19/2021 08:24 PM" - }, new ExpenseData { - UniqueId = "T100994", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508473140000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 09:49 AM" - }, new ExpenseData { - UniqueId = "T100995", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508491500000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 02:55 PM" - }, new ExpenseData { - UniqueId = "T100996", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508512620000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 08:47 PM" - }, new ExpenseData { - UniqueId = "T100997", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508475540000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 10:29 AM" - }, new ExpenseData { - UniqueId = "T100998", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508493060000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 03:21 PM" - }, new ExpenseData { - UniqueId = "T100999", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508488080000), - Category = "Health Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/20/2021 01:58 PM" - }, new ExpenseData { - UniqueId = "T101000", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508559240000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/21/2021 09:44 AM" - }, new ExpenseData { - UniqueId = "T101001", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508576100000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/21/2021 02:25 PM" - }, new ExpenseData { - UniqueId = "T101002", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508597220000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/21/2021 08:17 PM" - }, new ExpenseData { - UniqueId = "T101003", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508563620000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/21/2021 10:57 AM" - }, new ExpenseData { - UniqueId = "T101004", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508579820000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/21/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T101005", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508644440000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 09:24 AM" - }, new ExpenseData { - UniqueId = "T101006", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508661660000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 02:11 PM" - }, new ExpenseData { - UniqueId = "T101007", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508684700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T101008", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508649480000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 10:48 AM" - }, new ExpenseData { - UniqueId = "T101009", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508667360000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T101010", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508654580000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 12:13 PM" - }, new ExpenseData { - UniqueId = "T101011", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508656320000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from returns", - Amount = 80, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/22/2021 12:42 PM" - }, new ExpenseData { - UniqueId = "T101012", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508730900000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 09:25 AM" - }, new ExpenseData { - UniqueId = "T101013", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508749020000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T101014", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508772480000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 08:58 PM" - }, new ExpenseData { - UniqueId = "T101015", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508736240000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 10:54 AM" - }, new ExpenseData { - UniqueId = "T101016", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508754180000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 03:53 PM" - }, new ExpenseData { - UniqueId = "T101017", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508769600000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 140, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 08:10 PM" - }, new ExpenseData { - UniqueId = "T101018", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508772000000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Housekeeping supplies", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 08:50 PM" - }, new ExpenseData { - UniqueId = "T101019", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508772360000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cappuccino (regular)", - Amount = 4, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/23/2021 08:56 PM" - }, new ExpenseData { - UniqueId = "T101020", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508817840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 09:34 AM" - }, new ExpenseData { - UniqueId = "T101021", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508836740000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 02:49 PM" - }, new ExpenseData { - UniqueId = "T101022", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508856060000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 08:11 PM" - }, new ExpenseData { - UniqueId = "T101023", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508821860000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 10:41 AM" - }, new ExpenseData { - UniqueId = "T101024", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508838480000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 03:18 PM" - }, new ExpenseData { - UniqueId = "T101025", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508846340000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 140, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 05:29 PM" - }, new ExpenseData { - UniqueId = "T101026", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508845860000), - Category = "Insurance", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Health insurance", - Amount = 230, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/24/2021 05:21 PM" - }, new ExpenseData { - UniqueId = "T101027", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508903400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T101028", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508921220000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 02:17 PM" - }, new ExpenseData { - UniqueId = "T101029", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508943060000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 08:21 PM" - }, new ExpenseData { - UniqueId = "T101030", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508908560000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 10:46 AM" - }, new ExpenseData { - UniqueId = "T101031", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508927220000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 03:57 PM" - }, new ExpenseData { - UniqueId = "T101032", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508915100000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 55, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 12:35 PM" - }, new ExpenseData { - UniqueId = "T101033", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508915580000), - Category = "Personal Care", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Deodorant, roll-on", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 12:43 PM" - }, new ExpenseData { - UniqueId = "T101034", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508913600000), - Category = "Tax", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Sales and use tax", - Amount = 180, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/25/2021 12:10 PM" - }, new ExpenseData { - UniqueId = "T101035", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508989980000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 09:23 AM" - }, new ExpenseData { - UniqueId = "T101036", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509008760000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T101037", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509029160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 08:16 PM" - }, new ExpenseData { - UniqueId = "T101038", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1508995140000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T101039", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509012000000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 03:30 PM" - }, new ExpenseData { - UniqueId = "T101040", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509022860000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 20, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 06:31 PM" - }, new ExpenseData { - UniqueId = "T101041", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509021960000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 90, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/26/2021 06:16 PM" - }, new ExpenseData { - UniqueId = "T101042", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509078240000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 09:54 AM" - }, new ExpenseData { - UniqueId = "T101043", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509094380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 02:23 PM" - }, new ExpenseData { - UniqueId = "T101044", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509117120000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 8, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 08:42 PM" - }, new ExpenseData { - UniqueId = "T101045", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509081120000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 10:42 AM" - }, new ExpenseData { - UniqueId = "T101046", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509098940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 03:39 PM" - }, new ExpenseData { - UniqueId = "T101047", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509090600000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/27/2021 01:20 PM" - }, new ExpenseData { - UniqueId = "T101048", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509164100000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 09:45 AM" - }, new ExpenseData { - UniqueId = "T101049", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509182160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 02:46 PM" - }, new ExpenseData { - UniqueId = "T101050", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509203460000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 08:41 PM" - }, new ExpenseData { - UniqueId = "T101051", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509166020000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T101052", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509184620000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 03:27 PM" - }, new ExpenseData { - UniqueId = "T101053", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509187620000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 180, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 04:17 PM" - }, new ExpenseData { - UniqueId = "T101054", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509187200000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from investments", - Amount = 220, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/28/2021 04:10 PM" - }, new ExpenseData { - UniqueId = "T101055", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509250140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 09:39 AM" - }, new ExpenseData { - UniqueId = "T101056", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509268800000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 02:50 PM" - }, new ExpenseData { - UniqueId = "T101057", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509289080000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 08:28 PM" - }, new ExpenseData { - UniqueId = "T101058", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509254580000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 10:53 AM" - }, new ExpenseData { - UniqueId = "T101059", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509272340000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T101060", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509272100000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Personal things", - Amount = 60, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T101061", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509272460000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Debt repayment", - Amount = 2, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/29/2021 03:51 PM" - }, new ExpenseData { - UniqueId = "T101062", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509337380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 09:53 AM" - }, new ExpenseData { - UniqueId = "T101063", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509354240000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 12, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 02:34 PM" - }, new ExpenseData { - UniqueId = "T101064", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509376140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 6, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 08:39 PM" - }, new ExpenseData { - UniqueId = "T101065", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509339120000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T101066", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509358140000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 03:39 PM" - }, new ExpenseData { - UniqueId = "T101067", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509355260000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Summer Dress in Store", - Amount = 150, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 02:51 PM" - }, new ExpenseData { - UniqueId = "T101068", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509355380000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 25, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 02:53 PM" - }, new ExpenseData { - UniqueId = "T101069", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509355380000), - Category = "Education", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 02:53 PM" - }, new ExpenseData { - UniqueId = "T101070", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509354900000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 90, - MonthShort = "Oct", - MonthFull = "October, 2021", - FormattedDate = "10/30/2021 02:45 PM" - }, new ExpenseData { - UniqueId = "T101071", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509508980000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 09:33 AM" - }, new ExpenseData { - UniqueId = "T101072", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509525660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 02:11 PM" - }, new ExpenseData { - UniqueId = "T101073", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509547980000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 08:23 PM" - }, new ExpenseData { - UniqueId = "T101074", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509512040000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 10:24 AM" - }, new ExpenseData { - UniqueId = "T101075", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509530760000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 03:36 PM" - }, new ExpenseData { - UniqueId = "T101076", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509512520000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 50, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T101077", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509512820000), - Category = "Mortgage / Rent", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Monthly rent", - Amount = 1000, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 10:37 AM" - }, new ExpenseData { - UniqueId = "T101078", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509511800000), - Category = "Salary", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Monthly Net Salary", - Amount = 6000, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/01/2021 10:20 AM" - }, new ExpenseData { - UniqueId = "T101079", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509596940000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 09:59 AM" - }, new ExpenseData { - UniqueId = "T101080", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509613500000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T101081", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509636240000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 08:54 PM" - }, new ExpenseData { - UniqueId = "T101082", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509598860000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 10:31 AM" - }, new ExpenseData { - UniqueId = "T101083", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509616260000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 03:21 PM" - }, new ExpenseData { - UniqueId = "T101084", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509624360000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 40, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 05:36 PM" - }, new ExpenseData { - UniqueId = "T101085", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509624840000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 20, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/02/2021 05:44 PM" - }, new ExpenseData { - UniqueId = "T101086", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509681000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 09:20 AM" - }, new ExpenseData { - UniqueId = "T101087", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509699420000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 02:27 PM" - }, new ExpenseData { - UniqueId = "T101088", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509721380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T101089", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509685320000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T101090", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509702060000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 03:11 PM" - }, new ExpenseData { - UniqueId = "T101091", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509688800000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 150, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 11:30 AM" - }, new ExpenseData { - UniqueId = "T101092", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509689220000), - Category = "Bills", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Electricity bill", - Amount = 220, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/03/2021 11:37 AM" - }, new ExpenseData { - UniqueId = "T101093", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509769320000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 09:52 AM" - }, new ExpenseData { - UniqueId = "T101094", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509785340000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 02:19 PM" - }, new ExpenseData { - UniqueId = "T101095", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509809040000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 08:54 PM" - }, new ExpenseData { - UniqueId = "T101096", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509770700000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 10:15 AM" - }, new ExpenseData { - UniqueId = "T101097", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509788820000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 03:17 PM" - }, new ExpenseData { - UniqueId = "T101098", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509767100000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 60, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 09:15 AM" - }, new ExpenseData { - UniqueId = "T101099", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509768420000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Standard haircut", - Amount = 15, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T101100", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509767880000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 120, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/04/2021 09:28 AM" - }, new ExpenseData { - UniqueId = "T101101", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509854880000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 09:38 AM" - }, new ExpenseData { - UniqueId = "T101102", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509872760000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 02:36 PM" - }, new ExpenseData { - UniqueId = "T101103", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509895680000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 08:58 PM" - }, new ExpenseData { - UniqueId = "T101104", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509858000000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 10:30 AM" - }, new ExpenseData { - UniqueId = "T101105", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509877140000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T101106", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509887280000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 25, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 06:38 PM" - }, new ExpenseData { - UniqueId = "T101107", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509886020000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fitness Club", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/05/2021 06:17 PM" - }, new ExpenseData { - UniqueId = "T101108", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509939780000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 09:13 AM" - }, new ExpenseData { - UniqueId = "T101109", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509959400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 02:40 PM" - }, new ExpenseData { - UniqueId = "T101110", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509980700000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 08:35 PM" - }, new ExpenseData { - UniqueId = "T101111", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509945660000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 10:51 AM" - }, new ExpenseData { - UniqueId = "T101112", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509962340000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 03:29 PM" - }, new ExpenseData { - UniqueId = "T101113", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509970620000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 180, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 05:47 PM" - }, new ExpenseData { - UniqueId = "T101114", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1509969780000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Funds", - Amount = 110, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/06/2021 05:33 PM" - }, new ExpenseData { - UniqueId = "T101115", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510026420000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T101116", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510044840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 02:24 PM" - }, new ExpenseData { - UniqueId = "T101117", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510065840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 08:14 PM" - }, new ExpenseData { - UniqueId = "T101118", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510032060000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 10:51 AM" - }, new ExpenseData { - UniqueId = "T101119", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510047600000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 03:10 PM" - }, new ExpenseData { - UniqueId = "T101120", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510055880000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Taxi Start (Normal Tariff)", - Amount = 5, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/07/2021 05:28 PM" - }, new ExpenseData { - UniqueId = "T101121", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510112460000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 09:11 AM" - }, new ExpenseData { - UniqueId = "T101122", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510132440000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 02:44 PM" - }, new ExpenseData { - UniqueId = "T101123", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510154520000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 08:52 PM" - }, new ExpenseData { - UniqueId = "T101124", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510117500000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 10:35 AM" - }, new ExpenseData { - UniqueId = "T101125", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510134480000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 03:18 PM" - }, new ExpenseData { - UniqueId = "T101126", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510124700000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 50, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 12:35 PM" - }, new ExpenseData { - UniqueId = "T101127", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510125780000), - Category = "Interests", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Interests", - Amount = 90, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/08/2021 12:53 PM" - }, new ExpenseData { - UniqueId = "T101128", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510199640000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 09:24 AM" - }, new ExpenseData { - UniqueId = "T101129", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510219080000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 02:48 PM" - }, new ExpenseData { - UniqueId = "T101130", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510239780000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 08:33 PM" - }, new ExpenseData { - UniqueId = "T101131", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510202580000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 10:13 AM" - }, new ExpenseData { - UniqueId = "T101132", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510221000000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 03:20 PM" - }, new ExpenseData { - UniqueId = "T101133", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510217160000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 45, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T101134", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510219020000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household textiles", - Amount = 15, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/09/2021 02:47 PM" - }, new ExpenseData { - UniqueId = "T101135", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510286100000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 09:25 AM" - }, new ExpenseData { - UniqueId = "T101136", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510305720000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T101137", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510325580000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 08:23 PM" - }, new ExpenseData { - UniqueId = "T101138", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510290540000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 10:39 AM" - }, new ExpenseData { - UniqueId = "T101139", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510307520000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 03:22 PM" - }, new ExpenseData { - UniqueId = "T101140", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510298640000), - Category = "Utilities", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 160, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 12:54 PM" - }, new ExpenseData { - UniqueId = "T101141", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510298160000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Movie Outing", - Amount = 5, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/10/2021 12:46 PM" - }, new ExpenseData { - UniqueId = "T101142", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510374000000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 09:50 AM" - }, new ExpenseData { - UniqueId = "T101143", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510390320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 02:22 PM" - }, new ExpenseData { - UniqueId = "T101144", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510411260000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 08:11 PM" - }, new ExpenseData { - UniqueId = "T101145", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510375980000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 10:23 AM" - }, new ExpenseData { - UniqueId = "T101146", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510395540000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 03:49 PM" - }, new ExpenseData { - UniqueId = "T101147", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510406880000), - Category = "Shopping", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 65, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 06:58 PM" - }, new ExpenseData { - UniqueId = "T101148", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510405500000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Deodorant, roll-on", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 06:35 PM" - }, new ExpenseData { - UniqueId = "T101149", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510405980000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 120, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/11/2021 06:43 PM" - }, new ExpenseData { - UniqueId = "T101150", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510459080000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 09:28 AM" - }, new ExpenseData { - UniqueId = "T101151", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510476960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 02:26 PM" - }, new ExpenseData { - UniqueId = "T101152", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510498560000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 08:26 PM" - }, new ExpenseData { - UniqueId = "T101153", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510464540000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T101154", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510481760000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 03:46 PM" - }, new ExpenseData { - UniqueId = "T101155", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510499640000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 25, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 08:44 PM" - }, new ExpenseData { - UniqueId = "T101156", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510498020000), - Category = "Insurance", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 230, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/12/2021 08:17 PM" - }, new ExpenseData { - UniqueId = "T101157", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510544400000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 09:10 AM" - }, new ExpenseData { - UniqueId = "T101158", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510562400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T101159", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510585620000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 08:37 PM" - }, new ExpenseData { - UniqueId = "T101160", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510550940000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 10:59 AM" - }, new ExpenseData { - UniqueId = "T101161", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510566240000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 03:14 PM" - }, new ExpenseData { - UniqueId = "T101162", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510580640000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 180, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 07:14 PM" - }, new ExpenseData { - UniqueId = "T101163", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510582860000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Tennis Court Rent", - Amount = 2, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 07:51 PM" - }, new ExpenseData { - UniqueId = "T101164", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510581840000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 90, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/13/2021 07:34 PM" - }, new ExpenseData { - UniqueId = "T101165", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510632960000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 09:46 AM" - }, new ExpenseData { - UniqueId = "T101166", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510651740000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 02:59 PM" - }, new ExpenseData { - UniqueId = "T101167", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510671480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 08:28 PM" - }, new ExpenseData { - UniqueId = "T101168", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510636980000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 10:53 AM" - }, new ExpenseData { - UniqueId = "T101169", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510652520000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 03:12 PM" - }, new ExpenseData { - UniqueId = "T101170", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510642980000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Own Buisness", - Amount = 190, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/14/2021 12:33 PM" - }, new ExpenseData { - UniqueId = "T101171", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510719960000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 09:56 AM" - }, new ExpenseData { - UniqueId = "T101172", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510735980000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 02:23 PM" - }, new ExpenseData { - UniqueId = "T101173", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510757460000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 08:21 PM" - }, new ExpenseData { - UniqueId = "T101174", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510723320000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 10:52 AM" - }, new ExpenseData { - UniqueId = "T101175", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510738980000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 03:13 PM" - }, new ExpenseData { - UniqueId = "T101176", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510719060000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Personal things", - Amount = 65, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 09:41 AM" - }, new ExpenseData { - UniqueId = "T101177", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510718820000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cellular phone service", - Amount = 220, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 09:37 AM" - }, new ExpenseData { - UniqueId = "T101178", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510719600000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Interest from Deposit", - Amount = 100, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/15/2021 09:50 AM" - }, new ExpenseData { - UniqueId = "T101179", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510804920000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 09:32 AM" - }, new ExpenseData { - UniqueId = "T101180", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510823340000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 02:39 PM" - }, new ExpenseData { - UniqueId = "T101181", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510845660000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 08:51 PM" - }, new ExpenseData { - UniqueId = "T101182", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510807920000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 10:22 AM" - }, new ExpenseData { - UniqueId = "T101183", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510826940000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 03:39 PM" - }, new ExpenseData { - UniqueId = "T101184", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510816260000), - Category = "Clothing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 135, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 12:41 PM" - }, new ExpenseData { - UniqueId = "T101185", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510816320000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Household furnishings", - Amount = 20, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 12:42 PM" - }, new ExpenseData { - UniqueId = "T101186", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510814640000), - Category = "Miscellaneous", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cinema", - Amount = 3, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/16/2021 12:14 PM" - }, new ExpenseData { - UniqueId = "T101187", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510891800000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 09:40 AM" - }, new ExpenseData { - UniqueId = "T101188", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510909320000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 02:32 PM" - }, new ExpenseData { - UniqueId = "T101189", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510931400000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 08:40 PM" - }, new ExpenseData { - UniqueId = "T101190", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510893960000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 10:16 AM" - }, new ExpenseData { - UniqueId = "T101191", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510913700000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 03:45 PM" - }, new ExpenseData { - UniqueId = "T101192", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510890420000), - Category = "Utilities", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 160, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/17/2021 09:17 AM" - }, new ExpenseData { - UniqueId = "T101193", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510977480000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 09:28 AM" - }, new ExpenseData { - UniqueId = "T101194", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510994580000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 02:13 PM" - }, new ExpenseData { - UniqueId = "T101195", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511017740000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 08:39 PM" - }, new ExpenseData { - UniqueId = "T101196", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510981620000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 10:37 AM" - }, new ExpenseData { - UniqueId = "T101197", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510998960000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 03:26 PM" - }, new ExpenseData { - UniqueId = "T101198", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510993320000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 60, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 01:52 PM" - }, new ExpenseData { - UniqueId = "T101199", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1510992960000), - Category = "Personal Care", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "1 box of antibiotics (12 doses)", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/18/2021 01:46 PM" - }, new ExpenseData { - UniqueId = "T101200", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511064780000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 09:43 AM" - }, new ExpenseData { - UniqueId = "T101201", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511082840000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 02:44 PM" - }, new ExpenseData { - UniqueId = "T101202", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511104500000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 08:45 PM" - }, new ExpenseData { - UniqueId = "T101203", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511066400000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 10:10 AM" - }, new ExpenseData { - UniqueId = "T101204", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511086260000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 03:41 PM" - }, new ExpenseData { - UniqueId = "T101205", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511095680000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 30, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 06:18 PM" - }, new ExpenseData { - UniqueId = "T101206", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511096820000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cappuccino (regular)", - Amount = 3, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 06:37 PM" - }, new ExpenseData { - UniqueId = "T101207", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511098140000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Gits", - Amount = 90, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/19/2021 06:59 PM" - }, new ExpenseData { - UniqueId = "T101208", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511151240000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Boiled peanuts", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 09:44 AM" - }, new ExpenseData { - UniqueId = "T101209", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511169600000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 02:50 PM" - }, new ExpenseData { - UniqueId = "T101210", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511190960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Creole cream cheese", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 08:46 PM" - }, new ExpenseData { - UniqueId = "T101211", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511152920000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 10:12 AM" - }, new ExpenseData { - UniqueId = "T101212", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511173680000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 03:58 PM" - }, new ExpenseData { - UniqueId = "T101213", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511171760000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 170, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/20/2021 03:26 PM" - }, new ExpenseData { - UniqueId = "T101214", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511238120000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/21/2021 09:52 AM" - }, new ExpenseData { - UniqueId = "T101215", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511253960000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Frito pie, Muscadine wine and juice", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/21/2021 02:16 PM" - }, new ExpenseData { - UniqueId = "T101216", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511276400000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/21/2021 08:30 PM" - }, new ExpenseData { - UniqueId = "T101217", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511241540000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/21/2021 10:49 AM" - }, new ExpenseData { - UniqueId = "T101218", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511259960000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Gasoline and motor oil", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/21/2021 03:56 PM" - }, new ExpenseData { - UniqueId = "T101219", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511324220000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 09:47 AM" - }, new ExpenseData { - UniqueId = "T101220", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511342520000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T101221", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511361720000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 08:12 PM" - }, new ExpenseData { - UniqueId = "T101222", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511326020000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T101223", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511345640000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 03:44 PM" - }, new ExpenseData { - UniqueId = "T101224", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511322780000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 50, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 09:23 AM" - }, new ExpenseData { - UniqueId = "T101225", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511322720000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 80, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/22/2021 09:22 AM" - }, new ExpenseData { - UniqueId = "T101226", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511408940000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 09:19 AM" - }, new ExpenseData { - UniqueId = "T101227", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511426640000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 02:14 PM" - }, new ExpenseData { - UniqueId = "T101228", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511448720000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 08:22 PM" - }, new ExpenseData { - UniqueId = "T101229", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511414520000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 10:52 AM" - }, new ExpenseData { - UniqueId = "T101230", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511430780000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 03:23 PM" - }, new ExpenseData { - UniqueId = "T101231", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511427480000), - Category = "Clothing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pair of Jeans", - Amount = 140, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 02:28 PM" - }, new ExpenseData { - UniqueId = "T101232", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511426880000), - Category = "Housing", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Major appliances, housewares", - Amount = 30, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 02:18 PM" - }, new ExpenseData { - UniqueId = "T101233", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511427060000), - Category = "Miscellaneous", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Taxi Start (Normal Tariff)", - Amount = 4, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/23/2021 02:21 PM" - }, new ExpenseData { - UniqueId = "T101234", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511497140000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Chicken salad, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 09:49 AM" - }, new ExpenseData { - UniqueId = "T101235", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511514540000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Pimento cheese sandwich", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 02:39 PM" - }, new ExpenseData { - UniqueId = "T101236", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511534940000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Confederate cush", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 08:19 PM" - }, new ExpenseData { - UniqueId = "T101237", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511498460000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 10:11 AM" - }, new ExpenseData { - UniqueId = "T101238", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511517900000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 03:35 PM" - }, new ExpenseData { - UniqueId = "T101239", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511514060000), - Category = "Utilities", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Expense for Utilities", - Amount = 130, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 02:31 PM" - }, new ExpenseData { - UniqueId = "T101240", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511515740000), - Category = "Insurance", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle insurance", - Amount = 250, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/24/2021 02:59 PM" - }, new ExpenseData { - UniqueId = "T101241", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511582580000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vienna sausages, Mello Yello", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 09:33 AM" - }, new ExpenseData { - UniqueId = "T101242", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511602140000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 02:59 PM" - }, new ExpenseData { - UniqueId = "T101243", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511622240000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 08:34 PM" - }, new ExpenseData { - UniqueId = "T101244", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511586120000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 10:32 AM" - }, new ExpenseData { - UniqueId = "T101245", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511604720000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 03:42 PM" - }, new ExpenseData { - UniqueId = "T101246", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511608140000), - Category = "Shopping", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Household things \u0026 Utilities", - Amount = 60, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 04:39 PM" - }, new ExpenseData { - UniqueId = "T101247", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511608560000), - Category = "Personal Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Cold medicine", - Amount = 15, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 04:46 PM" - }, new ExpenseData { - UniqueId = "T101248", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511608620000), - Category = "Tax", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Social Security and Medicare taxes", - Amount = 180, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/25/2021 04:47 PM" - }, new ExpenseData { - UniqueId = "T101249", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511668380000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 09:23 AM" - }, new ExpenseData { - UniqueId = "T101250", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511688360000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Peanut butter and banana sandwich", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 02:56 PM" - }, new ExpenseData { - UniqueId = "T101251", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511707800000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Beer cheese", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 08:20 PM" - }, new ExpenseData { - UniqueId = "T101252", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511673060000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 10:41 AM" - }, new ExpenseData { - UniqueId = "T101253", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511691600000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 03:50 PM" - }, new ExpenseData { - UniqueId = "T101254", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511673300000), - Category = "Housing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 25, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 10:45 AM" - }, new ExpenseData { - UniqueId = "T101255", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511672400000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from refund", - Amount = 80, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/26/2021 10:30 AM" - }, new ExpenseData { - UniqueId = "T101256", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511754000000), - Category = "Food", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Po\u0027 boy sandwich, RC Cola", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 09:10 AM" - }, new ExpenseData { - UniqueId = "T101257", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511772000000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 02:10 PM" - }, new ExpenseData { - UniqueId = "T101258", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511795280000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pickled pigs feet", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 08:38 PM" - }, new ExpenseData { - UniqueId = "T101259", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511758980000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 10:33 AM" - }, new ExpenseData { - UniqueId = "T101260", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511777220000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 03:37 PM" - }, new ExpenseData { - UniqueId = "T101261", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511779860000), - Category = "Health Care", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Health Care", - Amount = 70, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/27/2021 04:21 PM" - }, new ExpenseData { - UniqueId = "T101262", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511843160000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Fatback or hog jowl", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 09:56 AM" - }, new ExpenseData { - UniqueId = "T101263", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511860740000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cheese straws, Red Rock Cola", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 02:49 PM" - }, new ExpenseData { - UniqueId = "T101264", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511880480000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 08:18 PM" - }, new ExpenseData { - UniqueId = "T101265", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511844420000), - Category = "Transportation", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 9, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 10:17 AM" - }, new ExpenseData { - UniqueId = "T101266", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511862300000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Maintenance and repairs", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 03:15 PM" - }, new ExpenseData { - UniqueId = "T101267", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511853300000), - Category = "Bills", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Electricity bill", - Amount = 180, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 12:45 PM" - }, new ExpenseData { - UniqueId = "T101268", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511851440000), - Category = "Business", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from investments", - Amount = 200, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/28/2021 12:14 PM" - }, new ExpenseData { - UniqueId = "T101269", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511928300000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 09:35 AM" - }, new ExpenseData { - UniqueId = "T101270", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511946300000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Steen\u0027s cane syrup", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 02:35 PM" - }, new ExpenseData { - UniqueId = "T101271", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511968380000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Peanuts in Coke", - Amount = 8, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 08:43 PM" - }, new ExpenseData { - UniqueId = "T101272", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511932260000), - Category = "Transportation", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Vehicle purchases", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 10:41 AM" - }, new ExpenseData { - UniqueId = "T101273", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511950860000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Public and other transportation", - Amount = 11, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 03:51 PM" - }, new ExpenseData { - UniqueId = "T101274", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511965200000), - Category = "Shopping", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Beauty care things", - Amount = 65, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 07:50 PM" - }, new ExpenseData { - UniqueId = "T101275", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1511963040000), - Category = "Miscellaneous", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cinema, International Release", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/29/2021 07:14 PM" - }, new ExpenseData { - UniqueId = "T101276", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512015840000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 12, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 09:54 AM" - }, new ExpenseData { - UniqueId = "T101277", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512033060000), - Category = "Food", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Muffuletta sandwich, Mint julep", - Amount = 10, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 02:41 PM" - }, new ExpenseData { - UniqueId = "T101278", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512053520000), - Category = "Food", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Palmetto Cheese, Mint julep", - Amount = 6, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 08:22 PM" - }, new ExpenseData { - UniqueId = "T101279", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512018360000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Cars and trucks, used", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 10:36 AM" - }, new ExpenseData { - UniqueId = "T101280", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512036720000), - Category = "Transportation", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Other vehicle expenses", - Amount = 7, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 03:42 PM" - }, new ExpenseData { - UniqueId = "T101281", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512033060000), - Category = "Clothing", - PaymentMode = "Debit Card", - TransactionType = "Expense", - Description = "Pair of Running Shoes", - Amount = 45, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 02:41 PM" - }, new ExpenseData { - UniqueId = "T101282", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512033720000), - Category = "Housing", - PaymentMode = "Credit Card", - TransactionType = "Expense", - Description = "Laundry and cleaning supplies", - Amount = 20, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 02:52 PM" - }, new ExpenseData { - UniqueId = "T101283", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512031320000), - Category = "Education", - PaymentMode = "Cash", - TransactionType = "Expense", - Description = "Expense for Education", - Amount = 50, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 02:12 PM" - }, new ExpenseData { - UniqueId = "T101284", - DateTime = (new DateTime(1974, 1, 1)).AddMilliseconds(1512033120000), - Category = "Extra income", - PaymentMode = "Cash", - TransactionType = "Income", - Description = "Income from Sale", - Amount = 110, - MonthShort = "Nov", - MonthFull = "November, 2021", - FormattedDate = "11/30/2021 02:42 PM" - } - }); - } - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.razor deleted file mode 100644 index fd30d074..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/NodeTemplateSample.razor +++ /dev/null @@ -1,757 +0,0 @@ -@page "/diagramcomponent/html-shapes" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Charts -@using Syncfusion.Blazor.Calendars -@using Syncfusion.Blazor.Grids -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@namespace BlazorDemos.Pages -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable - - -

This sample demonstrates how to host an HTML element within a node. An expense tracker application can be created using the Chart and Grid components.

-
- -

This example illustrates how to host an HTML control inside a node. By setting the HTML property to the Type property, you can enable the template node. The content to be hosted can be defined using the NodeTemplate.

-
-@*End:Hidden*@ -
- @*Hidden:Lines*@ - - @*End:Hidden*@ - - - - - - @{ - var id = (context as Node).ID; - if (id == "pieChartNode") - { - @*Hidden:Lines*@ -
-
-
-

Total Expenses

-

@Months[startDate.Month] @startDate.Day - @Months[endDate.Month] @endDate.Day

-
- @*End:Hidden*@ -
- - - - - - - - - - - - -
-
- - - - @{ var legend = (rowValue as LegendRenderData); - var style = "width: 16px; height: 16px; margin-left: 1px; border-radius: 16px; background:" + legend.Color; - -
- - @legend.Text - $@legend.Y - @legend.X } -
-
-
- - - - - - -
-
-
- @*Hidden:Lines*@ -
-
- @*End:Hidden*@ - } - else if (id == "barChartNode") - { - @*Hidden:Lines*@ -
- @*End:Hidden*@ -
- - - - - - - - - - - - -

Account - Balance

-
-
-
- - - - - - - - - - -
-
- @*Hidden:Lines*@ -
- @*End:Hidden*@ - } - if (id == "lineChartNode") - { - @*Hidden:Lines*@ -
- @*End:Hidden*@ -
- - - - - - - -

Income - Expense

-
-
-
- - - - - - - - - - - - - - - -
-
- @*Hidden:Lines*@ -
- @*End:Hidden*@ - } - else if (id == "datePickerNode") - { - @*Hidden:Lines*@ -
- @*End:Hidden*@ -
- - - - - - - - - - -
- @*Hidden:Lines*@ -
- @*End:Hidden*@ - } - if (id == "incomeNode") - { -
-
-
-

$43,300

- Income -
-
-
- } - else if (id == "expenseNode") - { -
-
-
-

$38,060

- Expenses -
-
-
- } - else if (id == "balanceNode") - { -
-
-
-

$5,240

- Balance -
-
-
- } - } -
-
-
-
- -@code{ - @*Hidden:Lines*@ - private string chartXAnnoation = "75px"; - private SfChart chartRef; - @*End:Hidden*@ - - public DateTime startDate { get; set; } - public DateTime endDate { get; set; } - SfDiagramComponent diagram; - public ExpenseDataService expense { get; set; } - public List lineChartData { get; set; } - private List pieRenderingData; - private List pieRenderData; - private string[] Months = new string[] { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - private string[] palettes = new string[] { "#61EFCD", "#CDDE1F", "#FEC200", "#CA765A", "#2485FA", "#F57D7D", "#C152D2", - "#8854D9", "#3D4EB8", "#00BCD7","#4472c4", "#ed7d31", "#ffc000", "#70ad47", "#5b9bd5", "#c1c1c1", "#6f6fe2", "#e269ae", "#9e480e", "#997300" }; - - private DateTime minDate = new DateTime(2021, 06, 01, 00, 00, 00); - private DateTime maxDate = new DateTime(2021, 11, 30, 23, 59, 59); - private DateTime lastMonthStart = new DateTime(2021, 10, 01, 00, 00, 00); - private DateTime lastMonthEnd = new DateTime(2021, 10, 31, 23, 59, 59); - private DateTime last3MonthStart = new DateTime(2021, 09, 01, 00, 00, 00); - private DateTime last3MonthEnd = new DateTime(2021, 11, 30, 23, 59, 59); - private DateTime allTimeStart = new DateTime(2021, 06, 01, 00, 00, 00); - private DateTime allTimeEnd = new DateTime(2021, 11, 30, 23, 58, 58); - - private List colChartIncomeData; - private List colChartExpenseData; - private IEnumerable recentExpenseData; - private IEnumerable incomeData; - private IEnumerable expenseData; - private List tempExpenseDS; - private List tempIncomeDS; - public IEnumerable expenseDataSource { get; set; } - - //Defines diagrams's nodes collection - DiagramObjectCollection nodes = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - - expense = new ExpenseDataService(); - Node pieChartNode = new Node() - { - ID = "pieChartNode", - Width = 1050, - Height = 430, - OffsetX = 600, - Annotations = new DiagramObjectCollection() { new ShapeAnnotation() { Constraints = AnnotationConstraints.ReadOnly } }, - Constraints = NodeConstraints.Default & ~NodeConstraints.Resize & ~NodeConstraints.Rotate& ~NodeConstraints.Select, - OffsetY = 380, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - Node lineChartNode = new Node() - { - ID = "lineChartNode", - Width = 512, - Height = 408, - OffsetX = 870, - Constraints = NodeConstraints.Default & ~NodeConstraints.Resize & ~NodeConstraints.Rotate& ~NodeConstraints.Select, - OffsetY = 810, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML }, - }; - Node barChartNode = new Node() - { - ID = "barChartNode", - Width = 512, - Height = 408, - OffsetX = 325, - Constraints = NodeConstraints.Default & ~NodeConstraints.Resize & ~NodeConstraints.Rotate& ~NodeConstraints.Select, - OffsetY = 810, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - Node datePickerNode = new Node() - { - ID = "datePickerNode", - Width = 250, - - OffsetX = 1000, - Constraints = NodeConstraints.Default & ~NodeConstraints.Resize & ~NodeConstraints.Rotate& ~NodeConstraints.Select, - OffsetY = 170, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - TextStyle textStyle = new TextStyle() - { - FontSize = 16, - Color = "#797979", - Bold = true - }; - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() - { - Content = "EXPENSE TRACKER", - Style = textStyle - }; - Node textNode = new Node() - { - ID = "textNode", - Width = 250, - Height = 30, - OffsetX = 153, - Constraints = NodeConstraints.Default & ~NodeConstraints.Resize & ~NodeConstraints.Rotate, - OffsetY = 20, - Style = new ShapeStyle() { Fill = "Transparent", StrokeColor = "Transparent" }, - Annotations = new DiagramObjectCollection() { shapeAnnotation } - }; - - Node incomeNode = new Node() - { - ID = "incomeNode", - Width = 250, - Height = 100, - OffsetX = 200, - Constraints = NodeConstraints.Default & ~NodeConstraints.Select, - //Style = new ShapeStyle() { StrokeColor = "Transparent" }, - OffsetY = 90, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - Node expenseNode = new Node() - { - ID = "expenseNode", - Width = 250, - Height = 100, - OffsetX = 460, - Constraints = NodeConstraints.Default & ~NodeConstraints.Select, - OffsetY = 90, - Style = new ShapeStyle() { StrokeColor = "Transparent" }, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - Node balanceNode = new Node() - { - ID = "balanceNode", - Width = 250, - Height = 100, - OffsetX = 720, - Constraints = NodeConstraints.Default & ~NodeConstraints.Select, - OffsetY = 90, - Style = new ShapeStyle() { StrokeColor = "Transparent" }, - Shape = new Syncfusion.Blazor.Diagram.Shape() { Type = shapes.HTML } - }; - - nodes.Add(pieChartNode); - nodes.Add(lineChartNode); - nodes.Add(barChartNode); - nodes.Add(datePickerNode); - nodes.Add(textNode); - nodes.Add(incomeNode); - nodes.Add(expenseNode); - nodes.Add(balanceNode); - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - diagram.FitToPage(mobileoptions); - } - //Method to define update charts depends on date - private async Task OnDateRangeChange(RangePickerEventArgs args) - { - expense.SetDate(args.StartDate, args.EndDate); - InitializeData(); - UpdateChartData(); - StateHasChanged(); - await RefreshCharts(lineChartData); - RefreshPieChart(expenseData); - } - - //Method to define refresh pie chart - public void RefreshPieChart(IEnumerable expenseData) - { - expenseDataSource = expenseData; - UpdatePieChart(); - } - - //Method to define refresh line chart - public async Task RefreshCharts(List lineChartDataSource) - { - lineChartData = lineChartDataSource; - await InvokeAsync(async () => - { - await Task.Delay(1); - chartRef?.RefreshLiveData(); - }); - } - private void InitializeData() - { - DateTime start = expense.StartDate; DateTime end = expense.EndDate; - var commonData = expense.ExpenseData.Where(s => s.DateTime >= start && s.DateTime <= end); - expense.SetCurrentData(commonData); - var expenseD = new List(); - var incomeD = new List(); - tempExpenseDS = new List(); - tempIncomeDS = new List(); - var curDateTime = new ExpenseData(); - var lineDS = new List(); - foreach (var data in commonData) - { - var tempData = new ExpenseData { Amount = data.Amount, Category = data.Category, DateTime = data.DateTime, Description = data.Description, FormattedDate = data.FormattedDate, MonthFull = data.MonthFull, MonthShort = data.MonthShort, PaymentMode = data.PaymentMode, TransactionType = data.TransactionType, UniqueId = data.UniqueId }; - if (data.TransactionType == "Expense") - { - expenseD.Add(data); - int index = tempExpenseDS.FindIndex(s => s.Month == tempData.DateTime.Month); - if (index >= 0) - { - curDateTime = tempExpenseDS[index].ExpenseData; - tempExpenseDS[index].ExpenseData.Amount = curDateTime.Amount + tempData.Amount; - } - else - { - tempExpenseDS.Add(new TempExpenseData { Month = tempData.DateTime.Month, ExpenseData = tempData }); - index = tempExpenseDS.Count() - 1; - tempExpenseDS[index].ExpenseData.DateTime = new DateTime(tempExpenseDS[index].ExpenseData.DateTime.Year, tempExpenseDS[index].ExpenseData.DateTime.Month, 1, 0, 0, 0, 0); - } - } - else - { - incomeD.Add(data); - int index = tempIncomeDS.FindIndex(s => s.Month == tempData.DateTime.Month); - if (index >= 0) - { - curDateTime = tempIncomeDS[index].ExpenseData; - tempIncomeDS[index].ExpenseData.Amount = curDateTime.Amount + tempData.Amount; - } - else - { - tempIncomeDS.Add(new TempExpenseData { Month = tempData.DateTime.Month, ExpenseData = tempData }); - index = tempIncomeDS.Count() - 1; - tempIncomeDS[index].ExpenseData.DateTime = new DateTime(tempIncomeDS[index].ExpenseData.DateTime.Year, tempIncomeDS[index].ExpenseData.DateTime.Month, 1, 0, 0, 0, 0); - } - } - } - expenseData = expenseD; - incomeData = incomeD; - lineChartData = lineDS; - recentExpenseData = commonData.OrderByDescending(s => s.DateTime).Take(5); - } - - //Method to define update chart data - private void UpdateChartData() - { - var lineD = new List(); - var lineDS = new List(); - var colIncomeDS = new List(); - foreach (var data in this.tempIncomeDS) - { - colIncomeDS.Add(data.ExpenseData); - ProcessLineData(data.ExpenseData, lineD, lineDS); - } - colChartIncomeData = colIncomeDS; - var colExpenseDS = new List(); - foreach (var data in tempExpenseDS) - { - colExpenseDS.Add(data.ExpenseData); - ProcessLineData(data.ExpenseData, lineD, lineDS); - } - colChartExpenseData = colExpenseDS; - lineChartData = lineDS; - } - protected override async Task OnInitializedAsync() - { - await base.OnInitializedAsync(); - expense = new ExpenseDataService(); - InitializeData(); - UpdateChartData(); - UpdatePieChart(); - } - - //Method to define update pie chart - private void UpdatePieChart() - { - startDate = expense.StartDate; - endDate = expense.EndDate; - var category = new List(); - var renderingData = new List(); - var lengendRenderData = new List(); - var legendData = new List(); - ExpenseData data = new ExpenseData(); - var expTotal = 0; - - // Extracts the category based data from the whole expense data - foreach (var item in expenseData) - { - expTotal += Convert.ToInt32(item.Amount); - legendData.Add(item); - if (!category.Contains(item.Category)) - { - category.Add(item.Category); - } - } - // From the category data, percentage calculation for legend grid - for (int i = 0; i < category.Count(); i++) - { - var str = category[i]; - int total = 0; - foreach (var item in legendData) - { - if (str == item.Category) - total += Convert.ToInt32(item.Amount); - data = item; - } - string percent = (((decimal)total / expTotal) * 100).ToString("N2") + '%'; - renderingData.Add(new RenderingData { X = str, Y = total, Text = percent, Fill = "" }); - } - renderingData = renderingData.OrderByDescending(s => s.Y).ToList(); - var GroupValue = renderingData.Count() > 10 ? renderingData[8].Y - 1 : 0; - LegendRenderData othersRenderData = new LegendRenderData { Color = "", X = "0", Y = 0, Text = "Others" }; - RenderingData othersRenderingData = new RenderingData { Fill = "", X = "Others", Y = 0, Text = "0" }; - decimal X = 0; var Y = 0; - - for (int i = 0; i < renderingData.Count(); i++) - { - renderingData[i].Fill = this.palettes[i]; - if (renderingData[i].Y > GroupValue) - { - lengendRenderData.Add(new LegendRenderData { X = renderingData[i].Text, Y = renderingData[i].Y, Text = renderingData[i].X, Color = this.palettes[i] }); - } - else - { - if (othersRenderData.Color == "") - { - othersRenderData.Color = renderingData[i].Fill; - othersRenderingData.Fill = renderingData[i].Fill; - } - X += Convert.ToDecimal(renderingData[i].Text.Split("%")[0]); Y += renderingData[i].Y; - renderingData.RemoveAt(i); - if (i != 0) { i--; } - } - } - if (othersRenderData.Color != "") - { - othersRenderData.X = X.ToString() + "%"; othersRenderingData.Text = X.ToString() + "%"; - othersRenderData.Y = Y; othersRenderingData.Y = Y; - lengendRenderData.Add(othersRenderData); renderingData.Add(othersRenderingData); - } - pieRenderingData = renderingData; - pieRenderData = lengendRenderData; - - } - - //Method to define update line chart - private void ProcessLineData(ExpenseData data, List LineD, List LineDS) - { - var curDateTime = new ExpenseData(); - var lineData = new ExpenseData { Amount = data.Amount, Category = data.Category, DateTime = data.DateTime, Description = data.Description, FormattedDate = data.FormattedDate, MonthFull = data.MonthFull, MonthShort = data.MonthShort, PaymentMode = data.PaymentMode, TransactionType = data.TransactionType, UniqueId = data.UniqueId }; - int idx = LineD.FindIndex(s => s.Month == lineData.DateTime.Month); - if (idx >= 0) - { - curDateTime = LineD[idx].ExpenseData; - LineD[idx].ExpenseData.Amount = Math.Abs(curDateTime.Amount - lineData.Amount); - } - else - { - LineD.Add(new TempExpenseData { Month = lineData.DateTime.Month, ExpenseData = lineData }); - LineDS.Add(LineD[LineD.Count - 1].ExpenseData); - } - } - private class TempExpenseData - { - public int Month { get; set; } - public ExpenseData ExpenseData { get; set; } - } - private class RenderingData - { - public string X { get; set; } - public int Y { get; set; } - public string Text { get; set; } - public string Fill { get; set; } - } - private class LegendRenderData - { - public string X { get; set; } - public int Y { get; set; } - public string Text { get; set; } - public string Color { get; set; } - } - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Nodes.razor b/Common/Pages/DiagramComponent/DiagramComponent/Nodes.razor deleted file mode 100644 index 52107b78..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Nodes.razor +++ /dev/null @@ -1,549 +0,0 @@ -@page "/diagramcomponent/nodes" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable - - -

This sample visualizes the different stages of a software development life cycle using Nodes from the `SfDiagramComponent`. The example illustrates how to customize the appearance of these nodes.

-
- -

This example demonstrates how to add nodes to the diagram component and customize their appearance. Nodes are added to the diagram using the Nodes property. You can customize the nodes' appearance using the Style property. Click different styles in the property panel to change the appearance of a node.

-

The `Lock` option disables the resize, drag, and rotate operations for a node, while the `Aspect Ratio` option enables proportional resizing of nodes.

-
-@*End:Hidden*@ -
-
- - - - -
-
- -@*Hidden:Lines*@ -
- -
- Properties -
-
-
- Apply To -
-
- -
-
- -
-
- Appearance -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Behavior -
-
- - -
-
- - - -
-
-
-@*End:Hidden*@ - -@code{ - - private const string SelectedPatternItemClass = "image-pattern-style e-selected-style"; - private const string UnSelectedPatternItemClass = "image-pattern-style"; - private string SelectedShapeOption1 { get; set; } = "All Shapes"; - private string SelectedShapeOption2 { get; set; } = "Selected Shapes"; - private string SelectedShapeOption { get; set; } = "All Shapes"; - private Dictionary dict = new Dictionary() { { "preview0", UnSelectedPatternItemClass }, { "preview1", UnSelectedPatternItemClass }, { "preview2", UnSelectedPatternItemClass }, { "preview3", UnSelectedPatternItemClass }, { "preview4", UnSelectedPatternItemClass } }; - - public SfDiagramComponent DiagramInstance { get; set; } - public bool AspectRatioValue { get; set; } = false; - public bool LockValue { get; set; } = false; - public SfCheckBox AspectRatiocheckbox { get; set; } - public SfCheckBox LockRatiocheckbox { get; set; } - - //Defines diagram's nodes collection - public DiagramObjectCollection DiagramNodes { get; set; } = new DiagramObjectCollection(); - //Defines diagram's connectors collection - public DiagramObjectCollection DiagramConnectors { get; set; } = new DiagramObjectCollection(); - - protected override void OnInitialized() - { - - dict = new Dictionary() - { - { "preview0", UnSelectedPatternItemClass }, - { "preview1", UnSelectedPatternItemClass }, - { "preview2", UnSelectedPatternItemClass }, - { "preview3", UnSelectedPatternItemClass }, - { "preview4", UnSelectedPatternItemClass }, - { "preview5", UnSelectedPatternItemClass } - }; - Node node1 = CreateNode("sdlc", 300, 288, "SDLC", 100, 100); - Node node2 = CreateNode("support", 150, 250, "Support", 100, 100); - Node node3 = CreateNode("analysis", 300, 150, "Analysis", 100, 100); - Node node4 = CreateNode("design", 450, 250, "Design", 100, 100); - Node node5 = CreateNode("implement", 400, 400, "Development", 100, 100); - Node node6 = CreateNode("deploy", 200, 400, "Deployment", 100, 100); - CreateConnector("connector1", "analysis", "design"); - CreateConnector("connector2", "design", "implement"); - CreateConnector("connector3", "implement", "deploy"); - CreateConnector("connector4", "deploy", "support"); - CreateConnector("connector5", "support", "analysis"); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - DiagramInstance.FitToPage(mobileoptions); - } - // Defines default values for Connector object - private void OnConnectorCreating(IDiagramObject obj) - { - Connector con = new Connector(); - con.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.Arrow, Style = new ShapeStyle() { Fill = "#024249", StrokeColor = "#024249" } }; - con.Style = new ShapeStyle() { StrokeColor = "#6d6d6d", StrokeWidth = 2 }; - } - // Defines default values for Node object - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Shape.Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic; - (node.Shape as BasicShape).Shape = NodeBasicShapes.Ellipse; - node.Style = new ShapeStyle() - { - Fill = "#37909A", - StrokeColor = "#024249", - }; - node.Constraints = NodeConstraints.Default; - } - // Method is used to create a Connector for the diagram. - public Connector CreateConnector(string id, string sourceid, string targetid) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceid, - TargetID = targetid, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.Arrow, Style = new ShapeStyle() { Fill = "#024249", StrokeColor = "#024249" } }, - Style = new ShapeStyle() { StrokeColor = "#6d6d6d", StrokeWidth = 2 } - }; - DiagramConnectors.Add(connector); - return connector; - } - // Method is used to create a Node for the diagram. - public Node CreateNode(string id, double offx, double offy, string content, int width, int height) - { - Node node = new Node() - { - Height = height, - Width = width, - ID = id, - OffsetX = offx, - OffsetY = offy, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content=content, - Style = new TextStyle() - { - Color = "white", - } - }, - } - }; - DiagramNodes.Add(node); - return node; - } - //Method is used to apply the style for the Node. - private void ApplyPreview(string id, Node node) - { - switch (id) - { - case "preview0": - ApplyNodeStyle(node, 0, "", ~NodeConstraints.Shadow, "None", id); - break; - case "preview1": - ApplyNodeStyle(node, 2, "", ~NodeConstraints.Shadow, "None", id); - break; - case "preview2": - ApplyNodeStyle(node, 2, "5,5", ~NodeConstraints.Shadow, "None", id); - break; - case "preview3": - ApplyNodeStyle(node, 2, "5,5", ~NodeConstraints.Shadow, "Radial", id); - break; - case "preview4": - ApplyNodeStyle(node, 2, "5,5", NodeConstraints.Shadow, "None", id); - break; - } - } - - private void AppearanceSelect(string id) - { - DiagramInstance.StartGroupAction(); - DiagramInstance.BeginUpdate(); - if (SelectedShapeOption == "All Shapes") - { - for (var i = 0; i < DiagramInstance.Nodes.Count; i++) - { - this.ApplyPreview(id, DiagramInstance.Nodes[i]); - }; - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - IDiagramObject node = DiagramInstance.GetObject(DiagramInstance.SelectionSettings.Nodes[i].ID) as IDiagramObject; - Node node1 = node as Node; - this.ApplyPreview(id, node as Node); - } - }; - _ = DiagramInstance.EndUpdateAsync(); - DiagramInstance.EndGroupAction(); - } - - private void Preview0() - { - AppearanceSelect("preview0"); - } - private void Preview1() - { - AppearanceSelect("preview1"); - } - private void Preview2() - { - AppearanceSelect("preview2"); - } - private void Preview3() - { - AppearanceSelect("preview3"); - } - private void Preview4() - { - AppearanceSelect("preview4"); - } - private void SelectionChanged(SelectionChangedEventArgs arg) - { - Node node = null; - if (arg.NewValue != null && arg.NewValue.Count > 0) - { - if (arg.NewValue[0] is Node) - { - Node node1 = arg.NewValue[0] as Node; - IDiagramObject node2 = DiagramInstance.GetObject(node1.ID) as IDiagramObject; - node = node2 as Node; - } - if (node != null) - { - if ((node.Constraints.HasFlag(NodeConstraints.AspectRatio))) - { - AspectRatioValue = true; - } - else - { - AspectRatioValue = false; - } - - if (node.Constraints == (node.Constraints | NodeConstraints.Default & ~(NodeConstraints.ReadOnly))) - { - LockValue = false; - } - else - { - LockValue = true; - } - - if (node.Style.StrokeWidth == 0) - { - UpdateSelection("preview0"); - } - else if (node.Style.StrokeWidth == 2 && node.Style.StrokeDashArray == "") - { - UpdateSelection("preview1"); - } - - else if (node.Style.StrokeWidth == 2 && node.Style.StrokeDashArray == "5,5" && node.Style.Gradient is RadialGradientBrush) - { - UpdateSelection("preview3"); - } - else if (node.Style.StrokeWidth == 2 && node.Style.StrokeDashArray == "5,5" && (node.Constraints.HasFlag(NodeConstraints.Shadow))) - { - UpdateSelection("preview4"); - } - else if (node.Style.StrokeWidth == 2 && node.Style.StrokeDashArray == "5,5" && !(node.Constraints.HasFlag(NodeConstraints.Shadow))) - { - UpdateSelection("preview2"); - } - else - { - dict = new Dictionary() - { - { "preview0", UnSelectedPatternItemClass }, - { "preview1", UnSelectedPatternItemClass }, - { "preview2", UnSelectedPatternItemClass }, - { "preview3", UnSelectedPatternItemClass }, - { "preview4", UnSelectedPatternItemClass }, - { "preview5", UnSelectedPatternItemClass }, - }; - } - } - } - } - - private void ApplyNodeStyle(Node node, float width, string array, NodeConstraints con, string type, string Id) - { - node.Style = new ShapeStyle() - { - Fill = "#37909A", - StrokeWidth = width, - StrokeColor = "#024249", - StrokeDashArray = array - }; - - if (type == "None") - { - node.Style.Gradient = null; - } - else - { - RadialGradientBrush gradient = new RadialGradientBrush() - { - CX = 50, - CY = 50, - FX = 50, - FY = 50, - GradientStops = new DiagramObjectCollection() - { - new GradientStop() { Color = "#00555b", Offset = 45 }, - new GradientStop() { Color= "#37909A", Offset= 90 } - }, - }; - - node.Style.Gradient = gradient; - } - - if (!(con.HasFlag(NodeConstraints.Shadow))) - { - node.Shadow = new Shadow() { Angle = 45, Distance = 15, Opacity = 0.3, Color = "grey" }; - node.Constraints &= con; - } - else - { - node.Constraints |= con; - } - - UpdateSelection(Id); - } - //Method is used to apply the selection to the prroperty panel. - private void UpdateSelection(string id) - { - for (int i = 0; i < dict.Count; i++) - { - var value = dict.Values.ElementAt(i); - var key = dict.Keys.ElementAt(i); - if (dict.ContainsKey(id) && key == id) - { - value = SelectedPatternItemClass; - } - else - { - value = UnSelectedPatternItemClass; - } - dict.Remove(key); - dict.Add(key, value); - } - } - //Method is used to enable or diable the aspectratio for the node. - private void UpdateAspectRatioValue(Syncfusion.Blazor.Buttons.ChangeEventArgs args, Node node) - { - if (AspectRatioValue) - { - node.Constraints = node.Constraints | NodeConstraints.AspectRatio; - } - else - { - node.Constraints = node.Constraints & ~NodeConstraints.AspectRatio; - } - } - - private void CheckBoxChanged(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - AspectRatioValue = args.Checked; - if (SelectedShapeOption == "All Shapes") - { - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - this.UpdateAspectRatioValue(args, DiagramInstance.Nodes[i]); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - IDiagramObject node = DiagramInstance.GetObject(DiagramInstance.SelectionSettings.Nodes[i].ID) as IDiagramObject; - Node node1 = node as Node; - this.UpdateAspectRatioValue(args, node1); - } - } - } - - private void UpdateLockValue(Syncfusion.Blazor.Buttons.ChangeEventArgs args, Node node) - { - if (args.Checked) - { - node.Constraints = node.Constraints & ~(NodeConstraints.Resize | NodeConstraints.Drag | NodeConstraints.Rotate); - node.Constraints = node.Constraints | NodeConstraints.ReadOnly; - } - else - { - node.Constraints = (node.Constraints | NodeConstraints.Default) & ~(NodeConstraints.ReadOnly); - } - } - - private void LockChanged(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - LockValue = args.Checked; - if (SelectedShapeOption == "All Shapes") - { - for (int i = 0; i < DiagramInstance.Nodes.Count; i++) - { - this.UpdateLockValue(args, DiagramInstance.Nodes[i]); - } - } - if (SelectedShapeOption == "Selected Shapes" && DiagramInstance.SelectionSettings.Nodes.Count > 0) - { - for (var i = 0; i < DiagramInstance.SelectionSettings.Nodes.Count; i++) - { - IDiagramObject node = DiagramInstance.GetObject(DiagramInstance.SelectionSettings.Nodes[i].ID) as IDiagramObject; - Node node1 = node as Node; - this.UpdateLockValue(args, node1); - } - } - } - - @*Hidden:Lines*@ - public void Dispose() - { - DiagramInstance = null; - AspectRatiocheckbox = null; - LockRatiocheckbox = null; - SelectedShapeOption1 = null; - SelectedShapeOption2 = null; - if (dict != null) - { - dict.Clear(); - dict = null; - } - if (DiagramNodes != null) - { - DiagramNodes.Clear(); - DiagramNodes = null; - } - if (DiagramConnectors != null) - { - DiagramConnectors.Clear(); - DiagramConnectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/OrganizationModel.razor b/Common/Pages/DiagramComponent/DiagramComponent/OrganizationModel.razor deleted file mode 100644 index 8c9cebb2..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/OrganizationModel.razor +++ /dev/null @@ -1,597 +0,0 @@ -@page "/diagramcomponent/organization-model" - -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Diagram -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable; -@*End:Hidden*@ - -

This sample illustrates a simple business management structure generated from an external data source. A hierarchical tree layout algorithm is utilized to create organizational charts.

-
- -

This example demonstrates how to generate an organizational chart from an external data source. The spacing between objects in the chart can be customized using the HorizontalSpacing and VerticalSpacing properties of the Layout. Additionally, the Orientation property can be used to change the chart's orientation.

-
- -@*End:Hidden*@ -
-
- - - - - - - - - - @{ - Node node1 = (context as Node); - string Name = (node1.Data as OrganizationalDetails).Name; - string Role = (node1.Data as OrganizationalDetails).Role; - string Imageurl = (node1.Data as OrganizationalDetails).Imageurl; -
-
-
-
-

@Name

-

@Role

-
-
- } -
-
-
-
-
-@*Hidden:Lines*@ -
-
- Properties -
-
-
-
- Orientation -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Subtree Alignment -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Layout Spacing -
-
-
-
Horizontal Spacing
-
-
- - - -
-
-
-
-
Vertical Spacing
-
-
- - - -
-
-
-
-@*End:Hidden*@ -@code -{ - private const string selecteditem = "image-pattern-style e-selected-orientation-style"; - private const string unselecteditem = "image-pattern-style"; - private const string selectedPattenitem = "image-pattern-style e-selected-pattern-style"; - ScrollLimitMode scrollLimit { get; set; } = ScrollLimitMode.Diagram; - private Orientation subTreeOrientation = Orientation.Vertical; - private SubTreeAlignmentType subTreeAlignment = SubTreeAlignmentType.Right; - private int rows = 0; - private string pattern; - private double offset = 20; - private Dictionary dict = new Dictionary() { - { "topToBottom", selecteditem }, - { "bottomToTop", unselecteditem }, - { "leftToRight", unselecteditem }, - { "rightToLeft", unselecteditem } - }; - private Dictionary PatternDictionary = new Dictionary() { - { "pattern1", unselecteditem }, - { "pattern2", unselecteditem }, - { "pattern3", unselecteditem }, - { "pattern4", unselecteditem }, - { "pattern5", selectedPattenitem }, - { "pattern6", unselecteditem }, - { "pattern7", unselecteditem }, - { "pattern8", unselecteditem }, - { "pattern9", unselecteditem } - }; - - public SfDiagramComponent Diagram; - public LayoutOrientation OrientationType = LayoutOrientation.TopToBottom; - public int? HorizontalValue { get; set; } = 30; - public int? VerticalValue { get; set; } = 30; - public LayoutType Type = LayoutType.OrganizationalChart; - public HorizontalAlignment HorizontalAlignment = HorizontalAlignment.Auto; - public VerticalAlignment VerticalAlignment = VerticalAlignment.Auto; - public int HorizontalSpacing = 30; - public int VerticalSpacing = 30; - public double Top = 50; - public double Bottom = 50; - public double Right = 50; - public double Left = 50; - - - // Defines default values for Node object - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - OrganizationalDetails organizationData = node.Data as OrganizationalDetails; - node.Width = 177; - node.Height = 54; - - node.Shape = new Shape() - { - Type = Syncfusion.Blazor.Diagram.NodeShapes.HTML, - }; - - } - // Defines default values for Connector object - private void OnConnectorCreating(IDiagramObject connector1) - { - Connector connector = (connector1 as Connector); - connector.Type = ConnectorSegmentType.Orthogonal; - connector.CornerRadius = 10; - connector.Style = new ShapeStyle() - { - StrokeWidth = 1, - StrokeDashArray = "1,1" - }; - connector.TargetDecorator.Shape = DecoratorShape.None; - connector.SourceDecorator.Shape = DecoratorShape.None; - } - - public class OrganizationalDetails - { - public string Id { get; set; } - public string Role { get; set; } - public string Color { get; set; } - public string Manager { get; set; } - public string ChartType { get; set; } - public string Name { get; set; } - public string Imageurl { get; set; } - } - //DataSource Items. - public List DataSource = new List() - { - new OrganizationalDetails() { Id= "parent", Role= "CEO", Color = "#71AF17", Manager = "", ChartType = "", Name="Liam James", Imageurl="images/diagram/overview/image34.png" }, - new OrganizationalDetails() { Id = "2", Role= "Product Manager", Color = "#1859B7", Manager = "parent", ChartType = "right", Name="Maria Andres", Imageurl="images/diagram/overview/image30.png"}, - new OrganizationalDetails() { Id = "3", Role= "Software Engineer", Color = "#2E95D8", Manager = "2", ChartType ="", Name="John Steel", Imageurl="images/diagram/overview/image3.png"}, - new OrganizationalDetails() { Id = "4", Role= "Software Engineer", Color = "#2E95D8", Manager = "2",ChartType = "", Name="Carlos Nagy", Imageurl="images/diagram/overview/image5.png"}, - new OrganizationalDetails() { Id = "5", Role= "Software Engineer", Color = "#2E95D8", Manager = "2", ChartType ="", Name="Yoshi Wilson", Imageurl="images/diagram/overview/image22.png"}, - new OrganizationalDetails() { Id = "6", Role= "Software Engineer", Color = "#2E95D8", Manager = "2", ChartType ="", Name="Thomas Hardy", Imageurl="images/diagram/overview/image31.png"}, - new OrganizationalDetails() { Id = "7", Role= "Software Engineer", Color = "#2E95D8", Manager = "2", ChartType ="", Name="Peter Citeaux", Imageurl="images/diagram/overview/image21.png"}, - new OrganizationalDetails() { Id = "8", Role= "Product Manager", Color = "#1859B7", Manager = "parent", ChartType ="right", Name="Pedro Afonso", Imageurl="images/diagram/overview/image26.png"}, - new OrganizationalDetails() { Id = "9", Role= "Software Engineer",Color = "#2E95D8", Manager = "8", ChartType ="", Name="Roland Mendel", Imageurl="images/diagram/overview/image24.png"}, - new OrganizationalDetails() { Id = "10", Role= "Software Engineer",Color = "#2E95D8", Manager = "8", ChartType = "", Name="Diego Roel", Imageurl="images/diagram/overview/image18.png"}, - new OrganizationalDetails() { Id = "11", Role= "Software Engineer", Color = "#2E95D8", Manager = "8", ChartType = "", Name="Martine Rancé", Imageurl="images/diagram/overview/image11.png"}, - new OrganizationalDetails() { Id = "12", Role= "Software Engineer", Color = "#2E95D8", Manager = "8", ChartType = "", Name="Maria Larsson", Imageurl="images/diagram/overview/image15.png"}, - new OrganizationalDetails() { Id = "13", Role= "Software Engineer", Color = "#2E95D8", Manager = "8", ChartType = "", Name="Paolo Accorti", Imageurl="images/diagram/overview/image28.png"}, - new OrganizationalDetails() { Id = "14", Role= "Product manager", Color = "#1859B7", Manager = "parent", ChartType ="right", Name="Helen Bennett", Imageurl="images/diagram/overview/image7.png"}, - new OrganizationalDetails() { Id = "15", Role= "Software Engineer", Color = "#2E95D8", Manager = "14", ChartType = "", Name="Renate Jose", Imageurl="images/diagram/overview/image9.png"}, - new OrganizationalDetails() { Id = "16", Role= "Software Engineer", Color = "#2E95D8", Manager = "14", ChartType ="", Name="Jaime Yorres", Imageurl="images/diagram/overview/image1.png"}, - new OrganizationalDetails() { Id = "17", Role= "Software Engineer", Color = "#2E95D8", Manager = "14", ChartType ="", Name="Alex Feuer", Imageurl="images/diagram/overview/image23.png"}, - new OrganizationalDetails() { Id = "18", Role= "Software Engineer", Color = "#2E95D8", Manager = "14", ChartType ="", Name="Helen Marie", Imageurl="images/diagram/overview/image12.png"}, - new OrganizationalDetails() { Id = "19", Role= "Software Engineer", Color = "#2E95D8", Manager = "14", ChartType ="", Name="Yoshi Kenna", Imageurl="images/diagram/overview/image14.png"}, - new OrganizationalDetails() { Id = "20", Role= "Product Manager", Color = "#1859B7", Manager = "parent", ChartType ="right", Name="Joseph Kaff", Imageurl="images/diagram/overview/image16.png"}, - new OrganizationalDetails() { Id = "21", Role= "Software Engineer", Color = "#2E95D8", Manager = "20", ChartType ="", Name="Sergio roel", Imageurl="images/diagram/overview/image33.png"}, - new OrganizationalDetails() { Id = "22", Role= "Software Engineer", Color = "#2E95D8", Manager = "20", ChartType ="", Name="Paula Wilson", Imageurl="images/diagram/overview/image6.png"}, - new OrganizationalDetails() { Id = "23", Role= "Software Engineer", Color = "#2E95D8", Manager = "20",ChartType = "", Name="Mauri Moroni", Imageurl="images/diagram/overview/image53.png"}, - new OrganizationalDetails() { Id = "24", Role= "Software Engineer", Color = "#2E95D8", Manager = "20", ChartType ="", Name="Janete Limeira", Imageurl="images/diagram/overview/image56.png"}, - new OrganizationalDetails() { Id = "25", Role= "Software Engineer", Color = "#2E95D8", Manager = "20", ChartType ="", Name="Michael Holz", Imageurl="images/diagram/overview/image19.png"} - }; - private TreeInfo GetLayoutInfo(IDiagramObject obj, TreeInfo options) - { - if (rows == 0) - { - if (rows == 0 && options.Rows != null) - options.Rows = null; - Node node = obj as Node; - if (pattern == "LeftOrientationVertical50" || pattern == "RightOrientationVertical50") - { - options.Offset = -50; - } - - if (!options.HasSubTree) - { - options.AlignmentType = subTreeAlignment; - options.Orientation = subTreeOrientation; - options.AlignmentType = subTreeAlignment; - } - } - else - { - if (!options.HasSubTree) - { - options.AlignmentType = subTreeAlignment; - options.Orientation = subTreeOrientation; - options.Offset = offset; - } - } - return options; - } - - public void LeftToRight() - { - OrientationType = LayoutOrientation.LeftToRight; - } - - public class ImageFields - { - public string Text { get; set; } - } - - private void HSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - HorizontalValue = (int)args.Value; - HorizontalSpacing = int.Parse(args.Value.ToString()); - - } - private void VSpacingChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - VerticalValue = (int)args.Value; - VerticalSpacing = int.Parse(args.Value.ToString()); - } - - private void ToptoBottomClick() - { - OrientationType = LayoutOrientation.TopToBottom; - UpdateSelection("topToBottom"); - } - private void LefttoRightClick() - { - OrientationType = LayoutOrientation.LeftToRight; - UpdateSelection("leftToRight"); - } - private void RighttoLeftClick() - { - OrientationType = LayoutOrientation.RightToLeft; - UpdateSelection("rightToLeft"); - } - private void BottomtoTopClick() - { - OrientationType = LayoutOrientation.BottomToTop; - UpdateSelection("bottomToTop"); - } - private async Task AlternateOrientationVertical20() - { - pattern = "AlternateOrientationVertical20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Alternate; - subTreeOrientation = Orientation.Vertical; - offset = 20; - UpdatePatternSelection("pattern1"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task LeftOrientationVertical20() - { - pattern = "LeftOrientationVertical20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Left; - subTreeOrientation = Orientation.Vertical; - offset = 20; - UpdatePatternSelection("pattern2"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task LeftOrientationVertical50() - { - pattern = "LeftOrientationVertical50"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Left; - subTreeOrientation = Orientation.Vertical; - offset = -50; - UpdatePatternSelection("pattern3"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task RightOrientationVertical50() - { - pattern = "RightOrientationVertical50"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Right; - subTreeOrientation = Orientation.Vertical; - offset = -50; - UpdatePatternSelection("pattern4"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task RightOrientationVertical20() - { - pattern = "RightOrientationVertical20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Right; - subTreeOrientation = Orientation.Vertical; - offset = 20; - UpdatePatternSelection("pattern5"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task BalancedOrientationHorizontal20() - { - pattern = "BalancedOrientationHorizontal20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Balanced; - subTreeOrientation = Orientation.Horizontal; - offset = 20; - UpdatePatternSelection("pattern6"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task CenterOrientationHorizontal50() - { - pattern = "CenterOrientationHorizontal50"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Center; - subTreeOrientation = Orientation.Horizontal; - offset = -50; - UpdatePatternSelection("pattern7"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task LeftOrientationHorizontal20() - { - pattern = "LeftOrientationHorizontal20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Left; - subTreeOrientation = Orientation.Horizontal; - offset = 20; - UpdatePatternSelection("pattern8"); - _ = Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private async Task RightOrientationHorizontal20() - { - pattern = "RightOrientationHorizontal20"; - Diagram.BeginUpdate(); - subTreeAlignment = SubTreeAlignmentType.Right; - subTreeOrientation = Orientation.Horizontal; - offset = 20; - UpdatePatternSelection("pattern9"); - await Diagram.EndUpdateAsync(); - await Diagram.DoLayoutAsync(); - } - private void UpdatePatternSelection(string id) - { - for (int i = 0; i < PatternDictionary.Count; i++) - { - var value = PatternDictionary.Values.ElementAt(i); - var key = PatternDictionary.Keys.ElementAt(i); - if (PatternDictionary.ContainsKey(id) && key == id) - { - value = selectedPattenitem; - } - else - { - value = unselecteditem; - } - PatternDictionary.Remove(key); - PatternDictionary.Add(key, value); - } - } - // Method is used to apply the selection to the prroperty panel. - private void UpdateSelection(string id) - { - for (int i = 0; i < dict.Count; i++) - { - var value = dict.Values.ElementAt(i); - var key = dict.Keys.ElementAt(i); - if (dict.ContainsKey(id) && key == id) - { - value = selectedPattenitem; - } - else - { - value = unselecteditem; - } - dict.Remove(key); - dict.Add(key, value); - } - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (dict != null) - { - dict.Clear(); - dict = null; - } - if (PatternDictionary != null) - { - PatternDictionary.Clear(); - PatternDictionary = null; - } - Diagram = null; - pattern = null; - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Overview.razor b/Common/Pages/DiagramComponent/DiagramComponent/Overview.razor deleted file mode 100644 index 67e2f310..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Overview.razor +++ /dev/null @@ -1,557 +0,0 @@ -@page "/diagramcomponent/overview" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.Overview -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - - -

This sample visualizes an organizational structure along with an overview for easy navigation of the large organizational structure using the overview panel.

-
- -

This example shows how to render the SfDiagramOverviewComponent and how to display a preview (overall view) of the entire content of a diagram. This helps you look at the overall picture of a large diagram and navigate (pan or zoom) to a particular position of the page. The SourceID property can be used to map the Diagram control with `SfDiagramOverviewComponent`.

-
- -@*Hidden:Lines*@ - -@*End:Hidden*@ -
- - - - - - - - - @{ Node node1 = (context as Node); - string Name = (node1.Data as OrganizationalDetails).Name; - string Role = (node1.Data as OrganizationalDetails).Designation; - string Imageurl = (node1.Data as OrganizationalDetails).ImageUrl; - if (Name == "Maria Anders") - { -
-
-
-
-
@Name@Role -
-
- } - else if (Name == "Miguel Angel Paolino") - { -
-
-
-
-
@Name@Role -
-
- - } - else if (Name == "Frédérique Citeaux"||Name== "Christina Berglund"||Name== "Art Braunschweiger") - { -
-
-
-
-
@Name@Role -
-
- - } - else - { -
-
-
-
-
@Name@Role -
-
- } - } -
-
- -
-
- @{ - if (isMobileDevice) - { - var overviewImage = overviewDisplay == "none" ? "overview-collapsed.png" : "overview-expanded.png"; -
- -
- } - } -
-
- -
-
- -@code{ - @*Hidden:Lines*@ - bool isMobileDevice = false; - string overviewDisplay = "block"; - DiagramInteractions DiagramTool = DiagramInteractions.ZoomPan; - ScrollLimitMode scrollLimit { get; set; } = ScrollLimitMode.Infinity; - public SfDiagramComponent Diagram; - public LayoutType Type = LayoutType.OrganizationalChart; - - @*End:Hidden*@ - - //Defines sfdiagramComponent - SfDiagramComponent diagram; - - //Defines diagram constraints - public DiagramConstraints constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection connectors = new DiagramObjectCollection(); - - private void OnCreated() - { - isMobileDevice = SampleService.IsDevice; - overviewDisplay = isMobileDevice ? "none" : "block"; - StateHasChanged(); - } - private void UpdateOverview(MouseEventArgs args) - { - overviewDisplay = overviewDisplay == "none" ? "block" : "none"; - StateHasChanged(); - } - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Type = ConnectorSegmentType.Orthogonal; - connector.Style = new ShapeStyle() { StrokeColor = "gray" }; - connector.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - } - private TreeInfo GetLayoutInfo(IDiagramObject obj, TreeInfo options) - { - if(!options.HasSubTree) - { - options.Orientation = Syncfusion.Blazor.Diagram.Orientation.Vertical; - options.AlignmentType = SubTreeAlignmentType.Right; - } - return options; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Width = 181; - node.Height = 50; - node.Shape = new Shape() - { Type = shapes.HTML }; - node.Style = new ShapeStyle(){StrokeWidth = 1, Fill = "transparent", StrokeColor = "gray",}; - } - - public class OrganizationalDetails - { - public string Id { get; set; } - public string Name { get; set; } - public string Designation { get; set; } - public string ImageUrl { get; set; } - public string IsExpand { get; set; } - public string RatingColor { get; set; } - public string ReportingPerson { get; set; } - } - public List DataSource = new List() - { - new OrganizationalDetails(){ Id = "parent", Name = "Maria Anders", Designation = "Managing Director", ImageUrl = "images/diagram/overview/image30.png", IsExpand = "true", RatingColor = "#C34444" }, - new OrganizationalDetails(){ Id = "1", Name = "Hayden Trujillo", Designation = "Project Manager", ImageUrl ="images/diagram/overview/image2.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "2", Name = "Anto Moreno", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image1.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "1" }, - new OrganizationalDetails { Id = "3", Name = "Thomas Hardy", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image3.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "2" }, - new OrganizationalDetails { Id = "4", Name = "Christina kaff", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image4.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "3" }, - new OrganizationalDetails { Id = "5", Name = "Jacquelyn Moos", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image6.png", IsExpand = "true", RatingColor = "#D46E89", ReportingPerson = "4" }, - new OrganizationalDetails { Id = "6", Name = "Peter Citeaux", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image5.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "5" }, - new OrganizationalDetails { Id = "7", Name = "Martín Kloss", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image18.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "6" }, - new OrganizationalDetails { Id = "8", Name = "Elizabeth Mary", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image7.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "6" }, - new OrganizationalDetails { Id = "9", Name = "Victoria Ash", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image8.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "5" }, - new OrganizationalDetails { Id = "10", Name = "Francisco Yang", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image19.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "3" }, - new OrganizationalDetails { Id = "11", Name = "Yang Wang", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image21.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "12", Name = "Bailey Rodri", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image9.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "11" }, - new OrganizationalDetails { Id = "13", Name = "Philip Cramer", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image23.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "24" }, - new OrganizationalDetails { Id = "14", Name = "Kate Afonso", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image10.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "15" }, - new OrganizationalDetails { Id = "15", Name = "Elizabeth Roel", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image11.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "13" }, - new OrganizationalDetails { Id = "16", Name = "Jennifer Labrune", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image12.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "12" }, - new OrganizationalDetails { Id = "17", Name = "Christina Devon", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image13.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "25" }, - new OrganizationalDetails { Id = "18", Name = "Roland Mendel", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image24.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "17" }, - new OrganizationalDetails { Id = "19", Name = "Emma Cruz", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image14.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "18" }, - new OrganizationalDetails { Id = "20", Name = "Martine Rancé", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image26.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "18" }, - new OrganizationalDetails { Id = "21", Name = "Maria Larsson", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image15.png", IsExpand = "false", RatingColor = "#EBB92E", ReportingPerson = "19" }, - new OrganizationalDetails { Id = "22", Name = "Sofiya Roel", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image17.png", IsExpand = "false", RatingColor = "#D46E89", ReportingPerson = "21" }, - new OrganizationalDetails { Id = "23", Name = "Peter Franken", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image27.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "21" }, - new OrganizationalDetails { Id = "24", Name = "Jenna Snyder", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image20.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "16" }, - new OrganizationalDetails { Id = "25", Name = "Catherine Schmitt", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image22.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "26", Name = "Paul Accorti", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image28.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "36" }, - new OrganizationalDetails { Id = "27", Name = "Edwin Roel", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image31.png", IsExpand = "true", RatingColor = "#93B85A", ReportingPerson = "26" }, - new OrganizationalDetails { Id = "28", Name = "Laura Pedro ", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image25.png", IsExpand = "true", RatingColor = "#D46E89", ReportingPerson = "27" }, - new OrganizationalDetails { Id = "29", Name = "Adam Levine", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image32.png", IsExpand = "true", RatingColor = "#EBB92E", ReportingPerson = "28" }, - new OrganizationalDetails { Id = "30", Name = "Howard Snyd", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image33.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "31", Name = "Taylor Pereira", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image34.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "32", Name = "Kyla Pontes", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image29.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "33", Name = "Natalie Schmitt", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image30.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "34", Name = "Mary Latimer", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image4.png", IsExpand = "true", RatingColor = "#D46E89", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "35", Name = "Patricia Kenna", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image6.png", IsExpand = "true", RatingColor = "#EBB92E", ReportingPerson = "29" }, - new OrganizationalDetails { Id = "36", Name = "Helen Bennett", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image7.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "25" }, - new OrganizationalDetails { Id = "37", Name = "Annette Roel", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image9.png", IsExpand = "true", RatingColor = "#93B85A", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "38", Name = "Daniel Tonini", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image2.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "37" }, - new OrganizationalDetails { Id = "39", Name = "Charlotte Wilson", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image8.png", IsExpand = "false", RatingColor = "#EBB92E", ReportingPerson = "38" }, - new OrganizationalDetails { Id = "40", Name = "John Steel", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image3.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "38" }, - new OrganizationalDetails { Id = "41", Name = "Hannah Jose", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image9.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "40" }, - new OrganizationalDetails { Id = "42", Name = "Naomi Yorres", Designation = "SR", ImageUrl = "images/diagram/overview/image10.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "41" }, - new OrganizationalDetails { Id = "43", Name = "Carlos Nagy", Designation = "SR", ImageUrl = "images/diagram/overview/image5.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "42" }, - new OrganizationalDetails { Id = "44", Name = "Andrew Kloss", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image16.png", IsExpand = "false", RatingColor = "#EBB92E", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "45", Name = "David Wilson", Designation = "SR", ImageUrl = "images/diagram/overview/image18.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "46", Name = "John Rovelli", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image19.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "47", Name = "Catherine Kaff", Designation = "SR", ImageUrl = "images/diagram/overview/image11.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "48", Name = "Ben Fresnière", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image21.png", IsExpand = "false", RatingColor = "#D46E89", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "49", Name = "Alex Feuer", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image23.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "43" }, - new OrganizationalDetails { Id = "50", Name = "Simon Roel", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image24.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "42" }, - new OrganizationalDetails { Id = "51", Name = "Isabella Wong", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image12.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "52" }, - new OrganizationalDetails { Id = "52", Name = "Bianca Phillips", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image25.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "39" }, - new OrganizationalDetails { Id = "53", Name = "Victoria Kenna", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image14.png", IsExpand = "false", RatingColor = "#EBB92E", ReportingPerson = "52" }, - new OrganizationalDetails { Id = "54", Name = "Helen Marie", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image15.png", IsExpand = "true", RatingColor = "#EBB92E", ReportingPerson ="52" }, - new OrganizationalDetails { Id = "55", Name = "Joseph Kaff", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image26.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "52" }, - new OrganizationalDetails { Id = "56", Name = "George Pipps", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image27.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "57", Name = "Emily Harley", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image17.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "12" }, - new OrganizationalDetails { Id = "58", Name = "Lúcia Carvalho", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image20.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "59", Name = "Cameron Kloss", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image28.png", IsExpand = "None", RatingColor = "#68C2DE", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "60", Name = "Alexa roel", Designation = "CSR", ImageUrl = "images/diagram/overview/image22.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "61", Name = "Paul Wilson", Designation = "CSR", ImageUrl = "images/diagram/overview/image31.png", IsExpand = "None", RatingColor = "#68C2DE", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "62", Name = "Angel Moroni", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image25.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "63", Name = "Jane Limeira", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image29.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "64", Name = "Michael Holz", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image32.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "57" }, - new OrganizationalDetails { Id = "65", Name = "Alex Camino", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image33.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "66", Name = "Jonas Bergsen", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image34.png", IsExpand = "None", RatingColor = "#68C2DE", ReportingPerson = "65" }, - new OrganizationalDetails { Id = "67", Name = "Julietta Pavarotti", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image30.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "68" }, - new OrganizationalDetails { Id = "68", Name = "Angel Miguel", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image4.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "66" }, - new OrganizationalDetails { Id = "69", Name = "Richard Petersen", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image1.png", IsExpand = "true", RatingColor = "#68C2DE", ReportingPerson = "68" }, - new OrganizationalDetails { Id = "70", Name = "Simon Perrier", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image2.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "72" }, - new OrganizationalDetails { Id = "71", Name = "Nancy Wilson", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image6.png", IsExpand = "true", RatingColor = "#D46E89", ReportingPerson = "27" }, - new OrganizationalDetails { Id = "72", Name = "Pascal Cartrain", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image3.png", IsExpand = "true", RatingColor = "#EBB92E", ReportingPerson = "65" }, - new OrganizationalDetails { Id = "73", Name = "Eliza Nixon", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image7.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "68" }, - new OrganizationalDetails { Id = "74", Name = "Caroline Wong", Designation = "Project Manager", ImageUrl = "images/diagram/overview/image8.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "75", Name = "Karina Josephs", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image9.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "74" }, - new OrganizationalDetails { Id = "76", Name = "Ruby Anabela ", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image10.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "75" }, - new OrganizationalDetails { Id = "77", Name = "Diana Nagy", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image11.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "82" }, - new OrganizationalDetails { Id = "78", Name = "Tom Holland", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image5.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "76" }, - new OrganizationalDetails { Id = "79", Name = "Mary Saveley", Designation = "SR", ImageUrl = "images/diagram/overview/image12.png", IsExpand = "false", RatingColor = "#93B85A", ReportingPerson = "82" }, - new OrganizationalDetails { Id = "80", Name = "Paul Henriot", Designation = "SR", ImageUrl = "images/diagram/overview/image16.png", IsExpand = "false", RatingColor = "#D46E89", ReportingPerson = "79" }, - new OrganizationalDetails { Id = "81", Name = "Rita Müller", Designation = "SR", ImageUrl = "images/diagram/overview/image13.png", IsExpand = "None", RatingColor = "#68C2DE", ReportingPerson = "79" }, - new OrganizationalDetails { Id = "82", Name = "Robert King", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image18.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "78" }, - new OrganizationalDetails { Id = "83", Name = "Paul Parente", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image19.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "75" }, - new OrganizationalDetails { Id = "84", Name = "Anne", Designation = "S/w Engg", ImageUrl = "images/diagram/overview/image14.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "83" }, - new OrganizationalDetails { Id = "34", Name = "Mariana Kenna", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image15.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "84" }, - new OrganizationalDetails { Id = "35", Name = "Anderson Yang", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image21.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "84" }, - new OrganizationalDetails { Id = "85", Name = "Nancy", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image17.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "74" }, - new OrganizationalDetails { Id = "86", Name = "Robert King", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image23.png", IsExpand = "true", RatingColor = "#D46E89", ReportingPerson = "85" }, - new OrganizationalDetails { Id = "87", Name = "Laura Callahan", Designation = "CSR", ImageUrl = "images/diagram/overview/image20.png", IsExpand = "false", RatingColor = "#D46E89", ReportingPerson = "88" }, - new OrganizationalDetails { Id = "88", Name = "Joesph Kloss", Designation = "CSR", ImageUrl = "images/diagram/overview/image24.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "86" }, - new OrganizationalDetails { Id = "89", Name = "George Pipps", Designation = "Senior S/w Engg", ImageUrl = "images/diagram/overview/image26.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "parent" }, - new OrganizationalDetails { Id = "30", Name = "Thomas Castro", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image27.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "89" }, - new OrganizationalDetails { Id = "34", Name = "Batista Nardo", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image28.png", IsExpand = "None", RatingColor = "#EBB92E", ReportingPerson = "88" }, - new OrganizationalDetails { Id = "90", Name = "Reena Phillips", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image22.png", IsExpand = "false", RatingColor = "#68C2DE", ReportingPerson = "89" }, - new OrganizationalDetails { Id = "91", Name = "Lúcia Carvalho", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image25.png", IsExpand = "None", RatingColor = "#93B85A", ReportingPerson = "89" }, - new OrganizationalDetails { Id = "92", Name = "Rose Mary", Designation = "Project Trainee", ImageUrl = "images/diagram/overview/image29.png", IsExpand = "None", RatingColor = "#D46E89", ReportingPerson = "89" }, - new OrganizationalDetails { Id = "93", Name = "Simon Roel", Designation = "Project Lead", ImageUrl = "images/diagram/overview/image28.png", IsExpand = "true", RatingColor = "#93B85A", ReportingPerson = "98" } - }; - - - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/PERTChart.razor b/Common/Pages/DiagramComponent/DiagramComponent/PERTChart.razor deleted file mode 100644 index 911e9abe..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/PERTChart.razor +++ /dev/null @@ -1,141 +0,0 @@ -@page "/diagramcomponent/pertchart" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable; -@inject NavigationManager NavigationManager - - -

This sample demonstrates how to visualize a project development process using the Program Evaluation and Review Technique (PERT) chart. The chart is generated from an external data source and organized with a complex hierarchical tree algorithm to clearly depict the project’s sequential steps and dependencies.

-
- -

- This example demonstrates how to generate a PERT chart using an external data source. The DataSourceSettings property maps the external data source to the diagram control, while the Layout property automatically positions the nodes in the diagram. In this example, nodes are arranged from left to right. The Orientation property further customizes the layout direction, allowing for flexible arrangement of chart elements based on the specified orientation. -

-
-
-
- @*End:Hidden*@ - - - - - - - @*Hidden:Lines*@ -
-
- - -@*End:Hidden*@ - - -@code -{ - SfDiagramComponent Diagram; - - private void connectorcreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Style.StrokeColor = "#979797"; - connector.TargetDecorator.Width = 10; - connector.TargetDecorator.Height = 10; - connector.TargetDecorator.Style = new ShapeStyle() - { - Fill = "#979797", - StrokeColor = "#979797" - }; - } - - //SetNode Template method - private CommonElement SetNodeTemplate(IDiagramObject node) - { - { - Node newnode = node as Node; - var table = new StackPanel(); - table.Style.Fill = "#0069d9"; - table.Orientation = Orientation.Vertical; - var nameKey = "id"; - var stack = new StackPanel(); - stack.Children = new ObservableCollection(); - stack.Height = 25; - stack.Orientation = Orientation.Horizontal; - stack.Style.Fill = "white"; - stack.HorizontalAlignment = HorizontalAlignment.Stretch; - addRows(stack, node); - table.Children = new ObservableCollection(); - table.Children.Add(getTextElement((newnode.Data as HierarchicalDetails).ID, HorizontalAlignment.Stretch, 170, VerticalAlignment.Stretch)); - table.Children.Add(stack); - (table.Children[0].Style as TextStyle).Color = "white"; - (table.Children[0].Style as TextStyle).FontSize = 14; - - return table; - } - } - private void addRows(StackPanel column, IDiagramObject node) - { - Node node1 = node as Node; - var nodeInfo = node1.Data as HierarchicalDetails; - column.Children.Add(getTextElement(nodeInfo.StartDate, HorizontalAlignment.Left, 70, VerticalAlignment.Center)); - column.Children.Add(getTextElement(nodeInfo.Duration, HorizontalAlignment.Center, 30, VerticalAlignment.Center)); - column.Children.Add(getTextElement(nodeInfo.EndDate, HorizontalAlignment.Right, 70, VerticalAlignment.Center)); - } - private TextElement getTextElement(string text, HorizontalAlignment alignment, int width, VerticalAlignment valignment) - { - TextElement textElement = new TextElement(); - textElement.Width = width; - textElement.Height = 25; - textElement.Content = text; - textElement.VerticalAlignment = valignment; - textElement.HorizontalAlignment = alignment; - textElement.RelativeMode = RelativeMode.Object; - textElement.Style = new TextStyle() { Color = "#3c3c3c", Fill = "transparent" }; - return textElement; - } - public class HierarchicalDetails - { - public string ID { get; set; } - public string Duration { get; set; } - public List Category { get; set; } - public string StartDate { get; set; } - public string EndDate { get; set; } - public string Branch { get; set; } - } - //Create the data source with node name and fill color values. - public List DataSource = new List() -{ - new HierarchicalDetails(){ ID="Start Project",Duration="4",Branch="root",StartDate="04/19/2018",EndDate="08/19/2018"}, - new HierarchicalDetails(){ID="Design",Duration="2",Category=new List(){"Start Project"},StartDate="08/20/2018",EndDate="10/20/2018"}, - new HierarchicalDetails(){ID="Formalize Specification",Duration="2",Category=new List(){"Start Project"},StartDate="10/21/2018",EndDate="12/22/2018"}, - new HierarchicalDetails(){ID="Write Documentation",Duration="1",Category=new List(){"Start Project"},StartDate="12/23/2018",EndDate="01/22/2019"}, - new HierarchicalDetails(){ID="Release Prototype",Duration="1",Category=new List(){"Design"},StartDate="01/23/2019",EndDate="02/23/2019"}, - new HierarchicalDetails(){ID="Testing",Duration="2",Category=new List(){"Formalize Specification","Release Prototype"},StartDate="02/24/2019",EndDate="04/22/2019"}, - new HierarchicalDetails(){ID="Release Project",Duration="1",Category=new List(){"Release Prototype"},StartDate="04/23/2019",EndDate="05/24/2019"}, - new HierarchicalDetails(){ID="Review Changes",Duration="1",Category=new List(){"Write Documentation"},StartDate="05/25/2019",EndDate="06/26/2019"}, - new HierarchicalDetails(){ID="Publish Documentation",Duration="1",Category=new List(){"Review Changes"},StartDate="06/21/2019",EndDate="07/22/2019"}, - new HierarchicalDetails(){ID="Finish",Duration="1",Category=new List(){"Publish Documentation","Release Project"},StartDate="07/23/2019",EndDate="08/24/2019"}, - }; - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - @*Hidden:Lines*@ - public void Dispose() - { - DataSource = null; - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Ports.razor b/Common/Pages/DiagramComponent/DiagramComponent/Ports.razor deleted file mode 100644 index a47020b7..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Ports.razor +++ /dev/null @@ -1,479 +0,0 @@ -@page "/diagramcomponent/ports" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@*Hidden:Lines*@ -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*End:Hidden*@ -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample visualizes the process of publishing a book using connection points. Connection points are static points over the shapes used to create connections between the shapes. Customizing the size and appearance of the connection points is illustrated in this example.

-
- -

This example shows how to add connection points to shapes. The Ports property of the node defines the static connection ports. The Offset, HorizontalAlignment, VerticalAlignment, and Margin properties of the port define its position.

-

The Style property is used to customize its appearance. The Visibility property can be used to define when the connection ports should be visible.

-

The ConnectionDirection property controls the direction for connections to the port. By default, the direction of the connection is automatically assigned based on the port's position and the direction of the connector's other endpoint. But the connection-direction can be set with a specific direction.

-
-@*End:Hidden*@ - -
-
- - - - - - - - -
- @*Hidden:Lines*@ - -
-
- Properties -
-
-
-
-
- Visibility -
-
- - - - -
-
-
-
- Shape -
-
- - - - -
-
-
-
- Stroke Width -
-
- - - -
-
- -
-
- Size -
-
- - - -
-
-
-
- Fill Color -
-
- -
-
-
-
- Stroke Color -
-
- -
-
-
-
- Connection Direction -
-
- - - - -
-
-
-
-
- @*End:Hidden*@ -
-@code -{ - @*Hidden:Lines*@ - - bool disablePicker = true; - bool enableNumeric = false; - bool enableDropDown = false; - SfNumericTextBox strokeWidth; - SfNumericTextBox sizeTextBox; - SfDropDownList dropDownList; - public string styleValue = "background-color:#008000"; - @*End:Hidden*@ - string portVisibility = "Visible"; - double sizeNumeric = 8; - double widthNumeric = 1; - string selectedShape = "Circle"; - string selectedDirection = "Auto"; - string fillColor = "#1916C1"; - string strokeColor = "#000"; - SfDiagramComponent Diagram; - // Defines interval values for GridLines - public double[] gridLineIntervals { get; set; } - - //Defines diagrams's nodes collection - DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - DiagramObjectCollection connectors = new DiagramObjectCollection(); - - private void OnCreated() - { - Diagram.Select(new ObservableCollection() { Diagram.Nodes[0] }); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - - @*Hidden:Lines*@ - public async void OnVisibilityChange(ChangeEventArgs args) - { - await ApplyPortStyle("visibility", args.Value); - } - - public async void OnShapeChange(ChangeEventArgs args) - { - await ApplyPortStyle("shape", args.Value); - } - - public async void OnDirectionChange(ChangeEventArgs args) - { - await ApplyPortStyle("direction", args.Value); - } - - List shape = new List() - { - new DiagramShapeModel() { Value= "X", Text= "X" }, - new DiagramShapeModel() { Value= "Circle", Text= "Circle" }, - new DiagramShapeModel() { Value= "Square", Text= "Square" }, - new DiagramShapeModel() { Value="Custom", Text= "Custom" } - }; - - List postVisibilityType = new List() - { - new DiagramShapeModel() { Value= "Visible", Text= "Visible" }, - new DiagramShapeModel() { Value= "Hover", Text= "Hover" }, - new DiagramShapeModel() { Value= "Connect", Text= "Connect" } - }; - - List direction = new List() - { - new DiagramShapeModel() { Value= "Auto", Text= "Auto" }, - new DiagramShapeModel() { Value= "Left", Text= "Left" }, - new DiagramShapeModel() { Value= "Top", Text= "Top" }, - new DiagramShapeModel() { Value="Right", Text= "Right" }, - new DiagramShapeModel() { Value="Bottom", Text= "Bottom" } - }; - - public async Task OnBorderChange(ColorPickerEventArgs args) - { - this.styleValue = "background-color:" + args.CurrentValue.Hex; - await ApplyPortStyle("strokecolor", args.CurrentValue.Hex); - } - - public async Task OnBorderWidthChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - await ApplyPortStyle("strokewidth", args.Value); - } - - public async Task OnSizeChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - await ApplyPortStyle("size", args.Value); - } - - public async Task OnFillColorChange(ColorPickerEventArgs args) - { - this.styleValue = "background-color:" + args.CurrentValue.Hex; - await ApplyPortStyle("fill", args.CurrentValue.Hex); - } - - public class DiagramShapeModel - { - public string Value { get; set; } - public string Text { get; set; } - } - - private async Task ApplyPortStyle(string propertyName, Object propertyValue) - { - Diagram.StartGroupAction(); - Diagram.BeginUpdate(); - if (Diagram.SelectionSettings != null && Diagram.SelectionSettings.Nodes != null && Diagram.SelectionSettings.Nodes.Count > 0) - { - List ports = Diagram.SelectionSettings.Nodes[0].Ports.ToList(); - for (int j = 0; j < ports.Count; j++) - { - PointPort port = ports[j]; - switch (propertyName) - { - case "fill": - port.Style.Fill = propertyValue.ToString(); - break; - case "strokecolor": - port.Style.StrokeColor = propertyValue.ToString(); - break; - case "size": - port.Width = port.Height = Convert.ToInt32(propertyValue); - break; - case "strokewidth": - port.Style.StrokeWidth = Convert.ToInt32(propertyValue); - break; - case "visibility": - port.Visibility = (PortVisibility)Enum.Parse(typeof(PortVisibility), propertyValue.ToString()); - break; - case "shape": - port.Shape = (PortShapes)Enum.Parse(typeof(PortShapes), propertyValue.ToString()); - if (propertyValue.ToString() == "Custom") - { - port.PathData = "M540.3643,137.9336L546.7973,159.7016L570.3633,159.7296L550.7723,171.9366L558.9053,194.9966L540.3643,179.4996L521.8223,194.9966L529.9553,171.9366L510.3633,159.7296L533.9313,159.7016L540.3643,137.9336z"; - } - break; - case "direction": - port.ConnectionDirection = (PortConnectionDirection)Enum.Parse(typeof(PortConnectionDirection), propertyValue.ToString()); - break; - } - } - } - await Diagram.EndUpdateAsync(); - Diagram.EndGroupAction(); - } - @*End:Hidden*@ - - // Method to update the style for the selected node's port. - private void SelectionChanged(SelectionChangedEventArgs arg) - { - if (arg.NewValue != null && arg.NewValue.Count > 0 && !(arg.NewValue[0] is Connector)) - { - disablePicker = false; - enableDropDown = true; - enableNumeric = true; - if (arg.NewValue[0] is Node) - { - Node node = arg.NewValue[0] as Node; - List ports = node.Ports.ToList(); - if (ports.Count > 0) - { - PointPort port = ports[0]; - portVisibility = port.Visibility.ToString(); - selectedShape = port.Shape.ToString(); - sizeNumeric = port.Width; - widthNumeric = port.Style.StrokeWidth; - fillColor = port.Style.Fill; - strokeColor = port.Style.StrokeColor; - selectedDirection = port.ConnectionDirection.ToString(); - } - } - } - else - { - disablePicker = true; - enableDropDown = false; - enableNumeric = false; - } - } - - protected override void OnInitialized() - { - - gridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - nodes = new DiagramObjectCollection(); - #region Ports - List portsfornode1 = new List(); - portsfornode1.Add(AddPort("port1", 0.01, 0.5)); - portsfornode1.Add(AddPort("port2", 1, 0.5)); - portsfornode1.Add(AddPort("port3", 0.25, 1)); - portsfornode1.Add(AddPort("port4", 0.5, 1)); - portsfornode1.Add(AddPort("port5", 0.75, 1)); - - List portsfornode2 = new List(); - portsfornode2.Add(AddPort("port6", 0.01, 0.5)); - portsfornode2.Add(AddPort("port7", 1, 0.35)); - portsfornode2.Add(AddPort("port8", 1, 0.7)); - portsfornode2.Add(AddPort("port9", 0.5, 1)); - - List portsfornode3 = new List(); - portsfornode3.Add(AddPort("port10", 0.01, 0.5)); - portsfornode3.Add(AddPort("port11", 0.5, 0.01)); - portsfornode3.Add(AddPort("port12", 0.5, 1)); - - List portsfornode4 = new List(); - portsfornode4.Add(AddPort("port13", 0.01, 0.5)); - portsfornode4.Add(AddPort("port14", 0.5, 0.01)); - portsfornode4.Add(AddPort("port15", 0.5, 1)); - - List portsfornode5 = new List(); - portsfornode5.Add(AddPort("port16", 0.01, 0.5)); - portsfornode5.Add(AddPort("port17", 0.5, 0.01)); - portsfornode5.Add(AddPort("port18", 1, 0.5)); - - List portsfornode6 = new List(); - portsfornode6.Add(AddPort("port19", 0.01, 0.35)); - portsfornode6.Add(AddPort("port20", 0.5, 1)); - - List portsfornode7 = new List(); - portsfornode7.Add(AddPort("port21", 0.5, 0.01)); - portsfornode7.Add(AddPort("port22", 0.5, 1)); - - #endregion - - #region Nodes - AddNode("Publisher", "Publisher", portsfornode1, 200, 160, NodeBasicShapes.Rectangle); - AddNode("Completedbook", "Completed book", portsfornode2, 400, 160, NodeBasicShapes.Rectangle); - AddNode("Firstreview", "First review", portsfornode3, 400, 260, NodeBasicShapes.Diamond); - AddNode("Legalterms", "Legal terms", portsfornode4, 400, 360, NodeBasicShapes.Rectangle); - AddNode("Secondreview", "Second review", portsfornode5, 400, 460, NodeBasicShapes.Diamond); - AddNode("Board", "Board", portsfornode6, 600, 160, NodeBasicShapes.Rectangle); - AddNode("Approval", "Approval", portsfornode7, 600, 260, NodeBasicShapes.Diamond); - - #endregion - - #region Connectors - connectors = new DiagramObjectCollection(); - AddConnector("connector1", "Publisher", "port2", "Completedbook", "port6"); - AddConnector("connector2", "Publisher", "port4", "Legalterms", "port13"); - AddConnector("connector3", "Completedbook", "port9", "Firstreview", "port11"); - AddConnector("connector4", "Completedbook", "port7", "Board", "port19"); - AddConnector("connector5", "Firstreview", "port10", "Publisher", "port5"); - AddConnector("connector6", "Firstreview", "port12", "Legalterms", "port14"); - AddConnector("connector7", "Legalterms", "port15", "Secondreview", "port17"); - AddConnector("connector8", "Secondreview", "port18", "Completedbook", "port8"); - AddConnector("connector9", "Secondreview", "port16", "Publisher", "port3"); - AddConnector("connector10", "Board", "port20", "Approval", "port21"); - AddConnector("connector11", "Approval", "port22", "Publisher", "port1"); - #endregion - } - - // Method to create node - private void AddNode(string id, string content, List ports, double offsetX, double offsetY, NodeBasicShapes shape) - { - Node node = new Node() - { - ID = id, - Height = 65, - Width = id == "Secondreview" ? 115 : 110, - OffsetX = offsetX, - OffsetY = offsetY, - Shape = new BasicShape() { Type = shapes.Basic, Shape = shape }, - Style = new ShapeStyle() { Fill = "WhiteSmoke", StrokeColor = "#777778" }, - Annotations = new DiagramObjectCollection() { new ShapeAnnotation() { Content = content, Style = new TextStyle() { FontSize = 13, Color = "black" } } }, - Ports = new DiagramObjectCollection(ports) - }; - nodes.Add(node); - } - - // Method to create connector - private void AddConnector(string id, string sourceId, string sourcePortId, string targetId, string targetPortId) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceId, - SourcePortID = sourcePortId, - TargetID = targetId, - TargetPortID = targetPortId, - Type = ConnectorSegmentType.Orthogonal, - Style = new ShapeStyle() { StrokeColor = "black", StrokeWidth = 1 }, - TargetDecorator = new DecoratorSettings() - { - Width = 10, - Height = 10, - Shape = DecoratorShape.Arrow, - Style = new ShapeStyle() { Fill = "black", StrokeColor = "black" } - } - }; - connectors.Add(connector); - } - - // Method to create port - private PointPort AddPort(string id, double x, double y) - { - return new PointPort() - { - ID = id, - Shape = PortShapes.Circle, - Width = 8, - Height = 8, - Visibility = PortVisibility.Visible, - Offset = new DiagramPoint() { X = x, Y = y }, - Style = new ShapeStyle() { Fill = "#1916C1", StrokeColor = "#000" }, - Constraints = PortConstraints.Default|PortConstraints.Draw - }; - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/PrintSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/PrintSample.razor deleted file mode 100644 index 4a2a63a2..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/PrintSample.razor +++ /dev/null @@ -1,525 +0,0 @@ -@page "/diagramcomponent/print" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.DropDowns; -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs; -@using Syncfusion.PdfExport; -@using System.Text.Json; -@using System.IO; -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@using System.Text.Json.Serialization; -@inject IJSRuntime JS; -@*End:Hidden*@ -@*Hidden:Lines*@ -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ -@*Hidden:Lines*@ - -

This sample demonstrates printing the Diagram as an image.

-
- -

This example shows how to print the Diagram. The PrintAsync method can be used to print diagrams. The MultiplePage property is used to enable or disable multiple pages. The Orientation property is used to specify the page orientation in the Diagram, such as portrait or landscape. By using the ShowPageBreaks property, enable or disable page break lines.

-
-@*End:Hidden*@ - -
-
- - - - - - - -
- - @*Hidden:Lines*@ - - -
-
- Print Setup -
-
- -
-
- Paper Size -
-
- - - - -
-
-
-
- Multiple/Single Page -
-
-
- -
-
- -
-
-
-
-
- Orientation -
-
-
- -
-
- -
-
-
-
-
- ShowPageBreaks -
-
-
- -
-
-
-
- Print -
- -
-
- - @*End:Hidden*@ -
- -@code - { - @*Hidden:Lines*@ - - string paperValue = "Custom"; - private string stringCheckedValue = "multiple"; - private string stringChecked = "portrait"; - bool file = true; - double left = 10; - double top = 10; - double right = 10; - double bottom = 10; - @*End:Hidden*@ - - double width = 410; - double height = 550; - bool multiplePage = true; - bool showPageBreak = true; - DiagramPrintExportRegion region = DiagramPrintExportRegion.PageSettings; - PageOrientation orientation = PageOrientation.Portrait; - //Refer to diagram - SfDiagramComponent diagram; - - //define node's collection - public DiagramObjectCollection nodes - { - get; - set; - } - //define connector's collection - public DiagramObjectCollection connectors - { - get; - set; - } - @*Hidden:Lines*@ - public void Portrait(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - orientation = PageOrientation.Portrait; - } - public void Landscape(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - orientation = PageOrientation.Landscape; - } - public class FileFormat - { - public string ID { get; set; } - public string Text { get; set; } - } - List diagramregios = new List -{ - new FileFormat() { ID= "PageSettings", Text= "PageSettings" }, - new FileFormat() { ID= "Content", Text= "Content" }, - new FileFormat() { ID= "ClipBounds", Text= "ClipBounds" }, - }; - List Orientation = new List { - new FileFormat() { ID= "Landscape", Text= "Landscape" }, - new FileFormat() { ID= "Portrait", Text= "Portrait" }, - }; - @*End:Hidden*@ - - protected override void OnInitialized() - { - - - nodes = new DiagramObjectCollection(); - CreateNode("sourceNode1", 80, 160, "Source document"); - CreateNode("censusNode2", 80, 260, "Census \n record"); - CreateNode("booksNode3", 80, 375, "Books and magazine"); - CreateNode("recordNode4", 270, 260, "Record template"); - CreateNode("traditionalNode5", 270, 385, "Traditional template"); - CreateNode("nontraditionalNode6", 80, 485, "Non traditional"); - CreateNode("radial1", 610, 342, "Health fitness"); - CreateNode("radial2", 610, 202, "Diet"); - CreateNode("radial3", 750, 258, "Flexibility"); - CreateNode("radial4", 730, 442, "Muscular endurance"); - CreateNode("radial5", 470, 258, "Cardiovascular strength"); - CreateNode("radial6", 490, 442, "Muscular strength"); - - connectors = new DiagramObjectCollection(); - CreateConnector("connector1", "sourceNode1", "censusNode2", ""); - CreateConnector("connector2", "censusNode2", "booksNode3", "No"); - CreateConnector("connector3", "booksNode3", "nontraditionalNode6", "Yes"); - CreateConnector("connector4", "censusNode2", "recordNode4", "Yes"); - CreateConnector("connector5", "booksNode3", "traditionalNode5", "No"); - CreateConnector("connector6", "radial1", "radial2", ""); - CreateConnector("connector7", "radial1", "radial3", "No"); - CreateConnector("connector8", "radial1", "radial4", "Yes"); - CreateConnector("connector9", "radial1", "radial5", "No"); - CreateConnector("connector10", "radial1", "radial6", "Yes"); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - diagram.FitToPage(mobileoptions); - - } - } - private void CreateNode(string id, double x, double y, string label) - { - ShapeAnnotation shapeAnnotation = new ShapeAnnotation() { Content = label }; - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Height = 50, - Width = 100, - Style = new ShapeStyle() { Fill = "#90ee90", StrokeColor = "#666666" }, - Annotations = new DiagramObjectCollection() { shapeAnnotation } - }; - if (id == "radial1" || id == "radial2" || id == "radial3" || id == "radial4" || id == "radial5" || id == "radial6") - { - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse }; - diagramNode.Height = 75; - diagramNode.Width = 100; - diagramNode.Style = new ShapeStyle() { Fill = "#ffb6c1", StrokeColor = "#666666" }; - } - if (id == "radial1") - { - diagramNode.Height = 50; - diagramNode.Style = new ShapeStyle() { Fill = "#fffcc8", StrokeColor = "#666666" }; - } - if (id == "censusNode2" || id == "booksNode3") - { - diagramNode.Height = 75; - diagramNode.Width = 100; - diagramNode.Style = new ShapeStyle() { Fill = "#87ceeb", StrokeColor = "#666666" }; - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Diamond }; - } - if (id == "sourceNode1" || id == "censusNode2") - { - diagramNode.Annotations[0].Margin = new DiagramThickness() { Left = 15, Top = 15, Right = 15, Bottom = 15 }; - } - nodes.Add(diagramNode); - } - - private void CreateConnector(string id, string sourceID, string targetID, string label) - { - PathAnnotation pathAnnotation = new PathAnnotation() { Content = label, Style = new TextStyle() { Fill = "White" } }; - Connector connector = new Connector() - { - ID = id, - SourceID = sourceID, - TargetID = targetID, - Style = new ShapeStyle() { StrokeColor = "Black" }, - Annotations = new DiagramObjectCollection() { pathAnnotation }, - }; - connectors.Add(connector); - } - @*Hidden:Lines*@ - private void OnShowPagebreak(ChangeEventArgs args) - { - showPageBreak = (bool)args.Value; - } - private void OnMultiplePage(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - multiplePage = true; - } - private void OnSinglePage(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) - { - multiplePage = false; - } - public class PaperSize - { - public string Name { get; set; } - } - private List PaperSizeLists = new List() { - new PaperSize() { Name ="Custom"}, - new PaperSize() { Name ="Letter"}, - new PaperSize() { Name ="Folio" }, - new PaperSize() { Name ="Legal"}, - new PaperSize() { Name ="Ledger"}, - new PaperSize() { Name ="A0"}, - new PaperSize() { Name ="A1" }, - new PaperSize() { Name ="A2"}, - new PaperSize() { Name ="A3"}, - new PaperSize() { Name ="A4"}, - new PaperSize() { Name ="A5"}, - new PaperSize() { Name ="ANSI A"}, - new PaperSize() { Name ="ANSI B"}, - new PaperSize() { Name ="ANSI C"}, - new PaperSize() { Name ="ANSI D"}, - new PaperSize() { Name ="ANSI E"}, - }; - private void OnPageSizeValueChanged(ChangeEventArgs args) - { - string content = args.Value.ToString(); - if (content != null) - { - if (orientation == PageOrientation.Portrait) - { - switch (content) - { - case "Letter": - width = 816; - height = 1056; - break; - case "Custom": - width = 410; - height = 550; - break; - case "Legal": - width = 816; - height = 1344; - break; - case "Folio": - width = 816; - height = 1296; - break; - case "Ledger": - width = 1056; - height = 1632; - break; - case "A0": - width = 3179; - height = 4494; - break; - case "A1": - width = 2245; - height = 3179; - break; - case "A2": - width = 1587; - height = 2245; - break; - case "A3": - width = 1123; - height = 1587; - break; - case "A4": - width = 794; - height = 1123; - break; - case "A5": - width = 559; - height = 794; - break; - case "ANSI A": - width = 816; - height = 1056; - break; - case "ANSI B": - width = 1056; - height = 1632; - break; - case "ANSI C": - width = 1632; - height = 2112; - break; - case "ANSI D": - width = 2112; - height = 3264; - break; - case "ANSI E": - width = 3264; - height = 4226; - break; - } - } - else - { - switch (content) - { - case "Letter": - height = 816; - width = 1056; - break; - case "Custom": - width = 550; - height = 410; - break; - case "Legal": - height = 816; - width = 1344; - break; - case "Folio": - height = 816; - width = 1296; - break; - case "Ledger": - height = 1056; - width = 1632; - break; - case "A0": - height = 3179; - width = 4494; - break; - case "A1": - height = 2245; - width = 3179; - break; - case "A2": - height = 1587; - width = 2245; - break; - case "A3": - height = 1123; - width = 1587; - break; - case "A4": - height = 794; - width = 1123; - break; - case "A5": - height = 559; - width = 794; - break; - case "ANSI A": - height = 816; - width = 1056; - break; - case "ANSI B": - height = 1056; - width = 1632; - break; - case "ANSI C": - height = 1632; - width = 2112; - break; - case "ANSI D": - height = 2112; - width = 3264; - break; - case "ANSI E": - height = 3264; - width = 4226; - break; - } - } - } - } - @*End:Hidden*@ - private async Task OnPrint() - { - DiagramPrintSettings print = new DiagramPrintSettings(); - print.PageWidth = width; - print.PageHeight = height; - print.Region = region; - print.FitToPage = !multiplePage; - print.Orientation = orientation; - print.Margin = new DiagramThickness() { Left = left, Top = top, Right = right, Bottom = bottom }; - await diagram.PrintAsync(print); - } - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ - -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/RadialTree.razor b/Common/Pages/DiagramComponent/DiagramComponent/RadialTree.razor deleted file mode 100644 index 34f13384..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/RadialTree.razor +++ /dev/null @@ -1,736 +0,0 @@ -@page "/diagramcomponent/radialtree" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.Popups; -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates how to generate a radial tree from an external data source. A radial tree layout algorithm is used to build such a layout.

-
- -

This example explains how to generate a radial tree from external data sources. The Type property of the layout can be used to enable a radial tree layout. The HorizontalSpacing and VerticalSpacing properties of the layout can be used to customize the space between the objects in a tree.

- -
-@*End:Hidden*@ -@*Hidden:Lines*@ -
- - @*End:Hidden*@ -
- - - - - - - - - - - -
- - - - - - - - - @{ - if (context is Node node) - { - var data = (node as Node).Data as RadialTreeDetails; - if (data != null) - { - -
- @data.Name
@data.Designation -
- } - } - } -
-
-
-
- @*Hidden:Lines*@ -
-
- -@*End:Hidden*@ -@code { - @*Hidden:Lines*@ - DiagramInteractions DiagramTool = DiagramInteractions.ZoomPan; - public SfDiagramComponent Diagram; - public LayoutType Type = LayoutType.RadialTree; - public int HorizontalSpacing = 30; - public int VerticalSpacing = 30; - public double Top = 30; - public double Bottom = 30; - public double Right = 30; - public double Left = 30; - public double currentZoom; - string PanItemCssClass = "tb-item-middle tb-item-selected"; - string PointerItemCssClass = "tb-item-start"; - string ZoomInItemCssClass = "tb-item-start"; - string ZoomOutItemCssClass = "tb-item-start"; - string ViewCssClass = "tb-item-start"; - string CenterCssClass = "tb-item-start"; - string FitCssClass = "tb-item-start"; - string ResetCssClass = "tb-item-start"; - public bool reset = true; - public bool view = true; - public bool center = true; - - ToolbarItem ZoomInItem; - ToolbarItem ZoomOutItem; - ToolbarItem ResetItem; - @*End:Hidden*@ - - //Defines sfdiagramComponent - SfDiagramComponent diagram; - - //Defines diagram constraints - public DiagramConstraints constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection connectors = new DiagramObjectCollection(); - - private void OnCreated() - { - FitOptions options = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - diagram.FitToPage(options); - } - - private void OnConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Straight; - } - private void OnResetClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass = "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - diagram.ResetZoom(); - OnCreated(); - reset = true; - } - private void OnCreatedClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - diagram.FitToPage(new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }); - reset = false; - } - - private void CurrentZoomChanged(double args) - { - reset = (diagram.ScrollSettings.CurrentZoom) == 1 ? true : false; - } - - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node.Data is System.Text.Json.JsonElement) - { - node.Data = System.Text.Json.JsonSerializer.Deserialize(node.Data.ToString()); - } - RadialTreeDetails radialData = node.Data as RadialTreeDetails; - double size = 0; - string color; - if (radialData.Id == "parent") - { - size = 50; - color="white"; - } - else - { - size = 20; - color = "black"; - } - ShapeAnnotation annotation = new ShapeAnnotation() { Content = radialData.Name, Style = new TextStyle() { Color = color, FontSize=size } }; - node.Annotations = new DiagramObjectCollection() { annotation }; - - if (radialData.Designation == "Managing Director") - { - node.Shape = new BasicShape() - { - Type = NodeShapes.Basic, - Shape = NodeBasicShapes.Ellipse, - CornerRadius = 10 - }; - node.Width = 400; - node.Height = 400; - node.Style.Fill = "black"; - } - else if (radialData.Designation == "Project Manager") - { - node.Width = 130; - node.Height = 130; - node.Style.Fill = "#f8ab52"; - } - else - { - node.Shape = new BasicShape() - { - Type = NodeShapes.Basic, - Shape = NodeBasicShapes.Ellipse, - CornerRadius = 10 - }; - node.Style.Fill = "#afeeee"; - node.Width = 100; - node.Height = 100; - } - node.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - node.Tooltip = new DiagramTooltip() - { - Position = Position.TopCenter, - }; - } - - public class RadialTreeDetails - { - public string Id { get; set; } - public string Role { get; set; } - public string Name { get; set; } - public string Designation { get; set; } - public string ReportingPerson { get; set; } - } - //Initialize Data Source - public List DataSource = new List() -{ - new RadialTreeDetails() { Id = "parent", Name = "Maria Anders", Designation = "Managing Director" }, - new RadialTreeDetails() { Id = "1", Name = "Ana Trujillo", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "2", Name = "Lino Rodri", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "3", Name = "Philip Cramer", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "4", Name = "Pedro Afonso", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "5", Name = "Anto Moreno", Designation = "Project Lead", - ReportingPerson = "1" }, - new RadialTreeDetails() { Id = "6", Name = "Elizabeth Roel", Designation = "Project Lead", - ReportingPerson = "1" }, - new RadialTreeDetails() { Id = "7", Name = "Aria Cruz", Designation = "Project Lead", - ReportingPerson = "1" }, - new RadialTreeDetails() { Id = "8", Name = "Eduardo Roel", Designation = "Project Lead", - ReportingPerson = "1" }, - new RadialTreeDetails() { Id = "9", Name = "Howard Snyd", Designation = "Project Lead", - ReportingPerson = "2" }, - new RadialTreeDetails() { Id = "10", Name = "Daniel Tonini", Designation = "Project Lead", - ReportingPerson = "2" }, - new RadialTreeDetails() { Id = "11", Name = "Nardo Batista", Designation = "Project Lead", - ReportingPerson = "89" }, - new RadialTreeDetails() { Id = "12", Name = "Michael Holz", Designation = "Project Lead", - ReportingPerson = "89" }, - new RadialTreeDetails() { Id = "13", Name = "Kloss Perrier", Designation = "Project Lead", - ReportingPerson = "90" }, - new RadialTreeDetails() { Id = "14", Name = "Liz Nixon", Designation = "Project Lead", - ReportingPerson = "3" }, - new RadialTreeDetails() { Id = "15", Name = "Paul Henriot", Designation = "Project Lead", - ReportingPerson = "3" }, - new RadialTreeDetails() { Id = "16", Name = "Paula Parente", Designation = "Project Lead", - ReportingPerson = "90" }, - new RadialTreeDetails() { Id = "17", Name = "Matti Kenna", Designation = "Project Lead", - ReportingPerson = "4" }, - new RadialTreeDetails() { Id = "18", Name = "Laura Callahan", Designation = "Project Lead", - ReportingPerson = "4" }, - new RadialTreeDetails() { Id = "19", Name = "Simon Roel", Designation = "Project Lead", - ReportingPerson = "4"}, - new RadialTreeDetails() { Id = "20", Name = "Thomas Hardy", Designation = "Senior S/w Engg", - ReportingPerson = "12" }, - new RadialTreeDetails() { Id = "21", Name = "Martín Kloss", Designation = "Senior S/w Engg", - ReportingPerson = "5",}, - new RadialTreeDetails() { Id = "23", Name = "Diego Roel", Designation = "Senior S/w Engg", - ReportingPerson = "7" }, - new RadialTreeDetails() { Id = "24", Name = "José Pedro" , Designation = "Senior S/w Engg", - ReportingPerson = "8" }, - new RadialTreeDetails() { Id = "25", Name = "Manu Pereira", Designation = "Senior S/w Engg", - ReportingPerson = "8" }, - new RadialTreeDetails() { Id = "26", Name = "Annette Roel", Designation = "Senior S/w Engg", - ReportingPerson = "25" }, - new RadialTreeDetails() { Id = "27", Name = "Catherine Kaff", Designation = "Senior S/w Engg", - ReportingPerson = "8" }, - new RadialTreeDetails() { Id = "28", Name = "Lúcia Carvalho", Designation = "Senior S/w Engg", - ReportingPerson = "12" }, - new RadialTreeDetails() { Id = "29", Name = "Alej Camino", Designation = "Senior S/w Engg", - ReportingPerson = "13" }, - new RadialTreeDetails() { Id = "30", Name = "Liu Wong", Designation = "Senior S/w Engg", - ReportingPerson = "14" }, - new RadialTreeDetails() { Id = "31", Name = "Karin Josephs", Designation = "Senior S/w Engg", - ReportingPerson = "14" }, - new RadialTreeDetails() { Id = "33", Name = "Pirkko King", Designation = "Senior S/w Engg", - ReportingPerson = "17"}, - new RadialTreeDetails() {Id = "34", Name = "Karl Jablonski", Designation = "Senior S/w Engg", - ReportingPerson = "18" }, - new RadialTreeDetails() { Id = "35", Name = "Zbyszek Yang", Designation = "Senior S/w Engg", - ReportingPerson = "19"}, - new RadialTreeDetails() { Id = "36", Name = "Nancy", Designation = "Senior S/w Engg", - ReportingPerson = "5"}, - new RadialTreeDetails() { Id = "37", Name = "Anne", Designation = "Senior S/w Engg", - ReportingPerson = "6" }, - new RadialTreeDetails() {Id = "38", Name = "Isabel Castro", Designation = "Senior S/w Engg", - ReportingPerson = "7" }, - new RadialTreeDetails() {Id = "39", Name = "Nardo Batista", Designation = "Senior S/w Engg", - ReportingPerson = "9" }, - new RadialTreeDetails() { Id = "40", Name = "Rene Phillips", Designation = "Senior S/w Engg", - ReportingPerson = "16"}, - new RadialTreeDetails() { Id = "41", Name = "Rita Pfalzheim", Designation = "Senior S/w Engg", - ReportingPerson = "9"}, - new RadialTreeDetails() {Id = "42", Name = "Janete Limeira", Designation = "Senior S/w Engg", - ReportingPerson = "11" }, - new RadialTreeDetails() {Id = "43", Name = "Christina kaff", Designation = "S/w Engg", - ReportingPerson = "20" }, - new RadialTreeDetails() { Id = "44", Name = "Peter Franken", Designation = "S/w Engg", - ReportingPerson = "21"}, - new RadialTreeDetails() {Id = "45", Name = "Carlos Schmitt", Designation = "S/w Engg", - ReportingPerson = "23" }, - new RadialTreeDetails() {Id = "46", Name = "Yoshi Wilson", Designation = "S/w Engg", - ReportingPerson = "23" }, - new RadialTreeDetails() { Id = "47", Name = "Jean Fresnière", Designation = "S/w Engg", - ReportingPerson = "24" }, - new RadialTreeDetails() { Id = "48", Name = "Simon Roel", Designation = "S/w Engg", - ReportingPerson = "25" }, - new RadialTreeDetails() { Id = "52", Name = "Palle Ibsen", Designation = "S/w Engg", - ReportingPerson = "29" }, - new RadialTreeDetails() { Id = "53", Name = "Lúcia Carvalho", Designation = "S/w Engg", - ReportingPerson = "30" }, - new RadialTreeDetails() { Id = "54", Name = "Hanna Moos", Designation = "Project Trainee", - ReportingPerson = "30" }, - new RadialTreeDetails() { Id = "55", Name = "Peter Citeaux", Designation = "Project Trainee", - ReportingPerson = "33" }, - new RadialTreeDetails() { Id = "56", Name = "Elizabeth Mary", Designation = "Project Trainee", - ReportingPerson = "33" }, - new RadialTreeDetails() { Id = "57", Name = "Victoria Ash", Designation = "Project Trainee", - ReportingPerson = "34" }, - new RadialTreeDetails() { Id = "58", Name = "Janine Labrune", Designation = "Project Trainee", - ReportingPerson = "35" }, - new RadialTreeDetails() { Id = "60", Name = "Carine Schmitt", Designation = "Project Trainee", - ReportingPerson = "11" }, - new RadialTreeDetails() { Id = "61", Name = "Paolo Accorti", Designation = "Project Trainee", - ReportingPerson = "38" }, - new RadialTreeDetails() { Id = "62", Name = "André Fonseca", Designation = "Project Trainee", - ReportingPerson = "41" }, - new RadialTreeDetails() { Id = "63", Name = "Mario Pontes", Designation = "Project Trainee", - ReportingPerson = "6" }, - new RadialTreeDetails() { Id = "64", Name = "John Steel", Designation = "Project Trainee", - ReportingPerson = "7" }, - new RadialTreeDetails() { Id = "65", Name = "Renate Jose", Designation = "Project Trainee", - ReportingPerson = "42" }, - new RadialTreeDetails() { Id = "66", Name = "Jaime Yorres", Designation = "Project Trainee", - ReportingPerson = "20" }, - new RadialTreeDetails() { Id = "67", Name = "Alex Feuer", Designation = "Project Trainee", - ReportingPerson = "21" }, - new RadialTreeDetails() { Id = "70", Name = "Helen Marie", Designation = "Project Trainee", - ReportingPerson = "24" }, - new RadialTreeDetails() { Id = "73", Name = "Sergio roel", Designation = "Project Trainee", - ReportingPerson = "37" }, - new RadialTreeDetails() { Id = "75", Name = "Janete Limeira", Designation = "Project Trainee", - ReportingPerson = "29" }, - new RadialTreeDetails() { Id = "76", Name = "Jonas Bergsen", Designation = "Project Trainee", - ReportingPerson = "18" }, - new RadialTreeDetails() { Id = "77", Name = "Miguel Ange", Designation = "Project Trainee", - ReportingPerson = "18" }, - new RadialTreeDetails() { Id = "80", Name = "Helvetis Nagy", Designation = "Project Trainee", - ReportingPerson = "34" }, - new RadialTreeDetails() { Id = "81", Name = "Rita Müller", Designation = "Project Trainee", - ReportingPerson = "35" }, - new RadialTreeDetails() { Id = "82", Name = "Georg Pipps", Designation = "Project Trainee", - ReportingPerson = "36" }, - new RadialTreeDetails() { Id = "83", Name = "Horst Kloss", Designation = "Project Trainee", - ReportingPerson = "37" }, - new RadialTreeDetails() { Id = "84", Name = "Paula Wilson", Designation = "Project Trainee", - ReportingPerson = "38" }, - new RadialTreeDetails() { Id = "85", Name = "Jose Michael", Designation = "Project Trainee", - ReportingPerson = "37" }, - new RadialTreeDetails() { Id = "86", Name = "Mauri Moroni", Designation = "Project Trainee", - ReportingPerson = "40" }, - new RadialTreeDetails() { Id = "87", Name = "Michael Holz", Designation = "Project Trainee", - ReportingPerson = "41" }, - new RadialTreeDetails() { Id = "88", Name = "Alej Camino", Designation = "Project Trainee", - ReportingPerson = "42" }, - new RadialTreeDetails() { Id = "89", Name = "Jytte Petersen", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "90", Name = "Mary Saveley", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "91", Name = "Robert King", Designation = "Project Manager", - ReportingPerson = "parent" }, - new RadialTreeDetails() { Id = "95", Name = "Roland Mendel", Designation = "CSR", - ReportingPerson = "19" }, - new RadialTreeDetails() { Id = "98", Name = "Helen Bennett", Designation = "SR", - ReportingPerson = "42" }, - new RadialTreeDetails() { Id = "99", Name = "Carlos Nagy", Designation = "SR", - ReportingPerson = "42" }, - new RadialTreeDetails() { Id = "100", Name = "Felipe Kloss", Designation = "SR", - ReportingPerson = "77" }, - }; - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ - public void OnZoomInItemClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - diagram.Zoom(1.2, new DiagramPoint() { X = 100, Y = 100 }); - reset = false; - } - public void ZoomChanged() - { - reset = false; - } - public void OnZoomOutItemClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - diagram.Zoom(1 / 1.2, new DiagramPoint() { X = 100, Y = 100 }); - reset = false; - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/RemoteData.razor b/Common/Pages/DiagramComponent/DiagramComponent/RemoteData.razor deleted file mode 100644 index bf3efd6e..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/RemoteData.razor +++ /dev/null @@ -1,120 +0,0 @@ -@page "/diagramcomponent/remote-data" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Data -@using System.Collections.ObjectModel -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample demonstrates how to bind remote data with the Diagram using the Data Manager.

-
- -

This example shows how to generate a diagram from remote data such as REST APIs. The DataSourceSettings property can be used to map an external data source with the Diagram component. The ID property of DataSourceSettings can be used to define a unique field of external data. The ParentID property can be used to define the relationships among objects. The SfDataManager property can be used to fetch data from web services.

-
-@*End:Hidden*@ -
-
- - - - - - - -
-
-@code{ - public SfDiagramComponent Diagram; - private float x = 100; - private float y = 100; - - public class Employee - { - public int? EmployeeID { get; set; } - public string FirstName { get; set; } - public int? ReportsTo { get; set; } - } - private Query Query = new Query().Select(new List() { "EmployeeID", "ReportsTo", "FirstName" }).Take(9); - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.OffsetX = x; - node.OffsetY = y; - node.Width = 80; - node.Height = 40; - node.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle, CornerRadius = 8 }; - node.Style = new ShapeStyle() { StrokeWidth = 0, Fill = "" }; - x += 100; - - Dictionary data = node.Data as Dictionary; - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = data["FirstName"].ToString(), - Style = new TextStyle(){ Color = "white"} - } - }; - if (data["FirstName"].ToString() == "Andrew") - { - node.Style.Fill = "#3A4857"; - } - else if (data["FirstName"].ToString() == "Nancy") - { - node.Style.Fill = "#2B8C68"; - } - else if (data["FirstName"].ToString() == "Janet") - { - node.Style.Fill = "#488CC1"; - } - else if (data["FirstName"].ToString() == "Janet") - { - node.Style.Fill = "#488CC1"; - } - else if (data["FirstName"].ToString() == "Margaret") - { - node.Style.Fill = "#4C888F"; - } - else if (data["FirstName"].ToString() == "Steven") - { - node.Style.Fill = "#8E4DB4"; - } - else if (data["FirstName"].ToString() == "Laura") - { - node.Style.Fill = "#CD6A32"; - } - else - { - node.Style.Fill = "#8E4DB4"; - } - } - @*Hidden:Lines*@ - private void OnCreated() - { - SampleService.Spinner.Hide(); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - - } - @*End:Hidden*@ - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Style.StrokeColor = "#048785"; - connector.Type = ConnectorSegmentType.Orthogonal; - connector.TargetDecorator.Shape = DecoratorShape.None; - connector.SourceDecorator.Shape = DecoratorShape.None; - connector.Style = new ShapeStyle() { StrokeColor = "#3A4857", Fill = "#3A4857", StrokeWidth = 1, StrokeDashArray = "3,3" }; - } - private CommonElement SetTemplate(IDiagramObject node) - { - return null; - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Routing.razor b/Common/Pages/DiagramComponent/DiagramComponent/Routing.razor deleted file mode 100644 index 43af7234..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Routing.razor +++ /dev/null @@ -1,174 +0,0 @@ -@page "/diagramcomponent/linerouting" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -

This sample visualizes the process of support maintenance, highlighting the use of line routing features to prevent connectors from overlapping with nodes in the diagram. The diagram efficiently guides the handling of client queries through decision points and actions, facilitating the seamless resolution of issues while prioritizing client satisfaction.

-
- -

This sample illustrates how connectors dynamically adjust their routes based on the placement or movement of nearby shapes. This functionality is achieved by setting the Routing enum value to the constraints property of both the diagram and connectors, ensuring fluid and responsive layout adjustments.

-
-@*End:Hidden*@ - - - - - -@code -{ - SfDiagramComponent diagram; - //Defines diagrams's nodes collection - public DiagramObjectCollection NodeCollection = new DiagramObjectCollection(); - public DiagramObjectCollection ConnectorCollection = new DiagramObjectCollection(); - DiagramConstraints diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Routing; - SnapConstraints snapConstraints = SnapConstraints.All & ~SnapConstraints.ShowLines; - - protected override void OnInitialized() - { - InitDiagramModel(); - } - - private void InitDiagramModel() - { - CreateNode("node1", 120, 80, 120, 40, NodeFlowShapes.Terminator, "Client requested\na query"); - CreateNode("node2", 120, 205, 120, 80, NodeFlowShapes.Decision, "Check for\nKnowledge\nBase"); - CreateNode("node3", 310, 205, 100, 50, NodeFlowShapes.Process, "Share relevant\nKB article"); - CreateNode("node4", 490, 205, 100, 50, NodeFlowShapes.Process, "Client\nconfirmation"); - CreateNode("node5", 490, 80, 100, 40, NodeFlowShapes.Terminator, "Close"); - CreateNode("node6", 120, 345, 120, 80, NodeFlowShapes.Decision, "Known\nissue?"); - CreateNode("node7", 310, 345, 100, 50, NodeFlowShapes.Process, "Respond to\nClient"); - CreateNode("node8", 120, 470, 100, 50, NodeFlowShapes.Process, "Test the issue"); - CreateNode("node9", 310, 470, 120, 80, NodeFlowShapes.Decision, "Issue\nreproduced?"); - CreateNode("node10", 310, 595, 120, 50, NodeFlowShapes.Document, "File bug"); - CreateNode("node11", 670, 345, 100, 50, NodeFlowShapes.Process, "Get more\ninformation"); - CreateNode("node12", 670, 80, 120, 50, NodeFlowShapes.Process, "Client\nCommunications"); - CreateNode("node13", 490, 595, 100, 50, NodeFlowShapes.Process, "Feasibility\nanalysis"); - CreateNode("node14", 670, 595, 100, 50, NodeFlowShapes.Process, "Fix and Test"); - CreateNode("node15", 670, 471, 120, 80, NodeFlowShapes.Decision, "Issue\nresolved?"); - CreateNode("node16", 850, 345, 100, 50, NodeFlowShapes.Process, "Provide update"); - CreateNode("node17", 850, 205, 120, 80, NodeFlowShapes.Decision, "Is Client\nsatisfied?"); - CreateNode("node18", 850, 80, 100, 40, NodeFlowShapes.Terminator, "Close"); - CreateNode("node19", 1040, 205, 120, 50, NodeFlowShapes.Process, "Provide additional\nassistance"); - CreateNode("node20", 1040, 345, 120, 80, NodeFlowShapes.Decision, "Query\nresolved?"); - CreateNode("node21", 1040, 470, 120, 50, NodeFlowShapes.Process, "Escalate to Next Level"); - - CreateConnector("connector1", "node1", "node2", sourcePort: "port4", targetPort: "port2"); - CreateConnector("connector2", "node2", "node3", "Exists", "port3", "port1"); - CreateConnector("connector3", "node3", "node4", sourcePort: "port3", targetPort: "port1"); - CreateConnector("connector4", "node4", "node5", sourcePort: "port2", targetPort: "port4"); - CreateConnector("connector5", "node2", "node6", "None", "port4", "port2"); - CreateConnector("connector6", "node6", "node7", "Yes", "port3", "port1"); - CreateConnector("connector7", "node7", "node4", sourcePort: "port3", targetPort: "port4"); - CreateConnector("connector8", "node6", "node8", "No", "port4", "port2"); - CreateConnector("connector9", "node8", "node9", sourcePort: "port3", targetPort: "port1"); - CreateConnector("connector10", "node9", "node10", "Yes", "port4", "port2"); - CreateConnector("connector11", "node9", "node11", "No", "port3", "port4"); - CreateConnector("connector12", "node11", "node9", sourcePort: "port1", targetPort: "port2"); - CreateConnector("connector13", "node11", "node12", sourcePort: "port2", targetPort: "port4"); - CreateConnector("connector14", "node10", "node13", sourcePort: "port3", targetPort: "port1"); - CreateConnector("connector15", "node13", "node14", sourcePort: "port3", targetPort: "port1"); - CreateConnector("connector24", "node14", "node15", sourcePort: "port2", targetPort: "port4"); - CreateConnector("connector16", "node15", "node13", "No", "port1", "port2"); - CreateConnector("connector17", "node15", "node16", "Yes", "port3", "port4"); - CreateConnector("connector18", "node16", "node17", sourcePort: "port2", targetPort: "port4"); - CreateConnector("connector19", "node17", "node18", "Yes", "port2", "port4"); - CreateConnector("connector20", "node17", "node19", "No", "port3", "port1"); - CreateConnector("connector21", "node19", "node20", sourcePort: "port4", targetPort: "port2"); - CreateConnector("connector22", "node20", "node18", "Yes", "port3", "port3"); - CreateConnector("connector23", "node20", "node21", "No", "port4", "port2"); - } - - private void CreateNode(string id, double x, double y, double width, double height, NodeFlowShapes shape, string label) - { - ShapeStyle shapeStyle = new ShapeStyle { Fill = "#357BD2", StrokeColor = "White" }; - TextStyle textStyle = new TextStyle { Color = "White", Fill = "transparent" }; - - if (shape == NodeFlowShapes.Decision || shape == NodeFlowShapes.Terminator) - { - shapeStyle = new ShapeStyle { Fill = "#32678f", StrokeColor = "White" }; - } - else if (shape == NodeFlowShapes.Document) - { - shapeStyle = new ShapeStyle { Fill = "White", StrokeColor = "#357BD2" }; - textStyle = new TextStyle { Color = "#357BD2", Fill = "transparent" }; - } - - ShapeAnnotation annotation = new ShapeAnnotation - { - Content = label, - Style = textStyle - }; - - PointPort port1 = new PointPort { ID = "port1", Offset = new DiagramPoint { X = 0, Y = 0.5 }, Visibility = PortVisibility.Connect }; - PointPort port2 = new PointPort { ID = "port2", Offset = new DiagramPoint { X = 0.5, Y = 0 }, Visibility = PortVisibility.Connect }; - PointPort port3 = new PointPort { ID = "port3", Offset = new DiagramPoint { X = 1, Y = 0.5 }, Visibility = PortVisibility.Connect }; - PointPort port4 = new PointPort { ID = "port4", Offset = new DiagramPoint { X = 0.5, Y = 1 }, Visibility = PortVisibility.Connect }; - - Node diagramNode = new Node - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = width, - Height = height, - Style = shapeStyle, - Shape = new FlowShape { Type = NodeShapes.Flow, Shape = shape }, - Annotations = new DiagramObjectCollection { annotation }, - Ports = new DiagramObjectCollection { port1, port2, port3, port4 } - }; - - NodeCollection.Add(diagramNode); - } - - private void CreateConnector(string id, string sourceId, string targetId, string label = null, string sourcePort = null, string targetPort = null) - { - Connector diagramConnector = new Connector - { - ID = id, - SourceID = sourceId, - TargetID = targetId, - SourcePortID = sourcePort ?? string.Empty, - TargetPortID = targetPort ?? string.Empty, - Type = ConnectorSegmentType.Orthogonal, - Segments = new DiagramObjectCollection { new OrthogonalSegment() }, - Style = new ShapeStyle { StrokeColor = "#357BD2", Fill = "#357BD2" }, - TargetDecorator = new DecoratorSettings { Shape = DecoratorShape.Arrow, Style = new ShapeStyle { Fill = "#357BD2", StrokeColor = "transparent" } } - }; - if (!string.IsNullOrEmpty(label)) - { - PathAnnotation annotation = new PathAnnotation - { - Content = label, - Style = new TextStyle { Color = "#357BD2", Fill = "White" } - }; - diagramConnector.Annotations = new DiagramObjectCollection { annotation }; - } - ConnectorCollection.Add(diagramConnector); - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Width, Region = DiagramRegion.Content }; - diagram.FitToPage(mobileoptions); - } - @*Hidden:Lines*@ - public void Dispose() - { - if (NodeCollection != null) - { - NodeCollection.Clear(); - NodeCollection = null; - } - if (ConnectorCollection != null) - { - ConnectorCollection.Clear(); - ConnectorCollection = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Rulers.razor b/Common/Pages/DiagramComponent/DiagramComponent/Rulers.razor deleted file mode 100644 index 19add9b4..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Rulers.razor +++ /dev/null @@ -1,628 +0,0 @@ -@page "/diagramcomponent/rulers" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using System.Collections.ObjectModel -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - -@*Hidden:Lines*@ -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs -@inherits SampleBaseComponent -@implements IDisposable -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This example demonstrates the use of rulers in the Diagram component. Rulers are essential for determining the position and dimensions of diagram elements. You can customize the appearance of horizontal and vertical rulers to suit your needs.

-
- -

This example illustrates how to customize the rulers added to a Diagram component. You can toggle the visibility of individual rulers using the IsVisible parameter. The Interval property determines the number of intervals placed in each segment. The TickAlignment property is used to define the alignment of ticks in the ruler and the MarkerColor property specifies the color of the guidelines used to indicate the current position in the diagram.

-

You can add a horizontal ruler to the diagram by using the HorizontalRuler component as a child component of the RulerSettings component. In the same way, you can add a vertical ruler to the diagram by using the VerticalRuler component as a child component of the RulerSettings component.

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ -
- -
- @*End:Hidden*@ - @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ -
- - - -
-
- - - - - - -
- @*Hidden:Lines*@ -
-
-
-
- Properties -
-
-
-
- Interval -
-
- - - -
-
-
-
- Tick Alignment -
-
- - - - -
-
-
-
- Marker Color -
-
- -
-
-
-
- Ruler Visible -
-
- -
-
-
-
- @*End:Hidden*@ -
-@code -{ - SfDiagramComponent Diagram; - //Defines Diagram's Nodes collection - private DiagramObjectCollection nodes; - //Defines Diagram's Connectors collection - private DiagramObjectCollection connectors; - //Defining Visibility of Rulers - public bool IsVisible = true; - //Defining Ruler Interval of Rulers - public int RulerInterval = 7; - //Defining Tick Alignment of Rulers - public TickAlignment RulerTickAlignment = TickAlignment.RightAndBottom; - //Defining Marker color of Rulers - public string RulerMarkerColor = "#FF0000"; - - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 10, Right = 10, Top = 10, Bottom = 10 }; - public SfSymbolPaletteComponent PaletteInstance; - // Define palattes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - // Defines palette's basic-shape collection - private DiagramObjectCollection basicShapeSymbols = new DiagramObjectCollection(); - // Defines palette's flow-shape collection - private DiagramObjectCollection flowShapes = new DiagramObjectCollection(); - // Defines palette's connector collection - private DiagramObjectCollection connectorSymbols = new DiagramObjectCollection(); - - @*Hidden:Lines*@ - #region RulerSettings - string align = "align1"; - public class TickAligns - { - public string ID { get; set; } - public string Text { get; set; } - } - List TickAlignData = new List() - { - new TickAligns(){ID="align1", Text="Right & Bottom" }, - new TickAligns(){ID="align2", Text="Left & Top"} - }; - private void RulertickAlignChange(ChangeEventArgs args) - { - if (args.ItemData.Text == "Left & Top") - { - RulerTickAlignment = TickAlignment.LeftAndTop; - } - if (args.ItemData.Text == "Right & Bottom") - { - RulerTickAlignment = TickAlignment.RightAndBottom; - } - } - public void RulerIntervalChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - RulerInterval = (int)args.Value; - } - public void RulerMarkerColorChanged(ColorPickerEventArgs args) - { - RulerMarkerColor = args.CurrentValue.Hex.ToString(); - } - #endregion - @*End:Hidden*@ - - protected override void OnInitialized() - { - InitPaletteModel(); - InitializeDiagram(); - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - Diagram - }; - } - private void OnCreated() - { - Diagram.Select(new ObservableCollection() { Diagram.Nodes[0] }); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - #region SymbolPalatte - [Inject] - protected IJSRuntime jsRuntime { get; set; } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - - basicShapeSymbols = new DiagramObjectCollection(); - CreateBasicNode("Rectangle", NodeBasicShapes.Rectangle); - CreateBasicNode("Ellipse", NodeBasicShapes.Ellipse); - CreateBasicNode("Triangle", NodeBasicShapes.Triangle); - CreateBasicNode("Plus", NodeBasicShapes.Plus); - CreateBasicNode("Star", NodeBasicShapes.Star); - CreateBasicNode("Pentagon", NodeBasicShapes.Pentagon); - CreateBasicNode("Hexagon", NodeBasicShapes.Hexagon); - CreateBasicNode("Heptagon", NodeBasicShapes.Heptagon); - CreateBasicNode("Octagon", NodeBasicShapes.Octagon); - CreateBasicNode("Trapezoid", NodeBasicShapes.Trapezoid); - CreateBasicNode("Decagon", NodeBasicShapes.Decagon); - CreateBasicNode("RightTriangle", NodeBasicShapes.RightTriangle); - - - // Palette which contains flow shape nodes - flowShapes = new DiagramObjectCollection() - { - CreateFlowNode("Terminator",NodeFlowShapes.Terminator), - CreateFlowNode("Process",NodeFlowShapes.Process), - CreateFlowNode("Sort",NodeFlowShapes.Sort), - CreateFlowNode("Document",NodeFlowShapes.Document), - CreateFlowNode("Predefined Process",NodeFlowShapes.PreDefinedProcess), - CreateFlowNode("Punched Tape",NodeFlowShapes.PaperTap), - CreateFlowNode("Direct Data",NodeFlowShapes.DirectData), - CreateFlowNode("Sequential Data",NodeFlowShapes.SequentialData), - }; - // palette which contains connectors - connectorSymbols = new DiagramObjectCollection() - { - CreateConnector("link1",ConnectorSegmentType.Orthogonal,DecoratorShape.Arrow), - CreateConnector("link2",ConnectorSegmentType.Orthogonal,DecoratorShape.None), - CreateConnector("link3",ConnectorSegmentType.Straight,DecoratorShape.Arrow), - CreateConnector("link4",ConnectorSegmentType.Straight,DecoratorShape.None), - CreateConnector("link5",ConnectorSegmentType.Bezier,DecoratorShape.None), - CreateConnector("link6",ConnectorSegmentType.Bezier, DecoratorShape.Arrow) - - }; - palettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() {Symbols = basicShapeSymbols, Title = "Basic Shapes", ID = "Basic Shapes"}, - new Palette() {Symbols = flowShapes, Title = "Flow Shapes", ID = "Flow Shapes"}, - new Palette() {Symbols = connectorSymbols, Title = "Connectors", ID = "Connectors"} - #pragma warning restore BL0005 - }; - } - // Method is used to create a node for the palette. - private void CreateBasicNode(string id, NodeBasicShapes basicShape) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new BasicShape() { Type = shapes.Basic, Shape = basicShape }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeColor = "#757575", StrokeWidth = 1 }, - }; - basicShapeSymbols.Add(diagramNode); - } - // Method to create flow shape node - private Node CreateFlowNode(string id, NodeFlowShapes type) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node node = new Node() - { - ID = NodeID, - Shape = new FlowShape() - { - Type = shapes.Flow, - Shape = type - }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeColor = "#757575", StrokeWidth = 1 }, - }; - if (isSpace) - { - node.Tooltip = new DiagramTooltip() - { - Content = id, - }; - node.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - return node; - } - // Method to create connector - private Connector CreateConnector(string id, ConnectorSegmentType type, DecoratorShape shape) - { - Connector connector = new Connector() - { - ID = id, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 40, Y = 40 }, - TargetDecorator = new DecoratorSettings() - { - Shape = shape, - Style = new ShapeStyle() { StrokeColor = "#357BD2", Fill = "#357BD2" } - }, - Style = new ShapeStyle() - { - Fill = "#357BD2", - StrokeWidth = 1, - StrokeColor = "#357BD2" - }, - }; - return connector; - } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - } - #endregion - - #region Diagram - int connectorCount; - private void InitializeDiagram() - { - nodes = new DiagramObjectCollection(); - connectors = new DiagramObjectCollection(); - // Node Region - CreateNode("Newidea", 300, 160, NodeFlowShapes.Terminator, "New idea identified"); - CreateNode("Meeting", 300, 255, NodeFlowShapes.Process, "Meeting with board"); - CreateNode("Board", 300, 380, NodeFlowShapes.Decision, "Board decides \n whether to proceed", 150, 110); - CreateNode("Find", 300, 530, NodeFlowShapes.Decision, "Find project \n manager"); - CreateNode("Implement", 300, 655, NodeFlowShapes.Process, "Implement and deliver"); - CreateNode("Decision", 530, 160, NodeFlowShapes.Card, "Decision process for new software ideas", 250, 60); - CreateNode("Reject", 550, 380, NodeFlowShapes.Process, "Reject"); - CreateNode("Hire", 550, 530, NodeFlowShapes.Process, "Hire new resources"); - // Connector Region - CreateDiagramConnector("Newidea", "Meeting"); - CreateDiagramConnector("Meeting", "Board"); - CreateDiagramConnector("Board", "Find"); - CreateDiagramConnector("Find", "Implement"); - CreateDiagramConnector("Board", "Reject"); - CreateDiagramConnector("Find", "Hire"); - } - - // Method to create node - private void CreateNode(string id, double x, double y, NodeFlowShapes shape, string label, double width = 150, double height = 60) - { - ShapeAnnotation annotation = new ShapeAnnotation() { Content = label, Style = new TextStyle() { Color = "white" } }; - - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = width, - Height = height, - Shape = new FlowShape() { Type = shapes.Flow, Shape = shape }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeColor = "#757575", StrokeWidth = 1 }, - Annotations = new DiagramObjectCollection() { annotation }, - }; - nodes.Add(diagramNode); - } - - // Method to create connector - private void CreateDiagramConnector(string sourceId, string targetId) - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++connectorCount), - TargetDecorator = new DecoratorSettings(){Style = new ShapeStyle() { StrokeColor = "#357BD2", Fill = "#357BD2" }}, - Style = new ShapeStyle() - { - Fill = "#357BD2", - StrokeWidth = 1, - StrokeColor = "#357BD2" - }, - SourceID = sourceId, - TargetID = targetId, - }; - connectors.Add(diagramConnector); - } - #endregion - @*Hidden:Lines*@ - public void Dispose() - { - - if (SymbolPreview != null) - { - SymbolPreview = null; - } - - if (SymbolMargin != null) - { - SymbolMargin = null; - } - Diagram = null; - PaletteInstance = null; - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if(connectors != null) - { - connectors.Clear(); - connectors = null; - } -#pragma warning restore BL0005 - -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } -#pragma warning restore BL0005 - if (basicShapeSymbols != null) - { - basicShapeSymbols.Clear(); - basicShapeSymbols = null; - } - if (flowShapes != null) - { - flowShapes.Clear(); - flowShapes = null; - } - if (connectorSymbols != null) - { - connectorSymbols.Clear(); - connectorSymbols = null; - } - } - @*End:Hidden*@ - -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Scrolling.razor b/Common/Pages/DiagramComponent/DiagramComponent/Scrolling.razor deleted file mode 100644 index af575ee7..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Scrolling.razor +++ /dev/null @@ -1,965 +0,0 @@ -@page "/diagramcomponent/scrollsettings" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.DropDowns -@*End:Hidden*@ -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SymbolExpandMode = Syncfusion.Blazor.Navigations.ExpandMode -@*Hidden:Lines*@ -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - - -@*Hidden:Lines*@ - -

This example illustrates how to scroll a diagram using vertical and horizontal scrollbars. The ScrollLimit property helps limit the scrolling area. The auto-scroll feature automatically scrolls the diagram whenever the node or connector is moved beyond its boundaries. Auto-scroll is enabled during node dragging, node resizing, multiple-selection operations, connector dragging and end thumb dragging.

-
- -

The ScrollLimit property allows you to define the scrollable region of the diagram. You may scroll inside the designated region if the scroll limit mode is set to limited. When the limit mode is set to diagram, you can scroll within all the diagram content.

-

The EnableAutoScroll property controls whether the diagram will auto-scroll or not. Setting the AutoScrollPadding property will change the padding used to initiate auto-scrolling at the edge. When auto-scrolling is enabled, if a user drags a node or connector to the viewport's edge, the diagram viewport will automatically scroll in the direction of the mouse movement. The auto-scrolling region is limited by the ScrollLimit property of the ScrollSettings class.

-

The ScrollPadding property defines the spacing between diagram elements and the edges of the viewport. It extends the content area of the diagram to include the element's padding. For example, if the right padding is set to 50 pixels, the scroll padding start region will be 50 pixels from the inner edge of the right viewport edge.

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ -
- -
- @*End:Hidden*@ - @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ -
- - - -
-
- - - - - - - - - - - -
- @*Hidden:Lines*@ -
-
-
-
- Properties -
-
-
- Scroll Limit -
-
- - - - -
-
- -
-
- Scrollable Area -
-
-
- X -
-
- - - -
-
-
-
- Y -
-
- - - -
-
-
-
- Width -
-
- - - -
-
-
-
- Height -
-
- - - -
-
-
-
- Enable AutoScroll -
-
- -
-
-
-
- AutoScrollPadding -
-
-
- Top -
-
- - - -
-
-
-
- Bottom -
-
- - - -
-
-
-
- Left -
-
- - - -
-
-
-
- Right -
-
- - - -
-
-
-
-
- ScrollPadding -
-
-
- Top -
-
- - - -
-
-
-
- Bottom -
-
- - - -
-
-
-
- Left -
-
- - - -
-
-
-
- Right -
-
- - - -
-
-
- @*End:Hidden*@ -
- -@code { - - @*Hidden:Lines*@ - #pragma warning disable BL0005 - - string scrollValue = "Game3"; - double x = 0; - double y = 0; - double top = 30; - double bottom = 30; - double right = 30; - double left = 30; - double topScroll = 50; - double bottomScroll = 50; - double rightScroll = 50; - double leftScroll = 50; - bool clipBounds = false; - bool EnableBorder = true; - double PageWidth = 300; - double PageHeight = 300; - string change = "EnableAutoScroll"; - @*End:Hidden*@ - ScrollSettings ScrollSettings; - bool canEnable = true; - DiagramMargin autoScrollBorder = new DiagramMargin() { Left = 30, Right = 30, Top = 30, Bottom = 30 }; - DiagramMargin scrollBorder = new DiagramMargin() { Left = 50, Right = 50, Top = 50, Bottom = 50 }; - DiagramRect scrollableArea = new DiagramRect() { X = 0, Y = 0, Width = 300, Height = 300 }; - ScrollLimitMode scrollLimit { get; set; } = ScrollLimitMode.Infinity; - public SfDiagramComponent diagram; - public SfSymbolPaletteComponent PaletteInstance; - - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 10, Right = 10, Top = 10, Bottom = 10 }; - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - DiagramObjectCollection handles = new DiagramObjectCollection(); - - //Defines Diagram's Nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - //Defines Diagram's Connectors collection - private DiagramObjectCollection connectors = new DiagramObjectCollection(); - - - //Define palattes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - - // Defines palette's basic-shape collection - private DiagramObjectCollection basicShapeSymbols = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection flowShapes = new DiagramObjectCollection(); - - // Defines palette's connector collection - private DiagramObjectCollection connectorSymbols = new DiagramObjectCollection(); - - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - [Inject] - protected IJSRuntime jsRuntime { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - if (firstRender) - { - UpdateHandle(); - } - PaletteInstance.Targets = new DiagramObjectCollection - { - diagram - }; - } - - protected override void OnInitialized() - { - - GridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - InitPaletteModel(); - - } - @*Hidden:Lines*@ - private void IconChange(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - if (args.Checked) - { - canEnable = true; - change = "DisableAutoScroll"; - EnableBorder = true; - } - else - { - canEnable = false; - change = "EnableAutoScroll"; - EnableBorder = false; - } - } - - private void UpdateHandle() - { - UserHandle deleteHandle = AddHandle("Delete", "delete", Direction.Bottom, 0.5); - UserHandle drawHandle = AddHandle("Draw", "draw", Direction.Right, 0.5); - handles.Add(deleteHandle); - handles.Add(drawHandle); - selectionSettings.UserHandles = handles; - } - - private UserHandle AddHandle(string name, string path, Direction direction, double offset) - { - UserHandle handle = new UserHandle() - { - Name = name, - Visible = true, - Offset = offset, - Side = direction, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - if (path == "delete") - { - handle.PathData = "M0.54700077,2.2130003 L7.2129992,2.2130003 7.2129992,8.8800011 C7.2129992,9.1920013 7.1049975,9.4570007 6.8879985,9.6739998 6.6709994,9.8910007 6.406,10 6.0939997,10 L1.6659999,10 C1.3539997,10 1.0890004,9.8910007 0.87200136,9.6739998 0.65500242,9.4570007 0.54700071,9.1920013 0.54700077,8.8800011 z M2.4999992,0 L5.2600006,0 5.8329986,0.54600048 7.7599996,0.54600048 7.7599996,1.6660004 0,1.6660004 0,0.54600048 1.9270014,0.54600048 z"; - } - else - { - handle.PathData = "M3.9730001,0 L8.9730001,5.0000007 3.9730001,10.000001 3.9730001,7.0090005 0,7.0090005 0,2.9910006 3.9730001,2.9910006 z"; - } - return handle; - } - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "Draw") - { - tool = new DrawTool(diagram); - } - else - { - tool = new AddDeleteTool(diagram); - } - return tool; - } - // Custom tool to delete the node. - public class AddDeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - Node deleteObject = null; - public AddDeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - if (sfDiagram.SelectionSettings.Nodes.Count > 0 && ((sfDiagram.SelectionSettings.Nodes[0]) is Node)) - { - deleteObject = (sfDiagram.SelectionSettings.Nodes[0]) as Node; - } - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - if (deleteObject != null) - { - sfDiagram.StartGroupAction(); - sfDiagram.BeginUpdate(); - sfDiagram.Nodes.Remove(deleteObject); - _ = sfDiagram.EndUpdateAsync(); - sfDiagram.EndGroupAction(); - } - base.OnMouseUp(args); - this.InAction = true; - } - } - - public class DrawTool : ConnectorDrawingController - { - SfDiagramComponent sfDiagram; - Connector newConnector = null; - public DrawTool(SfDiagramComponent Diagram) : base(Diagram, DiagramElementAction.ConnectorSourceEnd) - { - sfDiagram = Diagram; - newConnector = new Connector() - { - ID = "OrthogonalConnector", - SourceID = sfDiagram.SelectionSettings.Nodes[0].ID, - Type = ConnectorSegmentType.Orthogonal, - }; - @*Hidden:Lines*@ -#pragma warning disable BL0005 - @*End:Hidden*@ - Diagram.InteractionController = DiagramInteractions.DrawOnce; - Diagram.DrawingObject = newConnector; - @*Hidden:Lines*@ -#pragma warning restore BL0005 - @*End:Hidden*@ - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - base.OnMouseDown(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - base.OnMouseUp(args); - } - } - private void widthvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - PageWidth = args.Value; - scrollableArea = new DiagramRect() { X = x, Y = y, Width = PageWidth, Height = PageHeight }; - } - private void heightvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - PageHeight = args.Value; - scrollableArea = new DiagramRect() { X = x, Y = y, Width = PageWidth, Height = PageHeight }; - } - private void xvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - x = args.Value; - scrollableArea = new DiagramRect() { X = x, Y = y, Width = PageWidth, Height = PageHeight }; - } - private void yvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - y = args.Value; - scrollableArea = new DiagramRect() { X = x, Y = y, Width = PageWidth, Height = PageHeight }; - } - - private void OnScrollLimitChange(ChangeEventArgs args) - { - if (args.ItemData.Text == "Diagram") - { - scrollLimit = ScrollLimitMode.Diagram; - clipBounds = false; - } - if (args.ItemData.Text == "Limited") - { - scrollLimit = ScrollLimitMode.Limited; - clipBounds = true; - scrollableArea = new DiagramRect() { X = x, Y = y, Width = PageWidth, Height = PageHeight }; - } - if (args.ItemData.Text == "Infinity") - { - scrollLimit = ScrollLimitMode.Infinity; - clipBounds = false; - } - } - private void TopvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - top = args.Value; - autoScrollBorder = new DiagramMargin() { Left = left, Right = right, Top = top, Bottom = bottom }; - - } - private void BottomvalueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - bottom = args.Value; - autoScrollBorder = new DiagramMargin() { Left = left, Right = right, Top = top, Bottom = bottom }; - } - private void RightChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - right = args.Value; - autoScrollBorder = new DiagramMargin() { Left = left, Right = right, Top = top, Bottom = bottom }; - } - private void LeftChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - left = args.Value; - autoScrollBorder = new DiagramMargin() { Left = left, Right = right, Top = top, Bottom = bottom }; - } - private void TopScrollValueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - topScroll = args.Value; - scrollBorder = new DiagramMargin() { Left = leftScroll, Right = rightScroll, Top = topScroll, Bottom = bottomScroll }; - - } - private void BottomScrollValueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - bottomScroll = args.Value; - scrollBorder = new DiagramMargin() { Left = leftScroll, Right = rightScroll, Top = topScroll, Bottom = bottomScroll }; - } - private void RightScrollValueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - rightScroll = args.Value; - scrollBorder = new DiagramMargin() { Left = leftScroll, Right = rightScroll, Top = topScroll, Bottom = bottomScroll }; - } - private void LeftScrollValueChanged(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - leftScroll = args.Value; - scrollBorder = new DiagramMargin() { Left = leftScroll, Right = rightScroll, Top = topScroll, Bottom = bottomScroll }; - } - - private void CanAutoScroll() - { - if (change == "EnableAutoScroll") - { - canEnable = true; - change = "DisableAutoScroll"; - } - else if (change == "DisableAutoScroll") - { - canEnable = false; - change = "EnableAutoScroll"; - } - } - @*End:Hidden*@ - private void DragDropEvent(DropEventArgs args) - { - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector && connector.Tooltip != null) - { - connector.Tooltip = null; - connector.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - - basicShapeSymbols = new DiagramObjectCollection(); - CreatePaletteNode(NodeBasicShapes.Rectangle, "Rectangle"); - CreatePaletteNode(NodeBasicShapes.Ellipse, "Ellipse"); - CreatePaletteNode(NodeBasicShapes.Triangle, "Triangle"); - CreatePaletteNode(NodeBasicShapes.Plus, "Plus"); - CreatePaletteNode(NodeBasicShapes.Star, "Star"); - CreatePaletteNode(NodeBasicShapes.Pentagon, "Pentagon"); - CreatePaletteNode(NodeBasicShapes.Hexagon, "Hexagon"); - CreatePaletteNode(NodeBasicShapes.Heptagon, "Heptagon"); - CreatePaletteNode(NodeBasicShapes.Octagon, "Octagon"); - CreatePaletteNode(NodeBasicShapes.Trapezoid, "Trapezoid"); - CreatePaletteNode(NodeBasicShapes.Decagon, "Decagon"); - CreatePaletteNode(NodeBasicShapes.RightTriangle, "RightTriangle"); - - // Palette which contains flow shape nodes - flowShapes = new DiagramObjectCollection() - { - CreateFlowNode("Terminator",NodeFlowShapes.Terminator), - CreateFlowNode("Process",NodeFlowShapes.Process), - CreateFlowNode("Sort",NodeFlowShapes.Sort), - CreateFlowNode("Document",NodeFlowShapes.Document), - CreateFlowNode("Predefined Process",NodeFlowShapes.PreDefinedProcess), - CreateFlowNode("Punched Tape",NodeFlowShapes.PaperTap), - CreateFlowNode("Direct Data",NodeFlowShapes.DirectData), - CreateFlowNode("Sequential Data",NodeFlowShapes.SequentialData), - }; - // palette which contains connectors - connectorSymbols = new DiagramObjectCollection() - { - CreateConnector("link1",ConnectorSegmentType.Orthogonal,DecoratorShape.Arrow), - CreateConnector("link2",ConnectorSegmentType.Orthogonal,DecoratorShape.None), - CreateConnector("link3",ConnectorSegmentType.Straight,DecoratorShape.Arrow), - CreateConnector("link4",ConnectorSegmentType.Straight,DecoratorShape.None), - CreateConnector("link5",ConnectorSegmentType.Bezier,DecoratorShape.None), - CreateConnector("link6",ConnectorSegmentType.Bezier, DecoratorShape.Arrow) - - }; - palettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() {Symbols = basicShapeSymbols, Title = "Basic Shapes", ID = "Basic Shapes"}, - new Palette() {Symbols = flowShapes, Title = "Flow Shapes", ID = "Flow Shapes"}, - new Palette() {Symbols = connectorSymbols, Title = "Connectors", ID = "Connectors"} - #pragma warning restore BL0005 - }; - } - - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Style.Fill = "#357BD2"; - if (!(node.ID.StartsWith("Annotation"))) - node.Style.StrokeColor = "White"; - node.Style.Opacity = 1; - } - - // Method to create flow shape node - private Node CreateFlowNode(string id, NodeFlowShapes type) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node node = new Node() - { - ID = NodeID, - Shape = new FlowShape() - { - Type = shapes.Flow, - Shape = type - }, - Style = new ShapeStyle() { Fill = "#357BD2", StrokeWidth = 1, StrokeColor = "#757575" } - }; - if (isSpace) - { - node.Tooltip = new DiagramTooltip() - { - Content = id, - }; - node.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - return node; - } - - - private void OnConnectorCreating(IDiagramObject obj) - { - Connector node = obj as Connector; - node.Style.Fill = "#357BD2"; - node.Style.StrokeColor = "#357BD2"; - node.Style.Opacity = 1; - node.TargetDecorator.Style.Fill = "#357BD2"; - node.TargetDecorator.Style.StrokeColor = "#357BD2"; - } - - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeBasicShapes basicShape, string id) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new BasicShape() { Type = shapes.Basic, Shape = basicShape }, - Style = new ShapeStyle() { Fill = "#6495ed", StrokeColor = "#757575", StrokeWidth = 1 }, - }; - basicShapeSymbols.Add(diagramNode); - } - // Method to create connector - private Connector CreateConnector(string id, ConnectorSegmentType type, DecoratorShape shape) - { - Connector connector = new Connector() - { - ID = id, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 40, Y = 40 }, - TargetDecorator = new DecoratorSettings() - { - Shape = shape, - Style = new ShapeStyle() { StrokeColor = "#357BD2", Fill = "#357BD2" } - }, - Style = new ShapeStyle() - { - Fill = "#357BD2", - StrokeWidth = 2, - StrokeColor = "#357BD2" - }, - }; - return connector; - } - - // Method is used to create a node for the diagram. - private void CreateDiagramNode(string id, int width, int height, int x, int y, NodeFlowShapes flowShape, string content) - { - Node diagramNode = new Node() - { - ID = id, - Width = width, - Height = height, - OffsetX = x, - OffsetY = y, - Shape = new FlowShape() { Type = shapes.Flow, Shape = flowShape }, - - Annotations = new DiagramObjectCollection { new ShapeAnnotation { Content = content, Style = new TextStyle() { Color = "White", Fill = "transparent" } } } - }; - nodes.Add(diagramNode); - } - public class Games - { - public string ID { get; set; } - public string Text { get; set; } - } - List LocalData = new List { - new Games() { ID= "Game1", Text= "Limited" }, - new Games() { ID= "Game2", Text= "Diagram" }, - new Games() { ID= "Game3", Text= "Infinity" }, - - }; - - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - - if (SymbolMargin != null) - { - SymbolMargin = null; - } - diagram = null; - PaletteInstance = null; - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } -#pragma warning restore BL0005 - -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } -#pragma warning restore BL0005 - if (basicShapeSymbols != null) - { - basicShapeSymbols.Clear(); - basicShapeSymbols = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Serialization.razor b/Common/Pages/DiagramComponent/DiagramComponent/Serialization.razor deleted file mode 100644 index 1ea33032..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Serialization.razor +++ /dev/null @@ -1,665 +0,0 @@ -@page "/diagramcomponent/serialization" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.Inputs -@using Microsoft.JSInterop -@using BlazorDemos.Pages -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - - -@*Hidden:Lines*@ -@inject IJSRuntime jsRuntime -@inherits SampleBaseComponent; -@inject NavigationManager NavigationManager - - - -

This sample demonstrates building diagrams interactively and editing saved diagrams. The symbol palette is used to build diagrams easily.

-
- -

This example shows how to drag and drop shapes and connectors from the symbol palette to build diagrams. You can save a diagram as a JSON file and edit saved diagrams. The SaveDiagram method can be used to save a diagram as a string. The LoadDiagram method can be used to load a diagram from a string. In this example, the undo and redo features are enabled.

-
-@*End:Hidden*@ -@*Hidden:Lines*@ - -
- - @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ - @*Hidden:Lines*@ -
- - - @* *@ - - - - - - - - -
- - @*End:Hidden*@ -
- -
- - -
-
-
- - - - - - - - - -
-
- - - - -
-
-@*Hidden:Lines*@ - -@*End:Hidden*@ - -@code -{ - private int connectorCount; - private string fileName = "diagram"; - private string ExtensionType = ".json"; - - //Define palettes symbol margin - SymbolMargin symbolMargin = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - - // Reference to symbol palette - SfSymbolPaletteComponent symbolPalette; - - //Define palettes symboldrag preview size - DiagramSize symbolDragPreviewSize = new DiagramSize() { Height = 100, Width = 100 }; - - - // Defines symbolpalette's palette collection - public DiagramObjectCollection palettes; - - //Reference to uploder - SfUploader uploadFiles; - - // Reference to diagram - SfDiagramComponent diagram; - - // Defines diagram's nodes collection - public DiagramObjectCollection nodes { get; set; } - - // Defines diagram's connector collection - public DiagramObjectCollection connectors { get; set; } - - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - // Defines palette's flow-shape collection - public DiagramObjectCollection FlowShapeList { get; set; } - - // Defines palette's connector collection - public DiagramObjectCollection ConnectorList { get; set; } - - // Defines Symbol info - public SymbolInfo SymbolInfo { get; set; } - - - protected override void OnInitialized() - { - - InitDiagramModel(); - InitPaletteModel(); - } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - symbolPalette.Targets = new DiagramObjectCollection - { - diagram - }; - } - - //Method to clear the diagram - public void ClearDiagram(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - diagram.Nodes.Clear(); - diagram.Connectors.Clear(); - diagram.ClearSelection(); - StateHasChanged(); - } - - private void DragDropEvent(DropEventArgs args) - { - if (args.Element is Node node && node.Tooltip != null) - { - node.Tooltip = null; - node.Constraints &= ~NodeConstraints.Tooltip; - } - else if (args.Element is Connector connector && connector.Tooltip != null) - { - connector.Tooltip = null; - connector.Constraints &= ~ConnectorConstraints.Tooltip; - } - } - - //Method to upload selected files - public async Task OnUploadFileSelected(UploadingEventArgs args) - { - if (args.FileData.Type == "json") - { - string json = await FileUtil.LoadFile(jsRuntime, args.FileData); - json = json.Replace(System.Environment.NewLine, string.Empty); - await diagram.LoadDiagramAsync(json.ToString()); - await uploadFiles.ClearAllAsync(); - } - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - diagram.FitToPage(mobileoptions); - - }else - { - diagram.FitToPage(); - } - - } - - //Method to define upload success - public void OnUploadSuccess(SuccessEventArgs args) - { - if (args.Operation != "remove") - { - var file1 = args.File; - var file = file1.RawFile; - var fileType = file1.Type.ToString(); - } - } - - //Method to save the diagram - public async Task SaveDiagram() - { - await DownloadDiagram(fileName); - } - - //Method to download the diagram - public async Task DownloadDiagram(string fileName) - { - string data = diagram.SaveDiagram(); - await FileUtil.SaveAs(jsRuntime, data, fileName); - } - - //Method to load the diagram - public async Task LoadDiagram() - { - diagram.BeginUpdate(); - ExtensionType = ".json"; - await FileUtil.Click(jsRuntime); - await diagram.EndUpdateAsync(); - } - - private void InitDiagramModel() - { - GridLineIntervals = new double[] - { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 - }; - - nodes = new DiagramObjectCollection(); - connectors = new DiagramObjectCollection(); - - CreateNode("Start", 450, 80, NodeFlowShapes.Terminator, "Start", "#D0F0F1", "#797979"); - CreateNode("Alarm", 450, 195, NodeFlowShapes.Process, "Alarm rings", "#FBFDC5", "#797979"); - CreateNode("Ready", 450, 315, NodeFlowShapes.Decision, "Ready to Getup?", "#C5EFAF", "#797979"); - CreateNode("Climb", 450, 435, NodeFlowShapes.Process, "Climb out of bed", "#FBFDC5", "#797979"); - CreateNode("End", 450, 560, NodeFlowShapes.Terminator, "End", "#D0F0F1", "#797979"); - CreateNode("Delay", 650, 195, NodeFlowShapes.Delay, "Delay", "#F8EEE5", "#797979"); - CreateNode("Hit", 650, 315, NodeFlowShapes.Process, "Hit snooze button", "#FBFDC5", "#797979"); - - CreateConnector("Start", "Alarm"); - CreateConnector("Alarm", "Ready"); - CreateConnector("Ready", "Climb", "Yes"); - CreateConnector("Climb", "End"); - CreateConnector("Ready", "Hit", "No"); - CreateConnector("Hit", "Delay"); - CreateConnector("Delay", "Alarm"); - } - - //Method to define common style for connector - private void ConnectorCreating(IDiagramObject obj) - { - Connector ConnectorCreating = new Connector() - { - TargetDecorator = new DecoratorSettings() - { - Height = 5, - Width = 5, - Style = new ShapeStyle() { Fill = "#797979", StrokeColor = "#797979" }, - }, - Style = new ShapeStyle() { StrokeColor = "#797979" } - }; - } - - //Method to define create nodes - private void CreateNode(string id, double x, double y, NodeFlowShapes shape, string label, string fillColor, string stroke) - { - ShapeAnnotation annotation = new ShapeAnnotation() { Content = label }; - - annotation.Style = new TextStyle() - { - Color = "black", - Fill = "transparent" - }; - - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = 120, - Height = 70, - Shape = new FlowShape() { Type = shapes.Flow, Shape = shape }, - Style = new ShapeStyle() { Fill = fillColor, StrokeColor = stroke }, - Annotations = new DiagramObjectCollection() { annotation }, - }; - if (diagramNode.ID.ToString() == "Ready") - { - diagramNode.Height = 100; - diagramNode.Width = 140; - } - nodes.Add(diagramNode); - } - - //Method to define create connectors - private void CreateConnector(string sourceId, string targetId, string label = default(string)) - { - ShapeStyle shapeStyle = new ShapeStyle() { StrokeColor = "#797979", Fill = "black" }; - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++connectorCount), - SourceID = sourceId, - TargetID = targetId, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#797979" }, - TargetDecorator = new DecoratorSettings() { Style = shapeStyle } - }; - - if (label != default(string)) - { - PathAnnotation annotation = new PathAnnotation() - { - Content = label, - Style = new TextStyle() { Fill = "white" } - }; - diagramConnector.Annotations = new DiagramObjectCollection() { annotation }; - } - - connectors.Add(diagramConnector); - } - - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolInfo = new SymbolInfo() { Fit = true }; - - FlowShapeList = new DiagramObjectCollection(); - CreatePaletteNode(NodeFlowShapes.Terminator, "Terminator"); - CreatePaletteNode(NodeFlowShapes.Process, "Process"); - CreatePaletteNode(NodeFlowShapes.Decision, "Decision"); - CreatePaletteNode(NodeFlowShapes.Document, "Document"); - CreatePaletteNode(NodeFlowShapes.PreDefinedProcess, "PreDefined Process"); - CreatePaletteNode(NodeFlowShapes.PaperTap, "Punched Tape"); - CreatePaletteNode(NodeFlowShapes.DirectData, "Direct Data"); - CreatePaletteNode(NodeFlowShapes.SequentialData, "Sequential Data"); - CreatePaletteNode(NodeFlowShapes.Sort, "Sort"); - CreatePaletteNode(NodeFlowShapes.MultiDocument, "MultiDocument"); - CreatePaletteNode(NodeFlowShapes.Collate, "Collate"); - CreatePaletteNode(NodeFlowShapes.SummingJunction, "Summing Junction"); - CreatePaletteNode(NodeFlowShapes.Or, "Or"); - CreatePaletteNode(NodeFlowShapes.InternalStorage, "Internal Storage"); - CreatePaletteNode(NodeFlowShapes.Extract, "Extract"); - CreatePaletteNode(NodeFlowShapes.SequentialAccessStorage, "Sequential Access Storage"); - CreatePaletteNode(NodeFlowShapes.Annotation, "Annotation"); - CreatePaletteNode(NodeFlowShapes.Data, "Data"); - CreatePaletteNode(NodeFlowShapes.Card, "Card"); - CreatePaletteNode(NodeFlowShapes.Delay, "Delay"); - - ConnectorList = new DiagramObjectCollection(); - CreatePaletteConnector("Orthogonal With Arrow", ConnectorSegmentType.Orthogonal, DecoratorShape.Arrow); - CreatePaletteConnector("Orthogonal", ConnectorSegmentType.Orthogonal, DecoratorShape.None); - CreatePaletteConnector("Straight With Arrow", ConnectorSegmentType.Straight, DecoratorShape.Arrow); - CreatePaletteConnector("Straight", ConnectorSegmentType.Straight, DecoratorShape.None); - CreatePaletteConnector("Bezier", ConnectorSegmentType.Bezier, DecoratorShape.None); - @*Hidden:Lines*@ - #pragma warning disable BL0005 - @*End:Hidden*@ - palettes.Add( - new Palette() - { - ID = "flowshapepalette", - IsExpanded = true, - Symbols = FlowShapeList, - Title = "Flow Shapes" - } - ); - palettes.Add( - new Palette() - { - ID = "connectorpalette", - IsExpanded = true, - Symbols = ConnectorList, - Title = "Connectors" - } - ); - @*Hidden:Lines*@ - #pragma warning restore BL0005 - @*End:Hidden*@ - } - - //Method to define create palette nodes - private void CreatePaletteNode(NodeFlowShapes flowShape, string id) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node diagramNode = new Node() - { - ID = NodeID, - Shape = new FlowShape() { Type = shapes.Flow, Shape = flowShape }, - Style = new ShapeStyle() { StrokeColor = "#797979", Fill = "Transparent", StrokeWidth = 2 }, - }; - if (isSpace) - { - diagramNode.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramNode.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - FlowShapeList.Add(diagramNode); - } - - //Method to define create palette connectors - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DecoratorShape decoratorShape) - { - string connectorID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - connectorID = id.Replace(" ", ""); - } - ShapeStyle shapeStyle = new ShapeStyle() { StrokeColor = "#797979", Fill = "black" }; - Connector diagramConnector = new Connector() - { - ID = connectorID, - Type = type, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 60, Y = 60 }, - Style = new ShapeStyle() { StrokeWidth = 1, StrokeColor = "#797979" }, - TargetDecorator = new DecoratorSettings() { Shape = decoratorShape, Style = shapeStyle } - }; - if (isSpace) - { - diagramConnector.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramConnector.Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip; - } - - ConnectorList.Add(diagramConnector); - } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} - - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Shapes.razor b/Common/Pages/DiagramComponent/DiagramComponent/Shapes.razor deleted file mode 100644 index 251c9be0..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Shapes.razor +++ /dev/null @@ -1,214 +0,0 @@ -@page "/diagramcomponent/shapes" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - - - -

This sample demonstrates the basic built-in shapes, such as basic and flow shapes.

-
- -

This example shows how to define built-in shapes that are used to visualize geometric information, workflow, or business flow diagrams. The Type property of the Shape allows you to choose the type of shape.

-
-@*End:Hidden*@ - - - - - -@code -{ - SfDiagramComponent diagram; - //Defines diagrams's nodes collection - public DiagramObjectCollection NodeCollection = new DiagramObjectCollection(); - DiagramConstraints diagramConstraints = DiagramConstraints.None; - - - protected override void OnInitialized() - { - - NodeCollection = new DiagramObjectCollection(); - - #region Basic Shapes - AddShapeText("Basic Shapes", NodeConstraints.PointerEvents); - AddBasicShapes("rectLabel", "Rectangle", NodeBasicShapes.Rectangle, false); - AddBasicShapes("ellipseLabel", "Ellipse", NodeBasicShapes.Ellipse, true); - AddBasicShapes("triLabel", "Triangle", NodeBasicShapes.Triangle, true); - AddBasicShapes("plusLabel", "Plus", NodeBasicShapes.Plus, true); - AddBasicShapes("starLabel", "Star", NodeBasicShapes.Star, true); - AddBasicShapes("pentLabel", "Pentagon", NodeBasicShapes.Pentagon, true); - AddBasicShapes("heptLabel", "Heptagon", NodeBasicShapes.Heptagon, true); - AddBasicShapes("octLabel", "Octagon", NodeBasicShapes.Octagon, true); - AddBasicShapes("trapLabel", "Trapezoid", NodeBasicShapes.Trapezoid, false); - AddBasicShapes("decLabel", "Decagon", NodeBasicShapes.Decagon, true); - AddBasicShapes("rightLabel", "Right Triangle", NodeBasicShapes.RightTriangle, true); - AddBasicShapes("paraLabel", "Parallelogram", NodeBasicShapes.Parallelogram, true); - #endregion - - #region FlowShapeType - AddShapeText("Flow Shapes", NodeConstraints.PointerEvents); - AddFlowShapes("terminateLabel", "Terminator", NodeFlowShapes.Terminator); - AddFlowShapes("processLabel", "Process", NodeFlowShapes.Process); - AddFlowShapes("decisionLabel", "Decision", NodeFlowShapes.Decision); - AddFlowShapes("documentLabel", "Document", NodeFlowShapes.Document); - AddFlowShapes("preLabel", "PreDefined Process", NodeFlowShapes.PreDefinedProcess); - AddFlowShapes("directLabel", "Direct Data", NodeFlowShapes.DirectData); - AddFlowShapes("seqLabel", "Sequential Data", NodeFlowShapes.SequentialData); - AddFlowShapes("sortLabel", "Sort", NodeFlowShapes.Sort); - AddFlowShapes("multiLabel", "Multi-Document", NodeFlowShapes.MultiDocument); - AddFlowShapes("collateLabel", "Collate", NodeFlowShapes.Collate); - AddFlowShapes("summingLabel", "Summing Junction", NodeFlowShapes.SummingJunction); - AddFlowShapes("or", "Or", NodeFlowShapes.Or); - AddFlowShapes("internalLabel", "Internal Storage", NodeFlowShapes.InternalStorage); - AddFlowShapes("extractLabel", "Extract", NodeFlowShapes.Extract); - AddFlowShapes("manualLabel", "Manual Operation", NodeFlowShapes.ManualOperation); - AddFlowShapes("mergeLabel", "Merge", NodeFlowShapes.Merge); - AddFlowShapes("offLabel", "Off-Page Reference", NodeFlowShapes.OffPageReference); - AddFlowShapes("seqAccess", "Sequential Access Storage", NodeFlowShapes.SequentialAccessStorage); - AddFlowShapes("dataLabel", "Data", NodeFlowShapes.Data); - AddFlowShapes("cardLabel", "Card", NodeFlowShapes.Card); - AddFlowShapes("Preparation", "Preparation", NodeFlowShapes.Preparation); - #endregion - UpdateValues(); - } - private void AddShapeText(string textContent, NodeConstraints constraints) - { - Node node = new Node() - { - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = textContent, - } - }, - Style = new TextStyle() { FontSize = 16, Fill = "None", FontFamily = "sans-serif", Bold = true, StrokeWidth = 0 }, - Constraints = constraints - }; - NodeCollection.Add(node); - } - private void AddBasicShapes(string id, string shapeText, NodeBasicShapes shapes, bool CheckAspectRatio) - { - Node node = new Node() - { - - Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = shapes }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation - { - Content = shapeText, ID = id, - } - }, - - }; - if (CheckAspectRatio) - { - node.Constraints = node.Constraints | NodeConstraints.AspectRatio; - } - NodeCollection.Add(node); - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - diagram.FitToPage(mobileoptions); - } - private void UpdateValues() - { - int offsetx = 60; - int offsety = 50; - int count = 1; - - for (int i = 0; i < NodeCollection.Count; i++) - { - Node node = NodeCollection[i]; - node.Width = 40; - node.Height = 40; - node.Constraints = NodeConstraints.None; - if (node.Shape.Type == Syncfusion.Blazor.Diagram.NodeShapes.Flow) - { - if (node.Shape is FlowShape) - { - FlowShape shapeType = node.Shape as FlowShape; - if (shapeType.Shape == NodeFlowShapes.Process || shapeType.Shape == NodeFlowShapes.Terminator) - { - node.Height = 20; - } - else if (shapeType.Shape == NodeFlowShapes.Decision) - { - node.Height = 35; - } - else if (shapeType.Shape == NodeFlowShapes.Document || shapeType.Shape == NodeFlowShapes.DirectData || - shapeType.Shape == NodeFlowShapes.MultiDocument || shapeType.Shape == NodeFlowShapes.PreDefinedProcess) - { - node.Height = 30; - } - } - } - - if (node.Annotations[0].Content != "Basic Shapes" && node.Annotations[0].Content != "Flow Shapes") - { - if (node.Annotations.Count > 0) - { - node.Annotations[0].VerticalAlignment = VerticalAlignment.Top; - node.Annotations[0].Offset = new DiagramPoint() { X = 0.5, Y = 1 }; - node.Annotations[0].Margin = new DiagramThickness() { Top = 10 }; - } - node.OffsetX = offsetx; - node.OffsetY = offsety; - offsetx = offsetx + 90; - if (count % 12 == 0) - { - offsety = offsety + 100; - offsetx = 60; - } - count++; - } - - if (node.Annotations[0].Content == "Basic Shapes" || node.Annotations[0].Content == "Flow Shapes") - { - node.Annotations[0].Style.Bold = true; - node.Annotations[0].Style.FontSize = 16; - - offsetx = 60; - offsety += 20; - node.OffsetX = offsetx; - node.OffsetY = offsety; - offsety = offsety + 50; - count = 1; - node.Width = 150; - node.Height = 50; - node.OffsetX = 90; - } - } - } - - private void AddFlowShapes(string id, string shapeText, NodeFlowShapes shapes) - { - Node terminatNode = new Node() - { - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = shapes }, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation { Content = shapeText,ID = id } - } - }; - NodeCollection.Add(terminatNode); - } - @*Hidden:Lines*@ - public void Dispose() - { - if(NodeCollection != null) - { - NodeCollection.Clear(); - NodeCollection = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/Snapping.razor b/Common/Pages/DiagramComponent/DiagramComponent/Snapping.razor deleted file mode 100644 index 485b874c..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/Snapping.razor +++ /dev/null @@ -1,424 +0,0 @@ -@page "/diagramcomponent/snapping" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Microsoft.AspNetCore.Components -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using ButtonChangeArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs - -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ -@*Hidden:Lines*@ - -

This sample shows how the diagram objects snap to the nearest intersection of gridlines or objects while being dragged or resized.

-
- -

The gridline position toward which the diagram object snaps can be customized by using the SnapIntervals property of the HorizontalGridLines and VerticalGridLines, specifying a set of intervals for snapping the objects. The SnapAngle property allows you to define the angle to which the object needs to be rotated. The SnapLineStyle property allows you to customize the style of the snap line. The Constraints property controls the visibility of gridlines and enables or disables snapping. The horizontal and vertical gridlines are displayed when restrictions are set to ShowLines. If the constraint is set to SnapToLines, the object snaps to both the vertical and horizontal gridlines. With SnapToObject, it jumps to line up with the closest element when you move or resize an element.

-
-@*End:Hidden*@ - - -
- @*Hidden:Lines*@ - - @*End:Hidden*@ - -
- - - - - - - - -
- -
- -@*Hidden:Lines*@ -
-
- Properties -
-
-
-
-
-
-
-
- Snapping Interval -
-
- - - -
-
-
-
- Snapping Angle -
-
- - - -
-
-
-
- Snapping Line Color -
-
- -
-
-
-
-
- Constraints -
-
- - -
-
- - -
-
- - -
-
-
-
-
-
-@*End:Hidden*@ -@code -{ - //Sets the snap interval. - private double[] snapInterval { get; set; } = new double[] - { - 10 - }; - - private bool showline = true; - private bool snaptoline = true; - private bool snaptoobject = true; - double snapangle = 5; - SfDiagramComponent Diagram; - SnapSettings snapSettings; - SnapConstraints Constraints = SnapConstraints.All; - DiagramObjectCollection connectors = new DiagramObjectCollection(); - DiagramObjectCollection nodes = new DiagramObjectCollection(); - double? LineValue = 10; - double? AngleValue = 5; - ShapeStyle style = new ShapeStyle() { StrokeColor = "#07EDE1"}; - - private void ShowLine(ButtonChangeArgs value) - { - showline = value.Checked; - if ((bool)showline) - { - Constraints |= SnapConstraints.ShowLines; - Constraints |= SnapConstraints.ShowVerticalLines; - Constraints |= SnapConstraints.ShowVerticalLines; - } - else - { - Constraints &= ~SnapConstraints.ShowLines; - Constraints &= ~SnapConstraints.ShowVerticalLines; - Constraints &= ~SnapConstraints.ShowVerticalLines; - } - - } - - private void SnapToLine(ButtonChangeArgs value) - { - snaptoline = value.Checked; - if ((bool)snaptoline) - { - Constraints |= SnapConstraints.SnapToLines; - Constraints |= SnapConstraints.SnapToHorizontalLines; - Constraints |= SnapConstraints.SnapToVerticalLines; - } - else - { - Constraints &= ~SnapConstraints.SnapToLines; - Constraints &= ~SnapConstraints.SnapToHorizontalLines; - Constraints &= ~SnapConstraints.SnapToVerticalLines; - } - - } - private void SnapToObject(ButtonChangeArgs value) - { - snaptoobject = value.Checked; - if ((bool)snaptoobject) - { - Constraints |= SnapConstraints.SnapToObject; - } - else - { - Constraints &= ~SnapConstraints.SnapToObject; - } - - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - protected override void OnInitialized() - { - - nodes = new DiagramObjectCollection() - { - new Node() - { - OffsetX = 200, - OffsetY = 200, - Height = 100, - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID="port1", - Visibility = PortVisibility.Hidden, - Offset = new DiagramPoint() { X = 0.5, Y = 1}, - - } - }, - Width = 100, - ID = "node1", - Style = new ShapeStyle(){ Fill = "#ffae42", StrokeColor = "#ffae42"}, - Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle } - }, - new Node() - { - OffsetX = 350, - OffsetY = 350, - Height = 100, - Width = 100, - ID = "node2", - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID="port2", - Visibility = PortVisibility.Hidden, - Offset = new DiagramPoint() { X = 0.5, Y = 0}, - - } - }, - Style = new ShapeStyle(){ Fill = "#ffae42", StrokeColor = "#ffae42" }, - Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle } - }, - new Node() - { - OffsetX = 450, - OffsetY = 200, - Height = 100, - Width = 100, - ID = "node3", - Ports = new DiagramObjectCollection() - { - new PointPort() - { - ID="port4", - Visibility = PortVisibility.Hidden, - Offset = new DiagramPoint() { X = 0.5, Y = 1}, - - } - }, - Style = new ShapeStyle(){ Fill = "#ffae42", StrokeColor = "#ffae42" }, - Shape = new BasicShape() { Type = NodeShapes.Basic, Shape = NodeBasicShapes.Rectangle } - } - }; - Connector Connector = new Connector() - { - ID = "connector1", - //Source node id of the connector. - SourceID = "node1", - //source node port id. - SourcePortID = "port1", - //Target node id of the connector. - TargetID = "node2", - //Target node port id. - TargetPortID = "port2", - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() - { - Fill = "black", - StrokeColor = "black", - }, - Shape = DecoratorShape.Arrow, - }, - Style = new ShapeStyle() - { - Fill = "black", - StrokeColor = "black", - }, - // Type of the connector. - Type = ConnectorSegmentType.Orthogonal, - }; - connectors.Add(Connector); - } - @*Hidden:Lines*@ - public class GameFields - { - public string ID { get; set; } - public string Text { get; set; } - } - - private List Games = new List() - { - new GameFields(){ ID= "None", Text= "None" }, - new GameFields(){ ID= "ShowHorizontalLines", Text= "ShowHorizontalLines" }, - new GameFields(){ ID= "ShowVerticalLines", Text= "ShowVerticalLines" }, - new GameFields(){ ID= "ShowLines", Text= "ShowLines" }, - new GameFields(){ ID= "SnapToHorizontalLines", Text= "SnapToHorizontalLines" }, - new GameFields(){ ID= "SnapToVerticalLines", Text= "SnapToVerticalLines" }, - new GameFields(){ ID= "SnapToLines", Text= "SnapToLines" }, - new GameFields(){ ID= "SnapToObject", Text= "SnapToObject"}, - new GameFields(){ ID= "All", Text= "All"}, - - }; - @*End:Hidden*@ - public string DropDownValue = "All"; - public string ChangeValue { get; set; } = "Bottom"; - public void linechange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - double[] lineinterval = { (double)args.Value }; - snapInterval = lineinterval; - } - public void Anglechange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - snapangle = (double)args.Value; - } - public void ColorChange(ColorPickerEventArgs args) - { - style.StrokeColor = args.CurrentValue.Hex.ToString(); - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/SwimlaneSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/SwimlaneSample.razor deleted file mode 100644 index d601cc9c..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/SwimlaneSample.razor +++ /dev/null @@ -1,802 +0,0 @@ -@page "/diagramcomponent/swimlane" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using System.Collections.ObjectModel -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -

This Blazor Diagram example shows how to visualize a sales processing flow chart with the help of built-in swimlane shapes in the Syncfusion Blazor Diagram.

-
- -

This sample shows how a sales process works with each entity involved in the process assigned a lane that contains all the activities for which they are responsible. The collection of swimlanes is added to a diagram using the Swimlanes property. Using the Children property of the lane, we can add nodes inside the lanes. We can also create a swimlane interactively using the swimlane shapes from the symbol palette.

-
-@*End:Hidden*@ - -@*Hidden:Lines*@ -
- - - @*End:Hidden*@ -
- @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ -
- - -
-
-
- - - - - - - - - -
-
-
- @*Hidden:Lines*@ -
-@*End:Hidden*@ - - -@code { - - private int connectorCount = 0; - List ContextMenuItems = new List(); - SnapConstraints snapConstraints = SnapConstraints.All & ~SnapConstraints.ShowLines; - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings() { Constraints = SelectorConstraints.All & ~SelectorConstraints.Rotate }; - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent Diagram; - public SfSymbolPaletteComponent PaletteInstance; - - //Defines Diagram's nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines Diagram's swimlane collection - private DiagramObjectCollection swimlanes = new DiagramObjectCollection(); - - //Defines Diagram's connectors collection - private DiagramObjectCollection connectors = new DiagramObjectCollection(); - - //Define palettes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection flowShapeSymbols = new DiagramObjectCollection(); - // Defines palette's swimlane-shape collection - DiagramObjectCollection SwimlaneNodes = new DiagramObjectCollection(); - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - - // Defines palette's connector collection - private DiagramObjectCollection connectorSymbols = new DiagramObjectCollection(); - [Inject] - protected IJSRuntime jsRuntime { get; set; } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - Diagram - }; - } - - protected override void OnInitialized() - { - GridLineIntervals = new double[] { - 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, - }; - ContextMenuItems = new List() - { - new ContextMenuItem(){ID="Copy", Text = "Copy", IconCss = "e-menu-icon e-icons e-copy"}, - new ContextMenuItem(){ID="Cut",Text = "Cut", IconCss = "e-menu-icon e-icons e-cut"}, - new ContextMenuItem(){ID="Paste",Text = "Paste", IconCss = "e-menu-icon e-icons e-paste"}, - new ContextMenuItem(){ID="InsertLaneBefore",Text = "Insert Lane Before", IconCss="e-menu-icon e-icons e-empty"}, - new ContextMenuItem(){ID="InsertLaneAfter",Text = "Insert Lane After", IconCss="e-menu-icon e-icons e-empty"} - }; - InitDiagramModel(); - InitPaletteModel(); - } - - private void ContextMenuOpening(DiagramMenuOpeningEventArgs args) - { - if (args.Items.Count > 0) - { - foreach (ContextMenuItem item in args.Items) - { - if ((Diagram.SelectionSettings.Nodes.Count + Diagram.SelectionSettings.Connectors.Count + Diagram.SelectionSettings.Swimlanes.Count + - Diagram.SelectionSettings.Lanes.Count + Diagram.SelectionSettings.Phases.Count) > 0) - { - if (item.ID == "InsertLaneBefore" || item.ID == "InsertLaneAfter") - { - if (Diagram.SelectionSettings.Lanes.Count == 0) - { - args.HiddenItems.Add(item.ID); - } - } - } - else - { - args.HiddenItems.Add(item.ID); - } - } - } - } - - private void ContextMenuItemClicked(DiagramMenuClickEventArgs args) - { - if (args.Item.ID == "InsertLaneBefore" || args.Item.ID == "InsertLaneAfter") - { - if(Diagram.SelectionSettings.Lanes.Count > 0) - { - Lane lane = Diagram.SelectionSettings.Lanes[0]; - Swimlane swimlaneObj = lane.GetParent() as Swimlane; - Swimlane swimlane = Diagram.GetObject(swimlaneObj.ID) as Swimlane; - Lane existingLane = swimlane.Lanes[0].Clone() as Lane; - int index = swimlane.Lanes.IndexOf(lane); - - Lane newLane = new Lane() - { - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation(){Content = "Function"}, - Width = existingLane.Header.Width, - Height = existingLane.Header.Height, - Style = existingLane.Header.Style - }, - Style = existingLane.Style, - Height = existingLane.Height, - Width = existingLane.Width - }; - - if(swimlane.Orientation == Orientation.Horizontal) - { - newLane.Header.Width = existingLane.Header.Width; - newLane.Header.Height = existingLane.Height; - } - else - { - newLane.Header.Width = existingLane.Width; - newLane.Header.Height = existingLane.Header.Height; - } - if (args.Item.ID == "InsertLaneBefore") - { - swimlane.Lanes.Insert(index, newLane); - } - else - { - swimlane.Lanes.Insert(index + 1, newLane); - } - Diagram.ClearSelection(); - } - } - else if (args.Item.ID == "Cut") - Diagram.Cut(); - else if (args.Item.ID == "Copy") - Diagram.Copy(); - else if (args.Item.ID == "Paste") - Diagram.Paste(); - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - - swimlanes = new DiagramObjectCollection() - { - new Swimlane() - { - ID = "swimlane", OffsetX = 400, OffsetY = 300, - Orientation = Orientation.Horizontal, - Height = 500, - Width = 650, - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation() - { - Content = "SALES PROCESS FLOW CHART" - }, - Height = 50, - Style = new TextStyle() - { - Fill = "#E7F4FF", StrokeColor = "#CCCCCC" - } - }, - Phases = new DiagramObjectCollection() - { - new Phase() - { - ID="phase", - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation(){ - Content = "Phase", - }, - Height = 20 - }, - Width = 650, - } - }, - Lanes = new DiagramObjectCollection() - { - new Lane(){ - ID = "lane1", - Height = 115, - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation(){ Content = "Consumer"}, Width=50, - Style = new TextStyle() - { - Fill = "#E7F4FF", StrokeColor = "#717171" - } - }, - Children = new DiagramObjectCollection() - { - new Node(){ ID = "node1", Height = 60, RotationAngle=0, Width = 130, LaneOffsetX = 130, LaneOffsetY = 65, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Consumer learns of product" } } }, - new Node(){ ID = "node2", Height = 90, Width = 160, LaneOffsetX = 320, LaneOffsetY = 55, Ports = CreatePort(), Shape = new FlowShape(){ Shape = NodeFlowShapes.Decision }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Does Consumer \n want the product" } } }, - new Node(){ ID = "node3", Height = 60, Width = 130, LaneOffsetX = 520, LaneOffsetY = 65, Ports = CreatePort(), - Shape = new PathShape(){ Data = "M100,20 C100,31.05,91.37,40,80.72,40 L19.28,40 C8.63,40,0,31.05,0,20 L0,20 C0,8.95,8.63,0,19.28,0 L80.72,0 C91.37,0,100,8.95,100,20 Z" }, - Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "No sales lead" } } }, - new Node(){ ID = "node4", Height = 60, Width = 130, LaneOffsetX = 680, LaneOffsetY = 65, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Sell to consumer" } } }, - }, - }, - new Lane(){ - Height = 115, - Header = new SwimlaneHeader(){ - Annotation = new ShapeAnnotation(){Content = "Marketing"}, Width=50, - Style = new TextStyle() - { - Fill = "#E7F4FF", StrokeColor = "#717171" - } - }, - Children = new DiagramObjectCollection() - { - new Node(){ ID = "node5", Height = 60, Width = 130, LaneOffsetX = 130, LaneOffsetY = 55, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Create marketing campaigns" } } }, - new Node(){ ID = "node6", Height = 60, Width = 130, LaneOffsetX = 320, LaneOffsetY = 55, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Marketing finds sales leads" } } } - }, - }, - new Lane(){ - Height = 115, - Header = new SwimlaneHeader(){ - Annotation = new ShapeAnnotation(){Content = "Sales"}, Width=50, - Style = new TextStyle() - { - Fill = "#E7F4FF", StrokeColor = "#717171" - } - }, - Children = new DiagramObjectCollection() - { - new Node(){ID = "node7", Height = 60, Width = 130, LaneOffsetX = 320, LaneOffsetY = 60, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Sales receives lead" } } }, - }, - }, - new Lane(){ - Height = 115, - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation(){Content = "Success"}, Width=50, - Style = new TextStyle() - { - Fill = "#E7F4FF", StrokeColor = "#717171" - } - }, - Children = new DiagramObjectCollection() - { - new Node(){ID = "node8", Height = 60, Width = 130, LaneOffsetX = 680, LaneOffsetY = 55, Ports = CreatePort(), Shape = new BasicShape(){ Shape = NodeBasicShapes.Rectangle }, Annotations = new DiagramObjectCollection(){ new ShapeAnnotation() { Content = "Success helps retain consumer as a customer" } } }, - }, - } - } - } - }; - - CreateConnector("node1", "node2"); - CreateConnector("node2", "node3", "No"); - CreateConnector("node2", "node6", "Yes"); - CreateConnector("node6", "node7"); - CreateConnector("node5", "node1"); - CreateConnector("node4", "node7", sport: "port1", tport: "port3"); - CreateConnector("node4", "node8"); - } - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - flowShapeSymbols = new DiagramObjectCollection(); - CreatePaletteNode(NodeFlowShapes.Terminator, "Terminator"); - CreatePaletteNode(NodeFlowShapes.Process, "Process"); - CreatePaletteNode(NodeFlowShapes.Decision, "Decision"); - CreatePaletteNode(NodeFlowShapes.Document, "Document"); - CreatePaletteNode(NodeFlowShapes.PreDefinedProcess, "Pre-Defined Process"); - CreatePaletteNode(NodeFlowShapes.Data, "Data"); - - //horizontal lane - Lane horizontalLane = new Lane() - { - ID = "HorizontalSwimlane", - Orientation = Orientation.Horizontal, - Height = 100, - Width = 150, - Style = new ShapeStyle() { StrokeColor = "#757575" }, - Header = new SwimlaneHeader() - { - Annotation = new ShapeAnnotation() { Content = "Function" }, - Style = new TextStyle() { Fill = "#E7F4FF", StrokeColor = "#757575" }, - Width = 50, - Height = 100 - }, - }; - - //vertical lane - Lane verticalLane = new Lane() - { - ID = "VerticalSwimlane", - Orientation = Orientation.Vertical, - Height = 150, - Width = 100, - Style = new ShapeStyle() { StrokeColor = "#757575" }, - Header = new SwimlaneHeader() { - Annotation = new ShapeAnnotation() { Content = "Function" }, - Style = new TextStyle() { Fill = "#E7F4FF", StrokeColor = "#757575" }, - Width = 100, Height = 50 - }, - }; - - //horizontal phase - Phase horizontalPhase = new Phase() { ID = "HorizontalPhase", Orientation = Orientation.Horizontal, Width = 80, Height = 1, Style = new ShapeStyle() { StrokeColor = "#717171", Fill = "#FFFFFF" } }; - - //vertical phase - Phase verticalPhase = new Phase() { ID = "VerticalPhase", Orientation = Orientation.Vertical, Width = 1, Height = 80, Style = new ShapeStyle() { StrokeColor = "#717171", Fill = "#FFFFFF" } }; - - SwimlaneNodes = new DiagramObjectCollection() - { - horizontalLane, - verticalLane, - horizontalPhase, - verticalPhase - }; - - connectorSymbols = new DiagramObjectCollection(); - CreatePaletteConnector("Link1", ConnectorSegmentType.Orthogonal, new DiagramPoint() { X = 40, Y = 40}); - CreatePaletteConnector("Link2", ConnectorSegmentType.Orthogonal, new DiagramPoint() { X = 40, Y = 40 }, "4 4"); - CreatePaletteConnector("Link21", ConnectorSegmentType.Straight, new DiagramPoint() { X = 60, Y = 60 }); - CreatePaletteConnector("Link22", ConnectorSegmentType.Straight, new DiagramPoint() { X = 60, Y = 60 }, "4 4"); - - palettes = new DiagramObjectCollection() - { - @*Hidden:Lines*@ - #pragma warning disable BL0005 - @*End:Hidden*@ - new Palette() {Symbols = flowShapeSymbols, Title = "Flow Shapes", ID = "Flow Shapes"}, - new Palette() {Symbols = SwimlaneNodes, Title = "Swimlane Shapes", ID = "Swimlane Shapes"}, - new Palette() {Symbols = connectorSymbols, Title = "Connectors", IsExpanded = true}, - @*Hidden:Lines*@ - #pragma warning restore BL0005 - @*End:Hidden*@ - }; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if (node != null) - { - node.Style.StrokeColor = "#717171"; - } - if(obj is Swimlane swimlane) - { - swimlane.Header.Style = new TextStyle() - { - Fill = "#E7F4FF", - StrokeColor = "#717171" - }; - foreach (Phase phase in swimlane.Phases) - { - phase.Style = new ShapeStyle() { StrokeColor = "#717171", Fill = "#FFFFFF" }; - } - foreach (Lane lane in swimlane.Lanes) - { - lane.Style = new ShapeStyle() { StrokeColor = "#717171", Fill = "#F9F9F9" }; - } - } - } - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - if(connector.ID.IndexOf("Link21") != -1) - { - connector.Type = ConnectorSegmentType.Straight; - } - else if (connector.ID.IndexOf("Link22") != -1) - { - connector.Type = ConnectorSegmentType.Straight; - } - else - { - connector.Type = ConnectorSegmentType.Orthogonal; - } - connector.Style.StrokeColor = "#717171"; - connector.SourceDecorator.Style.StrokeColor = "#717171"; - connector.TargetDecorator.Style.StrokeColor = "#717171"; - connector.SourceDecorator.Style.Fill = "#717171"; - connector.TargetDecorator.Style.Fill = "#717171"; - } - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeFlowShapes flowShape, string id) - { - string NodeID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - NodeID = id.Replace(" ", ""); - } - Node diagramNode = new Node() - { - ID = NodeID, - Shape = new FlowShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Flow, Shape = flowShape }, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - if (isSpace) - { - diagramNode.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramNode.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - if (id == "Terminator" || id == "Process") - { - diagramNode.Width = 80; - diagramNode.Height = 40; - } - else if (id == "Decision" || id == "Document" || id == "PreDefined Process" || id == "Data") - { - diagramNode.Width = 50; - diagramNode.Height = 40; - } - else - { - diagramNode.Width = 50; - diagramNode.Height = 50; - } - double oldWidth = Convert.ToDouble(diagramNode.Width); - double oldHeight = Convert.ToDouble(diagramNode.Height); - double ratio = 100 / oldWidth; - diagramNode.Width = 100; - diagramNode.Height *= ratio; - flowShapeSymbols.Add(diagramNode); - } - - private void DragDrop(DropEventArgs args) - { - if(args.Element != null && args.Element is Lane lane) - { - if(lane.Orientation == Orientation.Horizontal) - { - lane.Height = 100; lane.Width = 400; - } - else if(lane.Orientation == Orientation.Vertical) - { - lane.Height = 400; lane.Width = 100; - } - } - - } - // used to create a Port. - private DiagramObjectCollection CreatePort() - { - DiagramObjectCollection defaultsPorts = new DiagramObjectCollection(); - PointPort port1 = new PointPort() - { - ID = "port1", - Shape = PortShapes.Square, - Offset = new DiagramPoint() { X = 0, Y = 0.5 }, - Visibility = PortVisibility.Connect | PortVisibility.Hover, - Constraints = PortConstraints.Default | PortConstraints.Draw - }; - PointPort port2 = new PointPort() - { - ID = "port2", - Shape = PortShapes.Square, - Offset = new DiagramPoint() { X = 0.5, Y = 0 }, - Visibility = PortVisibility.Connect | PortVisibility.Hover, - Constraints = PortConstraints.Default | PortConstraints.Draw - }; - PointPort port3 = new PointPort() - { - ID = "port3", - Shape = PortShapes.Square, - Offset = new DiagramPoint() { X = 1, Y = 0.5 }, - Visibility = PortVisibility.Connect | PortVisibility.Hover, - Constraints = PortConstraints.Default | PortConstraints.Draw - }; - PointPort port4 = new PointPort() - { - ID = "port4", - Shape = PortShapes.Square, - Offset = new DiagramPoint() { X = 0.5, Y = 1 }, - Visibility = PortVisibility.Connect | PortVisibility.Hover, - Constraints = PortConstraints.Default | PortConstraints.Draw - }; - defaultsPorts.Add(port1); - defaultsPorts.Add(port2); - defaultsPorts.Add(port3); - defaultsPorts.Add(port4); - return defaultsPorts; - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string sourceId, string targetId, string label = default(string), bool isDashLine = false, string sport = "", string tport = "") - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++connectorCount), - SourceID = sourceId, - TargetID = targetId, - SourcePortID = sport, - TargetPortID = tport - }; - if (isDashLine) - { - diagramConnector.Style = new ShapeStyle() { StrokeDashArray = "2,2" }; - } - if (label != default(string)) - { - var annotation = new PathAnnotation() - { - Content = label, - Style = new TextStyle() { Fill = "white" } - }; - if ((sourceId == "node5" && targetId == "node6") || label == "Yes" || label == "No") - { - annotation.Height = 10; - annotation.Width = 15; - } - diagramConnector.Annotations = new DiagramObjectCollection() { annotation }; - } - diagramConnector.Type = ConnectorSegmentType.Orthogonal; - - connectors.Add(diagramConnector); - } - // Method is used to create a Connector for the palette. - private void CreatePaletteConnector(string id, ConnectorSegmentType type, DiagramPoint targetPoint, string dasharray = null) - { - string connectorID = id; - bool isSpace = id.Contains(" "); - if (isSpace) - { - connectorID = id.Replace(" ", ""); - } - Connector diagramConnector = new Connector() - { - ID = connectorID, - Type = type, - SourcePoint = new DiagramPoint(){X = 0, Y = 0}, - TargetPoint = targetPoint, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1, StrokeDashArray = !string.IsNullOrEmpty(dasharray) ? dasharray : string.Empty }, - TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.Arrow, - Style = new ShapeStyle() { StrokeColor = "#757575", Fill = "#757575" } - } - }; - if (isSpace) - { - diagramConnector.Tooltip = new DiagramTooltip() - { - Content = id, - }; - diagramConnector.Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip; - } - connectorSymbols.Add(diagramConnector); - } - - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - if (SymbolMargin != null) - { - SymbolMargin = null; - } - Diagram = null; - PaletteInstance = null; - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - if (swimlanes != null) - { - swimlanes.Clear(); - swimlanes = null; - } -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } -#pragma warning restore BL0005 - if (flowShapeSymbols != null) - { - flowShapeSymbols.Clear(); - flowShapeSymbols = null; - } - if (GridLineIntervals != null) - { - Array.Clear(GridLineIntervals, 0, GridLineIntervals.Length); - GridLineIntervals = null; - } - if (connectorSymbols != null) - { - connectorSymbols.Clear(); - connectorSymbols = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/SymbolPalette.razor b/Common/Pages/DiagramComponent/DiagramComponent/SymbolPalette.razor deleted file mode 100644 index eff9adb6..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/SymbolPalette.razor +++ /dev/null @@ -1,633 +0,0 @@ -@page "/diagramcomponent/symbolpalette" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.DropDowns -@*End:Hidden*@ -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SymbolExpandMode = Syncfusion.Blazor.Navigations.ExpandMode -@using ButtonChangeArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs -@*Hidden:Lines*@ -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This example illustrates predefining shapes in a palette that can be easily dragged and dropped into the drawing area. Customizable options of the symbol palette are also illustrated in this example.

-
- -

This example shows how to add shapes to the symbol palette and customize it. The Symbols is used to add shapes to the symbol palette. The SymbolWidth and SymbolHeight is used to define the size of the symbols.

-

In this example, options to enable/disable animation, show/hide symbol descriptions, show header icons and a search option that allows users to search for symbols based on their id and search tags.

-
-@*End:Hidden*@ - -
- @*Hidden:Lines*@ -
- -
- @*Hidden:Lines*@ -
-
-
- @*End:Hidden*@ - @*End:Hidden*@ -
- - -
-
- - - - - - - - - - - - - - -
- @*Hidden:Lines*@ -
-
-
-
- Properties -
-
-
- Expandable -
-
- - - - -
-
-
-
- Symbol Size -
-
- - - -
-
-
-
- Header Icon -
-
- -
-
-
-
- Item Text -
-
- -
-
-
-
- Animation -
-
- -
-
-
-
- Show Search TextBox -
-
- -
-
-
- @*End:Hidden*@ -
- -@code{ - @*Hidden:Lines*@ - - private int? index { get; set; } = 1; - SfDropDownList expandDropDown; - public int? sizeChangeValue { get; set; } = 75; - bool icon = true; - bool text = true; - bool animation = true; - bool searchbox = true; - @*End:Hidden*@ - DiagramSize symbolDragPreviewSize; - SymbolExpandMode paletteExpandMode = SymbolExpandMode.Multiple; - SymbolInfo SymbolInfo = new SymbolInfo(); - public SfDiagramComponent Diagram; - SfSymbolPaletteComponent palette; - public DiagramObjectCollection palettes; - double symbolHeight = 75; - double symbolWidth = 75; - public DiagramObjectCollection basicShapes { get; set; } - public DiagramObjectCollection connectors { get; set; } - public DiagramObjectCollection flowShapes { get; set; } - // Defines interval values for GridLines - public double[] GridLineIntervals { get; set; } - //Defines Diagram's Nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines Diagram's Connectors collection - private DiagramObjectCollection diagramConnectors = new DiagramObjectCollection(); - [Inject] - protected IJSRuntime jsRuntime { get; set; } - @*Hidden:Lines*@ - public class ExpandModevalue - { - public string Text { get; set; } - public string Value { get; set; } - } - - private List ExpandMode = new List() - { - new ExpandModevalue { Text ="Single", Value= "Single" }, - new ExpandModevalue { Text = "Multiple", Value = "Multiple" }, - }; - - public void ExpandModeChange(ChangeEventArgs args) - { - this.paletteExpandMode = args.ItemData.Value == "Single" ? SymbolExpandMode.Single : SymbolExpandMode.Multiple; - } - - private void SizeChange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - this.symbolWidth = double.Parse(args.Value.ToString()); - this.symbolHeight = double.Parse(args.Value.ToString()); - this.sizeChangeValue = int.Parse(args.Value.ToString()); - } - - private void IconChange(Syncfusion.Blazor.Buttons.ChangeEventArgs args) - { - for (var i = 0; i < palettes.Count; i++) - { - this.icon = args.Checked; - if (args.Checked) - { - if (i == 0) - { - palettes[i].IconCss = "e-ddb-icons e-basic"; - } - else if (i == 1) - { - palettes[i].IconCss = "e-ddb-icons e-flow"; - } - else if (i == 2) - { - palettes[i].IconCss = "e-ddb-icons e-connector"; - } - } - else - { - palettes[i].IconCss = ""; - } - } - } - - private void TextChange(ButtonChangeArgs args) - { - palette.RefreshSymbols(); - } - private void AnimationChange(ButtonChangeArgs args) - { - animation = args.Checked; - } - private void SearchBoxChange(ButtonChangeArgs args) - { - searchbox=args.Checked; - } - @*End:Hidden*@ - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - palette.Targets = new DiagramObjectCollection - { - Diagram - }; - } - - protected override void OnInitialized() - { - - symbolDragPreviewSize = new DiagramSize(); - symbolDragPreviewSize.Width = 80; - symbolDragPreviewSize.Height = 80; - GridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - InitializePalatte(); - } - - private void InitializePalatte() - { - palettes = new DiagramObjectCollection(); - - // palette which contains basic shape nodes - basicShapes = new DiagramObjectCollection - { - CreateBasicNode("Rectangle",NodeBasicShapes.Rectangle), - CreateBasicNode("Ellipse",NodeBasicShapes.Ellipse), - CreateBasicNode("Diamond",NodeBasicShapes.Diamond), - CreateBasicNode("Triangle",NodeBasicShapes.Triangle), - CreateBasicNode("Hexagon",NodeBasicShapes.Hexagon), - CreateBasicNode("Pentagon",NodeBasicShapes.Pentagon), - CreateBasicNode("Cylinder",NodeBasicShapes.Cylinder), - CreateBasicNode("Star",NodeBasicShapes.Star), - CreateBasicNode("Octagon",NodeBasicShapes.Octagon), - CreateBasicNode("Plus",NodeBasicShapes.Plus), - CreateBasicNode("Heptagon",NodeBasicShapes.Heptagon), - }; - - // palette which contains connectors - connectors = new DiagramObjectCollection() - { - CreateConnector("link1",ConnectorSegmentType.Orthogonal,DecoratorShape.Arrow), - CreateConnector("link2",ConnectorSegmentType.Orthogonal,DecoratorShape.None), - CreateConnector("link3",ConnectorSegmentType.Straight,DecoratorShape.Arrow), - CreateConnector("link4",ConnectorSegmentType.Straight,DecoratorShape.None), - CreateConnector("link5",ConnectorSegmentType.Bezier,DecoratorShape.None), - CreateConnector("link6",ConnectorSegmentType.Bezier, DecoratorShape.Arrow) - - }; - - // palette which contains flow shape nodes - flowShapes = new DiagramObjectCollection() - { - CreateFlowNode("Terminator",NodeFlowShapes.Terminator), - CreateFlowNode("Process",NodeFlowShapes.Process), - CreateFlowNode("Sort",NodeFlowShapes.Sort), - CreateFlowNode("Document",NodeFlowShapes.Document), - CreateFlowNode("Display",NodeFlowShapes.Display), - CreateFlowNode("PaperTap",NodeFlowShapes.PaperTap), - CreateFlowNode("Delay",NodeFlowShapes.Delay), - CreateFlowNode("Data",NodeFlowShapes.Data), - CreateFlowNode("Card",NodeFlowShapes.Card), - CreateFlowNode("Collate",NodeFlowShapes.Collate), - CreateFlowNode("Decision",NodeFlowShapes.Decision), - }; - - #pragma warning disable BL0005 - palettes.Add( - new Palette() - { - ID = "BasicShape", - IsExpanded = true, - Symbols = basicShapes, - Title = "Basic Shapes", - IconCss = "e-ddb-icons e-basic" - } - ); - palettes.Add( - new Palette() - { - ID = "FlowShape", - IsExpanded = true, - Symbols = flowShapes, - Title = "Flow Shapes", - IconCss = "e-ddb-icons e-flow" - } - ); - palettes.Add( - new Palette() - { - ID = "Connectors", - IsExpanded = true, - Symbols = connectors, - Title = "Connectors", - IconCss = "e-ddb-icons e-connector" - } - ); - #pragma warning restore BL0005 - } - - private SymbolInfo GetSymbolInfo(IDiagramObject symbol) - { - string description = symbol is Node ? (symbol as Node).ID : (symbol as Connector).ID; - if (text) - { - SymbolInfo.Description = new SymbolDescription() { Text = description, TextOverflow = TextOverflow.Wrap }; - } - else - { - SymbolInfo.Description = new SymbolDescription() { Text = "", TextOverflow = TextOverflow.Wrap }; - } - return SymbolInfo; - } - - // Method to create basic shape node - private Node CreateBasicNode(string id, NodeBasicShapes type) - { - Node node = new Node() - { - ID = id, - Shape = new BasicShape() - { - Type = shapes.Basic, - Shape = type - }, - SearchTags = new List() {"Basic" }, - Style = new ShapeStyle() { StrokeWidth = 2, StrokeColor = "#757575" } - }; - return node; - } - - // Method to create flow shape node - private Node CreateFlowNode(string id, NodeFlowShapes type) - { - Node node = new Node() - { - ID = id, - Shape = new FlowShape() - { - Type = shapes.Flow, - Shape = type - }, - SearchTags = new List() {"flow" }, - Style = new ShapeStyle() { StrokeWidth = 2, StrokeColor = "#757575" } - }; - return node; - } - - // Method to create connector - private Connector CreateConnector(string id, ConnectorSegmentType type, DecoratorShape shape) - { - Connector connector = new Connector() - { - ID = id, - Type = type, - SearchTags = new List() {"connector" }, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 40, Y = 40 }, - TargetDecorator = new DecoratorSettings() - { - Shape = shape, - Style = new ShapeStyle() { StrokeColor = "#757575", Fill = "#757575" } - }, - Style = new ShapeStyle() { StrokeWidth = 2, StrokeColor = "#757575" } - }; - return connector; - } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - #pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - palettes[i].IconCss = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } - #pragma warning restore BL0005 - if (flowShapes != null) - { - flowShapes.Clear(); - flowShapes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - if (basicShapes != null) - { - basicShapes.Clear(); - basicShapes = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/TooltipSample.razor b/Common/Pages/DiagramComponent/DiagramComponent/TooltipSample.razor deleted file mode 100644 index 1d008191..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/TooltipSample.razor +++ /dev/null @@ -1,765 +0,0 @@ -@page "/diagramcomponent/tooltip" - -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Popups -@using Syncfusion.Blazor.Inputs -@using Syncfusion.Blazor.Buttons -@implements IDisposable -@using ButtonChangeArgs = Syncfusion.Blazor.Buttons.ChangeEventArgs -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample shows how to add information to nodes and connectors in a diagram and how to display it using common user interface elements.

-
- -

You can add DiagramTooltip to both nodes and connectors. Customize their appearance by controlling Animation , Position , and effects through the tooltip settings. You can set either text or an HTML element as the content of the tooltip. Each node and connector can have its own unique tooltip settings.


-
-@*End:Hidden*@ -
-
- - - - -
- - @*Hidden:Lines*@ - - -
-
- Tooltip settings -
-
- -
-
- Position -
-
- - - - -
-
-
-
- Animation -
-
- - - -
-
-
-
- Effect -
-
- - - - -
-
-
-
- Sticky Mode -
-
- - -
-
-
-
- -
- -@*End:Hidden*@ - -@code -{ - @*Hidden:Lines*@ - - string position = "BottomRight"; - string EffectValue = "FadeZoomIn"; - bool positionValue = true; - bool effectValue = true; - int? AnimationValue = 100; - private bool sticky = false; - @*End:Hidden*@ - public SfDiagramComponent Diagram; - // Defines diagram's nodes collection - public DiagramObjectCollection nodes { get; set; } - - // Defines diagram's connector collection - public DiagramObjectCollection connectors { get; set; } - - AnimationModel animationModel = new AnimationModel() - { - Open = new TooltipAnimationSettings() { Effect = Effect.FadeZoomIn, Duration = 100 }, - Close = new TooltipAnimationSettings() { Effect = Effect.FadeZoomIn, Duration = 100 } - }; - DiagramTooltip diagramTooltip; - - private void EnableSticky(ButtonChangeArgs value) - { - sticky = value.Checked; - if ((bool)sticky) - { - foreach (Node node in Diagram.Nodes) - { - diagramTooltip = node.Tooltip; - diagramTooltip.IsSticky = true; - } - foreach (Connector connector in Diagram.Connectors) - { - diagramTooltip = connector.Tooltip; - diagramTooltip.IsSticky = true; - } - } - else - { - foreach (Node node in Diagram.Nodes) - { - diagramTooltip = node.Tooltip; - diagramTooltip.IsSticky = false; - } - foreach (Connector connector in Diagram.Connectors) - { - diagramTooltip = connector.Tooltip; - diagramTooltip.IsSticky = false; - } - } - - } - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - connector.Type = ConnectorSegmentType.Orthogonal; - connector.Style = new ShapeStyle() - { - StrokeWidth = 2 - }; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Constraints = NodeConstraints.Default | NodeConstraints.Tooltip; - } - protected override void OnInitialized() - { - InitDiagramModel(); - } - private void OnCreated() - { - FitOptions options = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(options); - } - - @*Hidden:Lines*@ - public class TooltipPosition - { - public string Name { get; set; } - public string Value { get; set; } - } - private List TooltipPositionLists = new List() { - new TooltipPosition() { Name ="Top Left" , Value="TopLeft"}, - new TooltipPosition() { Name ="Top Center", Value="TopCenter" }, - new TooltipPosition() { Name ="Top Right", Value="TopRight" }, - new TooltipPosition() { Name ="Bottom Left", Value="BottomLeft"}, - new TooltipPosition() { Name ="Bottom Center", Value="BottomCenter" }, - new TooltipPosition() { Name ="Bottom Right", Value="BottomRight" }, - new TooltipPosition() { Name ="Left Top", Value="LeftTop"}, - new TooltipPosition() { Name ="Left Center", Value="LeftCenter" }, - new TooltipPosition() { Name ="Left Bottom", Value="LeftBottom" }, - new TooltipPosition() { Name ="Right Top", Value="RightTop"}, - new TooltipPosition() { Name ="Right Center", Value="RightCenter"}, - new TooltipPosition() { Name ="Right Bottom", Value="RightBottom" }, - }; - public class Effects - { - public string Name { get; set; } - public string Value { get; set; } - } - private List EffectLists = new List() - { - new Effects() { Name = "Fade In", Value="FadeIn" }, - new Effects() { Name = "Fade Out", Value="FadeOut" }, - new Effects() { Name = "Fade Zoom In", Value="FadeZoomIn" }, - new Effects() { Name = "Fade Zoom Out", Value="FadeZoomOut" }, - new Effects() { Name = "FlipX Down In", Value="FlipXDownIn" }, - new Effects() { Name = "FlipX Down Out", Value="FlipXDownOut" }, - new Effects() { Name = "FlipX Up In", Value="FlipXUpIn" }, - new Effects() { Name = "FlipX Up Out", Value="FlipXUpOut" }, - new Effects() { Name = "FlipY Left In", Value="FlipYLeftIn" }, - new Effects() { Name = "FlipY Left Out", Value="FlipYLeftOut" }, - new Effects() { Name = "FlipY Right In", Value="FlipYRightIn" }, - new Effects() { Name = "FlipY Right Out", Value="FlipYRightOut" }, - new Effects() { Name = "None", Value="None" } - }; - public void PositionChange(ChangeEventArgs args) - { - foreach (Node node in Diagram.Nodes) - { - node.Tooltip.Position = (Position)Enum.Parse(typeof(Position), args.Value); - } - foreach (Connector connector in Diagram.Connectors) - { - connector.Tooltip.Position = (Position)Enum.Parse(typeof(Position), args.Value); - } - } - public void Animationchange(Syncfusion.Blazor.Inputs.ChangeEventArgs args) - { - foreach (Node node in Diagram.Nodes) - { - diagramTooltip = node.Tooltip; - diagramTooltip.AnimationSettings.Open.Duration = (int)args.Value; - diagramTooltip.AnimationSettings.Close.Duration = (int)args.Value; - } - foreach (Connector connector in Diagram.Connectors) - { - diagramTooltip = connector.Tooltip; - diagramTooltip.AnimationSettings.Open.Duration = (int)args.Value; - diagramTooltip.AnimationSettings.Close.Duration = (int)args.Value; - } - } - public void ChangeEffect(ChangeEventArgs args) - { - foreach (Node node in Diagram.Nodes) - { - diagramTooltip = node.Tooltip; - diagramTooltip.AnimationSettings.Open.Effect = (Effect)Enum.Parse(typeof(Effect), args.Value); - diagramTooltip.AnimationSettings.Close.Effect = (Effect)Enum.Parse(typeof(Effect), args.Value); - } - foreach (Connector connector in Diagram.Connectors) - { - diagramTooltip = connector.Tooltip; - diagramTooltip.AnimationSettings.Open.Effect = (Effect)Enum.Parse(typeof(Effect), args.Value); - diagramTooltip.AnimationSettings.Close.Effect = (Effect)Enum.Parse(typeof(Effect), args.Value); - } - } - @*End:Hidden*@ - private void InitDiagramModel() - { - - nodes = new DiagramObjectCollection(); - connectors = new DiagramObjectCollection(); - Node node = new Node() - { - ID = "node1", - Width = 60, - Height = 60, - OffsetX = 35, - OffsetY = 120, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Customer query", - Offset = new DiagramPoint(0.5, 1), - Margin = new DiagramThickness() { Top = 15 } - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Queries from the customer", - AnimationSettings = animationModel, - }, - Shape = new BpmnEvent() - { - Trigger = BpmnEventTrigger.Message, - EventType = BpmnEventType.Start, - }, - }; - Node node2 = new Node() - { - ID = "node2", - Width = 75, - Height = 70, - OffsetX = 140, - OffsetY = 120, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Enough details?", - Offset = new DiagramPoint(0.50, 0.50), - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Whether the provided information is enough?", - AnimationSettings = animationModel, - }, - Shape = new BpmnGateway() - { - GatewayType = BpmnGatewayType.None - }, - }; - Node node3 = new Node() - { - ID = "node3", - Width = 60, - Height = 50, - OffsetX = 270, - OffsetY = 120, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Analyse", - Offset = new DiagramPoint(0.50, 0.50), - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Analysing the query", - AnimationSettings = animationModel, - }, - Shape = new BpmnActivity() - { - ActivityType = BpmnActivityType.Task, - }, - }; - Node node4 = new Node() - { - ID = "node4", - Width = 75, - Height = 70, - OffsetX = 370, - OffsetY = 120, - Tooltip = new DiagramTooltip() - { - Content = "proceed to validate?", - AnimationSettings = animationModel, - }, - Shape = new BpmnGateway() - { - GatewayType = BpmnGatewayType.Exclusive - } - }; - Node node5 = new Node() - { - ID = "node5", - Width = 75, - Height = 70, - OffsetX = 570, - OffsetY = 120, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Validate", - Offset = new DiagramPoint(0.50, 0.50), - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Whether the reported/requested bug/feature is valid?", - AnimationSettings = animationModel, - }, - Shape = new BpmnGateway() - { - GatewayType = BpmnGatewayType.None - } - }; - Node node6 = new Node() - { - ID = "node6", - Width = 60, - Height = 60, - OffsetX = 720, - OffsetY = 120, - Tooltip = new DiagramTooltip() - { - Content = "Send the invalid message to customer", - AnimationSettings = animationModel, - }, - Shape = new BpmnEvent() - { - Trigger = BpmnEventTrigger.Message, - EventType = BpmnEventType.End - }, - }; - Node node7 = new Node() - { - ID = "node7", - Width = 60, - Height = 50, - OffsetX = 140, - OffsetY = 280, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Request", - Offset = new DiagramPoint(0.50, 0.50), - Margin = new DiagramThickness() { Top = 15 } - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Requesting for more information", - AnimationSettings = animationModel, - }, - Shape = new BpmnActivity() - { - ActivityType = BpmnActivityType.Task, - TaskType = BpmnTaskType.Send - }, - }; - Node node8 = new Node() - { - ID = "node8", - Width = 60, - Height = 60, - OffsetX = 370, - OffsetY = 280, - Tooltip = new DiagramTooltip() - { - Content = "Share the User Guide/Knowledge Base link", - AnimationSettings = animationModel, - }, - Shape = new BpmnEvent() - { - Trigger = BpmnEventTrigger.Message, - EventType = BpmnEventType.Start - }, - }; - Node node9 = new Node() - { - ID = "node9", - Width = 70, - Height = 50, - OffsetX = 570, - OffsetY = 280, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Log bug/feature", - Offset = new DiagramPoint(0.50, 0.50), - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Log the bug/feature", - AnimationSettings = animationModel, - }, - Shape = new BpmnActivity() - { - ActivityType = BpmnActivityType.Task, - }, - }; - Node node10 = new Node() - { - ID = "node10", - Width = 75, - Height = 55, - OffsetX = 390, - OffsetY = 430, - Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = "Implement", - Offset = new DiagramPoint(0.50, 0.50), - } - }, - Tooltip = new DiagramTooltip() - { - Content = "Fix the bug/Add the feature", - AnimationSettings = animationModel, - }, - Shape = new BpmnExpandedSubProcess(), - }; - Node node12 = new Node() - { - ID = "node12", - Width = 60, - Height = 60, - OffsetX = 265, - OffsetY = 430, - Tooltip = new DiagramTooltip() - { - Content = "Provide the solution", - AnimationSettings = animationModel, - }, - Shape = new BpmnEvent() - { - Trigger = BpmnEventTrigger.Message, - EventType = BpmnEventType.End - }, - }; - Node node13 = new Node() - { - ID = "node13", - Width = 60, - Height = 60, - OffsetX = 720, - OffsetY = 430, - Tooltip = new DiagramTooltip() - { - Content = "Share the task details", - AnimationSettings = animationModel, - }, - Shape = new BpmnEvent() - { - Trigger = BpmnEventTrigger.Message, - EventType = BpmnEventType.End - }, - }; - Node node14 = new Node() - { - ID = "node14", - Width = 60, - Height = 60, - OffsetX = 570, - OffsetY = 430, - Tooltip = new DiagramTooltip() - { - Content = "can log?", - AnimationSettings = animationModel, - }, - Shape = new BpmnGateway() - { - GatewayType = BpmnGatewayType.Parallel - } - }; - nodes.Add(node); - nodes.Add(node2); - nodes.Add(node3); - nodes.Add(node4); - nodes.Add(node5); - nodes.Add(node6); - nodes.Add(node7); - nodes.Add(node8); - nodes.Add(node9); - nodes.Add(node10); - nodes.Add(node12); - nodes.Add(node13); - nodes.Add(node14); - - Connector connector = new Connector() - { - ID = "connector1", - SourceID = "node1", - TargetID = "node2", - Tooltip = new DiagramTooltip() { Content = "Receive query", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector2 = new Connector() - { - ID = "connector2", - SourceID = "node2", - TargetID = "node3", - Tooltip = new DiagramTooltip() { Content = "Sufficient details", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector3 = new Connector() - { - ID = "connector3", - SourceID = "node3", - TargetID = "node4", - Tooltip = new DiagramTooltip() { Content = "Analysed details", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector4 = new Connector() - { - ID = "connector4", - SourceID = "node4", - TargetID = "node5", - Annotations = new DiagramObjectCollection() - { - new PathAnnotation() - { - Content = "Feature/Bug", - Offset = 0.5, - Style = new TextStyle() - { - Fill = "white", - TextWrapping= TextWrap.Wrap - } - - } - }, - Tooltip = new DiagramTooltip() { Content = "Feature/Bug identified", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector5 = new Connector() - { - ID = "connector5", - SourceID = "node5", - TargetID = "node6", - Annotations = new DiagramObjectCollection() - { - new PathAnnotation() - { - Content = "Invalid", - Offset = 0.5, - Style = new TextStyle() - { - Fill = "white", - } - } - }, - Tooltip = new DiagramTooltip() { Content = "Invalid query", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector6 = new Connector() - { - ID = "connector6", - SourceID = "node2", - TargetID = "node7", - Tooltip = new DiagramTooltip() { Content = "Insufficient details", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector7 = new Connector() - { - ID = "connector7", - SourceID = "node4", - TargetID = "node8", - Annotations = new DiagramObjectCollection() - { - new PathAnnotation() - { - Content = "How to?", - Offset = 0.5, - Style = new TextStyle() - { - Fill = "white", - } - } - }, - Tooltip = new DiagramTooltip() { Content = "Guidance required", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector8 = new Connector() - { - ID = "connector8", - SourceID = "node5", - TargetID = "node9", - Tooltip = new DiagramTooltip() { Content = "Valid query", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector9 = new Connector() - { - ID = "connector9", - SourceID = "node14", - TargetID = "node13", - Tooltip = new DiagramTooltip() { Content = "Task completed", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector10 = new Connector() - { - ID = "connector10", - SourceID = "node7", - TargetID = "node3", - Type = ConnectorSegmentType.Orthogonal, - Segments = new DiagramObjectCollection() - { - new OrthogonalSegment() - { - Length=100, - Direction=Direction.Right - }, - new OrthogonalSegment() - { - Length=100, - Direction=Direction.Top - } - }, - Tooltip = new DiagramTooltip() { Content = "Resubmitted details", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector11 = new Connector() - { - ID = "connector11", - SourceID = "node14", - TargetID = "node10", - Tooltip = new DiagramTooltip() { Content = "Proceed to implementation", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector12 = new Connector() - { - ID = "connector12", - SourceID = "node10", - TargetID = "node12", - Tooltip = new DiagramTooltip() { Content = "Solution provided", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - Connector connector13 = new Connector() - { - ID = "connector13", - SourceID = "node9", - TargetID = "node14", - Tooltip = new DiagramTooltip() { Content = "Log and proceed", AnimationSettings = animationModel }, - Constraints = ConnectorConstraints.Default | ConnectorConstraints.Tooltip, - }; - connectors.Add(connector); - connectors.Add(connector2); - connectors.Add(connector3); - connectors.Add(connector4); - connectors.Add(connector5); - connectors.Add(connector6); - connectors.Add(connector7); - connectors.Add(connector8); - connectors.Add(connector9); - connectors.Add(connector10); - connectors.Add(connector11); - connectors.Add(connector12); - connectors.Add(connector13); - } - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/UMLActivityDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/UMLActivityDiagram.razor deleted file mode 100644 index 4ab4cd05..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/UMLActivityDiagram.razor +++ /dev/null @@ -1,645 +0,0 @@ -@page "/diagramcomponent/uml-activity" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample represents the message flow from one activity to another in customer service using UML activity shapes. The shapes for the UML activity were designed with the Diagram's path node feature.

-
- -

This example shows how to create UML activity shapes using diagram Path shapes. The Type property of a shape can be used to create Path nodes. The Data property of a shape allows you to define the path data of the path shape.


-
-@*End:Hidden*@ - -@*Hidden:Lines*@ -
- - - -
-
-
-
- @*End:Hidden*@ -
- - -
-
-
- - - -
-
- @*Hidden:Lines*@ -
-
-@*End:Hidden*@ - -@code -{ - public SfDiagramComponent Diagram; - public DiagramSize SymbolPreview; - public SfSymbolPaletteComponent PaletteInstance; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 10, Right = 10, Top = 10, Bottom = 10 }; - - @*Hidden:Lines*@ - double centerX; - double middle; - double left; - double right; - //uml shapes path value - private string actionPath; - private string decisionPath; - private string mergeNodePath; - private string initialNodePath; - private string finalNodePath; - private string forkNodePath; - private string joinNodePath; - private string timeEventPath; - private string acceptingEventPath; - private string sendSignalPath; - private string receiveSignalPath; - private string structuredNodePath; - private string notePath; - @*End:Hidden*@ - - //Defines Diagram's nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines Diagram's connectors collection - private DiagramObjectCollection connectors = new DiagramObjectCollection(); - - //Define palettes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection umlShapeSymbols = new DiagramObjectCollection(); - - // Defines palette's connector collection - private DiagramObjectCollection connectorSymbols = new DiagramObjectCollection(); - - - protected override void OnInitialized() - { - - //change offset vales - centerX = 340; - middle = centerX - 50; - left = middle - 120; - right = middle + 120; - - //Initialize uml shapes path values - actionPath = "M 90 82.895 C 90 86.819 86.776 90 82.8 90 H 7.2 C 3.224 90 0 86.819 0 82.895" + " V 7.105 C 0 3.181 3.224 0 7.2 0 h 75.6 C 86.776 0 90 3.181 90 7.105 V 82.895 Z"; - decisionPath = "M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z"; - mergeNodePath = "M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z"; - initialNodePath = "M10,19.5c-5.238,0-9.5-4.262-9.5-9.5S4.762,0.5,10,0.5s9.5,4.262,9.5,9.5S15.238,19.5,10,19.5z"; - finalNodePath = "M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25" + " C 50 38.79 38.78 50 25 50"; - forkNodePath = "m0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z"; - joinNodePath = "m0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z"; - timeEventPath = "M50.001,0.00286865 L25.001,25.0029 L0.000976562,0.00286865 L50.001,0.00286865 z" + " M0.000976562,50.0029 L25.001,25.0029 L50.001,50.0029 L0.000976562,50.0029 z"; - acceptingEventPath = "M17.8336 32.164 L29.64 24 L17.32 16 L48.1664 16 L48.5 32 Z"; - sendSignalPath = "M48.164 31.8336 L56 23.832 L47.836 16 L16.168 16 L16.1668 31.8336 Z"; - receiveSignalPath = "M48.1664 31.8336 L39.836 24 L47.836 16 L16.168 16 L16.168 31.836 Z"; - structuredNodePath = "M0,0 L50,0 L50,50 L0,50 z"; - notePath = "M20 12 L4 12 L4 22 L22 22 L22 14 L20 14 L20 12 L22 14 Z"; - - //Initialize symbol pallatte - InitPaletteModel(); - - //Initialize Nodes - CreateNode("Start", middle, 25, 40, 40, initialNodePath, null); - CreateNode("ReceiveCall", middle, 85, 40, 105, actionPath, new ShapeAnnotation(){Content = "Receive Customer Call"}); - CreateNode("node2", middle, 130, 10, 70, forkNodePath, null); - CreateNode("Determine", left, 210, 40, 105, actionPath, new ShapeAnnotation(){Content = "Determine Type of Call"}); - CreateNode("Log", right, 210, 40, 105, actionPath, new ShapeAnnotation(){ Content = "Customer Logging a Call"}); - CreateNode("node5", left, 290, 50, 50, decisionPath, null); - CreateNode("transfersales", middle - 200, 360, 40, 105, actionPath, new ShapeAnnotation(){Content = "Transfer the call to Sales"}); - CreateNode("transferdesk", middle - 25, 360, 40, 105, actionPath, new ShapeAnnotation(){Content = "Transfer the call to Help Desk"}); - CreateNode("node8", left, 430, 50, 50, mergeNodePath, null); - CreateNode("node9", middle, 500, 10, 70, joinNodePath, null); - CreateNode("CloseCall", middle, 550, 40, 105, actionPath, new ShapeAnnotation(){Content = "Close Call", Margin = new DiagramThickness(){Left = 25, Right = 25}}); - CreateDiagramFinalNode(); - - //Initialize Connectors - CreateConnector("connector1", "Start", "ReceiveCall"); - CreateConnector("connector2", "ReceiveCall", "node2"); - CreateConnector("connector3", "node2", "Determine", "port1", "portTop", - new DiagramObjectCollection(){ - new OrthogonalSegment(){Type = ConnectorSegmentType.Orthogonal,Length = 20, Direction = Direction.Bottom }, - new OrthogonalSegment(){Type = ConnectorSegmentType.Orthogonal, Length = 50, Direction = Direction.Left} - }); - CreateConnector("connector4", "node2", "Log", "port2", "portTop", - new DiagramObjectCollection() - { - new OrthogonalSegment(){Type = ConnectorSegmentType.Orthogonal, Length = 20, Direction = Direction.Bottom}, - new OrthogonalSegment(){Type = ConnectorSegmentType.Orthogonal, Length = 50, Direction = Direction.Right} - }); - CreateConnector("connector5", "Determine", "node5"); - CreateConnector("connector6", "node5", "transfersales", "portLeft", "portTop", null, - new PathAnnotation() - { - ID = "connector6Label", - Content = "[type=New Customer]", - Offset = 0.715, - Style = new TextStyle() - { - Fill = "white", - Color = "black", - TextWrapping = TextWrap.NoWrap - } - }); - CreateConnector("connector7", "node5", "transferdesk", "portRight", "portTop", null, - new PathAnnotation() - { - ID = "connector7Label", - Content = "[type=Existing Customer]", - Offset = 0.75, - Style = new TextStyle() - { - Fill = "white", - Color = "black", - TextWrapping = TextWrap.NoWrap - } - }); - CreateConnector("connector8", "transfersales", "node8", "portBottom", "portLeft", - new DiagramObjectCollection() - { - new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, Length = 50, Direction = Direction.Bottom - } - }); - CreateConnector("connector9", "transferdesk", "node8", "portBottom", "portRight", - new DiagramObjectCollection() - { - new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, Length = 50, Direction = Direction.Bottom - } - }); - CreateConnector("connector10", "node8", "node9", "portBottom", "port3"); - CreateConnector("connector11", "Log", "node9", "portBottom", "port4", - new DiagramObjectCollection() - { - new OrthogonalSegment() - { - Type = ConnectorSegmentType.Orthogonal, Length = 213, Direction = Direction.Bottom - }, - new OrthogonalSegment(){Type = ConnectorSegmentType.Orthogonal, Length = 50, Direction = Direction.Left} - }); - CreateConnector("connector12", "node9", "CloseCall"); - CreateConnector("connector13", "CloseCall", "node11"); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - Diagram - }; - } - - //Create Nodes - private void CreateNode(string id, double offsetX, double offsetY, double height, double width, string pathData, ShapeAnnotation annotation) - { - Node node = new Node() - { - ID = id, - OffsetX = offsetX + 70, - OffsetY = offsetY, - Height = height, - Width = width, - Shape = new PathShape() - { - Type = NodeShapes.Path, - Data = pathData - } - }; - if(node.ID == "node2" || node.ID == "node9") - { - node.Ports = new DiagramObjectCollection() - { - new PointPort(){ID = "port1", Offset = new DiagramPoint(){X = 0.2, Y = 1}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "port2", Offset = new DiagramPoint(){X = 0.8, Y = 1}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "port3", Offset = new DiagramPoint(){X = 0.2, Y = 0}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "port4", Offset = new DiagramPoint(){X = 0.8, Y = 0}, Visibility = PortVisibility.Hidden}, - }; - } - else - { - node.Ports = new DiagramObjectCollection() - { - new PointPort(){ID = "portLeft", Offset = new DiagramPoint(){X = 0, Y = 0.5}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "portRight", Offset = new DiagramPoint(){X = 1, Y = 0.5}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "portBottom", Offset = new DiagramPoint(){X = 0.5, Y = 1}, Visibility = PortVisibility.Hidden}, - new PointPort(){ID = "portTop", Offset = new DiagramPoint(){X = 0.5, Y = 0}, Visibility = PortVisibility.Hidden}, - }; - } - if(annotation != null) - { - node.Annotations = new DiagramObjectCollection() { annotation }; - } - nodes.Add(node); - } - - //nodes default values - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if(node.ID == "Start" || node.ID == "node2" || node.ID == "node9") - { - node.Style.Fill = "#444"; - } - node.Style.StrokeColor = "#444"; - } - - //Create Connector - private void CreateConnector(string id, string sourceID, string targetID, string sourcePortID = "", string targetPortID = "", DiagramObjectCollection segments = null, PathAnnotation annotation = null) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceID, - TargetID = targetID, - SourcePortID = sourcePortID, - TargetPortID = targetPortID, - }; - if(segments != null) - { - connector.Segments = segments; - } - if(annotation != null) - { - connector.Annotations = new DiagramObjectCollection() { annotation }; - } - connectors.Add(connector); - } - - //connector default values - private void OnConnectorCreating(IDiagramObject obj) - { - Connector connector = obj as Connector; - if(connector.ID.IndexOf("connector") != -1) - { - connector.Type = ConnectorSegmentType.Orthogonal; - connector.CornerRadius = 10; - connector.TargetDecorator = new DecoratorSettings() - { - Shape = DecoratorShape.OpenArrow, - Style = new ShapeStyle() - { - StrokeColor = "#444", Fill = "#444" - } - }; - } - } - - private void CreateDiagramFinalNode() - { - Node innerFinalNode = new Node() - { - ID = "innerFinalNode", - Shape = new PathShape() - { - Data = finalNodePath, - Type = NodeShapes.Path - }, - HorizontalAlignment = HorizontalAlignment.Center , - VerticalAlignment = VerticalAlignment.Center, - Height = 33, Width = 33, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1, Fill = "black" }, - }; - - Node outerFinalNode = new Node() - { - ID = "outerFinalNode", - Shape = new PathShape() - { - Data = finalNodePath, - Type = NodeShapes.Path, - }, - HorizontalAlignment = HorizontalAlignment.Center, - VerticalAlignment = VerticalAlignment.Center, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - nodes.Add(innerFinalNode); - nodes.Add(outerFinalNode); - - NodeGroup nodeGroup = new NodeGroup() - { - ID = "node11", - Children = new string[] {"outerFinalNode", "innerFinalNode" }, - Height = 50, Width = 50, OffsetX = middle, OffsetY = 615, - Style = new ShapeStyle() {StrokeColor = "transparent", StrokeWidth = 0} - }; - nodes.Add(nodeGroup); - } - - // Create Nodes and Connectors for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 80, - Height = 80 - }; - umlShapeSymbols = new DiagramObjectCollection(); - - CreatePaletteNode("ActionNode", actionPath); - CreatePaletteNode("Decision", decisionPath); - CreatePaletteNode("MergeNode", mergeNodePath); - CreatePaletteNode("InitialNode", initialNodePath); - CreateFinalNode(); - CreatePaletteNode("ForkNode", forkNodePath); - CreatePaletteNode("JoinNode", joinNodePath); - CreatePaletteNode("TimeEvent", timeEventPath); - CreatePaletteNode("AcceptingEvent", acceptingEventPath); - CreatePaletteNode("SendSignal", sendSignalPath); - CreatePaletteNode("ReceiveSignal", receiveSignalPath); - CreatePaletteNode("StructuredNode", structuredNodePath); - CreatePaletteNode("Note", notePath); - - CreatePalletteConnectors("DashedOrthogonalWithArrow", DecoratorShape.Arrow, ConnectorSegmentType.Orthogonal, true); - CreatePalletteConnectors("OrthogonalWithArrow", DecoratorShape.Arrow, ConnectorSegmentType.Orthogonal, false); - CreatePalletteConnectors("StraightWithArrow", DecoratorShape.Arrow, ConnectorSegmentType.Straight, false); - - palettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() {Symbols = umlShapeSymbols, Title = "UML Shapes", ID = "UML Shapes"}, - new Palette(){Symbols = connectorSymbols, Title = "Connectors", ID = "Connector Shapes", IsExpanded = true} - #pragma warning restore BL0005 - }; - } - - private void CreatePaletteNode(string id, string pathData) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new PathShape(){Type = NodeShapes.Path, Data = pathData}, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - umlShapeSymbols.Add(diagramNode); - } - - private void SetPallatteNodeDefaults(IDiagramObject obj) - { - Node symbol = obj as Node; - if(symbol.ID.IndexOf("JoinNode") != -1) - { - symbol.Width = 20; symbol.Height = 50; - } - else if(symbol.ID.IndexOf("ForkNode") != -1) - { - symbol.Width = 50; symbol.Height = 20; - } - else if (symbol.ID.IndexOf("Decision") != -1 || symbol.ID.IndexOf("MergeNode") != -1) - { - symbol.Width = 50; symbol.Height = 40; - } - else if(symbol.ID.IndexOf("innerFinalNode") != -1) - { - symbol.Width = 33; symbol.Height = 33; - } - else - { - symbol.Width = 50; symbol.Height = 50; - } - - if (symbol.ID == "InitialNode" || symbol.ID == "innerFinalNode" || symbol.ID == "JoinNode" || symbol.ID == "ForkNode") { - { - symbol.Style.Fill = "#757575"; - } - symbol.Style.StrokeColor = "#757575"; - } - } - - private void CreateFinalNode() - { - Node innerFinalNode = new Node() - { - ID = "innerFinalNode", - Shape = new PathShape() - { - Data = finalNodePath, - Type = NodeShapes.Path - }, - HorizontalAlignment = HorizontalAlignment.Center , - VerticalAlignment = VerticalAlignment.Center, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1, Fill = "black" }, - }; - - Node outerFinalNode = new Node() - { - ID = "outerFinalNode", - Shape = new PathShape() - { - Data = finalNodePath, - Type = NodeShapes.Path, - }, - HorizontalAlignment = HorizontalAlignment.Center, - VerticalAlignment = VerticalAlignment.Center, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - umlShapeSymbols.Add(innerFinalNode); - umlShapeSymbols.Add(outerFinalNode); - - NodeGroup nodeGroup = new NodeGroup() - { - ID = "FinalNode", - Children = new string[] {"outerFinalNode", "innerFinalNode" }, - Style = new ShapeStyle() {StrokeColor = "transparent", StrokeWidth = 0} - }; - umlShapeSymbols.Add(nodeGroup); - } - - //Connectors - private void CreatePalletteConnectors(string id, DecoratorShape decoratorShape, ConnectorSegmentType connectorSegmentType, bool dashed = false) - { - Connector connector = new Connector() - { - ID = id, - SourcePoint = new DiagramPoint() { X = 0, Y = 0 }, - TargetPoint = new DiagramPoint() { X = 40, Y = 40 }, - Type = connectorSegmentType, - Style = new ShapeStyle() { StrokeWidth = 2, StrokeColor = "#757575" }, - TargetDecorator = new DecoratorSettings() - { - Shape = decoratorShape, - Style = new ShapeStyle() - { - Fill = "#757575", StrokeColor = "#757575", - } - }, - }; - if(dashed) - connector.Style.StrokeDashArray = "4, 4"; - - connectorSymbols.Add(connector); - } - [Inject] - protected IJSRuntime jsRuntime { get; set; } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/UMLSequenceDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/UMLSequenceDiagram.razor deleted file mode 100644 index 49707734..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/UMLSequenceDiagram.razor +++ /dev/null @@ -1,279 +0,0 @@ -@page "/diagramcomponent/uml-sequence" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel - -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates an employees’ leave request sequence using a UML sequence diagram. The shapes for the sequence were designed with the Port feature for Diagram's nodes.

-
- -

This example shows how to create a UML sequence diagram using the Ports feature for nodes. The Type property of a shape allows you to define the type of NodeShapes. The Shape property of a shape allows you to define the NodeBasicShapes of the node.


-
-@*End:Hidden*@ - -
- - - -
-@code -{ - public SfDiagramComponent Diagram; - DiagramInteractions diagramTools = DiagramInteractions.Default; - - //Defines Diagram's nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines Diagram's connectors collection - private DiagramObjectCollection connectors = new DiagramObjectCollection(); - - //Ports - private DiagramObjectCollection node5Ports; - private DiagramObjectCollection node6Ports; - private DiagramObjectCollection node7Ports; - private DiagramObjectCollection node26Ports; - - - protected override void OnInitialized() - { - - diagramTools = DiagramInteractions.ZoomPan; - - //ports for node - node5Ports = new DiagramObjectCollection(); - node5Ports.Add(AddPorts("Port1", 0, 0.053)); - node5Ports.Add(AddPorts("Port111", 1, 0.5)); - node5Ports.Add(AddPorts("Port12", 1, 0.938)); - - node6Ports = new DiagramObjectCollection(); - node6Ports.Add(AddPorts("Port2", 0, 0.5)); - - node7Ports = new DiagramObjectCollection(); - node7Ports.Add(AddPorts("Port3", 0, 0.1)); - node7Ports.Add(AddPorts("Port10", 0, 0.91)); - - node26Ports = new DiagramObjectCollection(); - node26Ports.Add(AddPorts("Port11", 1, 0.049)); - node26Ports.Add(AddPorts("Port7", 1, 0.97)); - - //Initialize nodes - CreateNode("Node1", 40, 100, 100, 50, "Employee"); - CreateNode("Node2", 40, 100, 300, 50, "Team Lead"); - CreateNode("Node3", 40, 100, 500, 50, "Dashboard"); - CreateNode("Node4", 40, 100, 700, 50, "Manager"); - - //Node style - ShapeStyle nodeStyle = new ShapeStyle() - { - Fill = "#f7b62f", - StrokeColor = "#f7b62f" - }; - - CreateNode("Node5", 180, 10, 300, 250, style: nodeStyle, ports: node5Ports); - CreateNode("Node6", 25, 10, 500, 250, style: nodeStyle, ports: node6Ports); - CreateNode("Node7", 48, 10, 700, 348, style: nodeStyle, ports: node7Ports); - CreateNode("Node26", 240, 10, 100, 278, style: nodeStyle, ports: node26Ports); - - //styles for connectors - ShapeStyle GetGrayLineStyle = new ShapeStyle() { Fill = "#969696", StrokeColor = "#969696", StrokeWidth = 1 }; - ShapeStyle GetBlueLineStyle = new ShapeStyle() { Fill = "#0679b7", StrokeColor = "#0679b7", StrokeWidth = 2 }; - ShapeStyle GetLineDashStyle = new ShapeStyle() { StrokeColor = "#0679b7", StrokeWidth = 2.5, StrokeDashArray = "4, 3" }; - - //Initialize connectors - CreateConnector("Connector3", "Node1", "Node26", annotationLabel: "c3", style: GetGrayLineStyle); - CreateConnector("Connector4", "Node2", "Node5", annotationLabel: "c4", style: GetGrayLineStyle); - CreateConnector("Connector5", "Node3", "Node6", annotationLabel: "c5", style: GetGrayLineStyle); - CreateConnector("Connector6", "Node4", "Node7", annotationLabel: "c6", style: GetGrayLineStyle); - CreateConnector("Connector1", "Node5", "Node6", "Port111", "Port2", annotationLabel: "Check Employee availability and task status", style: GetBlueLineStyle, annotationMargin: new DiagramThickness() { Left = 0, Top = 20, Right = 0, Bottom = 0}); - CreateConnector("Connector2", "Node5", "Node7", "Port12", "Port3", annotationLabel: "Forward Leave Request", style: GetBlueLineStyle, annotationMargin: new DiagramThickness() { Left = 0, Top = 10, Right = 0, Bottom = 0}); - CreateConnector("Connector7", "Node26", "Node5", "Port11", "Port1", annotationLabel: "Leave Request", style: GetBlueLineStyle, annotationMargin: new DiagramThickness() { Left = 0, Top = 10, Right = 0, Bottom = 0}); - CreateConnector("Connector8", "", "Node26", "", "Port7", annotationLabel: "Leave Approval", style: GetLineDashStyle, annotationMargin: new DiagramThickness() { Left = 0, Top = 10, Right = 0, Bottom = 0 }); - CreateConnector("Connector10", "Node7", "", "Port10", "", annotationLabel: "No Objection", style: GetLineDashStyle, annotationMargin: new DiagramThickness() { Left = 0, Top = 10, Right = 0, Bottom = 0 }); - CreateConnector("Connector11", "Node26", "", annotationLabel: "c6", style: GetGrayLineStyle); - CreateConnector("Connector12", "Node5", "", annotationLabel: "c6", style: GetGrayLineStyle); - CreateConnector("Connector13", "Node6", "", annotationLabel: "c5", style: GetGrayLineStyle); - CreateConnector("Connector14", "Node7", "", annotationLabel: "c5", style: GetGrayLineStyle); - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - //Create Nodes - private void CreateNode(string id, double height, double width, double offsetX, double offsetY, string label = null, ShapeStyle style = null, DiagramObjectCollection ports = null) - { - Node node = new Node() - { - ID = id, - OffsetX = offsetX, - OffsetY = offsetY, - Height = height, - Width = width, - Shape = new BasicShape() - { - Shape = NodeBasicShapes.Rectangle, - Type = NodeShapes.Basic, - }, - Style = new ShapeStyle(){StrokeWidth = 0}, - }; - if(label != null) - { - node.Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() - { - Content = label, - HorizontalAlignment = HorizontalAlignment.Center, - Style = new TextStyle() - { - TextWrapping = TextWrap.Wrap, - FontSize = 13, - Bold = true, - FontFamily = "Arial" - } - } - }; - } - if(style != null) - { - node.Style = style; - } - if(ports != null) - { - node.Ports = ports; - } - nodes.Add(node); - } - - //Node ports - private PointPort AddPorts(string id, double x, double y) - { - return new PointPort() - { - ID = id, - Height = 10, - Width = 10, - Offset = new DiagramPoint() { X = x, Y = y }, - Style = new ShapeStyle() - { - Fill = "black", - StrokeColor = "black" - } - }; - } - - //Create Connector - private void CreateConnector(string id, string sourceID, string targetID, string sourcePortID = "", string targetPortID = "", string annotationLabel = "", DiagramThickness annotationMargin = null, ShapeStyle style = null) - { - Connector connector = new Connector() - { - ID = id, - SourceID = sourceID, - TargetID = targetID, - SourcePortID = sourcePortID, - TargetPortID = targetPortID, - Type = ConnectorSegmentType.Straight, - TargetDecorator = new DecoratorSettings() - { - Height = 10, Width = 10, - Style = new ShapeStyle() - { - Fill = "SteelBlue", - StrokeColor = "SteelBlue", - StrokeWidth = 1 - } - }, - Annotations = new DiagramObjectCollection() - { - new PathAnnotation() - { - Content = annotationLabel, - HorizontalAlignment = HorizontalAlignment.Center, - Width = 170, - Style = new TextStyle() - { - TextWrapping = TextWrap.WrapWithOverflow, - FontFamily = "Arial", - FontSize = 11 - } - } - }, - }; - if (style != null) - connector.Style = style; - if(annotationMargin != null) - { - connector.Annotations[0].Margin = annotationMargin; - } - if ((annotationLabel == "c3") || (annotationLabel == "c4") || (annotationLabel == "c5") || (annotationLabel == "c6")) - { - connector.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.None }; - connector.TargetDecorator.Style = null; - connector.Annotations[0].Visibility = false; - } - if(connector.ID == "Connector8") - { - connector.SourcePoint = new DiagramPoint() { X = 300, Y = 390 }; - } - if(connector.ID == "Connector10") - { - connector.TargetPoint = new DiagramPoint() { X = 300, Y = 370 }; - } - if(connector.ID =="Connector11") - { - connector.SourcePoint = new DiagramPoint() { X = 100, Y = 400 }; - connector.TargetPoint = new DiagramPoint() { X = 100, Y = 500 }; - } - if (connector.ID == "Connector12") - { - connector.SourcePoint = new DiagramPoint() { X = 300, Y = 320 }; - connector.TargetPoint = new DiagramPoint() { X = 300, Y = 500 }; - } - if (connector.ID == "Connector13") - { - connector.SourcePoint = new DiagramPoint() { X = 500, Y = 250 }; - connector.TargetPoint = new DiagramPoint() { X = 500, Y = 500 }; - } - if (connector.ID == "Connector14") - { - connector.SourcePoint = new DiagramPoint() { X = 700, Y = 380 }; - connector.TargetPoint = new DiagramPoint() { X = 700, Y = 500 }; - } - //update z-index - for(int i = 0; i <= 3; i++) - { - string connectorId = "Connector" + (i + 3); - if(connector.ID == connectorId) - { - connector.ZIndex = i; - } - } - connectors.Add(connector); - } - - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/UserHandles.razor b/Common/Pages/DiagramComponent/DiagramComponent/UserHandles.razor deleted file mode 100644 index 259a33f9..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/UserHandles.razor +++ /dev/null @@ -1,484 +0,0 @@ -@page "/diagramcomponent/UserHandles" - -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.DropDowns -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample visualizes a simple flow diagram along with options to execute frequently used commands using user handles.

-
- -

User handles are represented as icons placed around the node to run frequently used commands. This example shows how to render and configure user handles and how to interact with the Diagram component using user handles. The UserHandles property of the SelectionSettings is used to add user handles to a diagram. Click the templates in the property panel to customize the position and appearance of the user handles. Here, the user handle is used to clone or delete the selected node or connector based on the command that is selected.


-
-@*End:Hidden*@ -
-
- - - - - - - - -
- - @*Hidden:Lines*@ - - -
-
- Properties -
-
- -
-
- Position -
-
- - - - -
-
-
-
- Background -
-
- - - - -
-
-
-
- Command -
-
- - - - -
-
-
-
- UserHandle -
-
- - - - -
-
-
-
- -
- -@*End:Hidden*@ - -@code -{ - @*Hidden:Lines*@ - - int connectorCount; - string position = "BottomLeft"; - string backgroundValue = "Black"; - string commandValue = "Duplicate"; - string visibleMode = "Both"; - bool positionValue = true; - bool background = true; - bool shapeValue = true; - bool userhandleValue = true; - @*End:Hidden*@ - public SfDiagramComponent Diagram; - // Defines interval values for GridLines - public double[] gridLineIntervals { get; set; } - // Defines diagram's nodes collection - public DiagramObjectCollection nodes { get; set; } - UserHandle userhandle; - UserHandle handle; - // Defines diagram's connector collection - public DiagramObjectCollection connectors { get; set; } - - DiagramSelectionSettings selectionSettings = new DiagramSelectionSettings(); - - protected override void OnInitialized() - { - - gridLineIntervals = new double[] { 1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75 }; - InitDiagramModel(); - selectionSettings.Constraints &= ~(SelectorConstraints.ResizeAll | SelectorConstraints.Rotate); - } - - private void OnCreated() - { - Diagram.Select(new ObservableCollection() { Diagram.Nodes[0] }); - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - Diagram.FitToPage(mobileoptions); - } - - private void SelectionChanged(SelectionChangedEventArgs args) - { - if (args.NewValue != null && args.NewValue.Count > 0) - { - string position1 = Diagram.SelectionSettings.UserHandles[0].Side.ToString(); - var offset = Diagram.SelectionSettings.UserHandles[0].Offset; - if (position1 == "Bottom" && offset == 1) - { - position = "BottomRight"; - } - else if (position1 == "Bottom" && offset == 0) - { - position = "BottomLeft"; - } - else if (position1 == "Right" && offset == 0) - { - position = "TopLeft"; - } - - } - if (Diagram.SelectionSettings.Nodes.Count > 0 || Diagram.SelectionSettings.Connectors.Count > 0) - { - background = true; - positionValue = true; - shapeValue = true; - userhandleValue = true; - } - else - { - background = false; - positionValue = false; - shapeValue = false; - userhandleValue = false; - } - } - // Method to customize the tool - public InteractionControllerBase GetCustomTool(DiagramElementAction action, string id) - { - InteractionControllerBase tool = null; - if (id == "clone") - { - tool = new CloneTool(Diagram); - } - else - { - tool = new AddDeleteTool(Diagram); - } - return tool; - } - // Custom tool to delete the node. - public class AddDeleteTool : InteractionControllerBase - { - SfDiagramComponent sfDiagram; - public AddDeleteTool(SfDiagramComponent Diagram) : base(Diagram) - { - sfDiagram = Diagram; - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - - bool GroupAction = false; - sfDiagram.BeginUpdate(); - if(sfDiagram.SelectionSettings.Nodes.Count > 1 || sfDiagram.SelectionSettings.Connectors.Count > 1 || - ((sfDiagram.SelectionSettings.Nodes.Count + sfDiagram.SelectionSettings.Connectors.Count) > 1)) - { - GroupAction = true; - } - if (GroupAction) - { - sfDiagram.StartGroupAction(); - } - if (sfDiagram.SelectionSettings.Nodes.Count != 0) - { - for (var i = sfDiagram.SelectionSettings.Nodes.Count-1; i >=0; i--) - { - Node deleteNode = sfDiagram.SelectionSettings.Nodes[i]; - - sfDiagram.Nodes.Remove(deleteNode); - } - } - if (sfDiagram.SelectionSettings.Connectors.Count != 0) - { - for (var i = sfDiagram.SelectionSettings.Connectors.Count-1; i >=0; i--) - { - Connector deleteConnector = sfDiagram.SelectionSettings.Connectors[i]; - - sfDiagram.Connectors.Remove(deleteConnector); - } - } - if (GroupAction) - { - sfDiagram.EndGroupAction(); - } - _ = sfDiagram.EndUpdateAsync(); - base.OnMouseUp(args); - this.InAction = true; - } - } - - - // Custom tool to duplicate the node. - public class CloneTool : DragController - { - SfDiagramComponent sfDiagram; bool isNode = false; - public CloneTool(SfDiagramComponent diagram) : base(diagram) - { - sfDiagram = diagram; - } - public override void OnMouseDown(DiagramMouseEventArgs args) - { - isNode = sfDiagram.SelectionSettings.Nodes.Count > 0 ? true : false; - sfDiagram.Copy(); - sfDiagram.Paste(); - base.OnMouseDown(args); - this.InAction = true; - } - public override bool OnMouseMove(DiagramMouseEventArgs args) - { - if (isNode) - sfDiagram.Nodes.Last().IsVisible = false; - else - sfDiagram.Connectors.Last().IsVisible = false; - return base.OnMouseMove(args); - } - public override void OnMouseUp(DiagramMouseEventArgs args) - { - if (isNode) - { - sfDiagram.Nodes.Last().IsVisible = true; - sfDiagram.Select(new ObservableCollection() { sfDiagram.Nodes.Last() }); - } - else - { - sfDiagram.Connectors.Last().IsVisible = true; - sfDiagram.Select(new ObservableCollection() { sfDiagram.Connectors.Last() }); - } - base.OnMouseUp(args); - this.InAction = true; - } - } - @*Hidden:Lines*@ - public class UserHandleShape - { - public string Name { get; set; } - } - private List UserHandleShapeLists = new List() { - new UserHandleShape() { Name ="Duplicate"}, - new UserHandleShape() { Name ="Delete" }, - - }; - public class UserHandlePosition - { - public string Name { get; set; } - } - private List UserHandlePositionLists = new List() { - new UserHandlePosition() { Name ="BottomLeft"}, - new UserHandlePosition() { Name ="BottomRight" }, - new UserHandlePosition() { Name ="TopRight" }, - - }; - public class UserHandleAppearance - { - public string Name { get; set; } - } - private List UserHandleAppearanceLists = new List() { - new UserHandleAppearance() { Name ="Blue"}, - new UserHandleAppearance() { Name ="Green" }, - new UserHandleAppearance() { Name ="Orange" }, - new UserHandleAppearance() { Name ="Black" }, - - }; - - public class UserHandleConstraints - { - public string Name { get; set; } - } - private List UserHandleLists = new List() - { - new UserHandleConstraints(){Name = "None"}, - new UserHandleConstraints(){Name = "Node"}, - new UserHandleConstraints(){Name = "Connector"}, - new UserHandleConstraints(){Name = "Both"}, - }; - - public void PositionChange(ChangeEventArgs args) - { - - if (args.Value == "BottomRight") - { - userhandle.Offset = 1; - userhandle.Side = Direction.Bottom; - - } - else if (args.Value == "BottomLeft") - { - userhandle.Offset = 0; - userhandle.Side = Direction.Bottom; - } - else if (args.Value == "TopRight") - { - userhandle.Offset = 0; - userhandle.Side = Direction.Right; - } - } - private void OnCommand(ChangeEventArgs args) - { - if (args.Value == "Delete") - { - userhandle.PathData = "M1.0000023,3 L7.0000024,3 7.0000024,8.75 C7.0000024,9.4399996 6.4400025,10 5.7500024,10 L2.2500024,10 C1.5600024,10 1.0000023,9.4399996 1.0000023,8.75 z M2.0699998,0 L5.9300004,0 6.3420029,0.99999994 8.0000001,0.99999994 8.0000001,2 0,2 0,0.99999994 1.6580048,0.99999994 z"; - handle.Name = "delete"; - } - if (args.Value == "Duplicate") - { - userhandle.PathData = "M60.3,18H27.5c-3,0-5.5,2.4-5.5,5.5v38.2h5.5V23.5h32.7V18z M68.5,28.9h-30c-3,0-5.5,2.4-5.5,5.5v38.2c0,3,2.4,5.5,5.5,5.5h30c3,0,5.5-2.4,5.5-5.5V34.4C73.9,31.4,71.5,28.9,68.5,28.9z M68.5,72.5h-30V34.4h30V72.5z"; - handle.Name = "clone"; - } - } - - private void OnUserHandleConstraintsChange(ChangeEventArgs args) - { - if(args.Value == "Both") - { - userhandle.VisibleTarget = VisibleTarget.Node | VisibleTarget.Connector; - } - else if(args.Value == "None") - { - if(userhandle.VisibleTarget.HasFlag(VisibleTarget.Node)) - { - userhandle.VisibleTarget &= ~VisibleTarget.Node; - } - if (userhandle.VisibleTarget.HasFlag(VisibleTarget.Connector)) - { - userhandle.VisibleTarget &= ~VisibleTarget.Connector; - } - } - else if(args.Value == "Node") - { - userhandle.VisibleTarget = VisibleTarget.Node; - } - else if(args.Value == "Connector") - { - userhandle.VisibleTarget = VisibleTarget.Connector; - } - } - - public void SetPattern(ChangeEventArgs args) - { - - userhandle.BackgroundColor = args.Value == "Blue" ? "#1E90FF" : (args.Value == "Green" ? "#3CB371" : (args.Value == "Black" ? "#000000" : "#FF6347")); - userhandle.PathColor = "white"; - } - @*End:Hidden*@ - - private void InitDiagramModel() - { - handle = new UserHandle() - { - Name = "clone", - PathData = "M60.3,18H27.5c-3,0-5.5,2.4-5.5,5.5v38.2h5.5V23.5h32.7V18z M68.5,28.9h-30c-3,0-5.5,2.4-5.5,5.5v38.2c0,3,2.4,5.5,5.5,5.5h30c3,0,5.5-2.4,5.5-5.5V34.4C73.9,31.4,71.5,28.9,68.5,28.9z M68.5,72.5h-30V34.4h30V72.5z", - Visible = true, - Offset = 0, - Side = Direction.Bottom, - Margin = new DiagramThickness() { Top = 0, Bottom = 0, Left = 0, Right = 0 } - }; - DiagramObjectCollection cloneHandle = new DiagramObjectCollection() - { - handle - }; - selectionSettings.UserHandles = cloneHandle; - userhandle = handle; - userhandle.VisibleTarget = VisibleTarget.Node | VisibleTarget.Connector; - - nodes = new DiagramObjectCollection(); - connectors = new DiagramObjectCollection(); - // Node Region - CreateNode("Newidea", 300, 60, NodeFlowShapes.Terminator, "New idea identified"); - CreateNode("Meeting", 300, 155, NodeFlowShapes.Process, "Meeting with board"); - CreateNode("Board", 300, 280, NodeFlowShapes.Decision, "Board decides \n whether to proceed", 150, 110); - CreateNode("Find", 300, 430, NodeFlowShapes.Decision, "Find project \n manager"); - CreateNode("Implement", 300, 555, NodeFlowShapes.Process, "Implement and deliver"); - CreateNode("Decision", 530, 60, NodeFlowShapes.Card, "Decision process for new software ideas", 250, 60); - CreateNode("Reject", 550, 280, NodeFlowShapes.Process, "Reject"); - CreateNode("Hire", 550, 430, NodeFlowShapes.Process, "Hire new resources"); - // Connector Region - CreateConnector("Newidea", "Meeting"); - CreateConnector("Meeting", "Board"); - CreateConnector("Board", "Find"); - CreateConnector("Find", "Implement"); - CreateConnector("Board", "Reject"); - CreateConnector("Find", "Hire"); - } - - // Method to create node - private void CreateNode(string id, double x, double y, NodeFlowShapes shape, string label, double width = 150, double height = 60) - { - ShapeAnnotation annotation = new ShapeAnnotation() { Content = label, Style = new TextStyle() { Color = "white" } }; - - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = width, - Height = height, - Shape = new FlowShape() { Type = shapes.Flow, Shape = shape }, - Style = new ShapeStyle() { Fill = "#009EDF", StrokeColor = "#009FE5" }, - Annotations = new DiagramObjectCollection() { annotation }, - }; - nodes.Add(diagramNode); - } - - // Method to create connector - private void CreateConnector(string sourceId, string targetId) - { - Connector diagramConnector = new Connector() - { - ID = string.Format("connector{0}", ++connectorCount), - TargetDecorator = new DecoratorSettings() { Style = new ShapeStyle() { Fill = "#009EDF", StrokeColor = "#009EDF" } }, - Style = new ShapeStyle() { StrokeColor = "#009EDF" }, - SourceID = sourceId, - TargetID = targetId, - }; - connectors.Add(diagramConnector); - } -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/VennDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/VennDiagram.razor deleted file mode 100644 index f838d584..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/VennDiagram.razor +++ /dev/null @@ -1,217 +0,0 @@ -@page "/diagramcomponent/venn-diagram" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@*Hidden:Lines*@ -@inherits SampleBaseComponent -@implements IDisposable -@*Hidden:Lines*@ -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - - -

This sample visualizes classifications of data science using Venn diagrams. Diagram nodes and annotations are used to define Venn diagrams. Read-only mode is enabled in this example.

-
- -

This example shows how to create a Venn diagram using the Diagram component. In this example, zoom and pan options are enabled. The InteractionController property of the Diagram control allows you to enable or disable zoom and pan options.


-
-
-
- @*End:Hidden*@ - - - - @*Hidden:Lines*@ -
-
- - -@*End:Hidden*@ - -@code{ - //Defines diagrams's nodes collection - public DiagramObjectCollection NodeCollection { get; set; } - //Defines diagrams's connectors collection - public DiagramObjectCollection ConnectorCollection { get; set; } - SfDiagramComponent diagram; - @*Hidden:Lines*@ - string AssemblyPath = "M24.3267 27.4281H1.99727C0.894207 27.4281 0 26.551 0 25.469V2.93873C0 1.31571 1.34131 0 2.9959 0H8.10891C8.78495 0.0022957 9.44005 0.230314 9.96637 0.646519L13.9609 3.70279C14.1374 3.83974 14.3551 3.91551 14.5801 3.9183H23.0485C24.7031 3.9183 26.0444 5.23401 26.0444 6.85703V9.79575H29.0003C30.0366 9.80121 30.9975 10.3282 31.5449 11.1913C32.0923 12.0545 32.1496 13.1328 31.6966 14.0471L26.1642 26.331C25.8219 27.0166 25.1048 27.4448 24.3267 27.4281ZM2.61621 25.469H24.3265L29.819 13.2243C30.0052 12.9162 30.0052 12.5331 29.819 12.2251C29.6396 11.9284 29.3118 11.7489 28.9602 11.7549H10.2458C9.86524 11.7587 9.51861 11.9703 9.347 12.3035L2.61621 25.469ZM2.99668 1.95911C2.44515 1.95911 1.99805 2.39768 1.99805 2.93868V22.4126L7.55045 11.5198C8.05333 10.5213 9.0915 9.89056 10.2268 9.89366H23.988V6.95494C23.9773 6.41831 23.5364 5.98579 22.9893 5.97536H14.5209C13.8475 5.97709 13.1932 5.75624 12.6635 5.34844L8.66892 2.27257C8.49247 2.13563 8.27475 2.05985 8.04977 2.05706L2.99668 1.95911Z"; - string MiddlewarePath = "M28 12.56V32H8V26H0V0H13.44L19.44 6H21.44L28 12.56ZM8 6H16.58L12.58 2H2V24H8V6ZM26.001 14H20.001V8H10.001V30H26.001V14ZM21.999 12H24.579L21.999 9.41998V12Z"; - string ThesisPath = "M22.7097 24.7742L24.7742 22.7097V28.9032H0V8.25806H2.06452V26.8387H22.7097V24.7742ZM20.6452 16.5161C19.2688 16.5161 17.9194 16.6559 16.5968 16.9355C15.2849 17.2043 14.0161 17.6075 12.7903 18.1452C11.5645 18.672 10.3925 19.3226 9.27419 20.0968C8.16667 20.8602 7.13978 21.7312 6.19355 22.7097V20.6452C6.19355 19.3118 6.36559 18.0323 6.70968 16.8065C7.05376 15.5699 7.53763 14.4194 8.16129 13.3548C8.7957 12.2796 9.54839 11.3065 10.4194 10.4355C11.3011 9.55376 12.2742 8.80107 13.3387 8.17742C14.414 7.54301 15.5645 7.05376 16.7903 6.70968C18.0269 6.36559 19.3118 6.19355 20.6452 6.19355V0L32 11.3548L20.6452 22.7097V16.5161ZM22.7097 8.25806C22.0538 8.25806 21.4409 8.26344 20.871 8.27419C20.3011 8.27419 19.7419 8.30107 19.1935 8.35484C18.6559 8.4086 18.1129 8.50538 17.5645 8.64516C17.0161 8.77419 16.4355 8.96774 15.8226 9.22581C14.8871 9.6129 14.0161 10.1075 13.2097 10.7097C12.414 11.3118 11.6989 12 11.0645 12.7742C10.4409 13.5376 9.9086 14.371 9.46774 15.2742C9.03763 16.1667 8.72043 17.1075 8.51613 18.0968C10.3226 16.8925 12.2527 15.9839 14.3065 15.371C16.3602 14.7581 18.4731 14.4516 20.6452 14.4516H22.7097V17.7258L29.0806 11.3548L22.7097 4.98387V8.25806Z"; - string CalendarPath = "M9.0833333,10.083334 L11,10.083334 11,12 9.0833333,12 z M1,5 L1,14 13,14 13,5 z M1,2 L1,4 13,4 13,2 12,2 12,2.5 C12,2.776 11.776,3 11.5,3 11.224,3 11,2.776 11,2.5 L11,2 3,2 3,2.5 C3,2.776 2.776,3 2.5,3 2.224,3 2,2.776 2,2.5 L2,2 z M2.5,0 C2.776,0 3,0.22399998 3,0.5 L3,1 11,1 11,0.5 C11,0.22399998 11.224,0 11.5,0 11.776,0 12,0.22399998 12,0.5 L12,1 14,1 14,4 14,5 14,15 0,15 0,5 0,4 0,1 2,1 2,0.5 C2,0.22399998 2.224,0 2.5,0 z"; - string NotesPath = "M11,4.7110004 L11,6 12.289001,6 z M5,4 L5,15 13,15 13,7 10,7 10,4 z M1,1 L1,12 4,12 4,3 8.2890015,3 6.2890015,1 z M0,0 L6.7109985,0 9.7109985,3 10.710999,3 14,6.2890015 14,16 4,16 4,13 0,13 z"; - string PastePath = "M24 32H0V3.99981H8C8.01001 3.469 8.12559 2.94549 8.34 2.4598C8.55076 1.99273 8.84184 1.56626 9.2 1.19979C9.56763 0.828696 10.0019 0.530157 10.48 0.319788C11.4554 -0.106596 12.5646 -0.106596 13.54 0.319788C14.4839 0.757643 15.2421 1.51586 15.68 2.4598C15.8875 2.9469 15.9963 3.47036 16 3.99981H24V32ZM22 11.9999V5.99983H20V9.99985H4V5.99983H2V30H22M6 5.99988V7.99989H18V5.99988H14V4.25987C13.9895 3.96985 13.9493 3.68167 13.88 3.39986C13.816 3.13337 13.7005 2.88198 13.54 2.65986C13.3845 2.4358 13.1791 2.25094 12.94 2.11986C12.6391 2.01205 12.3183 1.9711 12 1.99986C11.5422 1.94796 11.084 2.09343 10.74 2.39986C10.4674 2.68388 10.2623 3.02569 10.14 3.39986C10.0201 3.829 9.97282 4.27514 10 4.71987V5.99988H6Z"; - string TrigonometryContent = "Trigonometry is a branch \nof mathematics that studies \nthe relationship between\n sides and angles of triangles."; - string AssemblyContent = "An assembly is a collection \n of types and resources that \n are built to work together \nand form a logical unit of functionality."; - string MiddlewareContent = "A Software that acts as \na bridge between an operating system\n or database and applications,\n especially on a network."; - string ThesisContent = "A statement or theory\n that is put forward\n as a premise to be \nmaintained or proved"; - string ExpertiseContent = "Expert skill or knowledge \nin a particular field."; - string ProgrammingContent = "Programming is the process \nused to write code that\n instructs how a computer, application,\n or Software program, performs."; - Syncfusion.Blazor.Diagram.NodeShapes BasicShape = Syncfusion.Blazor.Diagram.NodeShapes.Basic; - Syncfusion.Blazor.Diagram.NodeShapes PathShape = Syncfusion.Blazor.Diagram.NodeShapes.Path; - - @*End:Hidden*@ - protected override void OnInitialized() - { - - NodeCollection = new DiagramObjectCollection(); - PointPort programmingPort1 = CreatePort("port1", 0.82, 0.35); - PointPort programmingPort2 = CreatePort("port2", 0.50, 0.8); - PointPort thesisPort = CreatePort("port1", -0.5, 0.5); - PointPort middlewarePort = CreatePort("port1", 1.5, 0.5); - PointPort assemblyPort = CreatePort("port1", -0.5, 0.5); - PointPort trigonometryPort = CreatePort("port1", 0.50, 0.8); - DiagramObjectCollection trigonometryAnnotation = CreateAnnotations("Trigonometry", TrigonometryContent, new DiagramPoint() { X = 0.86, Y = 0.30 }, new DiagramPoint() { X = 0.46, Y = 0.44 }, HorizontalAlignment.Right, VerticalAlignment.Auto, HorizontalAlignment.Left); - DiagramObjectCollection assemblyAnnotation = CreateAnnotations("Assembly", AssemblyContent, new DiagramPoint() { X = 1.3, Y = 0.2 }, new DiagramPoint() { X = 1.3, Y = 1.9 }, HorizontalAlignment.Left, VerticalAlignment.Auto, HorizontalAlignment.Left, VerticalAlignment.Auto, TextAlign.Left, 240, 150); - DiagramObjectCollection middlewareAnnotation = CreateAnnotations("Middleware", MiddlewareContent, new DiagramPoint() { X = -0.4, Y = 0.1 }, new DiagramPoint() { X = -0.3, Y = 1.7 }, HorizontalAlignment.Right, VerticalAlignment.Auto, HorizontalAlignment.Right, VerticalAlignment.Auto, TextAlign.Right, 240, 150); - DiagramObjectCollection thesisAnnotation = CreateAnnotations("Thesis", ThesisContent, new DiagramPoint() { X = 1.3, Y = 0.2 }, new DiagramPoint() { X = 1.3, Y = 2 }, HorizontalAlignment.Left, VerticalAlignment.Auto, HorizontalAlignment.Left, VerticalAlignment.Auto, TextAlign.Left, 240, 150); - DiagramObjectCollection expertiseAnnotation = CreateAnnotations("Expertise", ExpertiseContent, new DiagramPoint() { X = 0.5, Y = 0.7 }, new DiagramPoint() { X = 0.5, Y = 0.80 }); - DiagramObjectCollection programmingAnnotation = CreateAnnotations("Programming", ProgrammingContent, new DiagramPoint() { X = 0.24, Y = 0.3 }, new DiagramPoint() { X = 0.09, Y = 0.44 }, HorizontalAlignment.Left, VerticalAlignment.Auto, HorizontalAlignment.Left, VerticalAlignment.Auto); - CreateNode("trigonometry", 615, 255, 350, 350, "#4582F966", "#4582F966", BasicShape, "", trigonometryAnnotation, new DiagramObjectCollection() { trigonometryPort }); - CreateNode("expertise", 500, 465, 350, 350, "#E86F6D66", "#E86F6D66", BasicShape, "", expertiseAnnotation); - CreateNode("programming", 390, 255, 350, 350, "#2DC28666", "#2DC28666", BasicShape, "", programmingAnnotation, new DiagramObjectCollection() { programmingPort1, programmingPort2 }); - CreateNode("assemblyNode", 760, 35, 32, 28, "#1D747A", "#1D747A", PathShape, AssemblyPath, assemblyAnnotation, new DiagramObjectCollection() { assemblyPort }); - CreateNode("middlewareNode", 250, 500, 28, 32, "#1E7649", "#1E7649", PathShape, MiddlewarePath, middlewareAnnotation, new DiagramObjectCollection() { middlewarePort }); - CreateNode("thesisNode", 800, 500, 32, 28, "#3A2C7D", "#3A2C7D", PathShape, ThesisPath, thesisAnnotation, new DiagramObjectCollection() { thesisPort }); - CreateNode("calendarNode", 495, 500, 32, 32, "#952B2A", "#952B2A", PathShape, CalendarPath); - CreateNode("notesNode", 338, 150, 22, 28, "#187851", "#187851", PathShape, NotesPath); - CreateNode("pasteNode", 690, 150, 24, 32, "#213895", "#213895", PathShape, PastePath); - ConnectorCollection = new DiagramObjectCollection(); - CreateConnector("equipellise", "", "middlewareNode", "programming", "#494949", 1, "port1", "port2"); - CreateConnector("connect12", "", "assemblyNode", "programming", "#494949", 1, "port1", "port1"); - CreateConnector("connect13", "", "thesisNode", "trigonometry", "#494949", 1, "port1", "port1"); - } - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - diagram.FitToPage(mobileoptions); - } - // Method is used to create a Connector for the diagram. - private void CreateConnector(string id, string lineDashArray, string source, string target, string lineColor, int lineWidth, string portIdSource, string portIdTarget) - { - Connector connector = new Connector() - { - ID = id, - SourceID = source, - TargetID = target, - Type = ConnectorSegmentType.Bezier, - Style = new ShapeStyle { StrokeColor = lineColor, StrokeWidth = lineWidth, StrokeDashArray = lineDashArray }, - TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.Circle, Width = 6, Height = 6, Style = new ShapeStyle() { StrokeColor = "#1D747A", Fill = "#1D747A" } }, - SourceDecorator = new DecoratorSettings() { Shape = DecoratorShape.Circle, Width = 6, Height = 6, Style = new ShapeStyle() { StrokeColor = "#1D747A", Fill = "#1D747A" } } - }; - connector.SourcePortID = portIdSource; - connector.TargetPortID = portIdTarget; - if (id == "connect12") - { - connector.Segments = new DiagramObjectCollection() - { - new BezierSegment() { Type = ConnectorSegmentType.Bezier, Point = new DiagramPoint{ X = 505, Y = 200}, Vector1 = new Vector { Angle = 190, Distance = 100 }, Vector2=new Vector{Angle=280, Distance=100 } } - }; - } - ConnectorCollection.Add(connector); - } - // Method is used to create a Nodes for the diagram. - private void CreateNode(string id, double x, double y, double width, double height, string fill, string strokeColor, Syncfusion.Blazor.Diagram.NodeShapes shape, string pathData = null, DiagramObjectCollection annotations = null, DiagramObjectCollection ports = null) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = width, - Height = height, - Style = new ShapeStyle { Fill = fill, StrokeColor = strokeColor } - }; - if (shape == Syncfusion.Blazor.Diagram.NodeShapes.Basic) - { - diagramNode.Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = NodeBasicShapes.Ellipse }; - } - else - { - diagramNode.Shape = new PathShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Path, Data = pathData }; - diagramNode.Style.StrokeWidth = 0; - } - if (annotations != null) - diagramNode.Annotations = annotations; - if (ports != null) - diagramNode.Ports = ports; - NodeCollection.Add(diagramNode); - } - // Method is used to create a Annotations for the diagram. - private DiagramObjectCollection CreateAnnotations(string content1, string content2, DiagramPoint offset1, DiagramPoint offset2, HorizontalAlignment hAlign = HorizontalAlignment.Auto, VerticalAlignment vAlign = VerticalAlignment.Auto, HorizontalAlignment hAlign2 = HorizontalAlignment.Auto, VerticalAlignment vAlign2 = VerticalAlignment.Auto, TextAlign textAlign = TextAlign.Center, double width = 0, double height = 0) - { - DiagramObjectCollection defaultsPorts = new DiagramObjectCollection(); - DiagramObjectCollection Annotations = new DiagramObjectCollection() - { - new ShapeAnnotation() { Content = content1, Offset = offset1, Style = new TextStyle() { Bold = true, FontFamily = "Roboto", FontSize =16 }}, - new ShapeAnnotation() { Content = content2, Offset = offset2, Style = new TextStyle() { FontFamily = "Roboto", FontSize =12 }} - }; - if (width > 0) - { - Annotations[1].Width = width; - Annotations[1].Height = height; - } - if (hAlign != HorizontalAlignment.Auto) - { - Annotations[0].HorizontalAlignment = hAlign; - Annotations[1].HorizontalAlignment = hAlign2; - } - if (vAlign != VerticalAlignment.Auto) - { - Annotations[0].VerticalAlignment = vAlign; - Annotations[1].VerticalAlignment = vAlign2; - } - if (textAlign != TextAlign.Center) - { - Annotations[1].Style.TextAlign = textAlign; - } - if (content1 == "Programming") - { - ShapeAnnotation annotation3 = new ShapeAnnotation() - { - Content = "Data\n Science", - Offset = { X = 0.91, Y = 0.7 }, - HorizontalAlignment = HorizontalAlignment.Right, - Style = new TextStyle() - { - Bold = true, - FontFamily = "Roboto", - FontSize = 16 - } - }; - Annotations.Add(annotation3); - } - return Annotations; - } - // Method is used to create a Ports for the diagram. - private PointPort CreatePort(string id, double x, double y) - { - return new PointPort() - { - ID = id, - Offset = new DiagramPoint() { X = x, Y = y }, - Visibility = PortVisibility.Hidden - }; - } - @*Hidden:Lines*@ - public void Dispose() - { - if (NodeCollection != null) - { - NodeCollection.Clear(); - NodeCollection = null; - } - } - @*End:Hidden*@ -} diff --git a/Common/Pages/DiagramComponent/DiagramComponent/WorkflowDiagram.razor b/Common/Pages/DiagramComponent/DiagramComponent/WorkflowDiagram.razor deleted file mode 100644 index 26513bd1..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/WorkflowDiagram.razor +++ /dev/null @@ -1,453 +0,0 @@ -@page "/diagramcomponent/workflow-diagram" - -@using Syncfusion.Blazor.Diagram -@using System.Collections.ObjectModel -@using Syncfusion.Blazor.Navigations -@using System.Text.RegularExpressions -@*Hidden:Lines*@ -@inject IJSRuntime jsRuntime -@inherits SampleBaseComponent; -@inject NavigationManager NavigationManager -@implements IDisposable - - -

This sample provides a visual representation of a streamlined Travel Request Approval workflow created with the Syncfusion Blazor Diagram. The diagram incorporates BPMN nodes, connectors, and annotations to represent various diagram elements.

-
- -

This example showcases the process of building a workflow diagram using the diagram control. Upon clicking the 'Execute' button, the workflow will commence. It will be indicated by animated connectors, followed by the display of loading indicators as HTML templates on the nodes. Subsequently, the loading indicators will transition to checkmarks, signifying successful execution. Finally, in the last phase, the workflow execution will reach its conclusion. The “Reset” button will refresh the diagram elements. Here, zoom and pan options are enabled. The tool property of the diagram control allows you to enable or disable zoom and pan options.

-
-
-
- - - - - - - -
-
-
- @*End:Hidden*@ - - - - - @{ -
-
-
- -
- } -
-
-
- @*Hidden:Lines*@ -
-
-
- - -@*End:Hidden*@ - -@code { - //declare ref variable for Sfdiagramcomponent - SfDiagramComponent diagram; - // adding ZoomPan interactions for the diagram - public DiagramInteractions tool = DiagramInteractions.ZoomPan; - // adding bridging and Routing constraints to the default - DiagramConstraints DiagramConstraints = DiagramConstraints.Default | (DiagramConstraints.Bridging | DiagramConstraints.Routing); - - DiagramObjectCollection nodes = new DiagramObjectCollection(); - DiagramObjectCollection connectors = new DiagramObjectCollection(); - // declaring ref variable for toolabarItems - private enum ToolbarAction { Execute, Reset }; - //this variable used to disable and enable the toolBarButton - bool isExecute = false, isReset = true; - private bool isDispose = false; - private static int connectorID = 0; - // This variable used to store the diagram data values - string diagramData; - - bool firstDataInitialize = false; - int nodeID = 0; - // This enum stores Shapetypes - public enum ShapeType - { - StartEvent, - Task, - ExclusiveGateway, - HtmlTemplate - }; - // This invokes the function to initialize nodes and connectors - protected override async Task OnInitializedAsync() - { - CreateNodes(); - CreateConnectors(); - } - // ShapeObject class encapsulates different shapes objects - public static class CreateShape - { - public static readonly Shape StartEvent = new BpmnEvent - { - EventType = BpmnEventType.Start, - Trigger = BpmnEventTrigger.None - }; - - public static readonly Shape Task = new BpmnActivity - { - ActivityType = BpmnActivityType.Task - }; - - public static readonly Shape ExclusiveGateway = new BpmnGateway - { - GatewayType = BpmnGatewayType.Exclusive - }; - public static readonly Shape HtmlTemplate = new Shape { Type = NodeShapes.HTML }; - - public static Shape GetShape(ShapeType type) - { - return type switch - { - ShapeType.StartEvent => StartEvent, - ShapeType.Task => Task, - ShapeType.ExclusiveGateway => ExclusiveGateway, - ShapeType.HtmlTemplate => HtmlTemplate, - _ => throw new ArgumentOutOfRangeException(nameof(type), type, null) - }; - } - } - - - - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - diagram.FitToPage(mobileoptions); - } - //Initializes the nodes for the diagram - private void CreateNodes() - { - CreateNode("requestStart","New travel request received", 50, 50, 100, 245, CreateShape.GetShape(ShapeType.StartEvent)); - CreateNode("Travel","Get travel Request details", 100, 80, 250, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("profile","Get requester profile", 100, 80, 400, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("manager","Get manager details", 100, 80, 550, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("rejected", "Get status as rejected", 100, 80, 700, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("accepted", "Get status as accepted", 100, 80, 850, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("approvalRejected","Set next approval status as rejected", 100, 80, 1100, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("approvalAccepted","Set next approval status as accepted", 100, 80, 1250, 245, CreateShape.GetShape(ShapeType.Task)); - CreateNode("approvalManager","Initiate approval with manager", 100, 80, 550, 445, CreateShape.GetShape(ShapeType.Task)); - CreateNode("checkStatus","Check approval status", 80, 60, 700, 445, CreateShape.GetShape(ShapeType.ExclusiveGateway)); - CreateNode("checkTravel","Check If It is an international travel", 80, 60, 850, 445, CreateShape.GetShape(ShapeType.ExclusiveGateway)); - CreateNode("levelManager","Initiate approval with next level manager", 100, 80, 1000, 445, CreateShape.GetShape(ShapeType.Task)); - CreateNode("checkLevel","Check level2 approval status", 80, 60, 1130, 445, CreateShape.GetShape(ShapeType.ExclusiveGateway)); - } - // This method create and apply defualt styles to the node - private void CreateNode(string id,string content, int width, int height, double offsetX, double offsetY, Shape shape) - { - - Node node = new Node() - { - ID = id, - Width = width, - Height = height, - OffsetX = offsetX, - OffsetY = offsetY, - Shape = shape, - Annotations = new DiagramObjectCollection - { - new ShapeAnnotation { Content = content , Offset = GetAnnotationOffset(id,shape), Style = new TextStyle { FontSize = 15 } } - } - - }; - if (node.ID == "checkLevel") - { - node.Ports = new DiagramObjectCollection() { new PointPort() { ID = "rightport", Offset = new DiagramPoint() { X = 1, Y = 0.5 } } }; - - } - if (shape is BpmnGateway) - { - node.Annotations[0].Style.FontSize = 14; - } - - nodes.Add(node); - } - private DiagramPoint GetAnnotationOffset(string id, Shape shape) - { - return id switch - { - "travelRequestApprovalProcess" => new DiagramPoint { X = 0.1, Y = 0.5 }, - "travelRequest" => new DiagramPoint { X = 0.95, Y = 0.5 }, - _ when shape is BpmnGateway || shape is BpmnEvent => new DiagramPoint { X = 0.5, Y = 1.8 }, - _ => new DiagramPoint { X = 0.5, Y = 0.5 } // Default offset - }; - } - //Initializes the connectors for the diagram - private void CreateConnectors() - { - - CreateConnector("connector1","requestStart", "Travel"); - CreateConnector("connector2", "Travel", "profile"); - CreateConnector("connector3", "profile", "manager"); - CreateConnector("connector4", "manager", "approvalManager"); - CreateConnector("connector5", "approvalManager", "checkStatus"); - CreateConnector("connector6", "checkStatus", "rejected", new PathAnnotation() { Content = "Rejected", Style = new TextStyle() { Fill = "white" } }); - CreateConnector("connector7", "checkStatus", "checkTravel", new PathAnnotation() { Content = "Accepted", Style = new TextStyle() { Fill = "white" } }); - CreateConnector("connector8", "checkTravel", "accepted", new PathAnnotation() { Content = "No", Offset = 0.4, Style = new TextStyle() { Fill = "white" } }); - CreateConnector("connector9", "checkTravel", "levelManager", new PathAnnotation() { Content = "Yes", Offset = 0.4, Style = new TextStyle() { Fill = "white" } }); - CreateConnector("connector10", "levelManager", "checkLevel"); - CreateConnector("connector11", "checkLevel", "approvalRejected", new PathAnnotation() { Content = "Rejected", Offset = 0.4, Style = new TextStyle() { Fill = "white" } }); - CreateConnector("connector12", "checkLevel", "approvalAccepted", new PathAnnotation() { Content = "Approved", Style = new TextStyle() { Fill = "white" } }, "rightport"); - - } - private void CreateConnector(string id,string sourceID, string targetID, PathAnnotation pathAnnotation = null, String sourcePortID = null) - { - - Connector connector = new Connector() - { - ID = id, - SourceID = sourceID, - TargetID = targetID, - - Type = ConnectorSegmentType.Orthogonal, - Style = new ShapeStyle() { StrokeColor = "#B6B6B4" }, - TargetDecorator = new DecoratorSettings() - { - Style = new ShapeStyle() { StrokeColor = "#B6B6B4", Fill = "#B6B6B4" } - }, - }; - if (sourcePortID != null) - { - connector.SourcePortID = sourcePortID; - } - if (pathAnnotation != null) - { - connector.Annotations.Add(pathAnnotation); - } - connector.Annotations.Add(new PathAnnotation() - { - Content = " ", - Height = 8, - Width = 8, - Offset = 0, - Style = new TextStyle() { Fill = "transparent" } - - }); - if (connector.Annotations.Count > 1) - { - connector.Annotations[0].Style.FontSize = 14; - - if (connector.Annotations[0].Content == "Accepted" || connector.Annotations[0].Content == "Yes") - { - connector.Annotations[0].Alignment = AnnotationAlignment.Before; - connector.Annotations[0].Displacement = new DiagramPoint() { X = 0, Y = 10 }; - } - else - { - connector.Annotations[0].Style = new TextStyle() { Fill = "white", FontSize = 14 }; - } - } - connectors.Add(connector); - - } - - - private async Task HandleToolbarAction(ToolbarAction action) - { - switch (action) - { - case ToolbarAction.Execute: - - isExecute = isReset = true; - // Storing the diagram on initial rendering can be used to reset the diagram. - if (!firstDataInitialize) diagramData = diagram.SaveDiagram(); - await StartWorkFlow(); - isReset = false; - break; - case ToolbarAction.Reset: - await ResetWorkFlow(); - isReset = true; - isExecute = false; - break; - } - } - - // This method initiates the flow and animation - private async Task StartWorkFlow(int level = 1) - { - if (isDispose) return; - // Invokes JS method to remove the loadIndicator - await jsRuntime.InvokeVoidAsync("loadIndicator"); - - if (level > 12) return; - - var connectors = diagram.Connectors; - - - var connector = connectors[level - 1]; - const int intervalDuration = 120; - var annotation = connector.Annotations[^1]; - - bool IsRejectedConnector(string connectorId) => - connectorId == "connector6" || - connectorId == "connector8" || - connectorId == "connector11"; - - if (IsRejectedConnector(connector.ID)) - { - await StartWorkFlow(level + 1); - return; - } - - while (!isDispose) - { - annotation.Style.Fill = "#76F543"; - if (annotation.Offset < 0.9) - { - annotation.Offset += 0.05; // Increment for animation - connector.Style.StrokeColor = "#F8FC02"; - } - else - { - await ConnectorAnimation(connector); - var targetNode = diagram.GetObject(connector.TargetID) as Node; - - if (!isDispose && targetNode != null && IsProcessableNode(targetNode) ) - { - CreateLoadingNode(targetNode); - - await Task.Delay(1800); - - HighlightNode(targetNode); - } - - await StartWorkFlow(level + 1); - return; - } - - StateHasChanged(); - await Task.Delay(intervalDuration); - } - } - // This method display connctor animation - private async Task ConnectorAnimation(Connector connector) - { - var annotation = connector.Annotations[^1]; - annotation.Style.Fill = "Transparent"; - connector.Style.StrokeColor = "green"; - connector.TargetDecorator.Style.StrokeColor = "green"; - connector.TargetDecorator.Style.Fill = "green"; - - StateHasChanged(); - await Task.Delay(10); - } - - private bool IsProcessableNode(Node targetNode) - { - return !(targetNode.Shape is BpmnGateway) && - targetNode.ID != "setStatusAsRejected" && - targetNode.ID != "setStatusAsAccepted" && - targetNode.ID != "setNextApprovalStatusAsRejected"; - } - // create node for display animation on the targetNode - private void CreateLoadingNode(Node targetNode) - { - nodes.Add(new Node() { ID = ("node" + (nodeID++)), Width = 15, Height = 15, OffsetX = (targetNode.OffsetX - (targetNode.Width ?? 0) * targetNode.Pivot.X) + 1, OffsetY = (targetNode.OffsetY - (targetNode.Height ?? 0) * targetNode.Pivot.Y) + 2, Shape = new Shape { Type = NodeShapes.HTML } }); - StateHasChanged(); - } - - private void HighlightNode(Node targetNode) - { - if (!isDispose) - { - targetNode.Style.StrokeWidth = 2; - targetNode.Style.StrokeColor = "green"; - StateHasChanged(); - } - } - - //Function to reset the workflow when the reset option is clicked - private async Task ResetWorkFlow() - { - await diagram.LoadDiagramAsync(diagramData); - } - @*Hidden:Lines*@ - public void Dispose() - { - isDispose = true; - nodes?.Clear(); - connectors?.Clear(); - nodes = null; - connectors = null; - } - - @*End:Hidden*@ -} - diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ZOrder.razor b/Common/Pages/DiagramComponent/DiagramComponent/ZOrder.razor deleted file mode 100644 index 469a49a0..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ZOrder.razor +++ /dev/null @@ -1,394 +0,0 @@ -@page "/diagramcomponent/zorder" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Diagram.SymbolPalette -@using Syncfusion.Blazor.Navigations -@using Syncfusion.Blazor.Inputs -@using Microsoft.JSInterop -@using BlazorDemos.Pages -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes - - -@*Hidden:Lines*@ -@inject IJSRuntime jsRuntime -@inherits SampleBaseComponent; -@inject NavigationManager NavigationManager - - - -

This sample demonstrates how to visually arrange the selected objects such as nodes and connectors on the diagram page with its Z-order values.

-
- -

Z-order commands are used to visually arrange the selected objects such as nodes and connectors on the diagram page.

-

- BringForward - command visually moves the selected element over the nearest overlapping element. SendBackward command visually moves the selected element will go one step behind. BringToFront command visually brings the selected element to the front over all the other overlapped elements. SendToBack command visually moves the selected element behind all the other overlapped elements. -

-
-@*End:Hidden*@ -@*Hidden:Lines*@ -
-
-
-
- @*Hidden:Lines*@ -
- - - - - - - - - - -
- - @*End:Hidden*@ -
-
- - -
-
-
- - -
-
-
-
-@*Hidden:Lines*@ - -@*End:Hidden*@ - -@code -{ - - public DiagramSize SymbolPreview; - public SymbolMargin SymbolMargin = new SymbolMargin { Left = 15, Right = 15, Top = 15, Bottom = 15 }; - public SfDiagramComponent Diagram; - public SfSymbolPaletteComponent PaletteInstance; - - - //Defines Diagram's nodes collection - private DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Define palettes collection - private DiagramObjectCollection palettes = new DiagramObjectCollection(); - - // Defines palette's flow-shape collection - private DiagramObjectCollection BasicShapeList = new DiagramObjectCollection(); - - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - await base.OnAfterRenderAsync(firstRender); - PaletteInstance.Targets = new DiagramObjectCollection - { - Diagram - }; - } - private void OnCreated() - { - FitOptions mobileoptions = new FitOptions() { Mode = FitMode.Both, Region = DiagramRegion.Content }; - if (SampleService.IsDevice) - { - Diagram.FitToPage(mobileoptions); - - } - } - protected override void OnInitialized() - { - - InitDiagramModel(); - InitPaletteModel(); - } - // Create Nodes and Connectors for the diagram. - private void InitDiagramModel() - { - CreateNode("node1", 170, 210, NodeBasicShapes.Rectangle); - CreateNode("node2", 330, 210, NodeBasicShapes.Trapezoid); - CreateNode("node3", 250, 170, NodeBasicShapes.Cylinder); - } - // Create Nodes for the Palette. - private void InitPaletteModel() - { - palettes = new DiagramObjectCollection(); - SymbolPreview = new DiagramSize - { - Width = 100, - Height = 100 - }; - BasicShapeList = new DiagramObjectCollection(); - CreatePaletteNode(NodeBasicShapes.Rectangle, "Rectangle"); - CreatePaletteNode(NodeBasicShapes.Ellipse, "Ellipse"); - CreatePaletteNode(NodeBasicShapes.Hexagon, "Hexagon"); - CreatePaletteNode(NodeBasicShapes.Parallelogram, "Parallelogram"); - CreatePaletteNode(NodeBasicShapes.Triangle, "Triangle"); - CreatePaletteNode(NodeBasicShapes.Plus, "Plus"); - CreatePaletteNode(NodeBasicShapes.Star, "Star"); - CreatePaletteNode(NodeBasicShapes.Pentagon, "Pentagon"); - CreatePaletteNode(NodeBasicShapes.Heptagon, "Heptagon"); - CreatePaletteNode(NodeBasicShapes.Octagon, "Octagon"); - CreatePaletteNode(NodeBasicShapes.Trapezoid, "Trapezoid"); - CreatePaletteNode(NodeBasicShapes.Decagon, "Decagon"); - CreatePaletteNode(NodeBasicShapes.RightTriangle, "RightTriangle"); - CreatePaletteNode(NodeBasicShapes.Cylinder, "Cylinder"); - CreatePaletteNode(NodeBasicShapes.Diamond, "Diamond"); - - palettes = new DiagramObjectCollection() - { - #pragma warning disable BL0005 - new Palette() - { - ID = "basicshapepalette", - IsExpanded = true, - Symbols = BasicShapeList, - Title = "Basic Shapes" - } - #pragma warning restore BL0005 - }; - } - - //Method to Bring the selected element forward - public void BringForward(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - Diagram.BringForward(); - } - //Method to Bring the selected element Backward - public void SendBackward(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - Diagram.SendBackward(); - } - //Method to Bring the selected element Backward - public void BringToFront(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - Diagram.BringToFront(); - } - //Method to Bring the selected element Backward - public void SendToBack(Syncfusion.Blazor.Navigations.ClickEventArgs args) - { - Diagram.SendToBack(); - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - if((node.Shape as BasicShape).Shape == NodeBasicShapes.Rectangle) - node.Style.Fill = "#FF99CC"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Ellipse) - node.Style.Fill = "#FF99FF"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Hexagon) - node.Style.Fill = "#CC99FF"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Parallelogram) - node.Style.Fill = "#9999FF"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Triangle) - node.Style.Fill = "#99CCFF"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Plus) - node.Style.Fill = "#99FFFF"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Star) - node.Style.Fill = "#99FFCC"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Pentagon) - node.Style.Fill = "#99FF99"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Heptagon) - node.Style.Fill = "#CCFF99"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Octagon) - node.Style.Fill = "#BDB76B"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Trapezoid) - node.Style.Fill = "#FFCC99"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Decagon) - node.Style.Fill = "#FF9999"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.RightTriangle) - node.Style.Fill = "#C0C0C0"; - else if((node.Shape as BasicShape).Shape == NodeBasicShapes.Cylinder) - node.Style.Fill = "#9370DB"; - else - node.Style.Fill = "#4682B4"; - } - - // Method is used to create a node for the palette. - private void CreatePaletteNode(NodeBasicShapes basicShape, string id) - { - Node diagramNode = new Node() - { - ID = id, - Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = basicShape }, - Style = new ShapeStyle() { StrokeColor = "#757575", StrokeWidth = 1 }, - }; - BasicShapeList.Add(diagramNode); - } - - // Method is used to create a node for the diagram. - private void CreateNode(string id, double x, double y, NodeBasicShapes shape) - { - Node diagramNode = new Node() - { - ID = id, - OffsetX = x, - OffsetY = y, - Width = 100, - Height = 100, - Style = new ShapeStyle { StrokeColor = "#808080" , StrokeWidth=1}, - Shape = new BasicShape() { Type = Syncfusion.Blazor.Diagram.NodeShapes.Basic, Shape = shape }, - }; - nodes.Add(diagramNode); - } - public async Task ShowHideSymbolPalette() - { - await jsRuntime.InvokeAsync("openPalette"); - - } - @*Hidden:Lines*@ - public void Dispose() - { - if (SymbolPreview != null) - { - SymbolPreview = null; - } - if (SymbolMargin != null) - { - SymbolMargin = null; - } - Diagram = null; - PaletteInstance = null; - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - -#pragma warning disable BL0005 - if (palettes != null) - { - for (int i = 0; i < palettes.Count; i++) - { - palettes[i].ID = null; - palettes[i].Title = null; - if (palettes[i].Symbols != null) - { - for (int j = 0; j < palettes[i].Symbols.Count; j++) - { - palettes[i].Symbols[j] = null; - } - palettes[i].Symbols.Clear(); - palettes[i].Symbols = null; - } - } - palettes.Clear(); - palettes = null; - } -#pragma warning restore BL0005 - } - @*End:Hidden*@ -} \ No newline at end of file diff --git a/Common/Pages/DiagramComponent/DiagramComponent/ZoomingPanning.razor b/Common/Pages/DiagramComponent/DiagramComponent/ZoomingPanning.razor deleted file mode 100644 index 6064cf2e..00000000 --- a/Common/Pages/DiagramComponent/DiagramComponent/ZoomingPanning.razor +++ /dev/null @@ -1,736 +0,0 @@ -@page "/diagramcomponent/zooming-panning" - -@using Syncfusion.Blazor.Diagram -@using Syncfusion.Blazor.Buttons -@using Syncfusion.Blazor.Navigations -@using shapes = Syncfusion.Blazor.Diagram.NodeShapes -@using SelectionChangedEventArgs = Syncfusion.Blazor.Diagram.SelectionChangedEventArgs -@*Hidden:Lines*@ -@inherits SampleBaseComponent; -@implements IDisposable -@inject NavigationManager NavigationManager - - -@*End:Hidden*@ - -@*Hidden:Lines*@ - -

This sample illustrates the navigation options like zooming and panning in a diagram.

-
- -

This example explains zooming, panning, reset, Fittopage, Bringintoview, and Bringintocenter. The FitToPage method refers to how the diagram content fits into the view with respect to the width, height, or the whole. The BringIntoView means that it brings the specified rectangular region into the viewport of the diagram.

-

BringIntoCenter refers to the action of bringing the specified rectangular region of the diagram content to the center of the viewport. You can zoom in and out of the diagram using the Zoom method, and you can reset the zoom and scroller offsets to default values using the ResetZoom method.

-
-@*End:Hidden*@ -@*Hidden:Lines*@ -
- - @*End:Hidden*@ -
- - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - - - - @{ Node node1 = (context as Node); - string Name = (node1.Data as HierarchicalDetails).Name; - string Role = (node1.Data as HierarchicalDetails).Designation; - string Imageurl = (node1.Data as HierarchicalDetails).BG; - if (Name == "Maria Anders") - { -
-
-
-
-
@Name@Role -
-
- } - else if (Name == "Miguel Angel Paolino") - { -
-
-
-
-
@Name@Role -
-
- - } - else if (Name == "Frédérique Citeaux"||Name== "Christina Berglund"||Name== "Art Braunschweiger") - { -
-
-
-
-
@Name@Role -
-
- - } - else - - { - -
-
-
-
-
@Name@Role -
-
- } - } -
-
-
-
-
- @*Hidden:Lines*@ -
- -@*End:Hidden*@ -@code{ - @*Hidden:Lines*@ - - DiagramInteractions DiagramTool = DiagramInteractions.ZoomPan; - ScrollLimitMode scrollLimit { get; set; } = ScrollLimitMode.Infinity; - public SfDiagramComponent Diagram; - public int? HValue { get; set; } = 60; - public int? VValue { get; set; } = 60; - public LayoutType Type = LayoutType.HierarchicalTree; - public LayoutOrientation OrientationType = LayoutOrientation.TopToBottom; - public HorizontalAlignment HorizontalAlignment = HorizontalAlignment.Auto; - public VerticalAlignment VerticalAlignment = VerticalAlignment.Auto; - public int HorizontalSpacing = 30; - public int VerticalSpacing = 60; - public double Top = 30; - public double Bottom = 30; - public double Right = 30; - public double Left = 30; - string PanItemCssClass = "tb-item-middle tb-item-selected"; - string PointerItemCssClass = "tb-item-start"; - string ZoomInItemCssClass = "tb-item-start"; - string ZoomOutItemCssClass = "tb-item-start"; - string ViewCssClass = "tb-item-start"; - string CenterCssClass = "tb-item-start"; - string FitCssClass = "tb-item-start"; - string ResetCssClass = "tb-item-start"; - public bool reset = true; - public bool view=true; - public bool center=true; - - ToolbarItem PanItem; - ToolbarItem PointerItem; - ToolbarItem ZoomInItem; - ToolbarItem ZoomOutItem; - ToolbarItem FitToPageItem; - ToolbarItem ResetItem; - ToolbarItem ViewItem; - ToolbarItem CenterItem; - @*End:Hidden*@ - - //Defines sfdiagramComponent - SfDiagramComponent diagram; - - //Defines diagram constraints - public DiagramConstraints constraints { get; set; } - - //Defines diagrams's nodes collection - public DiagramObjectCollection nodes = new DiagramObjectCollection(); - - //Defines diagrams's connectors collection - public DiagramObjectCollection connectors = new DiagramObjectCollection(); - - - - private void OnConnectorCreating(IDiagramObject connector) - { - (connector as Connector).Type = ConnectorSegmentType.Orthogonal; - (connector as Connector).TargetDecorator.Shape = DecoratorShape.None; - (connector as Connector).Style = new ShapeStyle() { StrokeColor = "Black", StrokeWidth = 1 }; - (connector as Connector).Constraints = 0; - (connector as Connector).TargetDecorator = new DecoratorSettings() - { - - Style = new ShapeStyle() - { - StrokeColor = "#4f4f4f", - Fill = "#4f4f4f", - StrokeWidth = 1, - } - }; - } - private void OnPanClick() - { - PanItemCssClass = "tb-item-middle tb-item-selected"; - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - PointerItemCssClass = "tb-item-start"; - PointerItemCssClass = "tb-item-start"; - DiagramTool = DiagramInteractions.ZoomPan; - view = true; - center = true; - reset = true; - } - private void OnResetClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass = "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - diagram.ResetZoom(); - reset = true; - } - private void OnFittoPageClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - diagram.FitToPage(new FitOptions(){ Mode = FitMode.Both, Region = DiagramRegion.Content }); - reset = false; - } - private void OnBringintoViewClick() - { - PanItemCssClass = "tb-item-start"; - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - } - else - { - PointerItemCssClass= "tb-item-start"; - } - if (diagram.SelectionSettings.Nodes.Count > 0) - { - Node node = diagram.SelectionSettings.Nodes[0]; - DiagramRect bound = new DiagramRect((node.OffsetX - (node.Width / 2)), node.OffsetY - (node.Height / 2), node.Width, node.Height); - diagram.BringIntoView(bound); - - } - reset = false; - } - private void OnBringintoCenterClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - } - else - { - PointerItemCssClass = "tb-item-start"; - } - ResetCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-start"; - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - if (diagram.SelectionSettings.Nodes.Count > 0) - { - Node node = diagram.SelectionSettings.Nodes[0]; - DiagramRect bound = new DiagramRect((node.OffsetX - (node.Width / 2)), node.OffsetY - (node.Height / 2), node.Width, node.Height); - diagram.BringIntoCenter(bound); - } - reset = false; - } - private void OnSelectionChanged(SelectionChangedEventArgs args) - { - if (diagram.SelectionSettings.Nodes.Count > 0) - { - view = false; - center = false; - } - else - { - view = true; - center = true; - } - - } - private void OnPointerClick() - { - DiagramTool = DiagramInteractions.SingleSelect | DiagramInteractions.MultipleSelect; - PanItemCssClass = "tb-item-start"; - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - if (diagram.SelectionSettings.Nodes.Count > 0) - { - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - view = false; - center = false; - } - ResetCssClass = "tb-item-start"; - PointerItemCssClass = "tb-item-middle tb-item-selected"; - - reset = true; - } - private TreeInfo GetLayoutInfo(IDiagramObject obj, TreeInfo options) - { - options.EnableSubTree = true; - options.Orientation = Syncfusion.Blazor.Diagram.Orientation.Horizontal; - return options; - } - private void OnNodeCreating(IDiagramObject obj) - { - Node node = obj as Node; - node.Width = 180; - node.Height = 53; - node.Shape = new Shape() - { Type = shapes.HTML }; - } - - public class HierarchicalDetails - { - public string Name { get; set; } - public string Designation { get; set; } - public string EmployeeID { get; set; } - public string TeamName { get; set; } - public string TeamSize { get; set; } - public string ParentID { get; set; } - public string BG { get; set; } - } - //Initialize Data Source - public List DataSource = new List() -{ - new HierarchicalDetails(){ Name="Maria Anders", Designation="Managing Director", EmployeeID="SF10001", TeamName="Web-Diagram", TeamSize="10", ParentID = "", BG= "images/diagram/people/people-circle14.png" }, - new HierarchicalDetails(){ Name="Ana Trujillo", Designation="Project Manager ", EmployeeID="SF10002", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/people/people-circle12.png" }, - new HierarchicalDetails(){ Name="Patricio Simpson" ,Designation="Project Lead", EmployeeID="SF10003", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10002", BG= "images/diagram/people/people-circle18.png" }, - new HierarchicalDetails(){ Name="Aria Cruz" ,Designation="Project Lead", EmployeeID="SF10004", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10003", BG= "images/diagram/people/people-circle0.png" }, - new HierarchicalDetails(){ Name="Antonio Moreno", Designation="Project Lead", EmployeeID="SF10005", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10004", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Thomas Hardy", Designation="Senior S/w Engg", EmployeeID="SF10006", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10005", BG= "images/diagram/people/people-circle29.png" }, - new HierarchicalDetails(){ Name="Christina Berglund" ,Designation="S/w Engg", EmployeeID="SF10007", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10006", BG= "images/diagram/people/people-circle12.png" }, - new HierarchicalDetails(){ Name="Hanna Moos", Designation="Project Trainee", EmployeeID="SF10008", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10007", BG= "images/diagram/people/people-circle27.png" }, - new HierarchicalDetails(){ Name="Frédérique Citeaux", Designation="Project Trainee", EmployeeID="SF100050", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10007", BG= "images/diagram/people/people-circle1.png" }, - new HierarchicalDetails(){ Name="Martín Sommer" ,Designation="Senior S/w Engg",EmployeeID="SF10009", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10006", BG= "images/diagram/people/people-circle25.png" }, - new HierarchicalDetails(){ Name="Maria Larsson" ,Designation="Senior S/w Engg", EmployeeID="SF100010", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10004", BG= "images/diagram/people/people-circle11.png" }, - new HierarchicalDetails(){ Name="Isabel de Castro", Designation="Project Manager", EmployeeID="SF100011", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/people/people-circle1.png" }, - new HierarchicalDetails(){ Name="Horst Batista", Designation="Project Lead", EmployeeID="SF100012", TeamName="Web-Diagram", TeamSize="10", ParentID = "SF100021", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Lúcia Carvalho" ,Designation="Senior S/w Engg", EmployeeID="SF100013", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100012", BG= "images/diagram/people/people-circle27.png" }, - new HierarchicalDetails(){ Name="José Pedro Freyre" ,Designation="Senior S/w Engg", EmployeeID="SF100014", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100013", BG= "images/diagram/people/people-circle21.png" }, - new HierarchicalDetails(){ Name="André Fonseca", Designation="Senior S/w Engg", EmployeeID="SF100015", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100014", BG= "images/diagram/people/people-circle5.png" }, - new HierarchicalDetails(){ Name="Paula Wilson", Designation="S/w Engg", EmployeeID="SF100016", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100015", BG= "images/diagram/people/people-circle0.png" }, - new HierarchicalDetails(){ Name="John Bergulfsen", Designation="Project Trainee", EmployeeID="SF100017", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100015", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Jose Pavarotti", Designation="S/w Engg", EmployeeID="SF100018", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100015", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Miguel Angel Paolino" ,Designation="Project Trainee", EmployeeID="SF100019", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100015", BG= "images/diagram/people/people-circle14.png" }, - new HierarchicalDetails(){ Name="Horst Kloss", Designation="Project Trainee",EmployeeID="SF100020", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100015", BG= "images/diagram/people/people-circle1.png" }, - new HierarchicalDetails(){ Name="Wilson Holz" ,Designation="Project Lead", EmployeeID="SF100021", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100011", BG= "images/diagram/people/people-circle12.png" }, - new HierarchicalDetails(){ Name="Jytte Petersen" ,Designation="Project Manager", EmployeeID="SF100022", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/people/people-circle2.png" }, - new HierarchicalDetails(){ Name="Liz Nixon" ,Designation="Project Lead", EmployeeID="SF100023", TeamName="Web-Diagram", TeamSize="10", ParentID = "SF100022", BG= "images/diagram/people/people-circle26.png" }, - new HierarchicalDetails(){Name="Liu Wong" ,Designation="Senior S/w Engg", EmployeeID="SF100024", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100023", BG= "images/diagram/people/people-circle29.png" }, - new HierarchicalDetails(){ Name="Dominique Perrier" ,Designation="Project Lead", EmployeeID="SF100025", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100023", BG= "images/diagram/people/people-circle10.png" }, - new HierarchicalDetails(){ Name="Annette Roulet" ,Designation="Senior S/w Engg", EmployeeID="SF100026", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100025", BG= "images/diagram/people/people-circle4.png" }, - new HierarchicalDetails(){ Name="Carlos González", Designation="SR", EmployeeID="SF100027", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100026", BG= "images/diagram/people/people-circle1.png" }, - new HierarchicalDetails(){Name="Felipe Izquierdo" ,Designation="SR", EmployeeID="SF100028", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100027", BG= "images/diagram/people/people-circle21.png" }, - new HierarchicalDetails(){Name="Yoshi Tannamuri", Designation="S/w Engg", EmployeeID="SF100029", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100028", BG= "images/diagram/people/people-circle5.png" }, - new HierarchicalDetails(){ Name="Fran Wilson", Designation="SR", EmployeeID="SF100030", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100028", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Jean Fresnière", Designation="S/w Engg", EmployeeID="SF100031", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100028", BG= "images/diagram/people/people-circle27.png" }, - new HierarchicalDetails(){ Name="Giovanni Rovelli", Designation="SR", EmployeeID="SF100032", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100028", BG= "images/diagram/people/people-circle26.png" }, - new HierarchicalDetails(){ Name="Renate Messner", Designation="Project Trainee", EmployeeID="SF100033", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100028", BG= "images/diagram/people/people-circle11.png" }, - new HierarchicalDetails(){Name="Jaime Yorres" ,Designation="Project Trainee", EmployeeID="SF100034", TeamName="Web-Diagram", TeamSize="10", ParentID = "SF100028", BG= "images/diagram/people/people-circle27.png" }, - new HierarchicalDetails(){Name="John Steel", Designation="Project Trainee", EmployeeID="SF100035", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100027", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Yvonne Moncada", Designation="Project Trainee", EmployeeID="SF100036", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100037", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Michael Suyama", Designation="S/w Engg", EmployeeID="SF100037", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100024", BG= "images/diagram/people/people-circle27.png" }, - new HierarchicalDetails(){ Name="Alexander Feuer", Designation="Project Trainee", EmployeeID="SF100038", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100037", BG= "images/diagram/people/people-circle1.png" }, - new HierarchicalDetails(){Name="Art Braunschweiger" ,Designation="Project Trainee", EmployeeID="SF100039", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100037", BG= "images/diagram/people/people-circle21.png" }, - new HierarchicalDetails(){Name="Pascale Cartrain", Designation="Project Trainee", EmployeeID="SF100040", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100037", BG= "images/diagram/people/people-circle10.png" }, - new HierarchicalDetails(){ Name="Mary Saveley", Designation="Project Manager" , EmployeeID="SF100041", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF10001", BG= "images/diagram/people/people-circle25.png" }, - new HierarchicalDetails(){ Name="Paul Henriot", Designation="Project Lead",EmployeeID="SF100042", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100041", BG= "images/diagram/people/people-circle21.png" }, - new HierarchicalDetails(){ Name="Rita Müller" ,Designation="Project Trainee", EmployeeID="SF100043", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100044", BG= "images/diagram/people/people-circle23.png" }, - new HierarchicalDetails(){ Name="Pirkko Koskitalo", Designation="Senior S/w Engg", EmployeeID="SF100044", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100042", BG= "images/diagram/people/people-circle8.png" }, - new HierarchicalDetails(){ Name="Karl Jablonski", Designation="Senior S/w Engg" , EmployeeID="SF100045", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100044", BG= "images/diagram/people/people-circle17.png" }, - new HierarchicalDetails(){ Name="Paula Parente" ,Designation="Project Lead", EmployeeID="SF100046",TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100048", BG= "images/diagram/people/people-circle5.png" }, - new HierarchicalDetails(){ Name="John Camino" ,Designation="Senior S/w Engg", EmployeeID="SF100047", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100013", BG= "images/diagram/people/people-circle21.png" }, - new HierarchicalDetails(){ Name="Matti Karttunen", Designation="Project Lead", EmployeeID="SF100048", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100041", BG= "images/diagram/people/people-circle0.png" }, - new HierarchicalDetails(){ Name="Nancy" ,Designation="Senior S/w Engg", EmployeeID="SF100049", TeamName="Web-Diagram", TeamSize="10", ParentID ="SF100044", BG= "images/diagram/people/people-circle29.png" }, - }; - @*Hidden:Lines*@ - public void Dispose() - { - if (nodes != null) - { - nodes.Clear(); - nodes = null; - } - if (connectors != null) - { - connectors.Clear(); - connectors = null; - } - } - @*End:Hidden*@ - public void OnZoomInItemClick() - { - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - diagram.Zoom(1.2, new DiagramPoint() { X = 100, Y = 100 }); - reset = false; - } - public void ZoomChanged() - { - reset = false; - } - public void OnZoomOutItemClick() -{ - if (DiagramTool == DiagramInteractions.Default) - { - PointerItemCssClass = "tb-item-middle tb-item-selected"; - PanItemCssClass= "tb-item-start"; - } - else - { - PointerItemCssClass = "tb-item-start"; - PanItemCssClass = "tb-item-middle tb-item-selected"; - } - ZoomInItemCssClass = "tb-item-start"; - ZoomOutItemCssClass = "tb-item-start"; - ViewCssClass = "tb-item-start"; - CenterCssClass = "tb-item-start"; - FitCssClass = "tb-item-start"; - ResetCssClass = "tb-item-start"; - diagram.Zoom(1 / 1.2, new DiagramPoint() { X = 100, Y = 100 }); - reset = false; -} -} diff --git a/Common/Pages/DiagramComponent/SampleList.cs b/Common/Pages/DiagramComponent/SampleList.cs deleted file mode 100644 index 6e2c12f5..00000000 --- a/Common/Pages/DiagramComponent/SampleList.cs +++ /dev/null @@ -1,477 +0,0 @@ -#region Copyright Syncfusion® Inc. 2001-2025. -// Copyright Syncfusion® Inc. 2001-2025. All rights reserved. -// Use of this code is subject to the terms of our license. -// A copy of the current license can be obtained at any time by e-mailing -// licensing@syncfusion.com. Any infringement will be prosecuted under -// applicable laws. -#endregion -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using BlazorDemos; -namespace BlazorDemos -{ - internal partial class SampleConfig - { - public List DiagramComponent { get; set; } = new List{ - new Sample - { - Name = "Flow Chart", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/flowchart", - FileName = "FlowChart.razor", - HeaderText="Flow Chart using Blazor Diagram Component Example", - }, - new Sample - { - Name = "Nodes", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/nodes", - FileName = "Nodes.razor", - HeaderText="Example of Nodes in Blazor Diagram Component" - }, - new Sample - { - Name = "Shapes", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/shapes", - FileName = "Shapes.razor", - HeaderText="Example of Shapes in Blazor Diagram Component" - }, - new Sample - { - Name = "HTML Shapes", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/html-shapes", - FileName = "NodeTemplateSample.razor", - HeaderText="Example of NodeTemplate in Blazor Diagram Component", - }, - new Sample - { - Name = "Connectors", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/connectors", - FileName = "ConnectorSample.razor", - HeaderText="Example of Connectors in Blazor Diagram Component", - }, - new Sample - { - Name = "Line Routing", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/linerouting", - FileName = "Routing.razor", - HeaderText="Example of Line Routing in Blazor Diagram Component", - }, - new Sample - { - Name = "Annotations", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/annotations", - FileName = "Annotations.razor", - HeaderText="Example of Annotations in Blazor Diagram Component" - }, - new Sample - { - Name = "Ports", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/ports", - FileName = "Ports.razor", - HeaderText="Example of Ports in Blazor Diagram Component", - }, - new Sample - { - Name = "Rulers", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/rulers", - FileName = "Rulers.razor", - HeaderText="Example of Rulers in Blazor Diagram Component", - }, - new Sample - { - Name = "Swimlanes", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/swimlane", - FileName = "SwimlaneSample.razor", - HeaderText="Example of Swimlanes in Blazor Diagram Component", - }, - new Sample - { - Name = "Container", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/container", - FileName = "ContainerSample.razor", - HeaderText="Example of Containers in Blazor Diagram Component", - Type = SampleType.New, - NotificationDescription = new string[]{ @"This sample demonstrates how to visualize the Azure Container Apps Environment using the built-in container shapes in Syncfusion Blazor Diagram."}, - }, - new Sample - { - Name = "Events", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/events", - FileName = "Events.razor", - HeaderText="Example of Events in Blazor Diagram Component", - }, - new Sample - { - Name = "Constraints", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/constraints", - FileName = "Constraintssample.razor", - HeaderText="Example of Constraints in Blazor Diagram Component" - }, - new Sample - { - Name = "Tooltip", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/tooltip", - FileName = "TooltipSample.razor", - HeaderText="Example of Tooltip in Blazor Diagram Component", - }, - new Sample - { - Name = "Symbol Palette", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/symbolpalette", - FileName = "SymbolPalette.razor", - HeaderText="Example of Symbol Palette in Blazor Diagram Component", - }, - new Sample - { - Name = "Z-Order", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/zorder", - FileName = "ZOrder.razor", - HeaderText="Example of ZOrder Commands in Blazor Diagram Component", - }, - new Sample - { - Name = "Zooming and Panning", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/zooming-panning", - FileName = "ZoomingPanning.razor", - HeaderText="Example of Zooming and Panning in Blazor Diagram Component", - }, - new Sample - { - Name = "Overview", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/overview", - FileName = "Overview.razor", - HeaderText="Example of Overview in Blazor Diagram Component", - }, - new Sample - { - Name = "History Manager", - Category = "Getting Started", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/historymanager", - FileName = "HistoryManager.razor", - HeaderText="Example of History Manager in Blazor Diagram Component", - }, - new Sample - { - Name = "Drawing Tools", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/drawingtool", - FileName = "DrawingToolSample.razor", - HeaderText="Example of DrawingTools in Blazor Diagram Component", - }, - new Sample - { - Name = "User Handles", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/userhandles", - FileName = "UserHandles.razor", - HeaderText="Example of User Handles in Blazor Diagram Component", - }, - new Sample - { - Name = "Expand and Collapse", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/expandcollapse", - FileName = "ExpandAndCollapse.razor", - HeaderText="Example of Expand And Collapse in Blazor Diagram Component", - }, - new Sample - { - Name = "Snapping", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/Snapping", - FileName = "Snapping.razor", - HeaderText="Example of Snapping in Blazor Diagram Component", - }, - new Sample - { - Name = "Scrolling", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/scrollsettings", - FileName = "Scrolling.razor", - HeaderText="Example of Scrolling in Blazor Diagram Component", - }, - new Sample - { - Name = "Keyboard Interaction", - Category = "Interactive Features", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/keyboard-interaction", - FileName = "KeyboardInteraction.razor", - HeaderText="Example of Keyboard Interaction in Blazor Diagram Component", - }, - new Sample - { - Name = "Node Content", - Category = "Customization", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/nodecontent", - FileName = "NodeContent.razor", - HeaderText="Example of Node content in Blazor Diagram Component", - }, - new Sample - { - Name = "Flowchart Layout", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/flowchart-layout", - FileName = "FlowchartLayout.razor", - HeaderText="Example of Flowchart Layout in Blazor Diagram Component", - }, - new Sample - { - Name = "Organization Chart", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/organization-model", - FileName = "OrganizationModel.razor", - HeaderText="Organization Chart Example using Blazor Diagram Component" - }, - new Sample - { - Name = "Mindmap Layout", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/mindmap", - FileName = "Mindmap.razor", - HeaderText="Example of Mind Map Layout in Blazor Diagram Component", - }, - new Sample - { - Name = "Hierarchical Tree", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/hierarchical-tree", - FileName = "HierarchicalTree.razor", - HeaderText="Hierarchical Tree Example using Blazor Diagram Component", - }, - new Sample - { - Name = "Complex Hierarchical Tree", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/complexhierarchical", - FileName = "ComplexHierarchicalTree.razor", - HeaderText="ComplexHierarchical Tree Example using Blazor Diagram Component", - }, - new Sample - { - Name = "Radial Tree", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/radialtree", - FileName = "RadialTree.razor", - HeaderText="Radial Tree Example using Blazor Diagram Component", - }, - new Sample - { - Name = "PERT Chart", - Category = "Automatic Layouts", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/pertchart", - FileName = "PERTChart.razor", - HeaderText="PERT Chart Example using Blazor Diagram Component", - }, - new Sample - { - Name = "Local Data", - Category = "Data Binding", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/local-data", - FileName = "LocalData.razor", - HeaderText="Example of Local Data in Blazor Diagram Component" - }, - new Sample - { - Name = "Remote Data", - Category = "Data Binding", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/remote-data", - FileName = "RemoteData.razor", - HeaderText="Example of Remote Data in Blazor Diagram Component" - }, - new Sample - { - Name = "Serialization", - Category = "Save and Restore", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/serialization", - FileName = "Serialization.razor", - HeaderText="Example of Serialization in Blazor Diagram Component" - }, - new Sample - { - Name = "Export", - Category = "Export and Print", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/export", - FileName = "ExportSample.razor", - HeaderText="Example of Exporting in Blazor Diagram Component" - }, - new Sample - { - Name = "Print", - Category = "Export and Print", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/print", - FileName = "PrintSample.razor", - HeaderText="Example of Printing in Blazor Diagram Component" - }, - new Sample - { - Name = "BPMN Editor", - Category = "Use Case Diagram", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/bpmn-editor", - FileName = "BPMNEditor.razor", - HeaderText ="Example of BPMN Design in Blazor Diagram Component", - }, - new Sample - { - Name = "Circuit Diagram", - Category = "Use Case Diagram", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/Circuit-Diagram", - FileName = "CircuitDiagram.razor", - HeaderText ="Example of Electrical Circuit Design in Blazor Diagram Component", - }, - new Sample - { - Name = "Logic Circuit Diagram", - Category = "Use Case Diagram", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/logic-circuit", - FileName = "LogicCircuitDiagram.razor", - HeaderText ="Example of Logic Circuit Diagram in Blazor Diagram Component", - }, - new Sample - { - Name = "UML Activity Diagram", - Category = "Use Case Diagram", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/uml-activity", - FileName = "UMLActivityDiagram.razor", - HeaderText ="Example of UML Activity Diagram in Blazor Diagram Component", - }, - new Sample - { - Name = "UML Sequence Diagram", - Category = "Use Case Diagram", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/uml-sequence", - FileName = "UMLSequenceDiagram.razor", - HeaderText ="Example of UML Sequence Diagram in Blazor Diagram Component", - }, - new Sample - { - Name = "Venn Diagram", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/venn-diagram", - FileName = "VennDiagram.razor", - HeaderText="Example of Venn Diagram in Blazor Diagram Component" - }, - new Sample - { - Name = "Network Diagram", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/networkdiagram", - FileName = "NetworkDiagram.razor", - HeaderText="Example of Network Diagram in Blazor Diagram Component", - - }, - new Sample - { - Name = "Ishikawa Diagram", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/ishikawadiagram", - FileName = "IshikawaDiagram.razor", - HeaderText="Example of Ishikawa Diagram in Blazor Diagram Component", - }, - new Sample - { - Name = "Fishbone Diagram", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/fishbone-diagram", - FileName = "FishboneDiagram.razor", - HeaderText="Example of Fishbone Diagram in Blazor Diagram Component" - }, - new Sample - { - Name = "Workflow Diagram", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/workflow-diagram", - FileName = "WorkflowDiagram.razor", - HeaderText="Example of Workflow Diagram in Blazor Diagram Component", - Type = SampleType.New, - NotificationDescription = new string[]{ @"This sample provides a visual representation of a streamlined Travel Request Approval workflow created with the Syncfusion Blazor Diagram. The diagram incorporates BPMN nodes, connectors, and annotations to represent various diagram elements."}, - - }, - new Sample - { - Name = "Flow Execution", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/flow-execution", - FileName = "FlowExecution.razor", - HeaderText="Example of Flow Execution in Blazor Diagram Component" - }, - new Sample - { - Name = "Diagram Binding With TreeView", - Category = "Real-time Diagrams", - Directory = "DiagramComponent/DiagramComponent", - Url = "diagramcomponent/diagramwithtreeview", - FileName = "DiagramWithTreeView.razor", - HeaderText="Example of Treeview component in Blazor Diagram Component", - }, - - }; - } -}