Updating the Windows Console Colors

$Host.UI.RawUI.BackgroundColor = ($bckgrnd = 'Black')
$Host.UI.RawUI.ForegroundColor = 'White'
$Host.PrivateData.ErrorForegroundColor = 'Red'
$Host.PrivateData.ErrorBackgroundColor = $bckgrnd
$Host.PrivateData.WarningForegroundColor = 'Magenta'
$Host.PrivateData.WarningBackgroundColor = $bckgrnd
$Host.PrivateData.DebugForegroundColor = 'Yellow'
$Host.PrivateData.DebugBackgroundColor = $bckgrnd
$Host.PrivateData.VerboseForegroundColor = 'Green'
$Host.PrivateData.VerboseBackgroundColor = $bckgrnd
$Host.PrivateData.ProgressForegroundColor = 'Yellow'
$Host.PrivateData.ProgressBackgroundColor = $bckgrnd
$Host.PrivateData.ConsolePaneForegroundColor = 'DarkCyan'
$Host.PrivateData.ConsolePaneBackgroundColor= $bckgrnd
$Host.PrivateData.ConsolePaneTextBackgroundColor= 'Yellow'
Set-PSReadlineOption -ResetTokenColors
Clear-Host

React Higher-Order Components

A higher-order component (HOC) is an advanced technique in React for reusing component logic. HOCs are not part of the React API, per se. They are a pattern that emerges from React’s compositional nature.

function withHover(Component, propName = 'hovering') {
  return class WithHover extends React.Component {
    state = { hovering: false }
    mouseOver = () => this.setState({ hovering: true })
    mouseOut = () => this.setState({ hovering: false })
    render() {
      console.log(this.props) // { height: "16px" }
      const props = {
        [propName]: this.state.hovering,
        ...this.props,
      }
      return (
        <div onMouseOver={this.mouseOver} onMouseOut={this.mouseOut}>
          <Component {...props} />
        </div>
      );
    }
  }
}

Introduction to higher-order components (HOC) in React

React Higher-Order Components in 3 minutes

Enforce Unique Nullable Column With ‘IGNORE_DUP_KEY = ON’

CREATE TABLE [identigy].[patron](
	[ID] [bigint] NOT NULL,
	[DISID] [nvarchar](20) NOT NULL,
	[PKID] [nvarchar](20) NULL,
	[DISHID] [nvarchar](20) NULL,
	[FIRSTNAME] [nvarchar](250) NULL,
	[LASTNAME] [nvarchar](250) NULL,
	[CLASSIFICATION] [nvarchar](250) NULL,
	[FLAGS] [nvarchar](500) NULL,
	[SHIFTS] [nvarchar](50) NULL,
	[ACTION] [nvarchar](10) NULL,
	[ACTIVE] [bit] NOT NULL CONSTRAINT [DEFAULT_Identigy_Patron_Active]  DEFAULT ((1))
	,[DISIDnullbuster] AS (CASE WHEN [DISID] IS NULL THEN CAST(ID AS VARCHAR(20)) ELSE DISID END)
	,[PKIDnullbuster] AS (CASE WHEN [PKID] IS NULL THEN CAST(ID AS VARCHAR(20)) ELSE PKID END)
 ,CONSTRAINT [PK_Identigy_Patron] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
 ,CONSTRAINT [UX_Identigy_Patron_DISID] UNIQUE ( [DISIDnullbuster] ASC ) WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
 ,CONSTRAINT [UX_Identigy_Patron_PKID] UNIQUE ( [PKIDnullbuster] ASC ) WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

SQL Bulk Upload

How can we avoid duplicate values while we are doing bulk insert to a table

--BEGIN TRAN
CREATE TABLE [tlg].[UserVisitLogs](
	[TStamp] 			DATETIME,
	[SessionID] 		NVARCHAR(20),
	[CorrelationID] 	NVARCHAR(20),
	[SchoolCode] 		NVARCHAR(20),
	[SiteExternalID] 	NVARCHAR(20),
	[WebType] 			NVARCHAR(20),
	[WebUrl] 			NVARCHAR(100),
	[UserSid] 			NVARCHAR(50),
	[UserName] 			NVARCHAR(20),
	[UserType] 			NVARCHAR(20),
	[CachedUser] 		NVARCHAR(20)
)
GO

-- Create Unique Clustered Index with IGNORE_DUPE_KEY=ON to avoid duplicate
CREATE UNIQUE CLUSTERED INDEX [ClusteredIndex-Logs] ON [tlg].[UserVisitLogs]
(
	[TStamp]			DESC,
	[SessionID] 		ASC,
	[CorrelationID] 	ASC,
	[SchoolCode] 		ASC,
	[SiteExternalID] 	ASC,
	[WebType] 			ASC,
	[WebUrl] 			ASC,
	[UserSid] 			ASC,
	[UserName] 			ASC,
	[UserType] 			ASC,
	[CachedUser] 		ASC
) WITH (IGNORE_DUP_KEY = ON)
GO
--ROLLBACK TRAN

/*
Thanks to dbatools.io : https://www.youtube.com/watch?v=kQYUrSlb0wg
*/

PowerShell: Script to move items from one folder to another in a user’s office 365 mailbox

Exchange Web Services 2.0 Using PowerShell