Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

Commit

Permalink
Merge pull request #62 from akritikos/develop_akritikos
Browse files Browse the repository at this point in the history
Develop akritikos closes #8, closes #7
  • Loading branch information
akritikos committed Nov 18, 2017
2 parents 1a1c62a + 39bec62 commit 8949c4f
Show file tree
Hide file tree
Showing 14 changed files with 6,349 additions and 8,379 deletions.
153 changes: 112 additions & 41 deletions EzPay.Context.SqlServer/EzPaySqlServerContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public bool CheckContext()
/// </summary>
private void CreateProcedures()
{
#region StagingTables
var query = Database.ExecuteSqlCommand(@"
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[StagedCitizenUpdates]') AND type IN ('U'))
DROP TABLE [dbo].[StagedCitizenUpdates]");
Expand All @@ -73,59 +74,129 @@ [ADDRESS] varchar(30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[COUNTY] varchar(30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[USERNAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL)");

//query = Database.ExecuteSqlCommand(@"
// IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[StagedHashAdditions]') AND type IN ('U'))
// DROP TABLE [dbo].[StagedHashAdditions]");

//query = Database.ExecuteSqlCommand(@"
// CREATE TABLE [dbo].[StagedHashAdditions] (
// [VAT] bigint NULL,
// [NORMALMAIL] nvarchar(40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
// [NORMALUSER] nvarchar(12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
// [HASH] nvarchar(84) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
// [CONCURENCY] uniqueidentifier NULL,
// [SECURITY] uniqueidentifier NULL)");

query = Database.ExecuteSqlCommand(@"
ALTER TABLE [dbo].[StagedCitizenUpdates] SET (LOCK_ESCALATION = TABLE)");
try
{
Database.ExecuteSqlCommand(
@"
CREATE PROCEDURE [dbo].[ClearData]
AS
BEGIN
DELETE FROM Payments;
DELETE FROM Bills;
DELETE FROM Settlements;
END");
}
catch (SqlException ex)
{
if (ex.Number != 2714)
{
}
}
#endregion

try
{
query = Database.ExecuteSqlCommand(@"
CREATE PROCEDURE [dbo].[UpdatePassword]
@NormMail nvarchar(40),
@NormUserName nvarchar(14),
@Hash nvarchar(84),
@VAT bigint,
@Concurency uniqueidentifier,
@Security uniqueidentifier
#region StoredProcedures
Execute(@"
CREATE PROCEDURE [dbo].[ClearData] AS
BEGIN
ALTER TABLE Payments NOCHECK CONSTRAINT all;
ALTER TABLE Bills NOCHECK CONSTRAINT all;
ALTER TABLE Settlements NOCHECK CONSTRAINT all;
DELETE FROM Payments;
DELETE FROM Bills;
DELETE FROM Settlements;
ALTER TABLE Payments WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Bills WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Settlements WITH CHECK CHECK CONSTRAINT all;
END");

Execute(@"
CREATE PROCEDURE [dbo].[ClearStagedCitizens]
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM StagedCitizenUpdates
END");

Execute(@"
CREATE PROCEDURE [dbo].[ClearStagedHashes]
AS
BEGIN
DELETE FROM StagedHashAdditions
END");

Execute(@"
CREATE PROCEDURE [dbo].[StageCitizens]
AS
BEGIN
ALTER TABLE Bills NOCHECK CONSTRAINT all;
ALTER TABLE Settlements NOCHECK CONSTRAINT all;
UPDATE Citizens
SET
NormalizedEmail = @NormMail,
NormalizedUserName = @NormUserName,
PasswordHash = @Hash,
ConcurrencyStamp = @Concurency,
SecurityStamp = @Security
WHERE ID = @VAT
FirstName = StagedCitizenUpdates.FIRST_NAME, LastName = StagedCitizenUpdates.LAST_NAME, Email = StagedCitizenUpdates.EMAIL, PhoneNumber = StagedCitizenUpdates.PHONE, Address = StagedCitizenUpdates.ADDRESS, County = StagedCitizenUpdates.COUNTY, UserName=StagedCitizenUpdates.USERNAME
FROM Citizens INNER JOIN StagedCitizenUpdates
ON Citizens.ID = StagedCitizenUpdates.VAT
ALTER TABLE Settlements WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Bills WITH CHECK CHECK CONSTRAINT all;
END");

Execute(@"
CREATE PROCEDURE [dbo].[StageHashes]
AS
BEGIN
ALTER TABLE Bills NOCHECK CONSTRAINT all;
ALTER TABLE Settlements NOCHECK CONSTRAINT all;
UPDATE Citizens
SET
NormalizedEmail = NORMALMAIL, NormalizedUserName = NORMALUSER, PasswordHash = StagedHashAdditions.HASH, ConcurrencyStamp = CONCURENCY, SecurityStamp = SECURITY
FROM
Citizens INNER JOIN StagedHashAdditions
ON Citizens.ID = StagedHashAdditions.VAT
ALTER TABLE Bills WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Settlements WITH CHECK CHECK CONSTRAINT all;
END");

Execute(@"
CREATE PROCEDURE [dbo].[Empty]
AS
BEGIN
ALTER TABLE Payments NOCHECK CONSTRAINT all;
ALTER TABLE SettlementTypes NOCHECK CONSTRAINT all;
ALTER TABLE Bills NOCHECK CONSTRAINT all;
ALTER TABLE Settlements NOCHECK CONSTRAINT all;
ALTER TABLE Citizens NOCHECK CONSTRAINT all;
DELETE FROM Payments;
DELETE FROM Bills;
DELETE FROM Settlements;
DELETE FROM SettlementTypes;
DELETE FROM Citizens;
ALTER TABLE Payments WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE SettlementTypes WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Bills WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Settlements WITH CHECK CHECK CONSTRAINT all;
ALTER TABLE Citizens WITH CHECK CHECK CONSTRAINT all;
END");
#endregion
}

/// <summary>
/// Executes a query directly on the database
/// </summary>
/// <param name="q">Query to execute</param>
/// <returns>Status code</returns>
public int Execute(string q)
{
var r = 0;
try
{
r = Database.ExecuteSqlCommand(q);
}
catch (SqlException ex)
{
if (ex.Number != 2714)
{
throw;
}
}
return r;
}

#region IEzPayRepository
#region IEzPayRepository
/// <inheritdoc />
public void ClearVolatile()
{
Expand Down Expand Up @@ -176,7 +247,7 @@ public async Task<bool> SaveChangesAsync()

/// <inheritdoc />
public void RemoveRange(IEnumerable<IEntity> entities) => base.RemoveRange(entities);
#endregion
#endregion

/// <inheritdoc />
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
Expand All @@ -191,7 +262,7 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("dbo");
#region EzPay Model
#region EzPay Model
modelBuilder.Entity<Citizen>(
entity =>
{
Expand Down Expand Up @@ -312,9 +383,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
entity.Property(e => e.MaxInstallments)
.HasMaxLength(3);
});
#endregion
#endregion

#region Identity
#region Identity

modelBuilder.Entity<CitizenClaim>(
entity =>
Expand Down Expand Up @@ -357,7 +428,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
entity.ToTable("_RoleClaim");
entity.HasKey(e => e.RoleClaimId);
});
#endregion
#endregion
}
}
}
Loading

0 comments on commit 8949c4f

Please sign in to comment.