Create a new controller

This commit is contained in:
Astrian Zheng 2023-09-14 16:34:08 +10:00
parent 2c142fd7b4
commit 4de8209a6b
82 changed files with 126243 additions and 64580 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,420 @@

-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 09/14/2023 16:21:56
-- Generated from EDMX file: C:\Users\astri\source\repos\FIT5032-Assignment\FIT5032-Assignment\Models\FIT5032-Assignment.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[FK__Appointme__patie__5AEE82B9]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__patie__5AEE82B9];
GO
IF OBJECT_ID(N'[dbo].[FK__Appointme__respo__5BE2A6F2]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__respo__5BE2A6F2];
GO
IF OBJECT_ID(N'[dbo].[FK__Credential__user__4BAC3F29]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Credentials] DROP CONSTRAINT [FK__Credential__user__4BAC3F29];
GO
IF OBJECT_ID(N'[dbo].[FK__Doctors__user__5441852A]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Doctors] DROP CONSTRAINT [FK__Doctors__user__5441852A];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__appointm__60A75C0F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__appointm__60A75C0F];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__patient__5EBF139D]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__patient__5EBF139D];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__responsi__5FB337D6]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__responsi__5FB337D6];
GO
IF OBJECT_ID(N'[dbo].[FK__Patients__user__5165187F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Patients] DROP CONSTRAINT [FK__Patients__user__5165187F];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__appoint__6383C8BA]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__appoint__6383C8BA];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__doctor__656C112C]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__doctor__656C112C];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__patient__6477ECF3]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__patient__6477ECF3];
GO
IF OBJECT_ID(N'[dbo].[FK__Sessions__user__4E88ABD4]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Sessions] DROP CONSTRAINT [FK__Sessions__user__4E88ABD4];
GO
IF OBJECT_ID(N'[dbo].[FK__ShareURLs__image__68487DD7]', 'F') IS NOT NULL
ALTER TABLE [dbo].[ShareURLs] DROP CONSTRAINT [FK__ShareURLs__image__68487DD7];
GO
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[Appointments]', 'U') IS NOT NULL
DROP TABLE [dbo].[Appointments];
GO
IF OBJECT_ID(N'[dbo].[Credentials]', 'U') IS NOT NULL
DROP TABLE [dbo].[Credentials];
GO
IF OBJECT_ID(N'[dbo].[Doctors]', 'U') IS NOT NULL
DROP TABLE [dbo].[Doctors];
GO
IF OBJECT_ID(N'[dbo].[Images]', 'U') IS NOT NULL
DROP TABLE [dbo].[Images];
GO
IF OBJECT_ID(N'[dbo].[Patients]', 'U') IS NOT NULL
DROP TABLE [dbo].[Patients];
GO
IF OBJECT_ID(N'[dbo].[Reviews]', 'U') IS NOT NULL
DROP TABLE [dbo].[Reviews];
GO
IF OBJECT_ID(N'[dbo].[Sessions]', 'U') IS NOT NULL
DROP TABLE [dbo].[Sessions];
GO
IF OBJECT_ID(N'[dbo].[ShareURLs]', 'U') IS NOT NULL
DROP TABLE [dbo].[ShareURLs];
GO
IF OBJECT_ID(N'[dbo].[Users]', 'U') IS NOT NULL
DROP TABLE [dbo].[Users];
GO
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'Appointments'
CREATE TABLE [dbo].[Appointments] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[createdAt] datetime NULL,
[responsibleBy] varchar(36) NULL,
[appointmentDate] datetime NULL,
[status] int NULL,
[createdBy] int NULL
);
GO
-- Creating table 'Credentials'
CREATE TABLE [dbo].[Credentials] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[provider] int NOT NULL,
[uniqueIdCode] varchar(max) NULL
);
GO
-- Creating table 'Doctors'
CREATE TABLE [dbo].[Doctors] (
[user] varchar(36) NOT NULL,
[bio] varchar(max) NULL
);
GO
-- Creating table 'Images'
CREATE TABLE [dbo].[Images] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[responsibleBy] varchar(36) NULL,
[createdAt] datetime NULL,
[appointment] varchar(36) NULL,
[status] int NULL,
[file] varchar(max) NULL
);
GO
-- Creating table 'Patients'
CREATE TABLE [dbo].[Patients] (
[user] varchar(36) NOT NULL,
[phone] varchar(max) NULL,
[address] varchar(max) NULL,
[notes] varchar(max) NULL
);
GO
-- Creating table 'Reviews'
CREATE TABLE [dbo].[Reviews] (
[appointment] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[doctor] varchar(36) NULL,
[score] int NULL,
[comment] varchar(max) NULL,
[reply] varchar(max) NULL,
[reviewAt] datetime NULL,
[replyAt] datetime NULL
);
GO
-- Creating table 'Sessions'
CREATE TABLE [dbo].[Sessions] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[token] varchar(max) NULL,
[alias] varchar(max) NULL,
[validFrom] datetime NULL,
[validTo] datetime NULL
);
GO
-- Creating table 'ShareURLs'
CREATE TABLE [dbo].[ShareURLs] (
[image] varchar(36) NOT NULL,
[visibility] int NULL,
[slug] varchar(max) NULL,
[status] int NULL
);
GO
-- Creating table 'Users'
CREATE TABLE [dbo].[Users] (
[uuid] varchar(36) NOT NULL,
[displayName] varchar(max) NULL,
[avatar] varchar(max) NULL,
[role] int NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [uuid] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [PK_Appointments]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [uuid] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [PK_Credentials]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [PK_Doctors]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [uuid] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [PK_Images]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [PK_Patients]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [PK_Reviews]
PRIMARY KEY CLUSTERED ([appointment] ASC);
GO
-- Creating primary key on [uuid] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [PK_Sessions]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [PK_ShareURLs]
PRIMARY KEY CLUSTERED ([image] ASC);
GO
-- Creating primary key on [uuid] in table 'Users'
ALTER TABLE [dbo].[Users]
ADD CONSTRAINT [PK_Users]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- Creating foreign key on [patient] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__patie__5AEE82B9]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__patie__5AEE82B9'
CREATE INDEX [IX_FK__Appointme__patie__5AEE82B9]
ON [dbo].[Appointments]
([patient]);
GO
-- Creating foreign key on [responsibleBy] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__respo__5BE2A6F2]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__respo__5BE2A6F2'
CREATE INDEX [IX_FK__Appointme__respo__5BE2A6F2]
ON [dbo].[Appointments]
([responsibleBy]);
GO
-- Creating foreign key on [appointment] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__appointm__60A75C0F]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__appointm__60A75C0F'
CREATE INDEX [IX_FK__Images__appointm__60A75C0F]
ON [dbo].[Images]
([appointment]);
GO
-- Creating foreign key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__appoint__6383C8BA]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [FK__Credential__user__4BAC3F29]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Credential__user__4BAC3F29'
CREATE INDEX [IX_FK__Credential__user__4BAC3F29]
ON [dbo].[Credentials]
([user]);
GO
-- Creating foreign key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [FK__Doctors__user__5441852A]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [responsibleBy] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__responsi__5FB337D6]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__responsi__5FB337D6'
CREATE INDEX [IX_FK__Images__responsi__5FB337D6]
ON [dbo].[Images]
([responsibleBy]);
GO
-- Creating foreign key on [doctor] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__doctor__656C112C]
FOREIGN KEY ([doctor])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__doctor__656C112C'
CREATE INDEX [IX_FK__Reviews__doctor__656C112C]
ON [dbo].[Reviews]
([doctor]);
GO
-- Creating foreign key on [patient] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__patient__5EBF139D]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__patient__5EBF139D'
CREATE INDEX [IX_FK__Images__patient__5EBF139D]
ON [dbo].[Images]
([patient]);
GO
-- Creating foreign key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [FK__ShareURLs__image__68487DD7]
FOREIGN KEY ([image])
REFERENCES [dbo].[Images]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [FK__Patients__user__5165187F]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [patient] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__patient__6477ECF3]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__patient__6477ECF3'
CREATE INDEX [IX_FK__Reviews__patient__6477ECF3]
ON [dbo].[Reviews]
([patient]);
GO
-- Creating foreign key on [user] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [FK__Sessions__user__4E88ABD4]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Sessions__user__4E88ABD4'
CREATE INDEX [IX_FK__Sessions__user__4E88ABD4]
ON [dbo].[Sessions]
([user]);
GO
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------

View File

@ -0,0 +1,420 @@

-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 09/14/2023 16:21:56
-- Generated from EDMX file: C:\Users\astri\source\repos\FIT5032-Assignment\FIT5032-Assignment\Models\FIT5032-Assignment.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[FK__Appointme__patie__5AEE82B9]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__patie__5AEE82B9];
GO
IF OBJECT_ID(N'[dbo].[FK__Appointme__respo__5BE2A6F2]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__respo__5BE2A6F2];
GO
IF OBJECT_ID(N'[dbo].[FK__Credential__user__4BAC3F29]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Credentials] DROP CONSTRAINT [FK__Credential__user__4BAC3F29];
GO
IF OBJECT_ID(N'[dbo].[FK__Doctors__user__5441852A]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Doctors] DROP CONSTRAINT [FK__Doctors__user__5441852A];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__appointm__60A75C0F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__appointm__60A75C0F];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__patient__5EBF139D]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__patient__5EBF139D];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__responsi__5FB337D6]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__responsi__5FB337D6];
GO
IF OBJECT_ID(N'[dbo].[FK__Patients__user__5165187F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Patients] DROP CONSTRAINT [FK__Patients__user__5165187F];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__appoint__6383C8BA]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__appoint__6383C8BA];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__doctor__656C112C]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__doctor__656C112C];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__patient__6477ECF3]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__patient__6477ECF3];
GO
IF OBJECT_ID(N'[dbo].[FK__Sessions__user__4E88ABD4]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Sessions] DROP CONSTRAINT [FK__Sessions__user__4E88ABD4];
GO
IF OBJECT_ID(N'[dbo].[FK__ShareURLs__image__68487DD7]', 'F') IS NOT NULL
ALTER TABLE [dbo].[ShareURLs] DROP CONSTRAINT [FK__ShareURLs__image__68487DD7];
GO
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[Appointments]', 'U') IS NOT NULL
DROP TABLE [dbo].[Appointments];
GO
IF OBJECT_ID(N'[dbo].[Credentials]', 'U') IS NOT NULL
DROP TABLE [dbo].[Credentials];
GO
IF OBJECT_ID(N'[dbo].[Doctors]', 'U') IS NOT NULL
DROP TABLE [dbo].[Doctors];
GO
IF OBJECT_ID(N'[dbo].[Images]', 'U') IS NOT NULL
DROP TABLE [dbo].[Images];
GO
IF OBJECT_ID(N'[dbo].[Patients]', 'U') IS NOT NULL
DROP TABLE [dbo].[Patients];
GO
IF OBJECT_ID(N'[dbo].[Reviews]', 'U') IS NOT NULL
DROP TABLE [dbo].[Reviews];
GO
IF OBJECT_ID(N'[dbo].[Sessions]', 'U') IS NOT NULL
DROP TABLE [dbo].[Sessions];
GO
IF OBJECT_ID(N'[dbo].[ShareURLs]', 'U') IS NOT NULL
DROP TABLE [dbo].[ShareURLs];
GO
IF OBJECT_ID(N'[dbo].[Users]', 'U') IS NOT NULL
DROP TABLE [dbo].[Users];
GO
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'Appointments'
CREATE TABLE [dbo].[Appointments] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[createdAt] datetime NULL,
[responsibleBy] varchar(36) NULL,
[appointmentDate] datetime NULL,
[status] int NULL,
[createdBy] int NULL
);
GO
-- Creating table 'Credentials'
CREATE TABLE [dbo].[Credentials] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[provider] int NOT NULL,
[uniqueIdCode] varchar(max) NULL
);
GO
-- Creating table 'Doctors'
CREATE TABLE [dbo].[Doctors] (
[user] varchar(36) NOT NULL,
[bio] varchar(max) NULL
);
GO
-- Creating table 'Images'
CREATE TABLE [dbo].[Images] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[responsibleBy] varchar(36) NULL,
[createdAt] datetime NULL,
[appointment] varchar(36) NULL,
[status] int NULL,
[file] varchar(max) NULL
);
GO
-- Creating table 'Patients'
CREATE TABLE [dbo].[Patients] (
[user] varchar(36) NOT NULL,
[phone] varchar(max) NULL,
[address] varchar(max) NULL,
[notes] varchar(max) NULL
);
GO
-- Creating table 'Reviews'
CREATE TABLE [dbo].[Reviews] (
[appointment] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[doctor] varchar(36) NULL,
[score] int NULL,
[comment] varchar(max) NULL,
[reply] varchar(max) NULL,
[reviewAt] datetime NULL,
[replyAt] datetime NULL
);
GO
-- Creating table 'Sessions'
CREATE TABLE [dbo].[Sessions] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[token] varchar(max) NULL,
[alias] varchar(max) NULL,
[validFrom] datetime NULL,
[validTo] datetime NULL
);
GO
-- Creating table 'ShareURLs'
CREATE TABLE [dbo].[ShareURLs] (
[image] varchar(36) NOT NULL,
[visibility] int NULL,
[slug] varchar(max) NULL,
[status] int NULL
);
GO
-- Creating table 'Users'
CREATE TABLE [dbo].[Users] (
[uuid] varchar(36) NOT NULL,
[displayName] varchar(max) NULL,
[avatar] varchar(max) NULL,
[role] int NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [uuid] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [PK_Appointments]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [uuid] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [PK_Credentials]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [PK_Doctors]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [uuid] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [PK_Images]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [PK_Patients]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [PK_Reviews]
PRIMARY KEY CLUSTERED ([appointment] ASC);
GO
-- Creating primary key on [uuid] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [PK_Sessions]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [PK_ShareURLs]
PRIMARY KEY CLUSTERED ([image] ASC);
GO
-- Creating primary key on [uuid] in table 'Users'
ALTER TABLE [dbo].[Users]
ADD CONSTRAINT [PK_Users]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- Creating foreign key on [patient] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__patie__5AEE82B9]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__patie__5AEE82B9'
CREATE INDEX [IX_FK__Appointme__patie__5AEE82B9]
ON [dbo].[Appointments]
([patient]);
GO
-- Creating foreign key on [responsibleBy] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__respo__5BE2A6F2]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__respo__5BE2A6F2'
CREATE INDEX [IX_FK__Appointme__respo__5BE2A6F2]
ON [dbo].[Appointments]
([responsibleBy]);
GO
-- Creating foreign key on [appointment] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__appointm__60A75C0F]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__appointm__60A75C0F'
CREATE INDEX [IX_FK__Images__appointm__60A75C0F]
ON [dbo].[Images]
([appointment]);
GO
-- Creating foreign key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__appoint__6383C8BA]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [FK__Credential__user__4BAC3F29]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Credential__user__4BAC3F29'
CREATE INDEX [IX_FK__Credential__user__4BAC3F29]
ON [dbo].[Credentials]
([user]);
GO
-- Creating foreign key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [FK__Doctors__user__5441852A]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [responsibleBy] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__responsi__5FB337D6]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__responsi__5FB337D6'
CREATE INDEX [IX_FK__Images__responsi__5FB337D6]
ON [dbo].[Images]
([responsibleBy]);
GO
-- Creating foreign key on [doctor] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__doctor__656C112C]
FOREIGN KEY ([doctor])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__doctor__656C112C'
CREATE INDEX [IX_FK__Reviews__doctor__656C112C]
ON [dbo].[Reviews]
([doctor]);
GO
-- Creating foreign key on [patient] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__patient__5EBF139D]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__patient__5EBF139D'
CREATE INDEX [IX_FK__Images__patient__5EBF139D]
ON [dbo].[Images]
([patient]);
GO
-- Creating foreign key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [FK__ShareURLs__image__68487DD7]
FOREIGN KEY ([image])
REFERENCES [dbo].[Images]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [FK__Patients__user__5165187F]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [patient] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__patient__6477ECF3]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__patient__6477ECF3'
CREATE INDEX [IX_FK__Reviews__patient__6477ECF3]
ON [dbo].[Reviews]
([patient]);
GO
-- Creating foreign key on [user] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [FK__Sessions__user__4E88ABD4]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Sessions__user__4E88ABD4'
CREATE INDEX [IX_FK__Sessions__user__4E88ABD4]
ON [dbo].[Sessions]
([user]);
GO
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------

View File

