Resources  
  • Developing a Walkthrough Component in PowerAppsMar 27, 2024. Create intuitive user experiences by developing a Walkthrough Component in PowerApps. Guide users seamlessly through your app's features with interactive tutorials and enhance navigation for a smoother user journey.
  • Enable Entities for Service-Level Agreements in Dynamics 365Mar 27, 2024. Enable entities for service-level agreements in Dynamic 365. Enable service-level agreements (SLAs) for entities in Power Apps or Dynamics 365 Customer Engagement (on-premises) by following these steps.
  • Azure DevOps Pipeline Notifications: Custom Subscription SetupMar 21, 2024. Azure DevOps also has support for configuring Custom notifications. In this article, we are going to learn about how to configure Custom notifications for any specific event or scenario using a feature called Custom Notification Subscription.
  • Getting Started With Mapster in ASP.NET CoreMar 20, 2024. Learn how to streamline object mapping in ASP.NET Core applications using Mapster. This comprehensive guide covers installation, basic mapping techniques, advanced features like custom mapping, and practical examples to help you master the art of efficient data transformation.
  • Validate Multiple Tokens with Different Providers in ASP.NET 8 APIMar 15, 2024. Learn to validate multiple tokens from different authentication providers in an ASP.NET 8 API. Configure authentication schemes for each provider, accommodating diverse token formats and validation requirements seamlessly.
  • Create Custom Search Filter Directive in Vue.jsMar 15, 2024. Learn to create a custom search filter directive in Vue.js to dynamically filter a list based on user input. Directives allow DOM manipulation, enabling special behaviors.
  • Sort Array Directive in Vue.jsMar 13, 2024. Custom directives in Vue.js empower developers to extend HTML elements' functionality, enabling direct manipulation of the Document Object Model (DOM) within Vue applications. This example demonstrates creating a directive to sort an array based on a specific property.
  • Creating Custom NuGet Packages in C#Mar 10, 2024. Learn how to create custom NuGet packages in C# with this step-by-step guide. Set up a project, add components, create a .nuspec file, package your project, and optionally publish to nuget.org.
  • Creating Custom Attribute Directives in AngularMar 07, 2024. Angular is a powerful framework for building dynamic web applications with JavaScript, HTML, and CSS. One of its key features is the ability to create custom directives, which allow developers to extend HTML with new attributes and behaviors. The process of creating a custom attribute directive in Angular.
  • Creating Funnels Using Custom Events in Application InsightsMar 07, 2024. Learn to add custom events to a simple .NET application's telemetry and then use these events to create funnels that identify users who complete a specific sequence of steps in your application.
  • Reactivity with Vue.js WatchersMar 04, 2024. In the world of Vue.js, watchers stand as vigilant guardians, monitoring specific data properties for any signs of change. When a change is detected, they leap into action, executing custom logic to check your application stays in sync and responds accordingly.
  • Vue.js Custom Events: Enhance Parent-Child Communication with $emit()Mar 01, 2024. Vue.js, with its powerful reactivity system, allows seamless communication between parent and child components. While props enable data flow from parent to child, the $emit() method serves as a bridge for sending information from the child back to the parent.In this comprehensive guide, we will explore the intricacies of Vue.js custom events, focusing on the application of the $emit() method to create dynamic and interactive user interfaces.
  • Using Plugin.Maui.Popup to Create Eye-Catching Popups in AppsFeb 28, 2024. Learn how to utilize Plugin.Maui.Popup to incorporate popup functionality into your Xamarin.Forms application. Follow step-by-step instructions to install the package, create custom popup pages, and call popups from the code behind.
  • Creating Cohorts Using Custom Properties in Application InsightsFeb 27, 2024. In this article, we will learn how to leverage custom properties in Application Insights to create cohorts for in-depth user behavior analysis.
  • Creating a Personalized Waiting Window in .NET 6, 7, 8 WPFFeb 26, 2024. A custom loader in a WPF (Windows Presentation Foundation) .Net 6,7,8 application serves the purpose of indicating to the user that the application is performing a task or operation that may take some time to complete.
  • How Do You Define Custom Key Modifier Aliases in Vue.jsFeb 26, 2024. In Vue.js, enhance keyboard event handling by defining custom key modifier aliases through Vue.config.keyCodes. This guide details the process, demonstrating how to create and utilize these aliases in Vue templates.
  • Create a Custom Wait Loader in .NET MAUI Feb 24, 2024. Within MAUI, a loading indicator, also known as a "wait loader," is commonly employed to notify the user of an ongoing time-consuming task, such as data retrieval, processing, or any operation that could potentially lead to the UI becoming unresponsive or frozen.
  • Creating Email Template for Custom Entities in Dynamics 365 CEFeb 24, 2024. This article is about using email template for custom entity in Dynamics 365
  • Error Management in .NET CoreFeb 18, 2024. In software development, dealing with mistakes is really important. Whether it's a small problem or a big one, how a program handles mistakes can really affect how well it works for users. In the .NET Core world, there's a cool way to handle errors called global exception handling using custom middleware.
  • How to Shorten URL using Custom Pipe in AngularFeb 17, 2024. In this article, We will learn steps to create a pipe that shortens a long URL and Link.
  • Global Exception Handling in .NET Core with Custom MiddlewareFeb 16, 2024. Global exception handling in .NET Core, utilizing custom middleware, centralizes error management, enhancing resilience and simplifying maintenance. This approach streamlines error handling across the application, promoting consistency and fortifying against unexpected failures.
  • Exporting Custom OpenTelemetry Metrics to Azure Monitor using ASP.NET CoreFeb 14, 2024. Learn how to seamlessly export custom OpenTelemetry metrics from your ASP.NET Core applications to Azure Monitor. Enhance monitoring and observability by integrating with Azure's powerful toolset, leveraging the flexibility and insights provided by OpenTelemetry.
  • Build Temparature Convertor Application Using Angular and BootstrapFeb 12, 2024. In this tutorial, I will show you how to build an Temperature Convertor application using Angular Custom Pipe. The Pipes are a great way to transform the appearance of elements in the template.
  • JavaScript Removed When Publishing Form in Customer Insights journeyFeb 12, 2024. When editing the HTML of a Marketing form to embed any custom JavaScript code, upon saving and publishing the form, the custom JS is being removed from HTML by the dynamics.
  • Implementing a Custom Loader in WPF with MVVMFeb 06, 2024. A custom loader in a WPF (Windows Presentation Foundation) application serves the purpose of indicating to the user that the application is performing a task or operation that may take some time to complete.
  • React Design Pattern Series: Mastering Hooks PatternFeb 05, 2024. This article delves into the transformative impact of React Hooks on state and side-effect management within functional components. The piece explores the "what" and "why" behind React Hooks, emphasizing their benefits, such as simplified state management, logic reusability, and improved lifecycle management.
  • Optimize ASP.NET Core MVC Data Transfer with Custom MiddlewareFeb 01, 2024. In ASP.NET Core, middleware components are used to handle requests and responses as they flow through the application's pipeline. These middleware components can be chained together to process requests and responses in a specific order. Transferring data between middleware components can be achieved using various techniques.
  • Custom Events in C# for Enhanced Communication and FlexibilityJan 31, 2024. In C#, you can create custom events to provide a way for classes to communicate and react to certain actions or state changes.
  • Extending List Functionality with C# Extension MethodsJan 22, 2024. In this article, I will demonstrate How to create an extension method in c# for List type. I will explain how we can extend the functionality of List without a new derived class. I will create extension methods for list type will help us use across project without creating new class.
  • Create Xamarin Android Custom Loader with LoaderEase NuGet PackageJan 19, 2024. The fundamental objective of a wait window is to furnish users with feedback, mitigating any perception of unresponsiveness or ambiguity during tasks that may consume considerable time. Leveraging the NuGet package " Xamarin.Custom.LoaderEase" enables users to effortlessly fashion a personalized loader aligned with the visual theme of their application.
  • Creating Custom User Authentication using AbstractBaseUser in DjangoJan 18, 2024. This article explains the complete process of how one can create and use custom user models. The AbstractBaseUser class in Django is a fundamental component of the authentication system.
  • Understanding and Utilizing .NET Core MiddlewareJan 18, 2024. This article is about middleware in .net core and how to create custom middleware. Middleware is a key component in the execution pipeline of .NET Core applications, handling requests and responses. Learn how to create custom middleware and pass data between components for enhanced functionality.
  • How to Develop a Custom Message Box in .NET 6,7,8 for WPF?Jan 18, 2024. As used in software development, the term "custom message box" describes a dialog box or pop-up window that is created and implemented with unique features, looks, and functionality instead of depending on the built-in or operating system-provided standard message box.
  • How to set Custom help URL in Dynamics 365Jan 08, 2024. Gain administration access to CRM, then navigate to Advanced Settings, Administration, and System Settings. In the General Tab, locate "Set Custom Help URL" to enable custom help for entities and set a Global Custom Help URL. Click OK to apply.
  • Creating and Using React Custom Hooks 🚀Jan 06, 2024. In this article, we will learn about an exciting React journey! Learn the magic of custom hooks and React's wizardry for encapsulating logic. Follow step-by-step examples to create reusable hooks for counters, fetching data, and likes.
  • Immutability: Creating Custom Immutable Types in C#Jan 04, 2024. In this article we will discuss about how to create custom immutable type in c#
  • What are Solidity Modifiers and How do they boost the security of Smart Contracts?Dec 28, 2023. Explore the power of Solidity modifiers! From basic syntax to advanced implementations, learn how these tools enhance security, reusability, and efficiency in smart contract development.
  • Logging Brilliance in .NET Core Part 2 : Using of Serilog in Windows Service Dec 26, 2023. Learn to implement external logging in API and Windows Service using Serilog. This guide covers Serilog configuration, worker class setup, and package references, ensuring efficient information tracking with detailed examples.
  • Building a Custom Object Mapper in ASP.NET Core Using C#Dec 21, 2023. Unlock the power of data transformation in ASP.NET Core with a custom object mapper. Delve into the steps—defining mapping configurations, implementing logic, and seamless integration—ensuring tailored, efficient, and maintainable data conversion in your applications. Happy coding!
  • Adding Report Pages as Custom Tooltips in Power BIDec 13, 2023. Adding Report Pages as Custom Tooltips.
  • Guard Clauses in C#Dec 12, 2023. What are guard clauses? How do they implement them in . NET? There are multiple ways of implementation. How are they different from validation?
  • Create Custom Search Filter Pipe in AngularDec 12, 2023. Learn to create a custom search filter pipe in an Angular application with this guide. It covers prerequisites, creating a custom pipe, importing it, and implementing search functionality.
  • Logging Brilliance in .NET Core: Using of SerilogDec 05, 2023. This article will provide more details about .Net Core Middleware details, What? When? Where?. Middleware, integral in the ASP.NET Core request pipeline, manages requests and responses. Learn how middleware components handle tasks like authentication, authorization, and logging, enhancing modularity, customization, and testability in .NET applications.
  • .NET Core: Decoding .NET Core Custom MiddlewareDec 01, 2023. This article will provide more details about .Net Core Middleware details, What? When? Where?. Middleware, integral in the ASP.NET Core request pipeline, manages requests and responses. Learn how middleware components handle tasks like authentication, authorization, and logging, enhancing modularity, customization, and testability in .NET applications.
  • .NET Core: Custom Middleware Short CircuitDec 01, 2023. This article will provide more details about .Net Core Middleware details, What? When? Where?. Middleware, integral in the ASP.NET Core request pipeline, manages requests and responses. Learn how middleware components handle tasks like authentication, authorization, and logging, enhancing modularity, customization, and testability in .NET applications.
  • Custom Pagination using JavaScriptNov 30, 2023. In this article we will explore how to create custom pagination using JavaScript.
  • How to Use Accessibility in SwiftUI?Nov 15, 2023. Discover the key steps to build inclusive SwiftUI apps in "How to Create Inclusive Apps with SwiftUI Accessibility." From VoiceOver support to dynamic type and custom actions, this guide empowers developers to enhance accessibility and create user-friendly apps for everyone. Elevate your SwiftUI skills and contribute to a more inclusive digital experience.
  • How We Can Add Setup Project in Window Service?Oct 27, 2023. In this article, we will see how we can add a Windows services installer. You can combine your service with any required files, registry entries, and configurations into a single installation package using this installer. The setup project makes it easier to deploy your Windows service.
  • Types of Errors in JavascriptOct 26, 2023. Explore the diverse landscape of JavaScript errors, from syntax and reference issues to type, range, and logical errors, in this comprehensive guide to better understand, identify, and address coding issues.
  • How to Use Custom Attributes in C#Oct 10, 2023. Custom attributes in C# allow developers to annotate code elements with metadata for improved runtime behavior and information retrieval. This practical guide explores the creation, implementation, and usage of custom attributes in C#. Learn how to define custom attributes, apply them to code entities, and leverage reflection to access attribute information dynamically. Discover the versatility of custom attributes for enhancing code readability, facilitating debugging, and enabling a more efficient software development process. Gain insights into best practices and real-world scenarios for effectively utilizing custom attributes within your C# projects.
  • How to connect metamask with different blockchain networks?Oct 06, 2023. Unlock the full potential of MetaMask! Learn to connect to various blockchain networks and manage your digital assets with ease.
  • Custom JWT Token Authentication And Role Authorization Using .Net Core 6.0 Web APIsOct 03, 2023. In this post I specifically talk about Authentication for an ASP.NET Core Web API, Using JWT Tokens, Using Role Based Authorization, Using only ASP.NET's low level Auth features - not using ASP.NET Core Identity.
  • Building a Microservices API Gateway with YARP in ASP.NET Core Web APIOct 03, 2023. Building a microservices API Gateway with YARP in ASP.NET Core Web API provides a flexible and scalable solution for managing and routing traffic in a microservices architecture. By incorporating features such as service discovery, authentication, authorization, load balancing, rate limiting, and logging, you can create a robust and secure gateway that orchestrates communication between diverse microservices.
  • Area Chart with Gradients in Power BISep 25, 2023. Microsoft Power BI offers developers the ability to create highly customizable visuals using the declarative JSON syntax of Vega or Vega-Lite languages. Follow these steps to create custom visuals in Power BI using Deneb Vega-Lite.
  • Bar Charts with Gradients in Power BISep 22, 2023. Microsoft Power BI empowers developers to craft highly customizable visuals using Vega and Vega-Lite's declarative JSON syntax. Create custom visuals in Power BI with our step-by-step guide, including installation, data integration, and advanced customization options.
  • Implementing a Custom Telerik RadTextBox Control in a WinForms ApplicationSep 21, 2023. Learn how to create a custom Telerik RadTextBox control for WinForms applications. This code example, compatible with .NET 5/6/7/8, adds convenient IsEmpty and IsNotEmpty properties, enhancing text box functionality.
  • Data Annotation Validation in .NET CoreSep 20, 2023. This article explains how to create custom validation attributes in .NET, even though .NET provides built-in validation attributes. Custom validation attributes are useful when built-in attributes are insufficient for real-time application requirements. The advantages include code centralization and improved code readability and maintainability.
  • Custom Exceptions in C#Sep 19, 2023. Enhance error handling in C# with custom exceptions. Learn how they provide specificity, control, documentation, and maintainability, and follow best practices for effective implementation.
  • Error Handling in .NET Core Web API with Custom MiddlewareSep 19, 2023. In this article, we explore global exception handling in .NET Core Web APIs using Middleware. Middleware is a critical component in the request-response pipeline, offering flexibility in handling requests and responses. We'll guide you through the creation and implementation of a custom middleware for global exception handling.
  • Creating Custom Metadata in C# AttributesSep 14, 2023. C# attributes are metadata markers, enhancing code with additional information. They can be applied to classes, methods, and more. Custom attributes empower developers to create metadata tailored to their needs, accessed via reflection. This article explores the world of custom attributes in C#, including their creation, application, and benefits.
  • Effortless Personalized Vision Models with Azure Custom VisionSep 12, 2023. Azure Custom Vision, a Microsoft innovation, merges artificial intelligence and computer vision, reshaping industries with its image analysis capabilities. This article explores Azure Custom Vision's simplicity, offering custom vision models for various needs. It outlines its features, real-world applications, and step-by-step model creation process.
  • Enhance User Experience and Compliance with Azure Custom VisionSep 11, 2023. Enhance User Experience and Compliance with Azure Custom Vision
  • Securing .NET/ASP.NET Core Apps with Azure Key Vault Middleware Sep 08, 2023. Securing secrets in a .NET/ASP.NET Core application using Azure Key Vault is crucial for protecting sensitive information like API keys, connection strings, and other configurations. In this example, we'll walk through creating an ASP.NET Core application that leverages Azure Key Vault to store and retrieve secrets. We'll also implement a custom middleware for secure secret retrieval in real-time.
  • ASP.NET (3) - User/Custom ControlsSep 06, 2023. This series delves into ASP.NET, offering valuable insights into ASP and ASP.NET, controls, custom controls, and their utility in modern programming with Angular, React, and similar languages.
  • Hide Subgrid button based on BPF FieldSep 01, 2023. This article delves into customizing Dynamics 365 CE Business Process Flows (BPF) to conditionally hide or display buttons, enhancing user guidance. Learn to employ JavaScript within custom rules for seamless button control.
  • Data Validation with Annotations, Custom Attributes, and Fluent ValidationAug 30, 2023. Data Annotations are attributes provided by the System.ComponentModel.DataAnnotations namespace in C#. They allow you to declaratively specify validation rules and constraints directly within your model classes.
  • Implementing Health Checks to Monitor Status and Health in ASP.NET Core Aug 30, 2023. ASP.NET Core is a great way to monitor the status and health of your API services. Health checks allow you to periodically test the different components of your application and ensure they are functioning properly. Here's a complete example of how to implement health checks in an ASP.NET Core application.
  • Enhancing Client Responses: Crafting Custom Middleware for Effective Error HandlingAug 27, 2023. Designing a robust error handling mechanism and returning meaningful error responses to clients is crucial for enhancing the reliability and user experience of your ASP.NET Core Web API. Here's a concise guide on how to achieve this using custom middleware:
  • Implementing Model Binding, Handling Binding Failures, and Utilizing a Custom Model Binder in ASP.NETAug 27, 2023. In ASP.NET, model binding simplifies the process of mapping incoming HTTP request data to the parameters of controller actions or methods. This process ensures that the data provided by the user is appropriately converted and validated before being used by the application. However, there are cases when the default model binding behavior may not be sufficient. In such scenarios, custom model binders can be created to handle specific data types or complex binding logic.
  • Effective API Versioning with Custom MiddlewareAug 22, 2023. API versioning with custom middleware, enables clients to access different versions of your API based on the version specified in the request header. This allows you to manage backward compatibility while rolling out new features or changes in a controlled manner. Custom middleware provides a central point for extracting and validating version information, making your versioning logic more modular and maintainable.
  • Container Widget In FlutterAug 17, 2023. In this article, you will learn about container widget in Flutter.
  • Learn to add a Custom Domain in Azure Active DirectoryAug 16, 2023. Discover how to integrate a custom domain into Azure Active Directory and establish it as the primary AD. Enhance user authentication and streamline business operations using tailored domains in Microsoft Azure.
  • Building Custom Middleware Components for Logging, Error Handling, and Request/Response ModificationAug 09, 2023. ASP.NET Core to handle cross-cutting concerns like logging, error handling, and request/response modification:
  • Capturing Phishing Email Using Custom Middleware in ASP.Net Core Web API Aug 02, 2023. To capture and detect phishing emails using custom middleware in an ASP.NET Core Web API, you can follow these general steps:Create Custom Middleware: Create a custom middleware that will intercept incoming HTTP requests and inspect the email content for potential phishing indicators. Middleware in ASP.NET Core can be used to perform custom processing on incoming requests and outgoing responses.
  • Creation of Custom Triggers in D365 Marketing Aug 01, 2023. Create Custom Triggers in Marketing in order to invoke power automate Flows
  • How to Consume Custom Triggers in Real Time Journey D365 Marketing?Aug 01, 2023. Create a new journey in the Marketing app, set a custom trigger (WhatsApp integrate), and map attributes for messaging.
  • Resolving CORS Origin Using Custom Middle ware in ASP.Net Web API Aug 01, 2023. In ASP.NET Core, middleware is a component or piece of software that sits in the request-response pipeline. Middleware is used to handle or modify incoming HTTP requests and outgoing HTTP responses. It provides a way to add custom logic and behaviors to the application's processing flow.
  • Creating Custom Properties in User Profiles in SharePoint OnlineJul 24, 2023. in this article you will be find how to create custom properties in user profile
  • Creating Custom Components in BlazorJul 21, 2023. Building Custom Components in Blazor: Create Reusable UI Elements Using C# and .NET. Learn to build interactive web apps with Microsoft's open-source framework.
  • Mastering AJAX Pagination for Custom Post Types in WordPressJul 20, 2023. In this article, we will learn to set up a custom post type and the information about how and why we have to use the custom post type and custom pagination using AJAX.
  • Git – SourceTree custom actions for “skip-worktree” optionJul 18, 2023. We show how to add to SourceTree custom menus to manage “skip-worktree” option
  • Custom search functionality for data tables for server-side processing with PHP and MySQLJun 30, 2023. To add custom search functionality to Data Tables for server-side processing with PHP and MySQL, you can modify the SQL query dynamically based on the search criteria provided by the user.
  • Number Plate Recognition with Azure Custom Vision and Azure Computer VisionJun 15, 2023. Python Notebook that calls Azure Custom Vision and Azure Computer Vision APIs to extract the plate number from any car image
  • Custom Tabs with Animated Background in AndroidJun 14, 2023. Customs tabs that highlights when selected and animates the background to the next selection backward and forward.
  • Azure Custom Vision:Enhancing Vehicle Object Detection with Tailored ModelsJun 05, 2023. This article describes about enhancing vehicle object detection using Azure Custom Vision and its applications.
  • Custom JWT Handler In ASP.Net Core 7 Web API May 26, 2023. In ASP.NET Core Web API, you can create a custom JWT (JSON Web Token) handler to handle token authentication and authorization. The custom handler lets you define your logic for validating and processing JWT tokens.
  • Getting Started with Logic Apps Custom ConnectorsMay 19, 2023. Azure Logic Apps allows you to create custom connectors, which are basically sets of configuration information that define how to connect to a particular system or service. With custom connectors, you can extend the set of pre-built connectors in Logic Apps to include your own APIs, web services, or other systems.
  • Power Pages - Custom "Select All - Unselect All" button in Lookup records dialogMay 11, 2023. In Power Pages (Earlier Power Apps Portal), OOB support for selecting / deselecting all grid rows in “Lookup records” dialog is not found. Hence, I have built one client-side custom generic feature using Jquery which will be reusable for all such “Lookup records” dialog.
  • Unlocking the Potential of Azure Custom Vision Service: A Step-by-Step GuideMay 08, 2023. In this article describes about creating, building and deploying Azure Custom Vision Service.
  • Web API Using Power Apps Custom ConnectorMay 07, 2023. In this tutorial, we will discuss how to create ASP .Net Web application and use this web API in power app using custom connector.
  • Azure Custom Vision in 8 stepsMay 02, 2023. Azure Custom Vision enables users to create custom image recognition models that can identify objects, scenes, and even text within images
  • Custom Exception in C#May 01, 2023. Today I will let you know about custom exception and how to implement custom exception.
  • Building Custom Business Applications with Microsoft Power AppsMay 01, 2023. Create simple Power apps demo easily build app.
  • Azure Custom Vision: Object Recognition in .NET ApplicationsMay 01, 2023. In this tutorial, we'll learn how to call an Azure Custom Vision object recognition model from a .NET application.
  • Dependency Dropdown Using Custom Script in Microsoft Dynamics CRM OnlineApr 26, 2023. In this article, I have explained how to create the dependency dropdown using custom JavaScript.
  • SharePoint Item Display and Edit Screens Without Any CustomizationApr 24, 2023. In this article we will see how to add a SharePoint list with few fields in all items view on a SharePoint page and show/ edit all the details of any selected list item on same page. Sometimes we have requirements where we want to show/ edit the details of any selected SharePoint list item. In most cases we go with custom web part or some app in Power Apps, but we can achieve this without any customization. We can use out of box SharePoint web parts and features to do this.
  • How to create different shapes in SwiftUIApr 14, 2023. In this article, we are going to learn how we can create shapes in SwiftUI. We can create custom shapes by defining a path and applying modifiers to customize their appearance in SwiftUI.
  • How To Add Custom Authentication In BlazorApr 06, 2023. Authentication is an essential aspect of web applications, and the Blazor server comes with built-in support for authentication. However, in some cases, you may need to implement custom authentication for your application
  • How To Create Custom Hook Using React 18.2.0 (UseReducer)Mar 27, 2023. In this article, you will learn how to create custom hook, using React 18.2.0 (UseReducer).
  • Create Custom Session ID ManagerMar 20, 2023. In this article, we will look in to SessionIdManger and how to customise it.

About custom-toolbar

NA

OUR TRAINING