Skip to content

Instantly share code, notes, and snippets.

View strvmarv's full-sized avatar

Paul M strvmarv

View GitHub Profile
@strvmarv
strvmarv / InstallAgent.cmd
Last active November 20, 2018 10:01
Stackify_Agent_Windows_Azure_CloudServices_Scripts
@echo off
REM Skip if running locally/emulated
if "%EMULATED%"=="true" goto :EOF
REM Temp folder overrides
echo STACKIFYTEMP is %STACKIFYTEMP%
echo TMP is %TMP%
echo TEMP is %TEMP%
public class Program
{
static void Main(string[] args)
{
StackifyLib.Utils.StackifyAPILogger.OnLogMessage += StackifyAPILogger_OnLogMessage;
StackifyLib.Utils.StackifyAPILogger.LogEnabled = true;
}
private static void StackifyAPILogger_OnLogMessage(string data)
{
CREATE FUNCTION [dbo].[udf_GetDayOfTheYearRange_FromDate] (@startDate DATETIME, @endDate DATETIME)
RETURNS @results TABLE (Number SMALLINT) AS
BEGIN
DECLARE @partMin SMALLINT = 1
DECLARE @partMax SMALLINT = 365
DECLARE @expectedCount INT = DATEDIFF(DAY, @startDate, @endDate)
IF (@expectedCount < 0)
SELECT o.name objectname,i.name indexname, partition_id, partition_number, [rows]
FROM sys.partitions p
INNER JOIN sys.objects o ON o.object_id=p.object_id
INNER JOIN sys.indexes i ON i.object_id=p.object_id and p.index_id=i.index_id
WHERE
o.name LIKE '%Imagination%'
AND [rows] > 0
ORDER BY o.name, i.name DESC, partition_number DESC
CREATE PROCEDURE [dbo].[sproc_Imagination_TruncatePartitions]
@start DATETIME,
@end DATETIME
AS
BEGIN
SET NOCOUNT ON;
DECLARE @partitions TABLE (Number SMALLINT)
INSERT INTO @partitions SELECT Number FROM dbo.udf_GetDayOfTheYearRange_FromDate(@start, @end)
CREATE TABLE [dbo].[Imagination_Partitioned](
[Partition] [smallint] NOT NULL DEFAULT [dbo].[udf_GetDayOfTheYear](DEFAULT),
[Id] [int] NOT NULL,
[DateUtc] [datetimeoffset](7) NOT NULL,
[Value] [int] NOT NULL
CONSTRAINT [PK_Imagination_Partitioned] PRIMARY KEY CLUSTERED
(
[Partition] ASC,
[Id] ASC
)ON ps_DayOfTheYear (Partition)
CREATE FUNCTION [dbo].[udf_GetDayOfTheYear] (@input DATETIME = NULL)
RETURNS SMALLINT AS
BEGIN
DECLARE @doty SMALLINT
IF (@input IS NULL)
BEGIN
SELECT @doty = DATEPART(dy, GETUTCDATE())
END
CREATE PARTITION SCHEME [ps_DayOfTheYear] AS PARTITION [pf_DayOfTheYear] ALL TO ([PRIMARY])
CREATE PARTITION FUNCTION [pf_DayOfTheYear](SMALLINT) AS RANGE LEFT FOR VALUES (
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208
@strvmarv
strvmarv / ContextExtensions.cs
Created November 19, 2015 20:56
Partial ObjectContext Auditing Example using SaveChanges hiding and ObjectStateManager
public partial class YourEntities
{
public bool AuditAutoUserAndDateBypass { get; set; }
public bool AuditBypass { get; set; }
public string AuditProcess { get; set; }
public string AuditSource { get; set; }
public int AuditUser { get; set; }
partial void OnContextCreated()
{