@ -0,0 +1,136 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using FIT5032_Assignment.Models;
namespace FIT5032_Assignment.Controllers
{
public class UsersController : Controller
{
private Database1Entities db = new Database1Entities();
// GET: Users
public ActionResult Index()
{
var users = db.Users.Include(u => u.Doctors).Include(u => u.Patients);
return View(users.ToList());
}
// GET: Users/Details/5
public ActionResult Details(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Users users = db.Users.Find(id);
if (users == null)
{
return HttpNotFound();
}
return View(users);
}
// GET: Users/Create
public ActionResult Create()
{
ViewBag.uuid = new SelectList(db.Doctors, "user", "bio");
ViewBag.uuid = new SelectList(db.Patients, "user", "phone");
return View();
}
// POST: Users/Create
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details see https://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "uuid,displayName,avatar,role")] Users users)
{
if (ModelState.IsValid)
{
db.Users.Add(users);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.uuid = new SelectList(db.Doctors, "user", "bio", users.uuid);
ViewBag.uuid = new SelectList(db.Patients, "user", "phone", users.uuid);
return View(users);
}
// GET: Users/Edit/5
public ActionResult Edit(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Users users = db.Users.Find(id);
if (users == null)
{
return HttpNotFound();
}
ViewBag.uuid = new SelectList(db.Doctors, "user", "bio", users.uuid);
ViewBag.uuid = new SelectList(db.Patients, "user", "phone", users.uuid);
return View(users);
}
// POST: Users/Edit/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details see https://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "uuid,displayName,avatar,role")] Users users)
{
if (ModelState.IsValid)
{
db.Entry(users).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.uuid = new SelectList(db.Doctors, "user", "bio", users.uuid);
ViewBag.uuid = new SelectList(db.Patients, "user", "phone", users.uuid);
return View(users);
}
// GET: Users/Delete/5
public ActionResult Delete(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Users users = db.Users.Find(id);
if (users == null)
{
return HttpNotFound();
}
return View(users);
}
// POST: Users/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(string id)
{
Users users = db.Users.Find(id);
db.Users.Remove(users);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
}

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
@ -46,10 +47,10 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
@ -129,6 +130,7 @@
<Compile Include="App_Start\FilterConfig.cs" />
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\UsersController.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
@ -177,6 +179,10 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="App_Data\FIT5032_Assignment.mdf" />
<Content Include="App_Data\FIT5032_Assignment_log.ldf">
<DependentUpon>FIT5032_Assignment.mdf</DependentUpon>
</Content>
<Content Include="Content\bootstrap-grid.css" />
<Content Include="Content\bootstrap-grid.min.css" />
<Content Include="Content\bootstrap-grid.rtl.css" />
@ -201,6 +207,7 @@
<LastGenOutput>FIT5032-Assignment.Context.cs</LastGenOutput>
<DependentUpon>FIT5032-Assignment.edmx</DependentUpon>
</Content>
<Content Include="Models\FIT5032-Assignment.edmx.sql" />
<Content Include="Models\FIT5032-Assignment.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<DependentUpon>FIT5032-Assignment.edmx</DependentUpon>
@ -244,10 +251,13 @@
<Content Include="Views\Home\About.cshtml" />
<Content Include="Views\Home\Contact.cshtml" />
<Content Include="Views\Home\Index.cshtml" />
<Content Include="Views\Users\Create.cshtml" />
<Content Include="Views\Users\Delete.cshtml" />
<Content Include="Views\Users\Details.cshtml" />
<Content Include="Views\Users\Edit.cshtml" />
<Content Include="Views\Users\Index.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Content Include="Content\bootstrap.rtl.min.css.map" />
<Content Include="Content\bootstrap.rtl.css.map" />
@ -311,7 +321,10 @@
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@ -9,6 +9,16 @@
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Controller_SelectedScaffolderID>MvcControllerWithContextScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
<WebStackScaffolding_LayoutPageFile>~/Views/Shared/_Layout.cshtml</WebStackScaffolding_LayoutPageFile>
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
<WebStackScaffolding_DbContextTypeFullName>FIT5032_Assignment.Models.Database1Entities</WebStackScaffolding_DbContextTypeFullName>
<WebStackScaffolding_IsViewGenerationSelected>True</WebStackScaffolding_IsViewGenerationSelected>
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>

View File

@ -4,101 +4,164 @@
<edmx:Runtime>
<!-- SSDL content -->
<edmx:StorageModels>
<Schema Namespace="FIT5032Assignment.Store" Provider="System.Data.SqlClient" ProviderManifestToken="2012" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
<Schema Namespace="FIT5032Assignment.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2012" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
<EntityContainer Name="FIT5032AssignmentStoreContainer">
<EntitySet Name="Appointments" EntityType="FIT5032Assignment.Store.Appointments" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Credentials" EntityType="FIT5032Assignment.Store.Credentials" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Doctors" EntityType="FIT5032Assignment.Store.Doctors" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Images" EntityType="FIT5032Assignment.Store.Images" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Patients" EntityType="FIT5032Assignment.Store.Patients" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Reviews" EntityType="FIT5032Assignment.Store.Reviews" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Sessions" EntityType="FIT5032Assignment.Store.Sessions" store:Type="Tables" Schema="dbo" />
<EntitySet Name="ShareURLs" EntityType="FIT5032Assignment.Store.ShareURLs" store:Type="Tables" Schema="dbo" />
<EntitySet Name="Users" EntityType="FIT5032Assignment.Store.Users" store:Type="Tables" Schema="dbo" />
<AssociationSet Name="FK__Appointme__patie__5AEE82B9" Association="FIT5032Assignment.Store.FK__Appointme__patie__5AEE82B9">
<End Role="Patients" EntitySet="Patients" />
<End Role="Appointments" EntitySet="Appointments" />
</AssociationSet>
<AssociationSet Name="FK__Appointme__respo__5BE2A6F2" Association="FIT5032Assignment.Store.FK__Appointme__respo__5BE2A6F2">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Appointments" EntitySet="Appointments" />
</AssociationSet>
<AssociationSet Name="FK__Images__appointm__60A75C0F" Association="FIT5032Assignment.Store.FK__Images__appointm__60A75C0F">
<End Role="Appointments" EntitySet="Appointments" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__appoint__6383C8BA" Association="FIT5032Assignment.Store.FK__Reviews__appoint__6383C8BA">
<End Role="Appointments" EntitySet="Appointments" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Credential__user__4BAC3F29" Association="FIT5032Assignment.Store.FK__Credential__user__4BAC3F29">
<End Role="Users" EntitySet="Users" />
<End Role="Credentials" EntitySet="Credentials" />
</AssociationSet>
<AssociationSet Name="FK__Doctors__user__5441852A" Association="FIT5032Assignment.Store.FK__Doctors__user__5441852A">
<End Role="Users" EntitySet="Users" />
<End Role="Doctors" EntitySet="Doctors" />
</AssociationSet>
<AssociationSet Name="FK__Images__responsi__5FB337D6" Association="FIT5032Assignment.Store.FK__Images__responsi__5FB337D6">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__doctor__656C112C" Association="FIT5032Assignment.Store.FK__Reviews__doctor__656C112C">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Images__patient__5EBF139D" Association="FIT5032Assignment.Store.FK__Images__patient__5EBF139D">
<End Role="Patients" EntitySet="Patients" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__ShareURLs__image__68487DD7" Association="FIT5032Assignment.Store.FK__ShareURLs__image__68487DD7">
<End Role="Images" EntitySet="Images" />
<End Role="ShareURLs" EntitySet="ShareURLs" />
</AssociationSet>
<AssociationSet Name="FK__Patients__user__5165187F" Association="FIT5032Assignment.Store.FK__Patients__user__5165187F">
<End Role="Users" EntitySet="Users" />
<End Role="Patients" EntitySet="Patients" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__patient__6477ECF3" Association="FIT5032Assignment.Store.FK__Reviews__patient__6477ECF3">
<End Role="Patients" EntitySet="Patients" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Sessions__user__4E88ABD4" Association="FIT5032Assignment.Store.FK__Sessions__user__4E88ABD4">
<End Role="Users" EntitySet="Users" />
<End Role="Sessions" EntitySet="Sessions" />
</AssociationSet>
</EntityContainer>
<EntityType Name="Appointments">
<Key>
<PropertyRef Name="uuid" />
</Key>
<Property Name="uuid" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="patient" Type="varchar" MaxLength="36" />
<Property Name="createdAt" Type="datetime" />
<Property Name="responsibleBy" Type="varchar" MaxLength="36" />
<Property Name="appointmentDate" Type="datetime" />
<Property Name="status" Type="int" />
<Property Name="createdBy" Type="int" />
<Property Name="uuid" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="patient" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="createdAt" Type="datetime" Nullable="true" />
<Property Name="responsibleBy" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="appointmentDate" Type="datetime" Nullable="true" />
<Property Name="status" Type="int" Nullable="true" />
<Property Name="createdBy" Type="int" Nullable="true" />
</EntityType>
<EntityType Name="Credentials">
<Key>
<PropertyRef Name="uuid" />
</Key>
<Property Name="uuid" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="user" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="uuid" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="user" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="provider" Type="int" Nullable="false" />
<Property Name="uniqueIdCode" Type="varchar(max)" />
<Property Name="uniqueIdCode" Type="varchar(max)" Nullable="true" />
</EntityType>
<EntityType Name="Doctors">
<Key>
<PropertyRef Name="user" />
</Key>
<Property Name="user" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="bio" Type="varchar(max)" />
<Property Name="user" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="bio" Type="varchar(max)" Nullable="true" />
</EntityType>
<EntityType Name="Images">
<Key>
<PropertyRef Name="uuid" />
</Key>
<Property Name="uuid" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="patient" Type="varchar" MaxLength="36" />
<Property Name="responsibleBy" Type="varchar" MaxLength="36" />
<Property Name="createdAt" Type="datetime" />
<Property Name="appointment" Type="varchar" MaxLength="36" />
<Property Name="status" Type="int" />
<Property Name="file" Type="varchar(max)" />
<Property Name="uuid" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="patient" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="responsibleBy" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="createdAt" Type="datetime" Nullable="true" />
<Property Name="appointment" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="status" Type="int" Nullable="true" />
<Property Name="file" Type="varchar(max)" Nullable="true" />
</EntityType>
<EntityType Name="Patients">
<Key>
<PropertyRef Name="user" />
</Key>
<Property Name="user" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="phone" Type="varchar(max)" />
<Property Name="address" Type="varchar(max)" />
<Property Name="notes" Type="varchar(max)" />
<Property Name="user" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="phone" Type="varchar(max)" Nullable="true" />
<Property Name="address" Type="varchar(max)" Nullable="true" />
<Property Name="notes" Type="varchar(max)" Nullable="true" />
</EntityType>
<EntityType Name="Reviews">
<Key>
<PropertyRef Name="appointment" />
</Key>
<Property Name="appointment" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="patient" Type="varchar" MaxLength="36" />
<Property Name="doctor" Type="varchar" MaxLength="36" />
<Property Name="score" Type="int" />
<Property Name="comment" Type="varchar(max)" />
<Property Name="reply" Type="varchar(max)" />
<Property Name="reviewAt" Type="datetime" />
<Property Name="replyAt" Type="datetime" />
<Property Name="appointment" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="patient" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="doctor" Type="varchar" Nullable="true" MaxLength="36" />
<Property Name="score" Type="int" Nullable="true" />
<Property Name="comment" Type="varchar(max)" Nullable="true" />
<Property Name="reply" Type="varchar(max)" Nullable="true" />
<Property Name="reviewAt" Type="datetime" Nullable="true" />
<Property Name="replyAt" Type="datetime" Nullable="true" />
</EntityType>
<EntityType Name="Sessions">
<Key>
<PropertyRef Name="uuid" />
</Key>
<Property Name="uuid" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="user" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="token" Type="varchar(max)" />
<Property Name="alias" Type="varchar(max)" />
<Property Name="validFrom" Type="datetime" />
<Property Name="validTo" Type="datetime" />
<Property Name="uuid" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="user" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="token" Type="varchar(max)" Nullable="true" />
<Property Name="alias" Type="varchar(max)" Nullable="true" />
<Property Name="validFrom" Type="datetime" Nullable="true" />
<Property Name="validTo" Type="datetime" Nullable="true" />
</EntityType>
<EntityType Name="ShareURLs">
<Key>
<PropertyRef Name="image" />
</Key>
<Property Name="image" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="visibility" Type="int" />
<Property Name="slug" Type="varchar(max)" />
<Property Name="status" Type="int" />
<Property Name="image" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="visibility" Type="int" Nullable="true" />
<Property Name="slug" Type="varchar(max)" Nullable="true" />
<Property Name="status" Type="int" Nullable="true" />
</EntityType>
<EntityType Name="Users">
<Key>
<PropertyRef Name="uuid" />
</Key>
<Property Name="uuid" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="displayName" Type="varchar(max)" />
<Property Name="avatar" Type="varchar(max)" />
<Property Name="role" Type="int" />
<Property Name="uuid" Type="varchar" Nullable="false" MaxLength="36" />
<Property Name="displayName" Type="varchar(max)" Nullable="true" />
<Property Name="avatar" Type="varchar(max)" Nullable="true" />
<Property Name="role" Type="int" Nullable="true" />
</EntityType>
<Association Name="FK__Appointme__patie__5AEE82B9">
<End Role="Patients" Type="Self.Patients" Multiplicity="0..1" />
<End Role="Appointments" Type="Self.Appointments" Multiplicity="*" />
<End Role="Patients" Type="FIT5032Assignment.Store.Patients" Multiplicity="0..1" />
<End Role="Appointments" Type="FIT5032Assignment.Store.Appointments" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Patients">
<PropertyRef Name="user" />
@ -109,8 +172,8 @@
</ReferentialConstraint>
</Association>
<Association Name="FK__Appointme__respo__5BE2A6F2">
<End Role="Doctors" Type="Self.Doctors" Multiplicity="0..1" />
<End Role="Appointments" Type="Self.Appointments" Multiplicity="*" />
<End Role="Doctors" Type="FIT5032Assignment.Store.Doctors" Multiplicity="0..1" />
<End Role="Appointments" Type="FIT5032Assignment.Store.Appointments" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Doctors">
<PropertyRef Name="user" />
@ -120,9 +183,33 @@
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Images__appointm__60A75C0F">
<End Role="Appointments" Type="FIT5032Assignment.Store.Appointments" Multiplicity="0..1" />
<End Role="Images" Type="FIT5032Assignment.Store.Images" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Appointments">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Images">
<PropertyRef Name="appointment" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Reviews__appoint__6383C8BA">
<End Role="Appointments" Type="FIT5032Assignment.Store.Appointments" Multiplicity="1" />
<End Role="Reviews" Type="FIT5032Assignment.Store.Reviews" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Appointments">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Reviews">
<PropertyRef Name="appointment" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Credential__user__4BAC3F29">
<End Role="Users" Type="Self.Users" Multiplicity="1" />
<End Role="Credentials" Type="Self.Credentials" Multiplicity="*" />
<End Role="Users" Type="FIT5032Assignment.Store.Users" Multiplicity="1" />
<End Role="Credentials" Type="FIT5032Assignment.Store.Credentials" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Users">
<PropertyRef Name="uuid" />
@ -133,8 +220,8 @@
</ReferentialConstraint>
</Association>
<Association Name="FK__Doctors__user__5441852A">
<End Role="Users" Type="Self.Users" Multiplicity="1" />
<End Role="Doctors" Type="Self.Doctors" Multiplicity="0..1" />
<End Role="Users" Type="FIT5032Assignment.Store.Users" Multiplicity="1" />
<End Role="Doctors" Type="FIT5032Assignment.Store.Doctors" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Users">
<PropertyRef Name="uuid" />
@ -144,33 +231,9 @@
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Images__appointm__60A75C0F">
<End Role="Appointments" Type="Self.Appointments" Multiplicity="0..1" />
<End Role="Images" Type="Self.Images" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Appointments">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Images">
<PropertyRef Name="appointment" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Images__patient__5EBF139D">
<End Role="Patients" Type="Self.Patients" Multiplicity="0..1" />
<End Role="Images" Type="Self.Images" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Patients">
<PropertyRef Name="user" />
</Principal>
<Dependent Role="Images">
<PropertyRef Name="patient" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Images__responsi__5FB337D6">
<End Role="Doctors" Type="Self.Doctors" Multiplicity="0..1" />
<End Role="Images" Type="Self.Images" Multiplicity="*" />
<End Role="Doctors" Type="FIT5032Assignment.Store.Doctors" Multiplicity="0..1" />
<End Role="Images" Type="FIT5032Assignment.Store.Images" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Doctors">
<PropertyRef Name="user" />
@ -180,33 +243,9 @@
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Patients__user__5165187F">
<End Role="Users" Type="Self.Users" Multiplicity="1" />
<End Role="Patients" Type="Self.Patients" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Users">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Patients">
<PropertyRef Name="user" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Reviews__appoint__6383C8BA">
<End Role="Appointments" Type="Self.Appointments" Multiplicity="1" />
<End Role="Reviews" Type="Self.Reviews" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Appointments">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Reviews">
<PropertyRef Name="appointment" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Reviews__doctor__656C112C">
<End Role="Doctors" Type="Self.Doctors" Multiplicity="0..1" />
<End Role="Reviews" Type="Self.Reviews" Multiplicity="*" />
<End Role="Doctors" Type="FIT5032Assignment.Store.Doctors" Multiplicity="0..1" />
<End Role="Reviews" Type="FIT5032Assignment.Store.Reviews" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Doctors">
<PropertyRef Name="user" />
@ -216,9 +255,45 @@
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Images__patient__5EBF139D">
<End Role="Patients" Type="FIT5032Assignment.Store.Patients" Multiplicity="0..1" />
<End Role="Images" Type="FIT5032Assignment.Store.Images" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Patients">
<PropertyRef Name="user" />
</Principal>
<Dependent Role="Images">
<PropertyRef Name="patient" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__ShareURLs__image__68487DD7">
<End Role="Images" Type="FIT5032Assignment.Store.Images" Multiplicity="1" />
<End Role="ShareURLs" Type="FIT5032Assignment.Store.ShareURLs" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Images">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="ShareURLs">
<PropertyRef Name="image" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Patients__user__5165187F">
<End Role="Users" Type="FIT5032Assignment.Store.Users" Multiplicity="1" />
<End Role="Patients" Type="FIT5032Assignment.Store.Patients" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Users">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="Patients">
<PropertyRef Name="user" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__Reviews__patient__6477ECF3">
<End Role="Patients" Type="Self.Patients" Multiplicity="0..1" />
<End Role="Reviews" Type="Self.Reviews" Multiplicity="*" />
<End Role="Patients" Type="FIT5032Assignment.Store.Patients" Multiplicity="0..1" />
<End Role="Reviews" Type="FIT5032Assignment.Store.Reviews" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Patients">
<PropertyRef Name="user" />
@ -229,8 +304,8 @@
</ReferentialConstraint>
</Association>
<Association Name="FK__Sessions__user__4E88ABD4">
<End Role="Users" Type="Self.Users" Multiplicity="1" />
<End Role="Sessions" Type="Self.Sessions" Multiplicity="*" />
<End Role="Users" Type="FIT5032Assignment.Store.Users" Multiplicity="1" />
<End Role="Sessions" Type="FIT5032Assignment.Store.Sessions" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Users">
<PropertyRef Name="uuid" />
@ -240,83 +315,7 @@
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK__ShareURLs__image__68487DD7">
<End Role="Images" Type="Self.Images" Multiplicity="1" />
<End Role="ShareURLs" Type="Self.ShareURLs" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="Images">
<PropertyRef Name="uuid" />
</Principal>
<Dependent Role="ShareURLs">
<PropertyRef Name="image" />
</Dependent>
</ReferentialConstraint>
</Association>
<EntityContainer Name="FIT5032AssignmentStoreContainer">
<EntitySet Name="Appointments" EntityType="Self.Appointments" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Credentials" EntityType="Self.Credentials" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Doctors" EntityType="Self.Doctors" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Images" EntityType="Self.Images" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Patients" EntityType="Self.Patients" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Reviews" EntityType="Self.Reviews" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Sessions" EntityType="Self.Sessions" Schema="dbo" store:Type="Tables" />
<EntitySet Name="ShareURLs" EntityType="Self.ShareURLs" Schema="dbo" store:Type="Tables" />
<EntitySet Name="Users" EntityType="Self.Users" Schema="dbo" store:Type="Tables" />
<AssociationSet Name="FK__Appointme__patie__5AEE82B9" Association="Self.FK__Appointme__patie__5AEE82B9">
<End Role="Patients" EntitySet="Patients" />
<End Role="Appointments" EntitySet="Appointments" />
</AssociationSet>
<AssociationSet Name="FK__Appointme__respo__5BE2A6F2" Association="Self.FK__Appointme__respo__5BE2A6F2">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Appointments" EntitySet="Appointments" />
</AssociationSet>
<AssociationSet Name="FK__Credential__user__4BAC3F29" Association="Self.FK__Credential__user__4BAC3F29">
<End Role="Users" EntitySet="Users" />
<End Role="Credentials" EntitySet="Credentials" />
</AssociationSet>
<AssociationSet Name="FK__Doctors__user__5441852A" Association="Self.FK__Doctors__user__5441852A">
<End Role="Users" EntitySet="Users" />
<End Role="Doctors" EntitySet="Doctors" />
</AssociationSet>
<AssociationSet Name="FK__Images__appointm__60A75C0F" Association="Self.FK__Images__appointm__60A75C0F">
<End Role="Appointments" EntitySet="Appointments" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__Images__patient__5EBF139D" Association="Self.FK__Images__patient__5EBF139D">
<End Role="Patients" EntitySet="Patients" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__Images__responsi__5FB337D6" Association="Self.FK__Images__responsi__5FB337D6">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Images" EntitySet="Images" />
</AssociationSet>
<AssociationSet Name="FK__Patients__user__5165187F" Association="Self.FK__Patients__user__5165187F">
<End Role="Users" EntitySet="Users" />
<End Role="Patients" EntitySet="Patients" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__appoint__6383C8BA" Association="Self.FK__Reviews__appoint__6383C8BA">
<End Role="Appointments" EntitySet="Appointments" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__doctor__656C112C" Association="Self.FK__Reviews__doctor__656C112C">
<End Role="Doctors" EntitySet="Doctors" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Reviews__patient__6477ECF3" Association="Self.FK__Reviews__patient__6477ECF3">
<End Role="Patients" EntitySet="Patients" />
<End Role="Reviews" EntitySet="Reviews" />
</AssociationSet>
<AssociationSet Name="FK__Sessions__user__4E88ABD4" Association="Self.FK__Sessions__user__4E88ABD4">
<End Role="Users" EntitySet="Users" />
<End Role="Sessions" EntitySet="Sessions" />
</AssociationSet>
<AssociationSet Name="FK__ShareURLs__image__68487DD7" Association="Self.FK__ShareURLs__image__68487DD7">
<End Role="Images" EntitySet="Images" />
<End Role="ShareURLs" EntitySet="ShareURLs" />
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:StorageModels>
</Schema></edmx:StorageModels>
<!-- CSDL content -->
<edmx:ConceptualModels>
<Schema Namespace="FIT5032Assignment" Alias="Self" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
@ -663,7 +662,7 @@
<Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2009/11/mapping/cs">
<EntityContainerMapping StorageEntityContainer="FIT5032AssignmentStoreContainer" CdmEntityContainer="Database1Entities">
<EntitySetMapping Name="Appointments">
<EntityTypeMapping TypeName="FIT5032Assignment.Appointments">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Appointments)">
<MappingFragment StoreEntitySet="Appointments">
<ScalarProperty Name="uuid" ColumnName="uuid" />
<ScalarProperty Name="patient" ColumnName="patient" />
@ -676,7 +675,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Credentials">
<EntityTypeMapping TypeName="FIT5032Assignment.Credentials">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Credentials)">
<MappingFragment StoreEntitySet="Credentials">
<ScalarProperty Name="uuid" ColumnName="uuid" />
<ScalarProperty Name="user" ColumnName="user" />
@ -686,7 +685,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Doctors">
<EntityTypeMapping TypeName="FIT5032Assignment.Doctors">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Doctors)">
<MappingFragment StoreEntitySet="Doctors">
<ScalarProperty Name="user" ColumnName="user" />
<ScalarProperty Name="bio" ColumnName="bio" />
@ -694,7 +693,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Images">
<EntityTypeMapping TypeName="FIT5032Assignment.Images">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Images)">
<MappingFragment StoreEntitySet="Images">
<ScalarProperty Name="uuid" ColumnName="uuid" />
<ScalarProperty Name="patient" ColumnName="patient" />
@ -707,7 +706,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Patients">
<EntityTypeMapping TypeName="FIT5032Assignment.Patients">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Patients)">
<MappingFragment StoreEntitySet="Patients">
<ScalarProperty Name="user" ColumnName="user" />
<ScalarProperty Name="phone" ColumnName="phone" />
@ -717,7 +716,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Reviews">
<EntityTypeMapping TypeName="FIT5032Assignment.Reviews">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Reviews)">
<MappingFragment StoreEntitySet="Reviews">
<ScalarProperty Name="appointment" ColumnName="appointment" />
<ScalarProperty Name="patient" ColumnName="patient" />
@ -731,7 +730,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Sessions">
<EntityTypeMapping TypeName="FIT5032Assignment.Sessions">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Sessions)">
<MappingFragment StoreEntitySet="Sessions">
<ScalarProperty Name="uuid" ColumnName="uuid" />
<ScalarProperty Name="user" ColumnName="user" />
@ -743,7 +742,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="ShareURLs">
<EntityTypeMapping TypeName="FIT5032Assignment.ShareURLs">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.ShareURLs)">
<MappingFragment StoreEntitySet="ShareURLs">
<ScalarProperty Name="image" ColumnName="image" />
<ScalarProperty Name="visibility" ColumnName="visibility" />
@ -753,7 +752,7 @@
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Users">
<EntityTypeMapping TypeName="FIT5032Assignment.Users">
<EntityTypeMapping TypeName="IsTypeOf(FIT5032Assignment.Users)">
<MappingFragment StoreEntitySet="Users">
<ScalarProperty Name="uuid" ColumnName="uuid" />
<ScalarProperty Name="displayName" ColumnName="displayName" />
@ -763,8 +762,7 @@
</EntityTypeMapping>
</EntitySetMapping>
</EntityContainerMapping>
</Mapping>
</edmx:Mappings>
</Mapping></edmx:Mappings>
</edmx:Runtime>
<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
<Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
@ -778,7 +776,7 @@
<DesignerProperty Name="ValidateOnBuild" Value="true" />
<DesignerProperty Name="EnablePluralization" Value="false" />
<DesignerProperty Name="IncludeForeignKeysInModel" Value="true" />
<DesignerProperty Name="UseLegacyProvider" Value="false" />
<DesignerProperty Name="UseLegacyProvider" Value="False" />
<DesignerProperty Name="CodeGenerationStrategy" Value="None" />
</DesignerInfoPropertySet>
</Options>

View File

@ -0,0 +1,422 @@
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 09/14/2023 16:21:56
-- Generated from EDMX file: C:\Users\astri\source\repos\FIT5032-Assignment\FIT5032-Assignment\Models\FIT5032-Assignment.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
USE [Database1];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[FK__Appointme__patie__5AEE82B9]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__patie__5AEE82B9];
GO
IF OBJECT_ID(N'[dbo].[FK__Appointme__respo__5BE2A6F2]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Appointments] DROP CONSTRAINT [FK__Appointme__respo__5BE2A6F2];
GO
IF OBJECT_ID(N'[dbo].[FK__Credential__user__4BAC3F29]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Credentials] DROP CONSTRAINT [FK__Credential__user__4BAC3F29];
GO
IF OBJECT_ID(N'[dbo].[FK__Doctors__user__5441852A]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Doctors] DROP CONSTRAINT [FK__Doctors__user__5441852A];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__appointm__60A75C0F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__appointm__60A75C0F];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__patient__5EBF139D]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__patient__5EBF139D];
GO
IF OBJECT_ID(N'[dbo].[FK__Images__responsi__5FB337D6]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Images] DROP CONSTRAINT [FK__Images__responsi__5FB337D6];
GO
IF OBJECT_ID(N'[dbo].[FK__Patients__user__5165187F]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Patients] DROP CONSTRAINT [FK__Patients__user__5165187F];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__appoint__6383C8BA]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__appoint__6383C8BA];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__doctor__656C112C]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__doctor__656C112C];
GO
IF OBJECT_ID(N'[dbo].[FK__Reviews__patient__6477ECF3]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Reviews] DROP CONSTRAINT [FK__Reviews__patient__6477ECF3];
GO
IF OBJECT_ID(N'[dbo].[FK__Sessions__user__4E88ABD4]', 'F') IS NOT NULL
ALTER TABLE [dbo].[Sessions] DROP CONSTRAINT [FK__Sessions__user__4E88ABD4];
GO
IF OBJECT_ID(N'[dbo].[FK__ShareURLs__image__68487DD7]', 'F') IS NOT NULL
ALTER TABLE [dbo].[ShareURLs] DROP CONSTRAINT [FK__ShareURLs__image__68487DD7];
GO
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
IF OBJECT_ID(N'[dbo].[Appointments]', 'U') IS NOT NULL
DROP TABLE [dbo].[Appointments];
GO
IF OBJECT_ID(N'[dbo].[Credentials]', 'U') IS NOT NULL
DROP TABLE [dbo].[Credentials];
GO
IF OBJECT_ID(N'[dbo].[Doctors]', 'U') IS NOT NULL
DROP TABLE [dbo].[Doctors];
GO
IF OBJECT_ID(N'[dbo].[Images]', 'U') IS NOT NULL
DROP TABLE [dbo].[Images];
GO
IF OBJECT_ID(N'[dbo].[Patients]', 'U') IS NOT NULL
DROP TABLE [dbo].[Patients];
GO
IF OBJECT_ID(N'[dbo].[Reviews]', 'U') IS NOT NULL
DROP TABLE [dbo].[Reviews];
GO
IF OBJECT_ID(N'[dbo].[Sessions]', 'U') IS NOT NULL
DROP TABLE [dbo].[Sessions];
GO
IF OBJECT_ID(N'[dbo].[ShareURLs]', 'U') IS NOT NULL
DROP TABLE [dbo].[ShareURLs];
GO
IF OBJECT_ID(N'[dbo].[Users]', 'U') IS NOT NULL
DROP TABLE [dbo].[Users];
GO
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'Appointments'
CREATE TABLE [dbo].[Appointments] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[createdAt] datetime NULL,
[responsibleBy] varchar(36) NULL,
[appointmentDate] datetime NULL,
[status] int NULL,
[createdBy] int NULL
);
GO
-- Creating table 'Credentials'
CREATE TABLE [dbo].[Credentials] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[provider] int NOT NULL,
[uniqueIdCode] varchar(max) NULL
);
GO
-- Creating table 'Doctors'
CREATE TABLE [dbo].[Doctors] (
[user] varchar(36) NOT NULL,
[bio] varchar(max) NULL
);
GO
-- Creating table 'Images'
CREATE TABLE [dbo].[Images] (
[uuid] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[responsibleBy] varchar(36) NULL,
[createdAt] datetime NULL,
[appointment] varchar(36) NULL,
[status] int NULL,
[file] varchar(max) NULL
);
GO
-- Creating table 'Patients'
CREATE TABLE [dbo].[Patients] (
[user] varchar(36) NOT NULL,
[phone] varchar(max) NULL,
[address] varchar(max) NULL,
[notes] varchar(max) NULL
);
GO
-- Creating table 'Reviews'
CREATE TABLE [dbo].[Reviews] (
[appointment] varchar(36) NOT NULL,
[patient] varchar(36) NULL,
[doctor] varchar(36) NULL,
[score] int NULL,
[comment] varchar(max) NULL,
[reply] varchar(max) NULL,
[reviewAt] datetime NULL,
[replyAt] datetime NULL
);
GO
-- Creating table 'Sessions'
CREATE TABLE [dbo].[Sessions] (
[uuid] varchar(36) NOT NULL,
[user] varchar(36) NOT NULL,
[token] varchar(max) NULL,
[alias] varchar(max) NULL,
[validFrom] datetime NULL,
[validTo] datetime NULL
);
GO
-- Creating table 'ShareURLs'
CREATE TABLE [dbo].[ShareURLs] (
[image] varchar(36) NOT NULL,
[visibility] int NULL,
[slug] varchar(max) NULL,
[status] int NULL
);
GO
-- Creating table 'Users'
CREATE TABLE [dbo].[Users] (
[uuid] varchar(36) NOT NULL,
[displayName] varchar(max) NULL,
[avatar] varchar(max) NULL,
[role] int NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [uuid] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [PK_Appointments]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [uuid] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [PK_Credentials]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [PK_Doctors]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [uuid] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [PK_Images]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [PK_Patients]
PRIMARY KEY CLUSTERED ([user] ASC);
GO
-- Creating primary key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [PK_Reviews]
PRIMARY KEY CLUSTERED ([appointment] ASC);
GO
-- Creating primary key on [uuid] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [PK_Sessions]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- Creating primary key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [PK_ShareURLs]
PRIMARY KEY CLUSTERED ([image] ASC);
GO
-- Creating primary key on [uuid] in table 'Users'
ALTER TABLE [dbo].[Users]
ADD CONSTRAINT [PK_Users]
PRIMARY KEY CLUSTERED ([uuid] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- Creating foreign key on [patient] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__patie__5AEE82B9]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__patie__5AEE82B9'
CREATE INDEX [IX_FK__Appointme__patie__5AEE82B9]
ON [dbo].[Appointments]
([patient]);
GO
-- Creating foreign key on [responsibleBy] in table 'Appointments'
ALTER TABLE [dbo].[Appointments]
ADD CONSTRAINT [FK__Appointme__respo__5BE2A6F2]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Appointme__respo__5BE2A6F2'
CREATE INDEX [IX_FK__Appointme__respo__5BE2A6F2]
ON [dbo].[Appointments]
([responsibleBy]);
GO
-- Creating foreign key on [appointment] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__appointm__60A75C0F]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__appointm__60A75C0F'
CREATE INDEX [IX_FK__Images__appointm__60A75C0F]
ON [dbo].[Images]
([appointment]);
GO
-- Creating foreign key on [appointment] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__appoint__6383C8BA]
FOREIGN KEY ([appointment])
REFERENCES [dbo].[Appointments]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Credentials'
ALTER TABLE [dbo].[Credentials]
ADD CONSTRAINT [FK__Credential__user__4BAC3F29]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Credential__user__4BAC3F29'
CREATE INDEX [IX_FK__Credential__user__4BAC3F29]
ON [dbo].[Credentials]
([user]);
GO
-- Creating foreign key on [user] in table 'Doctors'
ALTER TABLE [dbo].[Doctors]
ADD CONSTRAINT [FK__Doctors__user__5441852A]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [responsibleBy] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__responsi__5FB337D6]
FOREIGN KEY ([responsibleBy])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__responsi__5FB337D6'
CREATE INDEX [IX_FK__Images__responsi__5FB337D6]
ON [dbo].[Images]
([responsibleBy]);
GO
-- Creating foreign key on [doctor] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__doctor__656C112C]
FOREIGN KEY ([doctor])
REFERENCES [dbo].[Doctors]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__doctor__656C112C'
CREATE INDEX [IX_FK__Reviews__doctor__656C112C]
ON [dbo].[Reviews]
([doctor]);
GO
-- Creating foreign key on [patient] in table 'Images'
ALTER TABLE [dbo].[Images]
ADD CONSTRAINT [FK__Images__patient__5EBF139D]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Images__patient__5EBF139D'
CREATE INDEX [IX_FK__Images__patient__5EBF139D]
ON [dbo].[Images]
([patient]);
GO
-- Creating foreign key on [image] in table 'ShareURLs'
ALTER TABLE [dbo].[ShareURLs]
ADD CONSTRAINT [FK__ShareURLs__image__68487DD7]
FOREIGN KEY ([image])
REFERENCES [dbo].[Images]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [user] in table 'Patients'
ALTER TABLE [dbo].[Patients]
ADD CONSTRAINT [FK__Patients__user__5165187F]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating foreign key on [patient] in table 'Reviews'
ALTER TABLE [dbo].[Reviews]
ADD CONSTRAINT [FK__Reviews__patient__6477ECF3]
FOREIGN KEY ([patient])
REFERENCES [dbo].[Patients]
([user])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Reviews__patient__6477ECF3'
CREATE INDEX [IX_FK__Reviews__patient__6477ECF3]
ON [dbo].[Reviews]
([patient]);
GO
-- Creating foreign key on [user] in table 'Sessions'
ALTER TABLE [dbo].[Sessions]
ADD CONSTRAINT [FK__Sessions__user__4E88ABD4]
FOREIGN KEY ([user])
REFERENCES [dbo].[Users]
([uuid])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
-- Creating non-clustered index for FOREIGN KEY 'FK__Sessions__user__4E88ABD4'
CREATE INDEX [IX_FK__Sessions__user__4E88ABD4]
ON [dbo].[Sessions]
([user]);
GO
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------

View File

@ -0,0 +1,65 @@
@model FIT5032_Assignment.Models.Users
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Users</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.uuid, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.uuid, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.uuid, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.displayName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.displayName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.displayName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.avatar, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.avatar, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.avatar, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.role, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.role, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.role, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View File

@ -0,0 +1,65 @@
@model FIT5032_Assignment.Models.Users
@{
ViewBag.Title = "Delete";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<div>
<h4>Users</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.displayName)
</dt>
<dd>
@Html.DisplayFor(model => model.displayName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.avatar)
</dt>
<dd>
@Html.DisplayFor(model => model.avatar)
</dd>
<dt>
@Html.DisplayNameFor(model => model.role)
</dt>
<dd>
@Html.DisplayFor(model => model.role)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Doctors.bio)
</dt>
<dd>
@Html.DisplayFor(model => model.Doctors.bio)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Patients.phone)
</dt>
<dd>
@Html.DisplayFor(model => model.Patients.phone)
</dd>
</dl>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
</div>

View File

@ -0,0 +1,59 @@
@model FIT5032_Assignment.Models.Users
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Details</h2>
<div>
<h4>Users</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.displayName)
</dt>
<dd>
@Html.DisplayFor(model => model.displayName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.avatar)
</dt>
<dd>
@Html.DisplayFor(model => model.avatar)
</dd>
<dt>
@Html.DisplayNameFor(model => model.role)
</dt>
<dd>
@Html.DisplayFor(model => model.role)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Doctors.bio)
</dt>
<dd>
@Html.DisplayFor(model => model.Doctors.bio)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Patients.phone)
</dt>
<dd>
@Html.DisplayFor(model => model.Patients.phone)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.uuid }) |
@Html.ActionLink("Back to List", "Index")
</p>

View File

@ -0,0 +1,59 @@
@model FIT5032_Assignment.Models.Users
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Users</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.uuid)
<div class="form-group">
@Html.LabelFor(model => model.displayName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.displayName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.displayName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.avatar, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.avatar, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.avatar, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.role, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.role, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.role, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View File

@ -0,0 +1,58 @@
@model IEnumerable<FIT5032_Assignment.Models.Users>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.displayName)
</th>
<th>
@Html.DisplayNameFor(model => model.avatar)
</th>
<th>
@Html.DisplayNameFor(model => model.role)
</th>
<th>
@Html.DisplayNameFor(model => model.Doctors.bio)
</th>
<th>
@Html.DisplayNameFor(model => model.Patients.phone)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.displayName)
</td>
<td>
@Html.DisplayFor(modelItem => item.avatar)
</td>
<td>
@Html.DisplayFor(modelItem => item.role)
</td>
<td>
@Html.DisplayFor(modelItem => item.Doctors.bio)
</td>
<td>
@Html.DisplayFor(modelItem => item.Patients.phone)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.uuid }) |
@Html.ActionLink("Details", "Details", new { id=item.uuid }) |
@Html.ActionLink("Delete", "Delete", new { id=item.uuid })
</td>
</tr>
}
</table>

View File

@ -2,7 +2,7 @@
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net48" />
<package id="bootstrap" version="5.2.3" targetFramework="net48" />
<package id="EntityFramework" version="6.2.0" targetFramework="net48" />
<package id="EntityFramework" version="6.4.4" targetFramework="net48" />
<package id="jQuery" version="3.4.1" targetFramework="net48" />
<package id="jQuery.Validation" version="1.17.0" targetFramework="net48" />
<package id="Microsoft.AspNet.Mvc" version="5.2.9" targetFramework="net48" />

View File

File diff suppressed because it is too large Load Diff

View File

@ -1,155 +0,0 @@
param($installPath, $toolsPath, $package, $project)
if (Get-Module | ?{ $_.Name -eq 'EntityFramework' })
{
Remove-Module EntityFramework
}
Import-Module (Join-Path $toolsPath EntityFramework.psd1)
# SIG # Begin signature block
# MIIa3gYJKoZIhvcNAQcCoIIazzCCGssCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXj4E03IfImYfKMB4CA3DfY0
# KZmgghWAMIIEwjCCA6qgAwIBAgITMwAAAMDeLD0HlORJeQAAAAAAwDANBgkqhkiG
# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTYwOTA3MTc1ODUw
# WhcNMTgwOTA3MTc1ODUwWjCBsjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEMMAoGA1UECxMDQU9DMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046
# N0FCNS0yREYyLURBM0YxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl
# cnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoiKVSfklVAB4E
# Oc9+r95kl32muXNITYcTbaRtuJl+MQzEnD0eU2JUXx2mI06ONnTfFW39ZQPF1pvU
# WkHBrS6m8oKy7Em4Ol91RJ5Knwy1VvY2Tawqh+VxwdARRgOeFtFm0S+Pa+BrXtVU
# hTtGl0BGMsKGEQKdDNGJD259Iq47qPLw3CmllE3/YFw1GGoJ9C3ry+I7ntxIjJYB
# LXA122vw93OOD/zWFh1SVq2AejPxcjKtHH2hjoeTKwkFeMNtIekrUSvhbuCGxW5r
# 54KW0Yus4o8392l9Vz8lSEn2j/TgPTqD6EZlzkpw54VSwede/vyqgZIrRbat0bAh
# b8doY8vDAgMBAAGjggEJMIIBBTAdBgNVHQ4EFgQUFf5K2jOJ0xmF1WRZxNxTQRBP
# tzUwHwYDVR0jBBgwFoAUIzT42VJGcArtQPt2+7MrsMM1sw8wVAYDVR0fBE0wSzBJ
# oEegRYZDaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv
# TWljcm9zb2Z0VGltZVN0YW1wUENBLmNybDBYBggrBgEFBQcBAQRMMEowSAYIKwYB
# BQUHMAKGPGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
# b2Z0VGltZVN0YW1wUENBLmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG
# 9w0BAQUFAAOCAQEAGeJAuzJMR+kovMi8RK/LtfrKazWlR5Lx02hM9GFmMk1zWCSc
# pfVY6xqfzWFllCFHBtOaJZqLiV97jfNCLpG0PULz24CWSkG7jJ+mZaCSicZ7ZC3b
# WDh1zpc54llYVyyTkRVYx/mtc9GujqbS8CBZgjaT/JsECnvGAPUcLYuSGt53CU1b
# UuiNwuzAhai4glcYyq3/7qMmmAtbnbCZhR5ySoMy7BwdzN70drLtafCJQncfAHXV
# O5r6SX4U/2J2zvWhA8lqhZu9SRulFGRvf81VTf+k5rJ2TjL6dYtSchooJ5YVvUk6
# i7bfV0VBN8xpaUhk8jbBnxhDPKIvDvnZlhPuJjCCBOswggPToAMCAQICEzMAAAF4
# JVq1zSPGX5UAAQAAAXgwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2ln
# bmluZyBQQ0EwHhcNMTcwODExMjAxMTE1WhcNMTgwODExMjAxMTE1WjCBgjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoGA1UECxMDQU9DMR4w
# HAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQCZbh1TVaudsrIbXUPPB9c8S+E+dKSbskHKYlG6SGTH8jhT
# hpuvGiAO87F2b9GHVN+DvszaMkGy/xQgHaGEJLfpnb3kpakic7E0bjDHdG4KnHRb
# no/wfUkGLfS79o+cw//RY8Ck6yE+0czDBcxp0Gbw5JyGP+KFqvzRR/3Tv3nt/5x0
# 5ZnEOHYP+eDVikDvn/DH+oxxtiCfX3tkvtm/yX4eOb47YdmYKQjCgz2+Nil/lupY
# vU0QFIjvke3jshqQINDng/vO9ys2qA0ex/q5hlLKQTST99dGoM86Ge6F723ReToq
# KnGLN8kiCG7uNapOAIQrpCHZq96CVumiaA5ZvxU9AgMBAAGjggFgMIIBXDATBgNV
# HSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUjuhtD3FD7tk/RKloJFX05cpgLjcw
# UQYDVR0RBEowSKRGMEQxDDAKBgNVBAsTA0FPQzE0MDIGA1UEBRMrMjI5ODAzKzFh
# YmY5ZTVmLWNlZDAtNDJlNi1hNjVkLWQ5MzUwOTU5ZmUwZTAfBgNVHSMEGDAWgBTL
# EejK0rQWWAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js
# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgt
# MzEtMjAxMC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0y
# MDEwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAYnG/oHG/xgZYR8NAMHZ/vE9GM0e4
# 7YdhuTea2uY7pSGwM707wp8Wan0Fa6evK1PWfcd/XNOh2BpEv5o8RmKDoEsG0ECP
# 13Jug7cklfKreBVHQ+Djg43VVFLZpuo7aOAVK6wjlcnpPUtn+SfH9K0aM2FjDKVJ
# FW6XFKXBat5R+Zp6uOxWTxpSeMTeDC5zF6IY6ogR1uzU+9EQoRlAvkwX6po+exEL
# nMLr4++P+fqOxIU+PODIoB8ijClAqwwKvLlMPa3qlrNHt+LweTMu7lvGC/RA18wU
# zzXAeomuZ03blUw+bkOiVgWOk4S0RN7EnW7zjJV8gd/+G2dbToUi1cB/fTCCBbww
# ggOkoAMCAQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT
# 8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMk
# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIy
# MTkzMloXDTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0Ew
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2
# U2w+G9ZvzMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08Gis
# TUuNpb15S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW
# 8ReU5P01lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjS
# jWL9y8lfRjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn
# 0i1i8UU956wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPT
# AgMBAAGjggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQW
# WAHJNy4zFha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAj
# BgkrBgEEAYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQC
# BAweCgBTAHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQw
# UAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9j
# cmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgw
# RjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0
# cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8m
# Rq/rb0CxMrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKo
# VpzjcLu4tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4
# iktX8pVCnPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KP
# cpUqcW2bGvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSC
# Mm78pJUT5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUW
# X92THUmOLb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexw
# o1eSV32UjaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDe
# ZPRvzkbU0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2
# edgKNAltHIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4N
# XJzwoq6GaIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4
# GPoOco3Boz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAA
# AAAAHDANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYK
# CZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBD
# ZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMw
# MzA5WjB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD
# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FM
# rXQwIBHrB9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9Gcc
# LPx754gd6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yG
# T1VSDOQDLPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScp
# ZqiX5NMGgUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEEx
# d8yb3zuDk6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNV
# HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNV
# HQ8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBW
# J5flJRP8KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJ
# kiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENl
# cnRpZmljYXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBH
# MEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
# cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUF
# BzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29m
# dFJvb3RDZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUF
# AAOCAgEAEJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhX
# AstOIBNQmd16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk
# 541q1YDB5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVR
# DupiXD8WmIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUr
# XqO/67x9C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1w
# lGysOUzU9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4
# TsVxIxImdgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svp
# u/RIzCzU2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2
# YbRuoROmv6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhU
# BdRBLlCslLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcB
# ZW+JC33Iacjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIB
# ATCBkDB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYD
# VQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAXglWrXNI8ZflQAB
# AAABeDAJBgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwG
# CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBTq02RG
# y+pjEYntEMXja7SF8TbmOjCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkA
# dAB5ACAARgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYA
# aQBzAHUAYQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEv
# ZWYgMA0GCSqGSIb3DQEBAQUABIIBAHQSKzEL3TItnbRhSBIYMFwe3udOxpA/S2dB
# gUgxV1NkH+j0UbOnslGkt8gDBIlFre+2F+b7U4dnBiOjhizMyeAKSHYGdHqSoDJ0
# lM4D5tuTSnoJ8FZtem/IjyBgKCmFMv05/ivF2StQ/nBhLj0QYcF4S9NZXj6JKFNa
# WZJjFRaMRbkyvyD+p22Y1FyvcZPetZfoBYXs7GoaDdLvwrvfjKFwv4YGZ40WIGDX
# 566IZCmnpMNJ2bfj8rNZUQBi8SZocFfAPw+9r/FLz51UTrKB0YRCBTXeWMYOJRpt
# 6is5bbSLYJz7Y/BvoLy1Lt+BaqJEntP2lB3RvSsEm+BZOtDCcAahggIoMIICJAYJ
# KoZIhvcNAQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# AhMzAAAAwN4sPQeU5El5AAAAAADAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMx
# CwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzEwMjMyMDEzNDVaMCMGCSqG
# SIb3DQEJBDEWBBSn3QkcYO648MmwXthSXKh2NV8R9TANBgkqhkiG9w0BAQUFAASC
# AQCnYTuQPUR6cHCGZStrauV4FQS+OC0dCo7D+mHETHYnDfgRKAloSQFBSqCm4C2+
# GH20vmak1LgnN48Gc7YBQ4tXyW0HXo8yfCJDBeaF1tYGGLIMPthq3Pqu0+mqrJ2C
# rklJw6+cKsF9+ESo9hoTCf3qztNjbEtaXrsakX+dALcMzJ4ism2oh5bUHd6CxWfF
# Z/xLn4VQxzmZUSPbnhkIAoPwauAswHi1jgqo7Qd0HSIKHGNex7SOGgBfTWD4gCe4
# IzGJlFFmCT6pFsjvreEnaQLNBv+yOj9P1Pf4MDVrNQn0OLeWSxfpf+XfgECLi0LS
# QMxcy5Q0PezBaxQKzBTp39mT
# SIG # End signature block

View File

@ -1,154 +0,0 @@
param($installPath, $toolsPath, $package, $project)
Initialize-EFConfiguration $project
Add-EFProvider $project 'System.Data.SqlClient' 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'
Write-Host
Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands."
# SIG # Begin signature block
# MIIa3gYJKoZIhvcNAQcCoIIazzCCGssCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUt8mwpdjiFmu2B4KBh+vEeQ+V
# VnSgghWAMIIEwjCCA6qgAwIBAgITMwAAALu2dyRxSiAAIAAAAAAAuzANBgkqhkiG
# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTYwOTA3MTc1ODQ3
# WhcNMTgwOTA3MTc1ODQ3WjCBsjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEMMAoGA1UECxMDQU9DMScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046
# MERFOC0yREM1LTNDQTkxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl
# cnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC48+U38sLxQNu8
# OO1wnT9mKeHv+f/jxafTFXzx9VF59IK/n/jLv4HIXt8ucy3KjBTM5Jf6D0nQlI4h
# Sizjrn6lO61q+V8oZiYYhjgR258rg8MDIrPpZMxK6OmD0d1wtksHW1cG21YKg5jg
# idT2hmQBpiL9Cra3ccY5keu0kl6OfZFoj4DF0i0JRVFSy1C9gKP4H950XIjlA2Yo
# TWN0LuHEHYMvwD1mOpAq2dVwPZh6xeNnpV8U/qLneyb9I/SqY/87tsZCn4FH7R3x
# 0TgK2eRwpWXfwGbUb1R/UTLd20aQ+my4NWwSsndeG+0vsYwaF40heB2lo1ThmByr
# OTBmEosTAgMBAAGjggEJMIIBBTAdBgNVHQ4EFgQUj9yNX+4+R8GZ7rcy4MdnJHXO
# KkswHwYDVR0jBBgwFoAUIzT42VJGcArtQPt2+7MrsMM1sw8wVAYDVR0fBE0wSzBJ
# oEegRYZDaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv
# TWljcm9zb2Z0VGltZVN0YW1wUENBLmNybDBYBggrBgEFBQcBAQRMMEowSAYIKwYB
# BQUHMAKGPGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
# b2Z0VGltZVN0YW1wUENBLmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG
# 9w0BAQUFAAOCAQEAcMI8Q0PxQVvxZSD1fjszuD6VF/qPZjKZj9WLTjWjZT2k9lzG
# yvSL7vy9J7lnyMATrbm5ptqAfdonNygLaBm05MnrIvgPJYK89wyTIyS1u71ro7z+
# EVrGPaKZiD+WvH8SWP+OWZQNf55fEL8tZo+a1oHm3lUARi5rR916OQvb4UnCENyV
# g8IfmupnwpxHcmIBUWZtTKAuKmuX/c8G2z4KJ8WhruYjPDWYQXJrQ5t7PhZa19Ge
# kOOtigge9EKIAWhZUJkw9fnfRm2IFX0gWtOzRXVNhR109ISacbNxd0oUboRYHmlq
# wGrOz64/3SDdOeN7PjvLwFmThuoXIsxrjQD8ODCCBOswggPToAMCAQICEzMAAAF4
# JVq1zSPGX5UAAQAAAXgwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2ln
# bmluZyBQQ0EwHhcNMTcwODExMjAxMTE1WhcNMTgwODExMjAxMTE1WjCBgjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoGA1UECxMDQU9DMR4w
# HAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQCZbh1TVaudsrIbXUPPB9c8S+E+dKSbskHKYlG6SGTH8jhT
# hpuvGiAO87F2b9GHVN+DvszaMkGy/xQgHaGEJLfpnb3kpakic7E0bjDHdG4KnHRb
# no/wfUkGLfS79o+cw//RY8Ck6yE+0czDBcxp0Gbw5JyGP+KFqvzRR/3Tv3nt/5x0
# 5ZnEOHYP+eDVikDvn/DH+oxxtiCfX3tkvtm/yX4eOb47YdmYKQjCgz2+Nil/lupY
# vU0QFIjvke3jshqQINDng/vO9ys2qA0ex/q5hlLKQTST99dGoM86Ge6F723ReToq
# KnGLN8kiCG7uNapOAIQrpCHZq96CVumiaA5ZvxU9AgMBAAGjggFgMIIBXDATBgNV
# HSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUjuhtD3FD7tk/RKloJFX05cpgLjcw
# UQYDVR0RBEowSKRGMEQxDDAKBgNVBAsTA0FPQzE0MDIGA1UEBRMrMjI5ODAzKzFh
# YmY5ZTVmLWNlZDAtNDJlNi1hNjVkLWQ5MzUwOTU5ZmUwZTAfBgNVHSMEGDAWgBTL
# EejK0rQWWAHJNy4zFha5TJoKHzBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js
# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMDgt
# MzEtMjAxMC5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8wOC0zMS0y
# MDEwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAYnG/oHG/xgZYR8NAMHZ/vE9GM0e4
# 7YdhuTea2uY7pSGwM707wp8Wan0Fa6evK1PWfcd/XNOh2BpEv5o8RmKDoEsG0ECP
# 13Jug7cklfKreBVHQ+Djg43VVFLZpuo7aOAVK6wjlcnpPUtn+SfH9K0aM2FjDKVJ
# FW6XFKXBat5R+Zp6uOxWTxpSeMTeDC5zF6IY6ogR1uzU+9EQoRlAvkwX6po+exEL
# nMLr4++P+fqOxIU+PODIoB8ijClAqwwKvLlMPa3qlrNHt+LweTMu7lvGC/RA18wU
# zzXAeomuZ03blUw+bkOiVgWOk4S0RN7EnW7zjJV8gd/+G2dbToUi1cB/fTCCBbww
# ggOkoAMCAQICCmEzJhoAAAAAADEwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT
# 8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMk
# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgzMTIy
# MTkzMloXDTIwMDgzMTIyMjkzMloweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0Ew
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCycllcGTBkvx2aYCAgQpl2
# U2w+G9ZvzMvx6mv+lxYQ4N86dIMaty+gMuz/3sJCTiPVcgDbNVcKicquIEn08Gis
# TUuNpb15S3GbRwfa/SXfnXWIz6pzRH/XgdvzvfI2pMlcRdyvrT3gKGiXGqelcnNW
# 8ReU5P01lHKg1nZfHndFg4U4FtBzWwW6Z1KNpbJpL9oZC/6SdCnidi9U3RQwWfjS
# jWL9y8lfRjFQuScT5EAwz3IpECgixzdOPaAyPZDNoTgGhVxOVoIoKgUyt0vXT2Pn
# 0i1i8UU956wIAPZGoZ7RW4wmU+h6qkryRs83PDietHdcpReejcsRj1Y8wawJXwPT
# AgMBAAGjggFeMIIBWjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLEejK0rQW
# WAHJNy4zFha5TJoKHzALBgNVHQ8EBAMCAYYwEgYJKwYBBAGCNxUBBAUCAwEAATAj
# BgkrBgEEAYI3FQIEFgQU/dExTtMmipXhmGA7qDFvpjy82C0wGQYJKwYBBAGCNxQC
# BAweCgBTAHUAYgBDAEEwHwYDVR0jBBgwFoAUDqyCYEBWJ5flJRP8KuEKU5VZ5KQw
# UAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9j
# cmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgw
# RjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0
# cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwDQYJKoZIhvcNAQEFBQADggIBAFk5Pn8m
# Rq/rb0CxMrVq6w4vbqhJ9+tfde1MOy3XQ60L/svpLTGjI8x8UJiAIV2sPS9MuqKo
# VpzjcLu4tPh5tUly9z7qQX/K4QwXaculnCAt+gtQxFbNLeNK0rxw56gNogOlVuC4
# iktX8pVCnPHz7+7jhh80PLhWmvBTI4UqpIIck+KUBx3y4k74jKHK6BOlkU7IG9KP
# cpUqcW2bGvgc8FPWZ8wi/1wdzaKMvSeyeWNWRKJRzfnpo1hW3ZsCRUQvX/TartSC
# Mm78pJUT5Otp56miLL7IKxAOZY6Z2/Wi+hImCWU4lPF6H0q70eFW6NB4lhhcyTUW
# X92THUmOLb6tNEQc7hAVGgBd3TVbIc6YxwnuhQ6MT20OE049fClInHLR82zKwexw
# o1eSV32UjaAbSANa98+jZwp0pTbtLS8XyOZyNxL0b7E8Z4L5UrKNMxZlHg6K3RDe
# ZPRvzkbU0xfpecQEtNP7LN8fip6sCvsTJ0Ct5PnhqX9GuwdgR2VgQE6wQuxO7bN2
# edgKNAltHIAxH+IOVN3lofvlRxCtZJj/UBYufL8FIXrilUEnacOTj5XJjdibIa4N
# XJzwoq6GaIMMai27dmsAHZat8hZ79haDJLmIz2qoRzEvmtzjcT3XAH5iR9HOiMm4
# GPoOco3Boz2vAkBq/2mbluIQqBC0N1AI1sM9MIIGBzCCA++gAwIBAgIKYRZoNAAA
# AAAAHDANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYK
# CZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBD
# ZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcwNDAzMTI1MzA5WhcNMjEwNDAzMTMw
# MzA5WjB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD
# VQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQCfoWyx39tIkip8ay4Z4b3i48WZUSNQrc7dGE4kD+7Rp9FM
# rXQwIBHrB9VUlRVJlBtCkq6YXDAm2gBr6Hu97IkHD/cOBJjwicwfyzMkh53y9Gcc
# LPx754gd6udOo6HBI1PKjfpFzwnQXq/QsEIEovmmbJNn1yjcRlOwhtDlKEYuJ6yG
# T1VSDOQDLPtqkJAwbofzWTCd+n7Wl7PoIZd++NIT8wi3U21StEWQn0gASkdmEScp
# ZqiX5NMGgUqi+YSnEUcUCYKfhO1VeP4Bmh1QCIUAEDBG7bfeI0a7xC1Un68eeEEx
# d8yb3zuDk6FhArUdDbH895uyAc4iS1T/+QXDwiALAgMBAAGjggGrMIIBpzAPBgNV
# HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQjNPjZUkZwCu1A+3b7syuwwzWzDzALBgNV
# HQ8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwgZgGA1UdIwSBkDCBjYAUDqyCYEBW
# J5flJRP8KuEKU5VZ5KShY6RhMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJ
# kiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENl
# cnRpZmljYXRlIEF1dGhvcml0eYIQea0WoUqgpa1Mc1j0BxMuZTBQBgNVHR8ESTBH
# MEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
# cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUF
# BzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29m
# dFJvb3RDZXJ0LmNydDATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQUF
# AAOCAgEAEJeKw1wDRDbd6bStd9vOeVFNAbEudHFbbQwTq86+e4+4LtQSooxtYrhX
# AstOIBNQmd16QOJXu69YmhzhHQGGrLt48ovQ7DsB7uK+jwoFyI1I4vBTFd1Pq5Lk
# 541q1YDB5pTyBi+FA+mRKiQicPv2/OR4mS4N9wficLwYTp2OawpylbihOZxnLcVR
# DupiXD8WmIsgP+IHGjL5zDFKdjE9K3ILyOpwPf+FChPfwgphjvDXuBfrTot/xTUr
# XqO/67x9C0J71FNyIe4wyrt4ZVxbARcKFA7S2hSY9Ty5ZlizLS/n+YWGzFFW6J1w
# lGysOUzU9nm/qhh6YinvopspNAZ3GmLJPR5tH4LwC8csu89Ds+X57H2146SodDW4
# TsVxIxImdgs8UoxxWkZDFLyzs7BNZ8ifQv+AeSGAnhUwZuhCEl4ayJ4iIdBD6Svp
# u/RIzCzU2DKATCYqSCRfWupW76bemZ3KOm+9gSd0BhHudiG/m4LBJ1S2sWo9iaF2
# YbRuoROmv6pH8BJv/YoybLL+31HIjCPJZr2dHYcSZAI9La9Zj7jkIeW1sMpjtHhU
# BdRBLlCslLCleKuzoJZ1GtmShxN1Ii8yqAhuoFuMJb+g74TKIdbrHk/Jmu5J4PcB
# ZW+JC33Iacjmbuqnl84xKf8OxVtc2E0bodj6L54/LlUWa8kTo/0xggTIMIIExAIB
# ATCBkDB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYD
# VQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQITMwAAAXglWrXNI8ZflQAB
# AAABeDAJBgUrDgMCGgUAoIHhMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwG
# CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBSYs3+C
# WsAb+LOoocEiqHmU0Q3ALzCBgAYKKwYBBAGCNwIBDDFyMHCgUoBQAEUAbgB0AGkA
# dAB5ACAARgByAGEAbQBlAHcAbwByAGsAIABUAG8AbwBsAHMAIABmAG8AcgAgAFYA
# aQBzAHUAYQBsACAAUwB0AHUAZABpAG+hGoAYaHR0cDovL21zZG4uY29tL2RhdGEv
# ZWYgMA0GCSqGSIb3DQEBAQUABIIBABPzPT3kEODvGlQjfMBKfQudfoZrNqovPz0Y
# cdler/amP+mg1mtJd+v+zn+UQXQi1DbBmqGuxQYj18vdb6eBGBZAlwYag91Lkp95
# ILAZ926dAn0DXTLoXlZL1AVpRM8+/kqsHFCboI+Q1vO8FTO4/XpwuaCfwlvGAXxH
# AcUVLEnmJeZvBv0npW8NghCkfrAVT3G2nE+4mjP/cRHlukWUDiogHhkcWZOrWYBk
# aEEbojPYO1I+NW16NNp0Fq3VZO1Crr96I2HbrT2ogR2EJOWpPH0IyogZv4b0+E7S
# VXX33Lp5YpzbzgdIPUvsFpKfidoRzLmi4SD0Tc8S46NlgXotFM6hggIoMIICJAYJ
# KoZIhvcNAQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# AhMzAAAAu7Z3JHFKIAAgAAAAAAC7MAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMx
# CwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzEwMjMyMDEzMzlaMCMGCSqG
# SIb3DQEJBDEWBBR5eDKlzjbXG+gQhPSdEMDmmjY6BTANBgkqhkiG9w0BAQUFAASC
# AQB777+HNR9jVbg2sXZm72fSrm3jxSLugzhcA4OxhZObW96AnJknlduQvAGqcDV+
# Lt9CyaYLMt6I89MGkP9PBv8t5xhW0rHuBykna+5tTL8wvYrKd7r4ZvXT7YtHrqxO
# c+WLBPUD8XvSxI2wEsXt6uPCt44sd8PdO7VMiRNWth9aWo7rWaP0kGGAt0qhspI8
# 6mhsnam+SRGuDCpoLYcMTc1vVVKu1zZ9wgfxNCaf9YVswKmFc7Mj7VNpA3qd6Te0
# RNAEkgZr84KzCf8CYtWMsSy9k68drBbP0JosTxCLrJ9/zud6fykp5UcljzdKHKdU
# LMT4QBU8ya4StU9IgrUFBBcI
# SIG # End signature block

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packages/EntityFramework.6.4.4/Icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,6 @@
<Project>
<ItemGroup Condition="'$(EnableDefaultEntityDeployItems)' == 'True'">
<EntityDeploy Include="**/*.edmx" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
<None Remove="**/*.edmx" Condition="'$(EnableDefaultNoneItems)' == 'True'" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Condition="'$(EnableDefaultItems)' == 'True'" Project="EntityFramework.DefaultItems.props" />
</Project>

View File

@ -0,0 +1,152 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<EnableDefaultEntityDeployItems Condition="'$(EnableDefaultEntityDeployItems)' == ''">True</EnableDefaultEntityDeployItems>
</PropertyGroup>
<!-- This .targets file can be used by updating Microsoft.Common.targets to
include the line below (as the last import element just before the end project tag)
<Import Project="$(MSBuildBinPath)\Microsoft.Data.Entity.targets" Condition="Exists('$(MSBuildBinPath)\Microsoft.Data.Entity.targets')"/>
-->
<!-- The below ensures that "EntityDeploy" is available in the VS Build Action dropdown -->
<ItemGroup>
<AvailableItemName Include="EntityDeploy" />
</ItemGroup>
<PropertyGroup>
<!-- EntityDeployIntermediateResourcePath is the path used to store resources generated from
the EDMX file before they are embedded in the build target -->
<EntityDeployIntermediateResourcePath>$(IntermediateOutputPath)edmxResourcesToEmbed\</EntityDeployIntermediateResourcePath>
</PropertyGroup>
<UsingTask TaskName="EntityDeploySplit"
AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />
<UsingTask TaskName="EntityDeploy"
AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />
<UsingTask TaskName="EntityDeploySetLogicalNames"
AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />
<UsingTask TaskName="EntityClean"
AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />
<PropertyGroup>
<!-- EntityDeployDependsOn deliberately left empty so others can override this -->
<EntityDeployDependsOn></EntityDeployDependsOn>
<BuildDependsOn>
EntityDeploy;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>
<PropertyGroup>
<CleanDependsOn>
$(CleanDependsOn);
EntityClean;
</CleanDependsOn>
</PropertyGroup>
<Target Name="EntityDeploy"
DependsOnTargets="$(EntityDeployDependsOn)"
Condition="'@(EntityDeploy)' != ''">
<CallTarget Targets="EntityDeployNonEmbeddedResources" />
<CallTarget Targets="EntityDeployEmbeddedResources" />
<CallTarget Targets="EntityDeploySetLogicalNames" />
</Target>
<!-- Split the EDMX files into two groups: those whose resources need to be embedded
and those whose resources need to be copied
Note: this also assigns the EntityDeployRelativeDir metadata to each
item so that the same metadata can be used regardless of whether the
underlying item is a link or a normal file -->
<Target Name="EntityDeploySplit" >
<EntityDeploySplit
Sources="@(EntityDeploy)" >
<Output TaskParameter="EmbeddingItems" ItemName="EntityDeployEmbeddingItems" />
<Output TaskParameter="NonEmbeddingItems" ItemName="EntityDeployCopyingItems" />
</EntityDeploySplit>
<Message Condition="'$(EntityDeployDebug)'=='true'"
Text="EntityDeploySplit: EntityDeployEmbeddingItems = @(EntityDeployEmbeddingItems)" />
<Message Condition="'$(EntityDeployDebug)'=='true'"
Text="EntityDeploySplit: EntityDeployCopyingItems = @(EntityDeployCopyingItems)" />
</Target>
<!-- Generate to $(OutputPath) the CSDL, MSL and SSDL resources from the EDMX
files set to copy their outputs to the output directory (use SSDL as marker
file as that is the last one generated) -->
<Target Name="EntityDeployNonEmbeddedResources"
DependsOnTargets="EntityDeploySplit"
Inputs="@(EntityDeployCopyingItems)"
Outputs="@(EntityDeployCopyingItems->'$(OutputPath)%(EntityDeployRelativeDir)%(Filename).ssdl')" >
<EntityDeploy
Sources="@(EntityDeployCopyingItems)"
OutputPath="$(OutputPath)" >
</EntityDeploy>
</Target>
<!-- Generates to $(EntityDeployIntermediateResourcePath) the CSDL, MSL and SSDL
resources from the EDMX files set to embed their outputs (use SSDL as marker
file as that is the last one generated) -->
<Target Name="EntityDeployEmbeddedResources"
DependsOnTargets="EntityDeploySplit"
Inputs="@(EntityDeployEmbeddingItems)"
Outputs="@(EntityDeployEmbeddingItems->'$(EntityDeployIntermediateResourcePath)%(EntityDeployRelativeDir)%(Filename).ssdl')" >
<EntityDeploy
Sources="@(EntityDeployEmbeddingItems)"
OutputPath="$(EntityDeployIntermediateResourcePath)" >
</EntityDeploy>
</Target>
<Target Name="EntityClean"
Condition="'@(EntityDeploy)' != ''">
<EntityClean
Sources="@(EntityDeploy)"
ResourceOutputPath="$(EntityDeployIntermediateResourcePath)"
OutputPath="$(OutputPath)"
/>
</Target>
<!-- Define the CSDL/MSL/SSDL files generated from @(EntityDeployEmbeddingItems)
as part of the EmbeddedResource ItemGroup which includes them in the build target
Note: this must happen regardless of whether the EntityDeployEmbeddedResources target is
skipped due to incremental build -->
<Target Name="EntityDeploySetLogicalNames"
DependsOnTargets="EntityDeploySplit">
<!-- First define the resources to be embedded
Note: ignore resources which are not in @(EntityDeployEmbeddingItems) - this ignores
resources generated by previous runs which have now had their MetadataArtifactProcessing
changed to "CopyToOutput" -->
<ItemGroup>
<EntityDeployResourcesToEmbed Include="@(EntityDeployEmbeddingItems->'$(EntityDeployIntermediateResourcePath)%(EntityDeployRelativeDir)%(Filename).csdl')" />
<EntityDeployResourcesToEmbed Include="@(EntityDeployEmbeddingItems->'$(EntityDeployIntermediateResourcePath)%(EntityDeployRelativeDir)%(Filename).msl')" />
<EntityDeployResourcesToEmbed Include="@(EntityDeployEmbeddingItems->'$(EntityDeployIntermediateResourcePath)%(EntityDeployRelativeDir)%(Filename).ssdl')" />
</ItemGroup>
<Message Condition="'$(EntityDeployDebug)'=='true'"
Text="EntityDeploySetLogicalNames: EntityDeployResourcesToEmbed = @(EntityDeployResourcesToEmbed)" />
<!-- Now update their logical names and add them to the list of resources to be embedded -->
<EntityDeploySetLogicalNames
Sources="@(EntityDeployResourcesToEmbed)"
ResourceOutputPath="$(EntityDeployIntermediateResourcePath)" >
<Output TaskParameter="ResourcesToEmbed" ItemName="EmbeddedResource"/>
</EntityDeploySetLogicalNames>
</Target>
</Project>

View File

@ -0,0 +1,6 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GenerateRuntimeConfigurationFiles>True</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<Import Project="..\EntityFramework.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\EntityFramework.targets" />
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\build\EntityFramework.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\build\EntityFramework.targets" />
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\build\netcoreapp3.0\EntityFramework.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\build\netcoreapp3.0\EntityFramework.targets" />
</Project>

View File

@ -0,0 +1,11 @@
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<configSections>
<section name="entityFramework" xdt:Transform="Remove" xdt:Locator="Match(name)" />
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" xdt:Transform="Insert" xdt:Locator="Match(name)" />
</configSections>
<entityFramework xdt:Transform="InsertIfMissing">
<providers xdt:Transform="InsertIfMissing">
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" xdt:Transform="InsertIfMissing" xdt:Locator="Match(invariantName)" />
</providers>
</entityFramework>
</configuration>

View File

@ -0,0 +1,11 @@
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<configSections>
<section name="entityFramework" xdt:Transform="Remove" xdt:Locator="Match(name)" />
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" xdt:Transform="Insert" xdt:Locator="Match(name)" />
</configSections>
<entityFramework xdt:Transform="InsertIfMissing">
<providers xdt:Transform="InsertIfMissing">
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" xdt:Transform="InsertIfMissing" xdt:Locator="Match(invariantName)" />
</providers>
</entityFramework>
</configuration>

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,285 @@
#
# Module manifest for module 'EntityFramework6.PS2'
#
@{
# Script module or binary module file associated with this manifest
ModuleToProcess = 'EntityFramework6.PS2.psm1'
# Version number of this module.
ModuleVersion = '6.4.4'
# ID used to uniquely identify this module
GUID = 'a0032654-4b7b-4934-ae70-4036796a7318'
# Author of this module
Author = 'Entity Framework Team'
# Company or vendor of this module
CompanyName = 'Microsoft Corporation'
# Copyright statement for this module
Copyright = '(c) Microsoft Corporation. All rights reserved.'
# Description of the functionality provided by this module
Description = 'EntityFramework PowerShell module for use within NuGet''s Package Manager Console'
# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '2.0'
# Name of the Windows PowerShell host required by this module
PowerShellHostName = 'Package Manager Host'
# Minimum version of the Windows PowerShell host required by this module
PowerShellHostVersion = '1.2'
# Minimum version of the .NET Framework required by this module
DotNetFrameworkVersion = '4.0'
# Minimum version of the common language runtime (CLR) required by this module
CLRVersion = ''
# Processor architecture (None, X86, Amd64, IA64) required by this module
ProcessorArchitecture = ''
# Modules that must be imported into the global environment prior to importing this module
RequiredModules = @()
# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = @()
# Script files (.ps1) that are run in the caller's environment prior to importing this module
ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = @()
# Modules to import as nested modules of the module specified in ModuleToProcess
NestedModules = @()
# Functions to export from this module
FunctionsToExport = (
'Add-EFDefaultConnectionFactory',
'Add-EFProvider',
'Add-Migration',
'Enable-Migrations',
'Get-Migrations',
'Update-Database'
)
# Cmdlets to export from this module
CmdletsToExport = @()
# Variables to export from this module
VariablesToExport = '*'
# Aliases to export from this module
AliasesToExport = @()
# List of all modules packaged with this module
ModuleList = @()
# List of all files packaged with this module
FileList = @()
# Private data to pass to the module specified in ModuleToProcess
PrivateData = ''
}
# SIG # Begin signature block
# MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBtmRvdCYX3xCDe
# VH8jmb7pD7R4fhg2kAnOhieN7cYgH6CCDYEwggX/MIID56ADAgECAhMzAAABUZ6N
# j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1
# oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os
# +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU
# 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg
# B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ
# IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A
# rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS
# se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf
# NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL
# crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs
# 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF
# sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD
# 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK
# YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j
# 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu
# Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY
# HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgz60fp058
# XyyeVmKwwdlMs+REHQB8qGMA7ivdq70W2+AwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQBdwOCELvy68v2IaSclsVm56UcXxALSDvvSAvQheCAK
# uRYBsMV/I9XAW0/Oc/KMGUmRKsEZvdLSK8kHpPIDgLbhRcxRxY38XBjPH1MSQ43A
# b+8ubwboYGs75NWxUkP3rQhFy0KwtrGGBwOcc8P1/HhIEiTJYX7252VuacR5Kdp+
# TbshECu6h6Q+XF8bJrPeZ4o6bjZOdJ6kyS/j+WTOeJywNuZXTwkAkZIPyS8OTXHf
# wsTeJvzQDTqO2Oydoa8lnDwUTCKe5pohpOOY3TUGutjafJc3atsmINKC5O0bUM3V
# aXhBCXmY8cSd3YrFgWMraP25DhsyyT/uDrlNjk6cclrQoYIS5TCCEuEGCisGAQQB
# gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIBdNh9PEYObquVr8yumuEvN8c0Aju1X33+9OxJlI
# RZfIAgZegg4Kdp8YEzIwMjAwNDE2MjIxMzQ3LjI0NFowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg
# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOjJBRDQtNEI5Mi1GQTAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEIff9FWXBF+oQAAAAAAQgw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTkxMDIzMjMxOTEzWhcNMjEwMTIxMjMxOTEzWjCByjELMAkGA1UEBhMCVVMxCzAJ
# BgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlv
# bnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MkFENC00QjkyLUZB
# MDExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5E4jLyHDxZk05wGziyso3t6RNRL6/
# vG1sZeC01Kl5BnaWNXfUAyhr8CuThyyjwQ7YfYiZ+F+zEHh3wM2KHmwPyl4CPCUg
# ZLIXmy02+xusq9mMmh3R5N5yup6NrvDftP4HgRLOXTAy8LbrP1A573a2Jinpfa8U
# sO2iEmHBTivFrFHYN4UAdbrMI6ls9ZyMHnph6oMw5QJSDfh99u4yGDNYFa5N89kF
# 4mrcMFF3lvDmb95hn4BLi+mUa/hj7ok7gyscK+GI5J3n8XNLCNKbszHyvuIrHfVJ
# l+lqW8aRydJfrn1Pi5/lh/5GcBpeoBQAjYrPLxocpTlf1VS1/8TocGgLAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQU85RiSQuUCJR0KryRPfMVQ8K+AFQwHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAeHkZLhdho+Jm0M2d2nfjwT/CBDO/PtS13eyvm722
# J4bqN1Kl26z+T65lxhPxBisJmSI39itM61F6U9FdmcxM9joxleIH7SeTpZMZOm+x
# 4kyF2GdywALg93RYPcdYj/91/MFsdk8/YPI8cFUPwN7P0nucgy3SvVD462WMPI76
# T8+bQMb8XsuiGYObZ0xH1SqsJntKA0SO8gREuXiLm7BZuGFCHn5mcEjy54z4j+o2
# 9nk21sKPzqhdQTDIav8WZtJTXVCkMMDfZVoUSP7ha8xzUTdfSMUAEmsgc4SJ2lN2
# bjWo1KQ1dLFB+D6PCWo+y3bcpVlfoot07xoeCNAk4DrdlTCCBnEwggRZoAMCAQIC
# CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp
# ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcwMTIx
# NDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG
# A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3
# DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUKAIKF
# ++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRD
# DNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5FfgVSx
# z5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1
# rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg16Hgc
# sOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB
# 4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8UzaFqF
# bVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD
# VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv
# cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB
# BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
# ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCB
# kjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQe
# MiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQA
# LiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUx
# vs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM9GAS
# inbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1
# L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+tuWO
# M7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32WapB4
# pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45
# V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAeb73x
# 4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEe
# gPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanblrKn
# QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp
# 3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLraNtvT
# X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzELMAkG
# A1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9u
# cyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyQUQ0LTRCOTItRkEw
# MTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUAiOLRN/zGucSkQ6IL4N/BU+T20AyggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOJC9bwwIhgPMjAy
# MDA0MTYyMzE4MjBaGA8yMDIwMDQxNzIzMTgyMFowdzA9BgorBgEEAYRZCgQBMS8w
# LTAKAgUA4kL1vAIBADAKAgEAAgILYwIB/zAHAgEAAgIRyjAKAgUA4kRHPAIBADA2
# BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB
# AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBACFSC8/CfU//GIBBV+FnkFAE00aqFZqt
# xOGhY9HXfvRjDhpQv98IoQnJ6tAIzceIRuBzaES5KtEvmNYRuv0a+IYjzawx3sV5
# Ir62AV/dQYSGfJFERvZdMVNk0COKYLAxE1AJcM3Cr7drkH1k2R7Um1MusivS0alD
# EyO+3JpJmJmRMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# IDIwMTACEzMAAAEIff9FWXBF+oQAAAAAAQgwDQYJYIZIAWUDBAIBBQCgggFKMBoG
# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg6SdxGggm
# /SV4iEwnm9s2YX4eQorOq4/3lnByXJzCNEswgfoGCyqGSIb3DQEJEAIvMYHqMIHn
# MIHkMIG9BCDgAzZO4EXd9UqiFVHP2IiCy0/tDAky9BuuDiapxVmDRzCBmDCBgKR+
# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABCH3/RVlwRfqEAAAA
# AAEIMCIEIAR7hoEvq3nYLbqApGCaBLqEGwH4qKwRrBpFNOMqn8WZMA0GCSqGSIb3
# DQEBCwUABIIBAH20VXijrVk0acGdnaEmzxD4gPAqID5PUXgQY496Xt/XtUzLf0A5
# QaNmMB+oshPCE0qPJfzHnqdOBwFRUvm0X2aX+Z4Bc+Lfl/bjktZhQ0qWMyEdEOnp
# 4HGZGuAcHy70HCnKIobZP4vgyza91T8NPiy0EpHUWQPx5zRlYSlqRTSBgWmrNjL0
# 0m2zga1QSq4RZYM1giGBPKHr+HQpeRfzQGgn6XRvInZpIU6txxBKtMgnTglYNi3t
# XOOGhRsTDg1MJNTmqRLEZDS3JE3jY411nFdQuFkhba43mxO7ps+1IrBPWTTJhmOK
# Tii7+z0Im6zmZ4AqaOtpgJ9sADRUkSnkb+o=
# SIG # End signature block

View File

@ -0,0 +1,731 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
$ErrorActionPreference = 'Stop'
$InitialDatabase = '0'
$UpdatePowerShell = 'The Entity Framework Package Manager Console Tools require Windows PowerShell 3.0 or higher. ' +
'Install Windows Management Framework 3.0, restart Visual Studio, and try again. https://aka.ms/wmf3download'
<#
.SYNOPSIS
Adds or updates an Entity Framework provider entry in the project config
file.
.DESCRIPTION
Adds an entry into the 'entityFramework' section of the project config
file for the specified provider invariant name and provider type. If an
entry for the given invariant name already exists, then that entry is
updated with the given type name, unless the given type name already
matches, in which case no action is taken. The 'entityFramework'
section is added if it does not exist. The config file is automatically
saved if and only if a change was made.
This command is typically used only by Entity Framework provider NuGet
packages and is run from the 'install.ps1' script.
.PARAMETER Project
The Visual Studio project to update. When running in the NuGet install.ps1
script the '$project' variable provided as part of that script should be
used.
.PARAMETER InvariantName
The provider invariant name that uniquely identifies this provider. For
example, the Microsoft SQL Server provider is registered with the invariant
name 'System.Data.SqlClient'.
.PARAMETER TypeName
The assembly-qualified type name of the provider-specific type that
inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For
example, for the Microsoft SQL Server provider, this type is
'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'.
#>
function Add-EFProvider
{
[CmdletBinding(PositionalBinding = $false)]
param(
[parameter(Position = 0, Mandatory = $true)]
$Project,
[parameter(Position = 1, Mandatory = $true)]
[string] $InvariantName,
[parameter(Position = 2, Mandatory = $true)]
[string] $TypeName)
$configPath = GetConfigPath($Project)
if (!$configPath)
{
return
}
[xml] $configXml = Get-Content $configPath
$providers = $configXml.configuration.entityFramework.providers
$providers.provider |
where invariantName -eq $InvariantName |
%{ $providers.RemoveChild($_) | Out-Null }
$provider = $providers.AppendChild($configXml.CreateElement('provider'))
$provider.SetAttribute('invariantName', $InvariantName)
$provider.SetAttribute('type', $TypeName)
$configXml.Save($configPath)
}
<#
.SYNOPSIS
Adds or updates an Entity Framework default connection factory in the
project config file.
.DESCRIPTION
Adds an entry into the 'entityFramework' section of the project config
file for the connection factory that Entity Framework will use by default
when creating new connections by convention. Any existing entry will be
overridden if it does not match. The 'entityFramework' section is added if
it does not exist. The config file is automatically saved if and only if
a change was made.
This command is typically used only by Entity Framework provider NuGet
packages and is run from the 'install.ps1' script.
.PARAMETER Project
The Visual Studio project to update. When running in the NuGet install.ps1
script the '$project' variable provided as part of that script should be
used.
.PARAMETER TypeName
The assembly-qualified type name of the connection factory type that
implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory'
interface. For example, for the Microsoft SQL Server Express provider
connection factory, this type is
'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'.
.PARAMETER ConstructorArguments
An optional array of strings that will be passed as arguments to the
connection factory type constructor.
#>
function Add-EFDefaultConnectionFactory
{
[CmdletBinding(PositionalBinding = $false)]
param(
[parameter(Position = 0, Mandatory = $true)]
$Project,
[parameter(Position = 1, Mandatory = $true)]
[string] $TypeName,
[string[]] $ConstructorArguments)
$configPath = GetConfigPath($Project)
if (!$configPath)
{
return
}
[xml] $configXml = Get-Content $configPath
$entityFramework = $configXml.configuration.entityFramework
$defaultConnectionFactory = $entityFramework.defaultConnectionFactory
if ($defaultConnectionFactory)
{
$entityFramework.RemoveChild($defaultConnectionFactory) | Out-Null
}
$defaultConnectionFactory = $entityFramework.AppendChild($configXml.CreateElement('defaultConnectionFactory'))
$defaultConnectionFactory.SetAttribute('type', $TypeName)
if ($ConstructorArguments)
{
$parameters = $defaultConnectionFactory.AppendChild($configXml.CreateElement('parameters'))
foreach ($constructorArgument in $ConstructorArguments)
{
$parameter = $parameters.AppendChild($configXml.CreateElement('parameter'))
$parameter.SetAttribute('value', $constructorArgument)
}
}
$configXml.Save($configPath)
}
<#
.SYNOPSIS
Enables Code First Migrations in a project.
.DESCRIPTION
Enables Migrations by scaffolding a migrations configuration class in the project. If the
target database was created by an initializer, an initial migration will be created (unless
automatic migrations are enabled via the EnableAutomaticMigrations parameter).
.PARAMETER ContextTypeName
Specifies the context to use. If omitted, migrations will attempt to locate a
single context type in the target project.
.PARAMETER EnableAutomaticMigrations
Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration.
If omitted, automatic migrations will be disabled.
.PARAMETER MigrationsDirectory
Specifies the name of the directory that will contain migrations code files.
If omitted, the directory will be named "Migrations".
.PARAMETER ProjectName
Specifies the project that the scaffolded migrations configuration class will
be added to. If omitted, the default project selected in package manager
console is used.
.PARAMETER StartUpProjectName
Specifies the configuration file to use for named connection strings. If
omitted, the specified project's configuration file is used.
.PARAMETER ContextProjectName
Specifies the project which contains the DbContext class to use. If omitted,
the context is assumed to be in the same project used for migrations.
.PARAMETER ConnectionStringName
Specifies the name of a connection string to use from the application's
configuration file.
.PARAMETER ConnectionString
Specifies the connection string to use. If omitted, the context's
default connection will be used.
.PARAMETER ConnectionProviderName
Specifies the provider invariant name of the connection string.
.PARAMETER Force
Specifies that the migrations configuration be overwritten when running more
than once for a given project.
.PARAMETER ContextAssemblyName
Specifies the name of the assembly which contains the DbContext class to use. Use this
parameter instead of ContextProjectName when the context is contained in a referenced
assembly rather than in a project of the solution.
.PARAMETER AppDomainBaseDirectory
Specifies the directory to use for the app-domain that is used for running Migrations
code such that the app-domain is able to find all required assemblies. This is an
advanced option that should only be needed if the solution contains several projects
such that the assemblies needed for the context and configuration are not all
referenced from either the project containing the context or the project containing
the migrations.
.EXAMPLE
Enable-Migrations
# Scaffold a migrations configuration in a project with only one context
.EXAMPLE
Enable-Migrations -Auto
# Scaffold a migrations configuration with automatic migrations enabled for a project
# with only one context
.EXAMPLE
Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName
# Scaffold a migrations configuration for a project with multiple contexts
# This scaffolds a migrations configuration for MyContext and will put the configuration
# and subsequent configurations in a new directory called "DirectoryName"
#>
function Enable-Migrations(
$ContextTypeName,
[alias('Auto')]
[switch] $EnableAutomaticMigrations,
$MigrationsDirectory,
$ProjectName,
$StartUpProjectName,
$ContextProjectName,
$ConnectionStringName,
$ConnectionString,
$ConnectionProviderName,
[switch] $Force,
$ContextAssemblyName,
$AppDomainBaseDirectory)
WarnIfOtherEFs 'Enable-Migrations'
throw $UpdatePowerShell
}
<#
.SYNOPSIS
Scaffolds a migration script for any pending model changes.
.DESCRIPTION
Scaffolds a new migration script and adds it to the project.
.PARAMETER Name
Specifies the name of the custom script.
.PARAMETER Force
Specifies that the migration user code be overwritten when re-scaffolding an
existing migration.
.PARAMETER ProjectName
Specifies the project that contains the migration configuration type to be
used. If omitted, the default project selected in package manager console
is used.
.PARAMETER StartUpProjectName
Specifies the configuration file to use for named connection strings. If
omitted, the specified project's configuration file is used.
.PARAMETER ConfigurationTypeName
Specifies the migrations configuration to use. If omitted, migrations will
attempt to locate a single migrations configuration type in the target
project.
.PARAMETER ConnectionStringName
Specifies the name of a connection string to use from the application's
configuration file.
.PARAMETER ConnectionString
Specifies the connection string to use. If omitted, the context's
default connection will be used.
.PARAMETER ConnectionProviderName
Specifies the provider invariant name of the connection string.
.PARAMETER IgnoreChanges
Scaffolds an empty migration ignoring any pending changes detected in the current model.
This can be used to create an initial, empty migration to enable Migrations for an existing
database. N.B. Doing this assumes that the target database schema is compatible with the
current model.
.PARAMETER AppDomainBaseDirectory
Specifies the directory to use for the app-domain that is used for running Migrations
code such that the app-domain is able to find all required assemblies. This is an
advanced option that should only be needed if the solution contains several projects
such that the assemblies needed for the context and configuration are not all
referenced from either the project containing the context or the project containing
the migrations.
.EXAMPLE
Add-Migration First
# Scaffold a new migration named "First"
.EXAMPLE
Add-Migration First -IgnoreChanges
# Scaffold an empty migration ignoring any pending changes detected in the current model.
# This can be used to create an initial, empty migration to enable Migrations for an existing
# database. N.B. Doing this assumes that the target database schema is compatible with the
# current model.
#>
function Add-Migration(
$Name,
[switch] $Force,
$ProjectName,
$StartUpProjectName,
$ConfigurationTypeName,
$ConnectionStringName,
$ConnectionString,
$ConnectionProviderName,
[switch] $IgnoreChanges,
$AppDomainBaseDirectory)
WarnIfOtherEFs 'Add-Migration'
throw $UpdatePowerShell
}
<#
.SYNOPSIS
Applies any pending migrations to the database.
.DESCRIPTION
Updates the database to the current model by applying pending migrations.
.PARAMETER SourceMigration
Only valid with -Script. Specifies the name of a particular migration to use
as the update's starting point. If omitted, the last applied migration in
the database will be used.
.PARAMETER TargetMigration
Specifies the name of a particular migration to update the database to. If
omitted, the current model will be used.
.PARAMETER Script
Generate a SQL script rather than executing the pending changes directly.
.PARAMETER Force
Specifies that data loss is acceptable during automatic migration of the
database.
.PARAMETER ProjectName
Specifies the project that contains the migration configuration type to be
used. If omitted, the default project selected in package manager console
is used.
.PARAMETER StartUpProjectName
Specifies the configuration file to use for named connection strings. If
omitted, the specified project's configuration file is used.
.PARAMETER ConfigurationTypeName
Specifies the migrations configuration to use. If omitted, migrations will
attempt to locate a single migrations configuration type in the target
project.
.PARAMETER ConnectionStringName
Specifies the name of a connection string to use from the application's
configuration file.
.PARAMETER ConnectionString
Specifies the connection string to use. If omitted, the context's
default connection will be used.
.PARAMETER ConnectionProviderName
Specifies the provider invariant name of the connection string.
.PARAMETER AppDomainBaseDirectory
Specifies the directory to use for the app-domain that is used for running Migrations
code such that the app-domain is able to find all required assemblies. This is an
advanced option that should only be needed if the solution contains several projects
such that the assemblies needed for the context and configuration are not all
referenced from either the project containing the context or the project containing
the migrations.
.EXAMPLE
Update-Database
# Update the database to the latest migration
.EXAMPLE
Update-Database -TargetMigration Second
# Update database to a migration named "Second"
# This will apply migrations if the target hasn't been applied or roll back migrations
# if it has
.EXAMPLE
Update-Database -Script
# Generate a script to update the database from its current state to the latest migration
.EXAMPLE
Update-Database -Script -SourceMigration Second -TargetMigration First
# Generate a script to migrate the database from a specified start migration
# named "Second" to a specified target migration named "First"
.EXAMPLE
Update-Database -Script -SourceMigration $InitialDatabase
# Generate a script that can upgrade a database currently at any version to the latest version.
# The generated script includes logic to check the __MigrationsHistory table and only apply changes
# that haven't been previously applied.
.EXAMPLE
Update-Database -TargetMigration $InitialDatabase
# Runs the Down method to roll-back any migrations that have been applied to the database
#>
function Update-Database(
$SourceMigration,
$TargetMigration,
[switch] $Script,
[switch] $Force,
$ProjectName,
$StartUpProjectName,
$ConfigurationTypeName,
$ConnectionStringName,
$ConnectionString,
$ConnectionProviderName,
$AppDomainBaseDirectory)
WarnIfOtherEFs 'Update-Database'
throw $UpdatePowerShell
}
<#
.SYNOPSIS
Displays the migrations that have been applied to the target database.
.DESCRIPTION
Displays the migrations that have been applied to the target database.
.PARAMETER ProjectName
Specifies the project that contains the migration configuration type to be
used. If omitted, the default project selected in package manager console
is used.
.PARAMETER StartUpProjectName
Specifies the configuration file to use for named connection strings. If
omitted, the specified project's configuration file is used.
.PARAMETER ConfigurationTypeName
Specifies the migrations configuration to use. If omitted, migrations will
attempt to locate a single migrations configuration type in the target
project.
.PARAMETER ConnectionStringName
Specifies the name of a connection string to use from the application's
configuration file.
.PARAMETER ConnectionString
Specifies the connection string to use. If omitted, the context's
default connection will be used.
.PARAMETER ConnectionProviderName
Specifies the provider invariant name of the connection string.
.PARAMETER AppDomainBaseDirectory
Specifies the directory to use for the app-domain that is used for running Migrations
code such that the app-domain is able to find all required assemblies. This is an
advanced option that should only be needed if the solution contains several projects
such that the assemblies needed for the context and configuration are not all
referenced from either the project containing the context or the project containing
the migrations.
#>
function Get-Migrations(
$ProjectName,
$StartUpProjectName,
$ConfigurationTypeName,
$ConnectionStringName,
$ConnectionString,
$ConnectionProviderName,
$AppDomainBaseDirectory)
WarnIfOtherEFs 'Get-Migrations'
throw $UpdatePowerShell
}
function GetConfigPath($project)
{
$solution = Get-VSService 'Microsoft.VisualStudio.Shell.Interop.SVsSolution' 'Microsoft.VisualStudio.Shell.Interop.IVsSolution'
$hierarchy = $null
$hr = $solution.GetProjectOfUniqueName($project.UniqueName, [ref] $hierarchy)
[Runtime.InteropServices.Marshal]::ThrowExceptionForHR($hr)
$aggregatableProject = Get-Interface $hierarchy 'Microsoft.VisualStudio.Shell.Interop.IVsAggregatableProject'
if (!$aggregatableProject)
{
$projectTypes = $project.Kind
}
else
{
$projectTypeGuids = $null
$hr = $aggregatableProject.GetAggregateProjectTypeGuids([ref] $projectTypeGuids)
[Runtime.InteropServices.Marshal]::ThrowExceptionForHR($hr)
$projectTypes = $projectTypeGuids.Split(';')
}
$configFileName = 'app.config'
foreach ($projectType in $projectTypes)
{
if ($projectType -in '{349C5851-65DF-11DA-9384-00065B846F21}', '{E24C65DC-7377-472B-9ABA-BC803B73C61A}')
{
$configFileName = 'web.config'
break
}
}
try
{
return $project.ProjectItems.Item($configFileName).Properties.Item('FullPath').Value
}
catch
{
return $null
}
}
function WarnIfOtherEFs($cmdlet)
{
if (Get-Module 'EntityFrameworkCore')
{
Write-Warning "Both Entity Framework 6 and Entity Framework Core are installed. The Entity Framework 6 tools are running. Use 'EntityFrameworkCore\$cmdlet' for Entity Framework Core."
}
if (Get-Module 'EntityFramework')
{
Write-Warning "A version of Entity Framework older than 6.3 is also installed. The newer tools are running. Use 'EntityFramework\$cmdlet' for the older version."
}
}
Export-ModuleMember 'Add-EFDefaultConnectionFactory', 'Add-EFProvider', 'Add-Migration', 'Enable-Migrations', 'Get-Migrations', 'Update-Database' -Variable 'InitialDatabase'
# SIG # Begin signature block
# MIIjiQYJKoZIhvcNAQcCoIIjejCCI3YCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBCukGtqR95vOzB
# mTRxRgJFbcuurrr/NN2TQIASywaOO6CCDYUwggYDMIID66ADAgECAhMzAAABUptA
# n1BWmXWIAAAAAAFSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCxp4nT9qfu9O10iJyewYXHlN+WEh79Noor9nhM6enUNbCbhX9vS+8c/3eIVazS
# YnVBTqLzW7xWN1bCcItDbsEzKEE2BswSun7J9xCaLwcGHKFr+qWUlz7hh9RcmjYS
# kOGNybOfrgj3sm0DStoK8ljwEyUVeRfMHx9E/7Ca/OEq2cXBT3L0fVnlEkfal310
# EFCLDo2BrE35NGRjG+/nnZiqKqEh5lWNk33JV8/I0fIcUKrLEmUGrv0CgC7w2cjm
# bBhBIJ+0KzSnSWingXol/3iUdBBy4QQNH767kYGunJeY08RjHMIgjJCdAoEM+2mX
# v1phaV7j+M3dNzZ/cdsz3oDfAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU3f8Aw1sW72WcJ2bo/QSYGzVrRYcw
# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ1NDEzNjAfBgNVHSMEGDAW
# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
# AJTwROaHvogXgixWjyjvLfiRgqI2QK8GoG23eqAgNjX7V/WdUWBbs0aIC3k49cd0
# zdq+JJImixcX6UOTpz2LZPFSh23l0/Mo35wG7JXUxgO0U+5drbQht5xoMl1n7/TQ
# 4iKcmAYSAPxTq5lFnoV2+fAeljVA7O43szjs7LR09D0wFHwzZco/iE8Hlakl23ZT
# 7FnB5AfU2hwfv87y3q3a5qFiugSykILpK0/vqnlEVB0KAdQVzYULQ/U4eFEjnis3
# Js9UrAvtIhIs26445Rj3UP6U4GgOjgQonlRA+mDlsh78wFSGbASIvK+fkONUhvj8
# B8ZHNn4TFfnct+a0ZueY4f6aRPxr8beNSUKn7QW/FQmn422bE7KfnqWncsH7vbNh
# G929prVHPsaa7J22i9wyHj7m0oATXJ+YjfyoEAtd5/NyIYaE4Uu0j1EhuYUo5VaJ
# JnMaTER0qX8+/YZRWrFN/heps41XNVjiAawpbAa0fUa3R9RNBjPiBnM0gvNPorM4
# dsV2VJ8GluIQOrJlOvuCrOYDGirGnadOmQ21wPBoGFCWpK56PxzliKsy5NNmAXcE
# x7Qb9vUjY1WlYtrdwOXTpxN4slzIht69BaZlLIjLVWwqIfuNrhHKNDM9K+v7vgrI
# bf7l5/665g0gjQCDCN6Q5sxuttTAEKtJeS/pkpI+DbZ/MIIHejCCBWKgAwIBAgIK
# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFVowghVWAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAFSm0CfUFaZdYgAAAAA
# AVIwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBDq
# wSpkVRd34HAFhUI02JbLjpJvYPxaosKl7Ya85N83MEIGCisGAQQBgjcCAQwxNDAy
# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20wDQYJKoZIhvcNAQEBBQAEggEAo1kSS1wbXckEKe0kiAV5BJwC66PVMElqK8rS
# ZTKY35DPPW7CnSXjsSx6SnRnyOebu9iF3GShrADsgMh1C5x0GEE03pmEERNDy8aa
# /fQ0xYdR3rQEUaDEbDK6YWzqAnP0nugpJ60ariJpMfvvXUZpHgSJeO8wJ5RAe67N
# yrpic3zdE+e8YvSsiD8+rf7WAOxHEI86mWd7ZoD4OJMRlDAdfhEd8VvOzj91froW
# FHiShpb0mkdSIisw0dPGkk/jzn9Fd0a0JHGbn5YLI76iKOvRwcqKWX96LRezXZF4
# Y+jWO+p31xoZ0TUHYxQ3HaulMq7vXZ8MHJkSdsUsWEgTVCLGkKGCEuQwghLgBgor
# BgEEAYI3AwMBMYIS0DCCEswGCSqGSIb3DQEHAqCCEr0wghK5AgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggFQBgsqhkiG9w0BCRABBKCCAT8EggE7MIIBNwIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCa+i2okJFSkVB87EudNU6rFwhh43v28S+m
# SdpTpEuO2QIGXoIOfEnAGBIyMDIwMDQxNjIyMTM0Mi45MVowBIACAfSggdCkgc0w
# gcoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEe
# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3Nv
# ZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBU
# U1MgRVNOOjE3OUUtNEJCMC04MjQ2MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1T
# dGFtcCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEMqnhu3MxCTMEAAAAA
# AQwwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAw
# HhcNMTkxMDIzMjMxOTE2WhcNMjEwMTIxMjMxOTE2WjCByjELMAkGA1UEBhMCVVMx
# CzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTc5RS00QkIw
# LTgyNDYxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEi
# MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrnTXX5epUmZAq2LDf2KB4Qy8I
# txnV+itubGwOSmcI3VKtOEoj6fY+vfOpPMlWB0kUKgqbWSzWC1Ensdovq0OSs7Dx
# cmZ8lrHJACW4JD57jQ0j4DjD67n0bLz0BVjmUk2uYK9rqCjN+DWTHDpptXlZav4+
# MSk0KyE7iHG/dSqAxwIqdPZhVJnMXUbLsA+5vV9jQ/W80S44Uqs0IQS9YgpGuqx7
# IEHvcbwoPbLDqN/PRUrE1JEB2ElX+CE7KsO3lr4voLebWumvyyqKh/eKiG/cA0iA
# 2rDp7H7j4b4Hskxsgdsak915t50vp49u4EKduAmgOffjSTRrDqKPbUa+9SeRAgMB
# AAGjggEbMIIBFzAdBgNVHQ4EFgQUCUI6r0MMhrQDSiqAq0zm+O5l4r4wHwYDVR0j
# BBgwFoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0
# cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3Rh
# UENBXzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0Ff
# MjAxMC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcD
# CDANBgkqhkiG9w0BAQsFAAOCAQEARPfEGD8hn3N05/BsMYrtwreopi3+pQ6VtEHO
# B42NvfYrzqcZ5EaQF57XR1U4QZZTDoq0F5aHUtDvRvrj+0u2Ityx/0nNoDINhvWx
# GYyLl+NFnvndOq5pPxXs0ntF8S5h+9mW5t9APQxVtTi3Ox1l1i7ETftXYn2k3z2P
# sagU20CdKcKfUxHEQ0AguC31fN5DNMQOEVhbQ3YM2mFORE9caOkObCLpa2Qnl+/S
# JPIHh3AQL7953SUZsUtzK0mgzB9M0x0fqByceUzOyeKiucYVlrk8+JXvxehn0V66
# kqjxko0aEsssHkZO2p8d7HmejeKhVKr422G+FfQj9X6JcmyimjCCBnEwggRZoAMC
# AQICCmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENl
# cnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcw
# MTIxNDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm
# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqG
# SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUK
# AIKF++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCI
# hFRDDNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5Ff
# gVSxz5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx89
# 8Fd1rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg1
# 6HgcsOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHm
# MIIB4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8Uz
# aFqFbVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8G
# A1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQw
# VgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9j
# cmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUF
# BwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSB
# lTCBkjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwIC
# MDQeMiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBu
# AHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+um
# zPUxvs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM
# 9GASinbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84
# Dxf1L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+
# tuWOM7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32W
# apB4pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUP
# ei45V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAe
# b73x4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4
# hQEegPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanb
# lrKnQqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLF
# VeNp3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLra
# NtvTX4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzEL
# MAkGA1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0
# aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoxNzlFLTRCQjAt
# ODI0NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEB
# MAcGBSsOAwIaAxUAyyD0VD2mA8tcjYt3nPvENLRABn2ggYMwgYCkfjB8MQswCQYD
# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv
# ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOJC9iswIhgP
# MjAyMDA0MTYyMzIwMTFaGA8yMDIwMDQxNzIzMjAxMVowdzA9BgorBgEEAYRZCgQB
# MS8wLTAKAgUA4kL2KwIBADAKAgEAAgIWJAIB/zAHAgEAAgIRrDAKAgUA4kRHqwIB
# ADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQow
# CAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAEHV+nFYHL4nwG3Cv45d3muMOacd
# 9h01K6V7pfzXDuIePSV1D9xmGhztfVgHC0cAbauT3gNpgEaHzs2vh1JSrxouvO2+
# zZevWOZMtICkVCmF0uclqLw3bqefmjjgbpwymjJ7vjYWAgwoIO9iC9fpkU43TCbz
# Namo2O5OL4C77X8TMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTACEzMAAAEMqnhu3MxCTMEAAAAAAQwwDQYJYIZIAWUDBAIBBQCgggFK
# MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgi+a8
# w9UqRk8uHF0LSAA5zAtzOvED7T6G0K+oPz5kGkYwgfoGCyqGSIb3DQEJEAIvMYHq
# MIHnMIHkMIG9BCCDkBYpfszX6bb//5XuqZG+3Ur/DDky67xfMYkGrKBUKTCBmDCB
# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABDKp4btzMQkzB
# AAAAAAEMMCIEIB82fTmbi7Zy6T8ucYfCkg1b/ShiH+5DNUPaql1UKnuBMA0GCSqG
# SIb3DQEBCwUABIIBACQTQfKgFwgsHa87Ff0vNwkZvOIJqYCj97sZHeqLh/7kGvqH
# HtHPlTdQqGeKsIdgvlME0zkbcNuRACN86PE1x8w61ADvaPNIv400MAN0iKKh08z/
# ONuhHXzcavQm47rT0Fe2nuOFe/TuurEQMXjGGPp/dILEw+neBBHiNhNivEH0flmw
# UnaYpZH2lNy5ldHfV+hCc4QCDB2CHj9qPeGgEJS+n0ZcFO6Hm4D5mNvfR23qnM94
# Ijbqi6AGtjL/d+MdNPcqJFcUPBVHQJDEcQTyoZBFme4UqYPr/gkRSwNQ7sASCYdK
# hZ7F9GEj2CiayE5NqMADUnRDyyMJLUoCiACRpVg=
# SIG # End signature block

View File

@ -0,0 +1,323 @@
#
# Module manifest for module 'EntityFramework6'
#
@{
# Script module or binary module file associated with this manifest.
RootModule = 'EntityFramework6.psm1'
# Version number of this module.
ModuleVersion = '6.4.4'
# Supported PSEditions
# CompatiblePSEditions = @()
# ID used to uniquely identify this module
GUID = 'ca09d46c-54a3-4aa3-9a62-cd8c94d6b6b9'
# Author of this module
Author = 'Entity Framework Team'
# Company or vendor of this module
CompanyName = 'Microsoft Corporation'
# Copyright statement for this module
Copyright = '(c) Microsoft Corporation. All rights reserved.'
# Description of the functionality provided by this module
Description = 'EntityFramework PowerShell module for use within NuGet''s Package Manager Console'
# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '3.0'
# Name of the Windows PowerShell host required by this module
PowerShellHostName = 'Package Manager Host'
# Minimum version of the Windows PowerShell host required by this module
PowerShellHostVersion = '1.2'
# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
DotNetFrameworkVersion = '4.0'
# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''
# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''
# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()
# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = (
'Add-EFDefaultConnectionFactory',
'Add-EFProvider',
'Add-Migration',
'Enable-Migrations',
'Get-Migrations',
'Update-Database'
)
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()
# Variables to export from this module
VariablesToExport = '*'
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()
# DSC resources to export from this module
# DscResourcesToExport = @()
# List of all modules packaged with this module
# ModuleList = @()
# List of all files packaged with this module
# FileList = @()
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{
PSData = @{
# Tags applied to this module. These help with module discovery in online galleries.
# Tags = @()
# A URL to the license for this module.
# LicenseUri = ''
# A URL to the main website for this project.
# ProjectUri = ''
# A URL to an icon representing this module.
# IconUri = ''
# ReleaseNotes of this module
# ReleaseNotes = ''
} # End of PSData hashtable
} # End of PrivateData hashtable
# HelpInfo URI of this module
# HelpInfoURI = ''
# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''
}
# SIG # Begin signature block
# MIIkXwYJKoZIhvcNAQcCoIIkUDCCJEwCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCcG0KjFL1QWHcc
# ieFGXdhIsk7IeHsfD93SuoZCwJ+nH6CCDYUwggYDMIID66ADAgECAhMzAAABUptA
# n1BWmXWIAAAAAAFSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCxp4nT9qfu9O10iJyewYXHlN+WEh79Noor9nhM6enUNbCbhX9vS+8c/3eIVazS
# YnVBTqLzW7xWN1bCcItDbsEzKEE2BswSun7J9xCaLwcGHKFr+qWUlz7hh9RcmjYS
# kOGNybOfrgj3sm0DStoK8ljwEyUVeRfMHx9E/7Ca/OEq2cXBT3L0fVnlEkfal310
# EFCLDo2BrE35NGRjG+/nnZiqKqEh5lWNk33JV8/I0fIcUKrLEmUGrv0CgC7w2cjm
# bBhBIJ+0KzSnSWingXol/3iUdBBy4QQNH767kYGunJeY08RjHMIgjJCdAoEM+2mX
# v1phaV7j+M3dNzZ/cdsz3oDfAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU3f8Aw1sW72WcJ2bo/QSYGzVrRYcw
# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ1NDEzNjAfBgNVHSMEGDAW
# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
# AJTwROaHvogXgixWjyjvLfiRgqI2QK8GoG23eqAgNjX7V/WdUWBbs0aIC3k49cd0
# zdq+JJImixcX6UOTpz2LZPFSh23l0/Mo35wG7JXUxgO0U+5drbQht5xoMl1n7/TQ
# 4iKcmAYSAPxTq5lFnoV2+fAeljVA7O43szjs7LR09D0wFHwzZco/iE8Hlakl23ZT
# 7FnB5AfU2hwfv87y3q3a5qFiugSykILpK0/vqnlEVB0KAdQVzYULQ/U4eFEjnis3
# Js9UrAvtIhIs26445Rj3UP6U4GgOjgQonlRA+mDlsh78wFSGbASIvK+fkONUhvj8
# B8ZHNn4TFfnct+a0ZueY4f6aRPxr8beNSUKn7QW/FQmn422bE7KfnqWncsH7vbNh
# G929prVHPsaa7J22i9wyHj7m0oATXJ+YjfyoEAtd5/NyIYaE4Uu0j1EhuYUo5VaJ
# JnMaTER0qX8+/YZRWrFN/heps41XNVjiAawpbAa0fUa3R9RNBjPiBnM0gvNPorM4
# dsV2VJ8GluIQOrJlOvuCrOYDGirGnadOmQ21wPBoGFCWpK56PxzliKsy5NNmAXcE
# x7Qb9vUjY1WlYtrdwOXTpxN4slzIht69BaZlLIjLVWwqIfuNrhHKNDM9K+v7vgrI
# bf7l5/665g0gjQCDCN6Q5sxuttTAEKtJeS/pkpI+DbZ/MIIHejCCBWKgAwIBAgIK
# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFjAwghYsAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAFSm0CfUFaZdYgAAAAA
# AVIwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIFiI
# NIl1ZAwQ5+xMDrKFC+l0KnnIIIT1hsM2wLg4UECKMEIGCisGAQQBgjcCAQwxNDAy
# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20wDQYJKoZIhvcNAQEBBQAEggEAQQvAdfgP9B94hZUcOJvbC+bT8A0phbfq7f/l
# JG6lGG0JJ3XWnfhw0hZ3VnAOmrYGhraB2pe5rFC1MkOTX9LbWK/WGxOakjtTz8rG
# eqdvv7XZ7M93jfzZVPtep8kWwUcyLKrIAi9VB+PngmDE1YjhDz/afzRcBj/ke8Vb
# NgPHN5o2UZRkSJb6CY+3eSvENs2KWo0fz+Gj+7Vxg8DPy8wixdGlXRJzrM63hvkI
# zyxBgxZZ8viHNKUzFTu2twYGB0SK0hXszpE1GInBLoyPmzf3XSFYBFWcOimI6W2e
# KM9lkYPmZhbaYHdObe/aGZ5pupbjfpaI1WcLQ67NwXUljNfoVKGCE7owghO2Bgor
# BgEEAYI3AwMBMYITpjCCE6IGCSqGSIb3DQEHAqCCE5MwghOPAgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggFYBgsqhkiG9w0BCRABBKCCAUcEggFDMIIBPwIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCByo81xQmtg/4brZ/DJLRKTBt3urhdJLYFL
# W4x6UD/9CQIGXno8lH3RGBMyMDIwMDQxNjIyMTM0MS4xNDdaMAcCAQGAAgH0oIHU
# pIHRMIHOMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYD
# VQQLEyBNaWNyb3NvZnQgT3BlcmF0aW9ucyBQdWVydG8gUmljbzEmMCQGA1UECxMd
# VGhhbGVzIFRTUyBFU046NzI4RC1DNDVGLUY5RUIxJTAjBgNVBAMTHE1pY3Jvc29m
# dCBUaW1lLVN0YW1wIFNlcnZpY2Wggg8iMIIE9TCCA92gAwIBAgITMwAAAQQJAXUI
# WIctKQAAAAABBDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UE
# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ
# Q0EgMjAxMDAeFw0xOTA5MDYyMDQxMThaFw0yMDEyMDQyMDQxMThaMIHOMQswCQYD
# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQLEyBNaWNyb3Nv
# ZnQgT3BlcmF0aW9ucyBQdWVydG8gUmljbzEmMCQGA1UECxMdVGhhbGVzIFRTUyBF
# U046NzI4RC1DNDVGLUY5RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDILQegEboY
# ZpaU4WD8FoJrTtqDVU02ch4GEAXNxh/ydcOm4YE3IKTYmZxmXtpL9QG8oOwAUj+n
# pIKUYVqQcseYDnjsaZZT15AsaYjJShRcfvkZ8YNDdWBTdmgLFY/RkTFnN0eoTyrY
# BTB11Cz8Y4t37ug04I3zotqYoea/zvnKdTovCr3U/vKeSZUTpNf/OZ7E4IBPNArn
# T/zYboiK0r5gzSlZjjBd2n1FlLMFT+r+rfXBo0lhtxjBjWXvBQd1VTi/qTbQm0Vf
# N6oULZMiMgPB7xmnIgH612Yv0A+Qv7yu13L6Hh24s4e4+ZV1A9z4h9H36h7zKefJ
# bFPwI6aq+WRnAgMBAAGjggEbMIIBFzAdBgNVHQ4EFgQUmNVe38JEGg4XAYvxmdPD
# IrDomuowHwYDVR0jBBgwFoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8w
# TTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj
# dHMvTWljVGltU3RhUENBXzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBK
# BggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9N
# aWNUaW1TdGFQQ0FfMjAxMC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUE
# DDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQsFAAOCAQEAPRXUs3dpfDQDF9e0RXli
# 4TqpzgIMlyIx/LXVtcgPeGXc8p/DXrpHI8iC+/z5I/EeyhLRFC9HH0Z3bOiiE2jw
# V8ZaLM9YvpDIX3eneJEoJz1ptKqANeH6sSVDOj+X2X1kRlK7ZDSYWujfCHdQorso
# m6uytNxJ0y4JYtxF9S15cwTsssozN4QxlcYD5PQ+wcOYpIFY7vmKpfrV444Bv6Bc
# Plib8ATe2Lp2kVdOiSmcLGBj7DmANasnPFVwaMnihhSoSNqE4U/z+yDN4QsSzXOH
# 4sd7C2inuDWbWtK43bLGPCs/meLK/E/XWl0hWu5FKSlcOdu+/tEBQnOm5Kx45Sgf
# 5TCCBnEwggRZoAMCAQICCmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jv
# c29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIx
# MzY1NVoXDTI1MDcwMTIxNDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX
# 9fp/aZRrdFQQ1aUKAIKF++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkT
# jnxhMFmxMEQP8WCIhFRDDNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG
# 8lhHhjKEHnRhZ5FfgVSxz5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGK
# r0tkiVBisV39dx898Fd1rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6
# Kgox8NpOBpG2iAg16HgcsOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEF
# TyJNAgMBAAGjggHmMIIB4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6
# XIoxkPNDe3xGG8UzaFqFbVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
# VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxi
# aNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3Nv
# ZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMu
# Y3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNy
# b3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQw
# gaAGA1UdIAEB/wSBlTCBkjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFo
# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRt
# MEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0
# AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/
# gXEDPZ2joSFvs+umzPUxvs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtU
# VwgrUYJEEvu5U4zM9GASinbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9
# Wj8c8pl5SpFSAK84Dxf1L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9
# BOFwnzJKJ/1Vry/+tuWOM7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOd
# eyFtw5yjojz6f32WapB4pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1
# JeVk7Pf0v35jWSUPei45V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4Ttx
# Cd9ddJgiCGHasFAeb73x4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5
# u+zGy9iCtHLNHfS4hQEegPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9U
# JyH3yKxO2ii4sanblrKnQqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Z
# ta7cRDyXUHHXodLFVeNp3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa
# 7wknHNWzfjUeCLraNtvTX4/edIhJEqGCA7AwggKYAgEBMIH+oYHUpIHRMIHOMQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQLEyBNaWNy
# b3NvZnQgT3BlcmF0aW9ucyBQdWVydG8gUmljbzEmMCQGA1UECxMdVGhhbGVzIFRT
# UyBFU046NzI4RC1DNDVGLUY5RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
# YW1wIFNlcnZpY2WiJQoBATAJBgUrDgMCGgUAAxUAs0Yef0dI8yhMiFS2cxh4FtwV
# Cn2ggd4wgdukgdgwgdUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMScw
# JQYDVQQLEx5uQ2lwaGVyIE5UUyBFU046NERFOS0wQzVFLTNFMDkxKzApBgNVBAMT
# Ik1pY3Jvc29mdCBUaW1lIFNvdXJjZSBNYXN0ZXIgQ2xvY2swDQYJKoZIhvcNAQEF
# BQACBQDiQwzZMCIYDzIwMjAwNDE3MDA1NjU3WhgPMjAyMDA0MTgwMDU2NTdaMHcw
# PQYKKwYBBAGEWQoEATEvMC0wCgIFAOJDDNkCAQAwCgIBAAICDs8CAf8wBwIBAAIC
# GdQwCgIFAOJEXlkCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAaAK
# MAgCAQACAxbjYKEKMAgCAQACAwehIDANBgkqhkiG9w0BAQUFAAOCAQEAVR5+BjNf
# Gc+5pG6BYZN1foVdYAhowMIzZku0Wn47KaKZitoIUPeatitszQkCDyXpF/oVrnry
# 4xmOFrItv3q38dsuXxDO7UlaWle/OJgZGi6sYH7H+ZvMGqHVFAyMeUTazzFY4QYV
# rMDJjolp113C/X01QTEk+zG3gsJspiAMGjKeOJsFba4/4mxrYhPx93HbT0HIzdg9
# D/0vU17zrvL13nsWkeWkpODZ2KoVOhkpUUTwKSwGTMEFjC0j3ffO3a91albF86RW
# FG40o2cWNGXSY7N1yiR9MGH1RD92ZT9T6oKwsNQKlX4FidP/geCN0q85PkoAqfcq
# a6UuVo1fRGEDQjGCAvUwggLxAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
# QSAyMDEwAhMzAAABBAkBdQhYhy0pAAAAAAEEMA0GCWCGSAFlAwQCAQUAoIIBMjAa
# BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIAyAZXxY
# xS9hHHh9BPYXPuaSgjyv5xF4mZLXsdyi0QHtMIHiBgsqhkiG9w0BCRACDDGB0jCB
# zzCBzDCBsQQUs0Yef0dI8yhMiFS2cxh4FtwVCn0wgZgwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAQQJAXUIWIctKQAAAAABBDAWBBS6KRcG
# MO6TSAD4ldO5lf1QBYOnjTANBgkqhkiG9w0BAQsFAASCAQBCdLtpeDxrqA0pkyDv
# MCD7/VYYdMuQhoXQ90sYgx0tBr7CMNBZzd14daBMHpjWvB4lBsgcIsbt5P5Us9fV
# 6LQjfVjkRv+QQPSiT6n8DXGOaVY82irsBExvAGGIHfyrLF86Z2gu2sVQhoy0a7ab
# XE0uuAc2pakzaH7JqDgIwTmJwTVwMxqdMtl7AAeGoh1wrtt9G7rR2IqRRnLBEic6
# PHqwfeuQTXp951s5morS6uyekb9j0hqAw7jnlM/WpSp3DvD6wc/Q1EVrNpxiADAT
# HEavZS9jIsX7xYpVm+YGl7/tOBm1R6ra67YL9+iPHOZMsvOQ+q94rgpJJVpYKa6O
# APYU
# SIG # End signature block

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,13 @@
___
/ __|
___ ___ | |__
| __|| __| | _ \
| _| | _| | |_| |
|___||_| \___/
TOPIC
about_EntityFramework
about_EntityFramework6
SHORT DESCRIPTION
Provides information about Entity Framework commands.
@ -37,10 +45,6 @@ LONG DESCRIPTION
default connection factory in the
project config file.
Initialize-EFConfiguration Initializes the Entity Framework
section in the project config file and
sets defaults.
SEE ALSO
Enable-Migrations
Add-Migration

View File

@ -0,0 +1,231 @@
param($installPath, $toolsPath, $package, $project)
# NB: Not set for scripts in PowerShell 2.0
if (!$PSScriptRoot)
{
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
}
if ($PSVersionTable.PSVersion -lt '3.0')
{
Import-Module (Join-Path $PSScriptRoot 'EntityFramework6.PS2.psd1')
return
}
$importedModule = Get-Module 'EntityFramework6'
$moduleToImport = Test-ModuleManifest (Join-Path $PSScriptRoot 'EntityFramework6.psd1')
$import = $true
if ($importedModule)
{
if ($importedModule.Version -le $moduleToImport.Version)
{
Remove-Module 'EntityFramework6'
}
else
{
$import = $false
}
}
if ($import)
{
Import-Module $moduleToImport
}
# SIG # Begin signature block
# MIIkWwYJKoZIhvcNAQcCoIIkTDCCJEgCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAWXs44Wb6F5hXF
# Tnl/wiBkO/u4wSvVRemf0sjDnTNTeqCCDYEwggX/MIID56ADAgECAhMzAAABUZ6N
# j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1
# oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os
# +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU
# 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg
# B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ
# IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A
# rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS
# se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf
# NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL
# crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs
# 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF
# sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD
# 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK
# YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j
# 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu
# Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY
# HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIWMDCCFiwCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgq4QMk5E8
# PVNKR1iqur8cR7NUPVJFuHBNDkH4tmrt+acwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQCUbemaYV+Cnthc3mcHucXERj1gFbL8I+5eZeP2iIK8
# atd29VDDMFhOP7Im3KiSeJXjk9rqPJoFELotc/TjrJzKs/2zUotLmTOrFtQZJHW6
# kHJLR0JrkI6SEHHatb88vTGGl6eXNSe7Dyvy0uFYREZUH/KPP7mIr2uqFR7HHXkO
# 0f2l/MC/UmeYXFAr//PPcJx+hcJnnbtTCwW7zqVIAZaSDrM2BzfoAS4KHIte0cvm
# dGxE6G6bcemiSS6Khl2yAKN0cUWXyGiUBlPK+cpTWu1mpECF7V72KLTbyGeK6UZF
# b7biJg5tvqloTBG60yz4u7SSkSU7yh6iq0d9QKQRoebHoYITujCCE7YGCisGAQQB
# gjcDAwExghOmMIITogYJKoZIhvcNAQcCoIITkzCCE48CAQMxDzANBglghkgBZQME
# AgEFADCCAVgGCyqGSIb3DQEJEAEEoIIBRwSCAUMwggE/AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIATn/vF0Muh20ZK+H3p3DUuI8FQwKzcqRQWc7kLf
# uxneAgZeeiZ4Qd0YEzIwMjAwNDE2MjIxMzQxLjEzOVowBwIBAYACAfSggdSkgdEw
# gc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsT
# IE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFs
# ZXMgVFNTIEVTTjpCMUI3LUY2N0YtRkVDMjElMCMGA1UEAxMcTWljcm9zb2Z0IFRp
# bWUtU3RhbXAgU2VydmljZaCCDyIwggT1MIID3aADAgECAhMzAAABA+pOK3i2KieT
# AAAAAAEDMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
# YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy
# MDEwMB4XDTE5MDkwNjIwNDExN1oXDTIwMTIwNDIwNDExN1owgc4xCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP
# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpC
# MUI3LUY2N0YtRkVDMjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
# dmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALCRV96uFMhQPoee
# fQrvxbzOW3Y7LKElUOxYoMR9HW2+DOgS3ECplmsQJZbcXZJ1686/7CV7skdSO95r
# G7k9cnI9tvX4OW0WDRjtcaFOvmDdENyBUYmIf+kuPHwA8Edbzeg7OPkBCtvM5nUJ
# 5xVnQuiT9R5NF9axjwoYkHaIcaj9GWQgW5h+awLofbWyY0rWyXYk8GndPVK3MkT3
# FnFPWLGY6OB2lRMEgpBLw1uKpCUHqp4Fpff5gnvb93EVSliLr11lwfYwEF5RjNDe
# gi9P39MjpnuXGwI2LjGKUsF66VGaVw4rdaUKQlPKJ0P/h/b9LCcVZyBVfwAD/Xap
# Woo2JEsCAwEAAaOCARswggEXMB0GA1UdDgQWBBTiNi2Y/aGPja1lJu2PPODMEW9a
# CDAfBgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEug
# SaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9N
# aWNUaW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsG
# AQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Rp
# bVN0YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG
# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQB8Naig5oqAZfKHIUhs99mL2pqt
# Va6yca9TwUyeM9yC/Soduk4CXbtGtn+/j7yMpQldXXFefBh9PIg3bdlLchCtL8RX
# VxdmxDQYcjyxYtEmxCxxS+6EOBfl9I1ouXDj8Aq8wGZZ9PbAraJDeqxgVqd9W/YC
# rC4la3tg4HzF1hot6L0oxNlTnu+RyXmZ7f6f/Vq6KZAZPyaKbI5P6qHBG3REPAgr
# 45+GySpbWAQhZjUNZ9pJ3NcePbuaa8N2xiIJsc9t8/FTSCj1xoiK9q2YvXoA64/h
# kyUIn/fBFY3BD6meMnQCG500ruiAm0GujHYOmZxAbosMOxtLPahmQUkcbQCPMIIG
# cTCCBFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0
# IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1
# WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCC
# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9p
# lGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEw
# WbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeG
# MoQedGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJ
# UGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw
# 2k4GkbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0C
# AwEAAaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ
# 80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8E
# BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2U
# kFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5j
# b20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmww
# WgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29m
# dC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYD
# VR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYI
# KwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0
# AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9
# naOhIW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtR
# gkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzy
# mXlKkVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCf
# Mkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3D
# nKOiPPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs
# 9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110
# mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL
# 2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffI
# rE7aKLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxE
# PJdQcdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc
# 1bN+NR4Iuto229Nfj950iEkSoYIDsDCCApgCAQEwgf6hgdSkgdEwgc4xCzAJBgNV
# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29m
# dCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVT
# TjpCMUI3LUY2N0YtRkVDMjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# U2VydmljZaIlCgEBMAkGBSsOAwIaBQADFQBrXDo2eDr68GRJRlXYVs3aqGzas6CB
# 3jCB26SB2DCB1TELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEp
# MCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJpY28xJzAlBgNV
# BAsTHm5DaXBoZXIgTlRTIEVTTjo0REU5LTBDNUUtM0UwOTErMCkGA1UEAxMiTWlj
# cm9zb2Z0IFRpbWUgU291cmNlIE1hc3RlciBDbG9jazANBgkqhkiG9w0BAQUFAAIF
# AOJDDLIwIhgPMjAyMDA0MTcwMDU2MThaGA8yMDIwMDQxODAwNTYxOFowdzA9Bgor
# BgEEAYRZCgQBMS8wLTAKAgUA4kMMsgIBADAKAgEAAgIkJgIB/zAHAgEAAgIYujAK
# AgUA4kReMgIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMBoAowCAIB
# AAIDFuNgoQowCAIBAAIDB6EgMA0GCSqGSIb3DQEBBQUAA4IBAQATjVw32hwIjvFS
# agZUTduGeimyeurvcx4sOzWAV5mEm48saShHCjoq6IGBdIi08Ow2BqXWq0nmAzs3
# M2az+HtNijXHfUNDlg8mB8iceGigOeg59EwcF2uRdGXr3PFgHtSSbBiEOWCDO02w
# q3Pl+jfQ0wDxKsg1d6yRKMuaEGMvDRLI0byRU63vUMIYG1KhWxbnjOzyLLqNAigG
# RfJfzS/VUGe8VUR4YLNdPWtZyXKIykeOd/JdNwlcU2WrauMOrwz7gWhmFS5WygTR
# zuzpxwz58gyxhFZkNri24e8MQC5QG4drTBaULmbMLc4Bro4rlv3rRHZFem816/R7
# ELyU6MWLMYIC9TCCAvECAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTACEzMAAAED6k4reLYqJ5MAAAAAAQMwDQYJYIZIAWUDBAIBBQCgggEyMBoGCSqG
# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg0TG1rBHplgOK
# 7L3AfY2xi3Kf+/XG7C3t4t0jQ+AiY6owgeIGCyqGSIb3DQEJEAIMMYHSMIHPMIHM
# MIGxBBRrXDo2eDr68GRJRlXYVs3aqGzaszCBmDCBgKR+MHwxCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l
# LVN0YW1wIFBDQSAyMDEwAhMzAAABA+pOK3i2KieTAAAAAAEDMBYEFPRqdmYGpXMF
# K/nz1xrwrVH/SicLMA0GCSqGSIb3DQEBCwUABIIBAD95lLQdmSib58P6fV8RnD2Q
# OkK9eO7FmOdDrcq4l228tMVftnJVr7o0PhITJQogBpTMpzGRAK2zwxtwOXVRuRrK
# is1rTPKfc8+280VusNXHzJ1PxNDIuxtpkb4AhFIMcEAGWAGfZSMspIT2MKHUL59i
# fnBErvjcz0F4eiVPR7I5sHoA6CD8rPLvgLxkzB3BFUUus2KxuBkpVwXPxYT9g4Wt
# qDz/Lwsf4/m5hftNLDpOtiuYvq61/kPlsJ/OVkKwVHKnM9XhybFAJfixgMJzOg9u
# +y6hDWYX4HRtqZIdfJ6fcqqyyOdZU7gCpTtEhUaQbCmW7CqnZyh5L0WYxUnV574=
# SIG # End signature block

View File

@ -0,0 +1,223 @@
param($installPath, $toolsPath, $package, $project)
if (Get-Service | ?{ $_.Name -eq 'MSSQL$SQLEXPRESS' -and $_.Status -eq 'Running' })
{
Add-EFDefaultConnectionFactory $project 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'
}
else
{
$localDbVersion = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions' -ErrorAction SilentlyContinue |
%{ $_.PSChildName } |
sort -Descending |
select -First 1
if (!$localDbVersion -or $localDbVersion -ge '12.0')
{
$localDbVersion = 'mssqllocaldb'
}
else
{
$localDbVersion = "v$localDbVersion"
}
Add-EFDefaultConnectionFactory $project 'System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework' -ConstructorArguments $localDbVersion
}
$project.Object.References |
?{ $_.Identity -eq 'System.Data.Entity' } |
%{ $_.Remove() }
Write-Host
Write-Host "Type 'get-help EntityFramework6' to see all available Entity Framework commands."
# SIG # Begin signature block
# MIIjigYJKoZIhvcNAQcCoIIjezCCI3cCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAyC8P3Y/ONSqHQ
# 3OLSABCdTniNaBaTHx45JvdAACyBm6CCDYUwggYDMIID66ADAgECAhMzAAABUptA
# n1BWmXWIAAAAAAFSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCxp4nT9qfu9O10iJyewYXHlN+WEh79Noor9nhM6enUNbCbhX9vS+8c/3eIVazS
# YnVBTqLzW7xWN1bCcItDbsEzKEE2BswSun7J9xCaLwcGHKFr+qWUlz7hh9RcmjYS
# kOGNybOfrgj3sm0DStoK8ljwEyUVeRfMHx9E/7Ca/OEq2cXBT3L0fVnlEkfal310
# EFCLDo2BrE35NGRjG+/nnZiqKqEh5lWNk33JV8/I0fIcUKrLEmUGrv0CgC7w2cjm
# bBhBIJ+0KzSnSWingXol/3iUdBBy4QQNH767kYGunJeY08RjHMIgjJCdAoEM+2mX
# v1phaV7j+M3dNzZ/cdsz3oDfAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU3f8Aw1sW72WcJ2bo/QSYGzVrRYcw
# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ1NDEzNjAfBgNVHSMEGDAW
# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
# AJTwROaHvogXgixWjyjvLfiRgqI2QK8GoG23eqAgNjX7V/WdUWBbs0aIC3k49cd0
# zdq+JJImixcX6UOTpz2LZPFSh23l0/Mo35wG7JXUxgO0U+5drbQht5xoMl1n7/TQ
# 4iKcmAYSAPxTq5lFnoV2+fAeljVA7O43szjs7LR09D0wFHwzZco/iE8Hlakl23ZT
# 7FnB5AfU2hwfv87y3q3a5qFiugSykILpK0/vqnlEVB0KAdQVzYULQ/U4eFEjnis3
# Js9UrAvtIhIs26445Rj3UP6U4GgOjgQonlRA+mDlsh78wFSGbASIvK+fkONUhvj8
# B8ZHNn4TFfnct+a0ZueY4f6aRPxr8beNSUKn7QW/FQmn422bE7KfnqWncsH7vbNh
# G929prVHPsaa7J22i9wyHj7m0oATXJ+YjfyoEAtd5/NyIYaE4Uu0j1EhuYUo5VaJ
# JnMaTER0qX8+/YZRWrFN/heps41XNVjiAawpbAa0fUa3R9RNBjPiBnM0gvNPorM4
# dsV2VJ8GluIQOrJlOvuCrOYDGirGnadOmQ21wPBoGFCWpK56PxzliKsy5NNmAXcE
# x7Qb9vUjY1WlYtrdwOXTpxN4slzIht69BaZlLIjLVWwqIfuNrhHKNDM9K+v7vgrI
# bf7l5/665g0gjQCDCN6Q5sxuttTAEKtJeS/pkpI+DbZ/MIIHejCCBWKgAwIBAgIK
# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFVswghVXAgEBMIGVMH4x
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAFSm0CfUFaZdYgAAAAA
# AVIwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJDm
# 6u3fKNHhSVdXwhZL2U0SggUob53btFQTpjz0w19vMEIGCisGAQQBgjcCAQwxNDAy
# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20wDQYJKoZIhvcNAQEBBQAEggEAhEzKUz8+6D1eB34MxfDcSMWHaaMTM6p+z30c
# DT9MYmOUS51Sl5wINphWTUI48Mk5oKgT/gLg64UmIUcWHicfZC9f9XFrvFHthh+6
# y4iulP3BhH34iXHyOqr39GcigQIUPkuQsZUqm9ZKV8QcWXBu4yOqF+aR28qq9czs
# b38Z03LW3Paeaf+PNDVjek66QZj0+nR/nBpfAVp+BomzZqa0jQ2yekxDNPLaRmJB
# hG57RJxEznVOpwB/fuCnnAH8lH0JHAmGJuJAimIDx6meei2kFk/AHMkW46vSGDww
# A+1DL9Sjy7UhCnkCjYvgQBe4eJUAgD5aEmxn6t55QZ7+wKlDI6GCEuUwghLhBgor
# BgEEAYI3AwMBMYIS0TCCEs0GCSqGSIb3DQEHAqCCEr4wghK6AgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAgrqGTkQYbZFjHoXeplz13S4sXHhfN25+b
# YqXYRW1EJwIGXoIPTMYpGBMyMDIwMDQxNjIyMTM0MS43MTJaMASAAgH0oIHQpIHN
# MIHKMQswCQYDVQQGEwJVUzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9z
# b2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjo4RDQxLTRCRjctQjNCNzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZaCCDjwwggTxMIID2aADAgECAhMzAAABClLIOQFS0XBLAAAA
# AAEKMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
# MB4XDTE5MTAyMzIzMTkxNVoXDTIxMDEyMTIzMTkxNVowgcoxCzAJBgNVBAYTAlVT
# MQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
# b2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVy
# YXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjhENDEtNEJG
# Ny1CM0I3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIB
# IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuz4brZShcMWfhnj1P1dKTJHt
# teR0l/D3C19YY2FG8ghEQRbO/8BMK28DCGXTqOzQ6nCFIV17d5MYNTqgScbqM1XA
# ifCcEcv1SO/adWXi20r92jDMaLjs6KmjS/w5m/Ak/VBHKqtzxdfLzL9XGX5PGaYb
# lUhjzNHlrCbxNZHz1wibGM7Gbbq6tIxCOlwYfYabikKvCkl76KghN+xGVq2Fst7o
# USZ7K3eE6tmIGLMlkP2kBdtHW+92VsCLVxuE1JcuCENKXEIvf1B937FbtOqvP8jb
# 3OzHyHJp2DlDzshTAYdBFudfSv5oP8WIDIbZmZZ85rx56+Z6cyU4sGwboZ8FJwID
# AQABo4IBGzCCARcwHQYDVR0OBBYEFPhElKX9OkxNUN6R+DqtAaKRcYUoMB8GA1Ud
# IwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0
# dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0
# YVBDQV8yMDEwLTA3LTAxLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG
# Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUH
# AwgwDQYJKoZIhvcNAQELBQADggEBAFSXrnzUFfLd03MlqtErt51WGX3UXFeorE6d
# GY+YIwSmfFRKRNwEe8cmLt0EOxezyTV6+/fdYTyrPcPDvgR3k6F5sHeKExohjrqc
# jxAa3yVQ9SJZakXZVKzaHWzbvMuA8kcmzj0J/Y6/pk57aFsp/kr+lu5aNdw5V3Wg
# itJYpwE6foZQsBrTTPNRhIXVMHnPEk6s2+7nC6Ty9ZLIJhYeMyqLuitJGKvEiRhD
# 8PYzkGJnLkjp61ICDk/00ZVZvvlXLonth32ZooeZ9/+760o9g2lUhF8oaLHCB1i8
# 2dUChXdzZulUEwQ5CZWh8WIjQZSUuvOO1vV0FfOqdNwcDyXuFdIwggZxMIIEWaAD
# AgECAgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzET
# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
# TWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBD
# ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3
# MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkq
# hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWl
# CgCChfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/Fg
# iIRUQwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeR
# X4FUsc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/Xcf
# PfBXday9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogI
# Neh4HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB
# 5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvF
# M2hahW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP
# BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjE
# MFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kv
# Y3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEF
# BQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
# a2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8E
# gZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5t
# aWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcC
# AjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUA
# bgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Pr
# psz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOM
# zPRgEop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCv
# OA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v
# /rbljjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99
# lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1kl
# D3ouOVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQ
# Hm+98eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30
# uIUBHoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp
# 25ayp0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HS
# xVXjad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi6
# 2jbb01+P3nSISRKhggLOMIICNwIBATCB+KGB0KSBzTCByjELMAkGA1UEBhMCVVMx
# CzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046OEQ0MS00QkY3
# LUIzQjcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB
# ATAHBgUrDgMCGgMVADm9dqVx0X/uUa0VckV24hpoY975oIGDMIGApH4wfDELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z
# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDiQvb4MCIY
# DzIwMjAwNDE2MjMyMzM2WhgPMjAyMDA0MTcyMzIzMzZaMHcwPQYKKwYBBAGEWQoE
# ATEvMC0wCgIFAOJC9vgCAQAwCgIBAAICDVECAf8wBwIBAAICEdcwCgIFAOJESHgC
# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK
# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQCi9Yk47yOs+idHtqxf1Bztg/7t
# gjK5JhDICmMIF+/qBZpZjCOSXowpqjO8GOCln5uOs73GNu2XVbQ2NzT1EUrfkK+6
# CsrmOXP2ZtAKja7RY7FH9IoYD4bsUmp3aOaM76bMJSm3d+J7Jqcblwd9cU4kii+K
# daCFk5Zz9brYA+itbjGCAw0wggMJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
# IFBDQSAyMDEwAhMzAAABClLIOQFS0XBLAAAAAAEKMA0GCWCGSAFlAwQCAQUAoIIB
# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIJBr
# lX3RMPnzDsT2OwSFdV+nSMcRwf6GO3VnFpU82HDoMIH6BgsqhkiG9w0BCRACLzGB
# 6jCB5zCB5DCBvQQgVwM2JDO6oQwoDehG8V22bUdxzZDWWhkjGB83y+TSrKowgZgw
# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAQpSyDkBUtFw
# SwAAAAABCjAiBCAPcA2FUPvx4YVbNm4dewSIE482jr5eh5w3As4qnw+bGjANBgkq
# hkiG9w0BAQsFAASCAQAjsYHBCGmxsZTzdg7kleQ0b44SH5aFvErimvb/0Ues1/K3
# yW4lHf2Fo7VMXMQ4Yh6QPcaHt5th75b4X7XF3XRXr7mZ5YvKlNQI9z+x92y8CzGm
# bmHPK1HXro0MCcyzDDlNgMwKoeixvhS4xDUWdJEKZkL7U/KbgEBWabys82WnkMgB
# 8Z6UDGULt0NPKd3CPQrJ4CbX3YEUr2jJzbEEv7DFsmdjqEngImndMw8Fs2JaUCVj
# +Z+kaWU4TQNqocF7tt3NS4lo1xv5E9eWlxJ3VO9T3uPTSat5Q0XHwcULL1kONqIO
# VPUIwIBu1SzO7zrG3HTS54NQG1k7LkR5M+2gco5B
# SIG # End signature block

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.0.0"
}
}
}