diff --git a/.NET Core/.vs/config/applicationhost.config b/.NET Core/.vs/config/applicationhost.config new file mode 100644 index 0000000..ba4da8f --- /dev/null +++ b/.NET Core/.vs/config/applicationhost.config @@ -0,0 +1,990 @@ + + + + + + +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.NET Core/Documentation.txt b/.NET Core/Documentation.txt index ffbb732..7bb4db0 100644 --- a/.NET Core/Documentation.txt +++ b/.NET Core/Documentation.txt @@ -3,7 +3,5 @@ Add-migration: It will scaffold the next migration for the changes you have made Update-database: It will apply pending changes to the database based on latest scaffolding code file you created using "Add-Migration" command example: -Add-migration -context ApplicationDbContext -Add-migration -context OriginContext -update-database -context ApplicationDbContext -update-database -context OriginContext \ No newline at end of file +Add-migration -context OriginDbContext +update-database -context OriginDbContext \ No newline at end of file diff --git a/.NET Core/Origin/Controllers/AccountController.cs b/.NET Core/Origin/Controllers/AccountController.cs index 1ea109b..81bb78a 100644 --- a/.NET Core/Origin/Controllers/AccountController.cs +++ b/.NET Core/Origin/Controllers/AccountController.cs @@ -94,6 +94,7 @@ public async Task Login(LoginRequest model, string returnUrl = nu } else { + // TODO: Localize this fucking string ModelState.AddModelError("Error", "Invalid login attempt."); return View(model); } diff --git a/.NET Core/Origin/Controllers/ConfigurationController.cs b/.NET Core/Origin/Controllers/ConfigurationController.cs index 3ace368..025d52e 100644 --- a/.NET Core/Origin/Controllers/ConfigurationController.cs +++ b/.NET Core/Origin/Controllers/ConfigurationController.cs @@ -1,12 +1,9 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.IO; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; -using Origin.Models; +using Microsoft.Extensions.Configuration; using Origin.Service.Implementation; -using Origin.ViewModels; -using Origin.ViewModels.Responses; + namespace Origin.Controllers { @@ -14,14 +11,11 @@ public class ConfigurationController : Controller { private readonly CacheService _cacheService; - private readonly OriginContext _context; - #region Constructor - public ConfigurationController(OriginContext context, IMemoryCache cache) + public ConfigurationController(IMemoryCache cache) { - _cacheService = new CacheService(cache, ConfigurationManager.GetConfigurationByPath("Paths:Localization")); - _context = context; + _cacheService = new CacheService(cache, GetConfigurationByPath("Paths:Localization")); } #endregion @@ -42,100 +36,18 @@ public JsonResult GetConfiguration() return Json(viewModel); } - [HttpGet] - // TODO: Implement server side - public JsonResult GetTables() - { - GetTablesResponse viewModel = new GetTablesResponse(); - - try - { - if (User.IsInRole("Administrator")) - { - viewModel.Tables = new List() - { - new GetTablesResponse.Table() { Name = "OR_Forms", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" }, - new GetTablesResponse.Column() { Name = "Type" } } }, - new GetTablesResponse.Table() { Name = "OR_Inputs", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" }, - new GetTablesResponse.Column() { Name = "Type" }, - new GetTablesResponse.Column() { Name = "RelatedOriginId" } } }, - new GetTablesResponse.Table() { Name = "OR_ItemTypes", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" } } }, - new GetTablesResponse.Table() { Name = "OR_Lookups", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" }, - new GetTablesResponse.Column() { Name = "Type" } } }, - new GetTablesResponse.Table() { Name = "OR_LookupValues", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" }, - new GetTablesResponse.Column() { Name = "RelatedOriginId" } } }, - new GetTablesResponse.Table() { Name = "OR_Roles", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" } } }, - new GetTablesResponse.Table() { Name = "OR_Users", - Columns = new List { - new GetTablesResponse.Column() { Name = "Name" }, - new GetTablesResponse.Column() { Name = "Surname" }, - new GetTablesResponse.Column() { Name = "Email" }, - new GetTablesResponse.Column() { Name = "PhoneNumber" } } }, - }; - } - } - catch (Exception exc) - { - viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error; - viewModel.ResultInfo.ErrorMessage = exc.Message; - } + #endregion - return Json(viewModel); - } + #region Private Methods - [HttpPost] - // TODO: Implement server side - public JsonResult GetTable(string name) + public string GetConfigurationByPath(string path) { - //TODO: find a different way from a switch - //GetTableResponse viewModel = new GetTableResponse(); + var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); + IConfigurationRoot Configuration; Configuration = builder.Build(); - try - { - if (User.IsInRole("Administrator")) - { - switch(name) - { - case "OR_Forms": - var forms = _context.OR_Forms.Select(f => f).ToList(); - return Json(forms); - //break; - case "OR_Inputs": - break; - case "OR_ItemTypes": - break; - case "OR_Lookups": - break; - case "OR_LookupValues": - break; - case "OR_Roles": - break; - case "OR_Users": - break; - } - } - } - catch (Exception exc) - { - //viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error; - //viewModel.ResultInfo.ErrorMessage = exc.Message; - } - - return Json(null); - //return Json(viewModel); + return Configuration.GetValue(path); } + #endregion } } \ No newline at end of file diff --git a/.NET Core/Origin/Controllers/ItemController.cs b/.NET Core/Origin/Controllers/ItemController.cs index ffbe878..ac4c658 100644 --- a/.NET Core/Origin/Controllers/ItemController.cs +++ b/.NET Core/Origin/Controllers/ItemController.cs @@ -1,5 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Origin.Models; +using Origin.Service.Implementation; using Origin.ViewModels.Requests; namespace Origin.Controllers @@ -7,7 +9,15 @@ namespace Origin.Controllers [Authorize] public class ItemController : Controller { - //IItemService service = new ItemService(); + private readonly OriginDbContext _context; + + private readonly ItemService _service; + + public ItemController(OriginDbContext context) + { + _context = context; + _service = new ItemService(context); + } //[HttpPost] //public JsonResult AddItem(AddItemRequest request) @@ -23,12 +33,12 @@ public class ItemController : Controller // return Json(viewModel, JsonRequestBehavior.DenyGet); //} - //[HttpPost] - //public JsonResult GetItems(GetItemsRequest request) - //{ - // var viewModel = service.GetItems(request); - // return Json(viewModel, JsonRequestBehavior.DenyGet); - //} + [HttpPost] + public JsonResult GetItems(GetItemsRequest request) + { + var viewModel = _service.GetItemsToList(request); + return Json(viewModel); + } //[HttpPost] //public JsonResult DeleteItem(DeleteItemRequest request) diff --git a/.NET Core/Origin/Controllers/ItemTypeController.cs b/.NET Core/Origin/Controllers/ItemTypeController.cs new file mode 100644 index 0000000..9ca7de9 --- /dev/null +++ b/.NET Core/Origin/Controllers/ItemTypeController.cs @@ -0,0 +1,50 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Origin.Models; +using Origin.Service.Implementation; +using Origin.ViewModels.Requests; + +namespace Origin.Controllers +{ + [Authorize] + public class ItemTypeController : Controller + { + private readonly OriginDbContext _context; + + private readonly ItemTypeService _service; + + public ItemTypeController(OriginDbContext context) + { + _context = context; + _service = new ItemTypeService(context); + } + + //[HttpPost] + //public JsonResult AddItem(AddItemRequest request) + //{ + // var viewModel = service.AddItem(request); + // return Json(viewModel, JsonRequestBehavior.DenyGet); + //} + + //[HttpPost] + //public JsonResult GetItem(GetItemRequest request) + //{ + // var viewModel = service.GetItem(request); + // return Json(viewModel, JsonRequestBehavior.DenyGet); + //} + + [HttpPost] + public JsonResult GetItemTypes(GetItemTypesRequest request) + { + var viewModel = _service.GetItemTypesToList(request); + return Json(viewModel); + } + + //[HttpPost] + //public JsonResult DeleteItem(DeleteItemRequest request) + //{ + // var viewModel = service.DeleteItems(request); + // return Json(viewModel, JsonRequestBehavior.DenyGet); + //} + } +} \ No newline at end of file diff --git a/.NET Core/Origin/Migrations/20180104220453_Identity.Designer.cs b/.NET Core/Origin/Migrations/20180501123458_Origin.Designer.cs similarity index 57% rename from .NET Core/Origin/Migrations/20180104220453_Identity.Designer.cs rename to .NET Core/Origin/Migrations/20180501123458_Origin.Designer.cs index cee2297..9dd3ae4 100644 --- a/.NET Core/Origin/Migrations/20180104220453_Identity.Designer.cs +++ b/.NET Core/Origin/Migrations/20180501123458_Origin.Designer.cs @@ -6,13 +6,14 @@ using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage.Internal; using Origin.Models; +using Origin.Models.Enums; using System; namespace Origin.Migrations { - [DbContext(typeof(ApplicationDbContext))] - [Migration("20180104220453_Identity")] - partial class Identity + [DbContext(typeof(OriginDbContext))] + [Migration("20180501123458_Origin")] + partial class Origin { protected override void BuildTargetModel(ModelBuilder modelBuilder) { @@ -21,7 +22,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasAnnotation("ProductVersion", "2.0.1-rtm-125") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd(); @@ -30,7 +31,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ClaimValue"); - b.Property("RoleId"); + b.Property("RoleId"); b.HasKey("Id"); @@ -39,7 +40,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_RoleClaims"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd(); @@ -48,7 +49,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ClaimValue"); - b.Property("UserId"); + b.Property("UserId"); b.HasKey("Id"); @@ -57,13 +58,13 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_UserClaims"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider"); b.Property("ProviderKey"); - b.Property("UserId"); + b.Property("UserId"); b.Property("ProviderDisplayName"); @@ -76,11 +77,11 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_UserLogins"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.Property("UserId"); + b.Property("UserId"); - b.Property("RoleId"); + b.Property("RoleId"); b.HasKey("UserId", "RoleId"); @@ -89,9 +90,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_UserRoles"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.Property("UserId"); + b.Property("UserId"); b.Property("LoginProvider"); @@ -104,11 +105,154 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_UserTokens"); }); + modelBuilder.Entity("Origin.Models.Store.OR_Form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Forms"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Input", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.ToTable("OR_Inputs"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Item", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreationDate"); + + b.Property("ItemTypeOriginId"); + + b.Property("LastEditDate"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Items"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_ItemAction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormOriginId"); + + b.Property("ItemTypeOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_ItemActions"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_ItemType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_ItemTypes"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Lookup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Lookups"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_LookupValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("LookupOriginId"); + + b.Property("OriginId"); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("OR_LookupValues"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Property", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ItemTypeOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Properties"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_PropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ItemOriginId"); + + b.Property("PropertyOriginId"); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("OR_PropertyValues"); + }); + modelBuilder.Entity("Origin.Models.Store.OR_Role", b => { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasDefaultValueSql("NewId()"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); @@ -131,9 +275,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("Origin.Models.Store.OR_User", b => { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasDefaultValueSql("NewId()"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("AccessFailedCount"); @@ -141,6 +284,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .IsConcurrencyToken(); b.Property("Email") + .IsRequired() .HasMaxLength(256); b.Property("EmailConfirmed"); @@ -157,7 +301,10 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("NormalizedUserName") .HasMaxLength(256); - b.Property("PasswordHash"); + b.Property("OriginId"); + + b.Property("PasswordHash") + .IsRequired(); b.Property("PhoneNumber"); @@ -185,7 +332,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("OR_Users"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("Origin.Models.Store.OR_Role") .WithMany() @@ -193,7 +340,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() @@ -201,7 +348,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() @@ -209,7 +356,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("Origin.Models.Store.OR_Role") .WithMany() @@ -222,7 +369,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() diff --git a/.NET Core/Origin/Migrations/20180104220453_Identity.cs b/.NET Core/Origin/Migrations/20180501123458_Origin.cs similarity index 53% rename from .NET Core/Origin/Migrations/20180104220453_Identity.cs rename to .NET Core/Origin/Migrations/20180501123458_Origin.cs index 8f248ec..2f2300a 100644 --- a/.NET Core/Origin/Migrations/20180104220453_Identity.cs +++ b/.NET Core/Origin/Migrations/20180501123458_Origin.cs @@ -5,15 +5,151 @@ namespace Origin.Migrations { - public partial class Identity : Migration + public partial class Origin : Migration { protected override void Up(MigrationBuilder migrationBuilder) { + migrationBuilder.CreateTable( + name: "OR_Forms", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_Forms", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_Inputs", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + FormOriginId = table.Column(nullable: false), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false), + Type = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_Inputs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_ItemActions", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + FormOriginId = table.Column(nullable: false), + ItemTypeOriginId = table.Column(nullable: false), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_ItemActions", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_Items", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + CreationDate = table.Column(nullable: false), + ItemTypeOriginId = table.Column(nullable: false), + LastEditDate = table.Column(nullable: false), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_Items", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_ItemTypes", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_ItemTypes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_Lookups", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_Lookups", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_LookupValues", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + LookupOriginId = table.Column(nullable: false), + OriginId = table.Column(nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_LookupValues", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_Properties", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + ItemTypeOriginId = table.Column(nullable: false), + Name = table.Column(nullable: true), + OriginId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_Properties", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OR_PropertyValues", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + ItemOriginId = table.Column(nullable: false), + PropertyOriginId = table.Column(nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OR_PropertyValues", x => x.Id); + }); + migrationBuilder.CreateTable( name: "OR_Roles", columns: table => new { - Id = table.Column(nullable: false, defaultValueSql: "NewId()"), + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), ConcurrencyStamp = table.Column(nullable: true), Name = table.Column(maxLength: 256, nullable: true), NormalizedName = table.Column(maxLength: 256, nullable: true) @@ -27,17 +163,19 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "OR_Users", columns: table => new { - Id = table.Column(nullable: false, defaultValueSql: "NewId()"), + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), AccessFailedCount = table.Column(nullable: false), ConcurrencyStamp = table.Column(nullable: true), - Email = table.Column(maxLength: 256, nullable: true), + Email = table.Column(maxLength: 256, nullable: false), EmailConfirmed = table.Column(nullable: false), LockoutEnabled = table.Column(nullable: false), LockoutEnd = table.Column(nullable: true), Name = table.Column(nullable: true), NormalizedEmail = table.Column(maxLength: 256, nullable: true), NormalizedUserName = table.Column(maxLength: 256, nullable: true), - PasswordHash = table.Column(nullable: true), + OriginId = table.Column(nullable: false), + PasswordHash = table.Column(nullable: false), PhoneNumber = table.Column(nullable: true), PhoneNumberConfirmed = table.Column(nullable: false), SecurityStamp = table.Column(nullable: true), @@ -58,7 +196,7 @@ protected override void Up(MigrationBuilder migrationBuilder) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), - RoleId = table.Column(nullable: false) + RoleId = table.Column(nullable: false) }, constraints: table => { @@ -79,7 +217,7 @@ protected override void Up(MigrationBuilder migrationBuilder) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), - UserId = table.Column(nullable: false) + UserId = table.Column(nullable: false) }, constraints: table => { @@ -98,7 +236,7 @@ protected override void Up(MigrationBuilder migrationBuilder) { LoginProvider = table.Column(nullable: false), ProviderKey = table.Column(nullable: false), - UserId = table.Column(nullable: false), + UserId = table.Column(nullable: false), ProviderDisplayName = table.Column(nullable: true) }, constraints: table => @@ -117,8 +255,8 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "OR_UserRoles", columns: table => new { - UserId = table.Column(nullable: false), - RoleId = table.Column(nullable: false) + UserId = table.Column(nullable: false), + RoleId = table.Column(nullable: false) }, constraints: table => { @@ -141,7 +279,7 @@ protected override void Up(MigrationBuilder migrationBuilder) name: "OR_UserTokens", columns: table => new { - UserId = table.Column(nullable: false), + UserId = table.Column(nullable: false), LoginProvider = table.Column(nullable: false), Name = table.Column(nullable: false), Value = table.Column(nullable: true) @@ -199,6 +337,33 @@ protected override void Up(MigrationBuilder migrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) { + migrationBuilder.DropTable( + name: "OR_Forms"); + + migrationBuilder.DropTable( + name: "OR_Inputs"); + + migrationBuilder.DropTable( + name: "OR_ItemActions"); + + migrationBuilder.DropTable( + name: "OR_Items"); + + migrationBuilder.DropTable( + name: "OR_ItemTypes"); + + migrationBuilder.DropTable( + name: "OR_Lookups"); + + migrationBuilder.DropTable( + name: "OR_LookupValues"); + + migrationBuilder.DropTable( + name: "OR_Properties"); + + migrationBuilder.DropTable( + name: "OR_PropertyValues"); + migrationBuilder.DropTable( name: "OR_RoleClaims"); diff --git a/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.Designer.cs b/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.Designer.cs deleted file mode 100644 index c7c83e7..0000000 --- a/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.Designer.cs +++ /dev/null @@ -1,180 +0,0 @@ -// -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using Origin.Models; -using System; - -namespace Origin.Migrations.Origin -{ - [DbContext(typeof(OriginContext))] - [Migration("20180104221025_Identity")] - partial class Identity - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.0.1-rtm-125") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("Origin.Models.Store.OR_Form", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("Type"); - - b.HasKey("Id"); - - b.ToTable("OR_Forms"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Input", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Type"); - - b.HasKey("Id"); - - b.ToTable("OR_Inputs"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Item", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("CreationDate"); - - b.Property("ItemTypeOriginId"); - - b.Property("LastEditDate"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_Items"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_ItemAction", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("FormOriginId"); - - b.Property("ItemTypeOriginId"); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_ItemActions"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_ItemType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_ItemTypes"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Lookup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_Lookups"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_LookupValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Value"); - - b.HasKey("Id"); - - b.ToTable("OR_LookupValues"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Property", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Value"); - - b.HasKey("Id"); - - b.ToTable("OR_Properties"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_RoleTable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AllowCreate"); - - b.Property("AllowDelete"); - - b.Property("AllowRead"); - - b.Property("AllowUpdate"); - - b.Property("RoleId"); - - b.Property("TableName"); - - b.HasKey("Id"); - - b.ToTable("OR_RoleTables"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.cs b/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.cs deleted file mode 100644 index 5fd5990..0000000 --- a/.NET Core/Origin/Migrations/Origin/20180104221025_Identity.cs +++ /dev/null @@ -1,183 +0,0 @@ -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using System; -using System.Collections.Generic; - -namespace Origin.Migrations.Origin -{ - public partial class Identity : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "OR_Forms", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false), - Type = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_Forms", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_Inputs", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false), - RelatedOriginId = table.Column(nullable: false), - Type = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_Inputs", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_ItemActions", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - FormOriginId = table.Column(nullable: false), - ItemTypeOriginId = table.Column(nullable: false), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_ItemActions", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_Items", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - CreationDate = table.Column(nullable: false), - ItemTypeOriginId = table.Column(nullable: false), - LastEditDate = table.Column(nullable: false), - OriginId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_Items", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_ItemTypes", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_ItemTypes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_Lookups", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_Lookups", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_LookupValues", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - OriginId = table.Column(nullable: false), - RelatedOriginId = table.Column(nullable: false), - Value = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_LookupValues", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_Properties", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - Name = table.Column(nullable: true), - OriginId = table.Column(nullable: false), - RelatedOriginId = table.Column(nullable: false), - Value = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_Properties", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "OR_RoleTables", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), - AllowCreate = table.Column(nullable: false), - AllowDelete = table.Column(nullable: false), - AllowRead = table.Column(nullable: false), - AllowUpdate = table.Column(nullable: false), - RoleId = table.Column(nullable: false), - TableName = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_OR_RoleTables", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "OR_Forms"); - - migrationBuilder.DropTable( - name: "OR_Inputs"); - - migrationBuilder.DropTable( - name: "OR_ItemActions"); - - migrationBuilder.DropTable( - name: "OR_Items"); - - migrationBuilder.DropTable( - name: "OR_ItemTypes"); - - migrationBuilder.DropTable( - name: "OR_Lookups"); - - migrationBuilder.DropTable( - name: "OR_LookupValues"); - - migrationBuilder.DropTable( - name: "OR_Properties"); - - migrationBuilder.DropTable( - name: "OR_RoleTables"); - } - } -} diff --git a/.NET Core/Origin/Migrations/Origin/OriginContextModelSnapshot.cs b/.NET Core/Origin/Migrations/Origin/OriginContextModelSnapshot.cs deleted file mode 100644 index 09d31c4..0000000 --- a/.NET Core/Origin/Migrations/Origin/OriginContextModelSnapshot.cs +++ /dev/null @@ -1,179 +0,0 @@ -// -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Storage.Internal; -using Origin.Models; -using System; - -namespace Origin.Migrations.Origin -{ - [DbContext(typeof(OriginContext))] - partial class OriginContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "2.0.1-rtm-125") - .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - - modelBuilder.Entity("Origin.Models.Store.OR_Form", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("Type"); - - b.HasKey("Id"); - - b.ToTable("OR_Forms"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Input", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Type"); - - b.HasKey("Id"); - - b.ToTable("OR_Inputs"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Item", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("CreationDate"); - - b.Property("ItemTypeOriginId"); - - b.Property("LastEditDate"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_Items"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_ItemAction", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("FormOriginId"); - - b.Property("ItemTypeOriginId"); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_ItemActions"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_ItemType", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_ItemTypes"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Lookup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.HasKey("Id"); - - b.ToTable("OR_Lookups"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_LookupValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Value"); - - b.HasKey("Id"); - - b.ToTable("OR_LookupValues"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_Property", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("Name"); - - b.Property("OriginId"); - - b.Property("RelatedOriginId"); - - b.Property("Value"); - - b.HasKey("Id"); - - b.ToTable("OR_Properties"); - }); - - modelBuilder.Entity("Origin.Models.Store.OR_RoleTable", b => - { - b.Property("Id") - .ValueGeneratedOnAdd(); - - b.Property("AllowCreate"); - - b.Property("AllowDelete"); - - b.Property("AllowRead"); - - b.Property("AllowUpdate"); - - b.Property("RoleId"); - - b.Property("TableName"); - - b.HasKey("Id"); - - b.ToTable("OR_RoleTables"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/.NET Core/Origin/Migrations/ApplicationDbContextModelSnapshot.cs b/.NET Core/Origin/Migrations/OriginDbContextModelSnapshot.cs similarity index 57% rename from .NET Core/Origin/Migrations/ApplicationDbContextModelSnapshot.cs rename to .NET Core/Origin/Migrations/OriginDbContextModelSnapshot.cs index 0a1e4ad..cbe2573 100644 --- a/.NET Core/Origin/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/.NET Core/Origin/Migrations/OriginDbContextModelSnapshot.cs @@ -6,12 +6,13 @@ using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage.Internal; using Origin.Models; +using Origin.Models.Enums; using System; namespace Origin.Migrations { - [DbContext(typeof(ApplicationDbContext))] - partial class ApplicationDbContextModelSnapshot : ModelSnapshot + [DbContext(typeof(OriginDbContext))] + partial class OriginDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { @@ -20,7 +21,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasAnnotation("ProductVersion", "2.0.1-rtm-125") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd(); @@ -29,7 +30,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ClaimValue"); - b.Property("RoleId"); + b.Property("RoleId"); b.HasKey("Id"); @@ -38,7 +39,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_RoleClaims"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd(); @@ -47,7 +48,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ClaimValue"); - b.Property("UserId"); + b.Property("UserId"); b.HasKey("Id"); @@ -56,13 +57,13 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_UserClaims"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider"); b.Property("ProviderKey"); - b.Property("UserId"); + b.Property("UserId"); b.Property("ProviderDisplayName"); @@ -75,11 +76,11 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_UserLogins"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.Property("UserId"); + b.Property("UserId"); - b.Property("RoleId"); + b.Property("RoleId"); b.HasKey("UserId", "RoleId"); @@ -88,9 +89,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_UserRoles"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.Property("UserId"); + b.Property("UserId"); b.Property("LoginProvider"); @@ -103,11 +104,154 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_UserTokens"); }); + modelBuilder.Entity("Origin.Models.Store.OR_Form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Forms"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Input", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.ToTable("OR_Inputs"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Item", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreationDate"); + + b.Property("ItemTypeOriginId"); + + b.Property("LastEditDate"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Items"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_ItemAction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FormOriginId"); + + b.Property("ItemTypeOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_ItemActions"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_ItemType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_ItemTypes"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Lookup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Lookups"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_LookupValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("LookupOriginId"); + + b.Property("OriginId"); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("OR_LookupValues"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_Property", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ItemTypeOriginId"); + + b.Property("Name"); + + b.Property("OriginId"); + + b.HasKey("Id"); + + b.ToTable("OR_Properties"); + }); + + modelBuilder.Entity("Origin.Models.Store.OR_PropertyValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ItemOriginId"); + + b.Property("PropertyOriginId"); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("OR_PropertyValues"); + }); + modelBuilder.Entity("Origin.Models.Store.OR_Role", b => { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasDefaultValueSql("NewId()"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); @@ -130,9 +274,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Origin.Models.Store.OR_User", b => { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasDefaultValueSql("NewId()"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("AccessFailedCount"); @@ -140,6 +283,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .IsConcurrencyToken(); b.Property("Email") + .IsRequired() .HasMaxLength(256); b.Property("EmailConfirmed"); @@ -156,7 +300,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("NormalizedUserName") .HasMaxLength(256); - b.Property("PasswordHash"); + b.Property("OriginId"); + + b.Property("PasswordHash") + .IsRequired(); b.Property("PhoneNumber"); @@ -184,7 +331,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("OR_Users"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("Origin.Models.Store.OR_Role") .WithMany() @@ -192,7 +339,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() @@ -200,7 +347,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() @@ -208,7 +355,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("Origin.Models.Store.OR_Role") .WithMany() @@ -221,7 +368,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("Origin.Models.Store.OR_User") .WithMany() diff --git a/.NET Core/Origin/Models/ConfigurationManager.cs b/.NET Core/Origin/Models/ConfigurationManager.cs deleted file mode 100644 index d60b116..0000000 --- a/.NET Core/Origin/Models/ConfigurationManager.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.Extensions.Configuration; -using System.IO; - -namespace Origin -{ - public static class ConfigurationManager - { - public static string GetConfigurationByPath(string path) - { - var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); - IConfigurationRoot Configuration; Configuration = builder.Build(); - - return Configuration.GetValue(path); - } - } -} diff --git a/.NET Core/Origin/Models/DbContextExtensions.cs b/.NET Core/Origin/Models/DbContextExtensions.cs deleted file mode 100644 index 10e2042..0000000 --- a/.NET Core/Origin/Models/DbContextExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Linq; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace Origin.Models -{ - public static class DbContextExtensions - { - public static bool AllMigrationsApplied(this DbContext context) - { - var applied = context.GetService() - .GetAppliedMigrations() - .Select(m => m.MigrationId); - - var total = context.GetService() - .Migrations - .Select(m => m.Key); - - return !total.Except(applied).Any(); - } - } -} diff --git a/.NET Core/Origin/Models/Enums/InputType.cs b/.NET Core/Origin/Models/Enums/InputType.cs new file mode 100644 index 0000000..72a008f --- /dev/null +++ b/.NET Core/Origin/Models/Enums/InputType.cs @@ -0,0 +1,13 @@ +namespace Origin.Models.Enums +{ + public enum InputType + { + Dropdown, + + Datetime, + + Text, + + Numeric + } +} diff --git a/.NET Core/Origin/Models/OriginContext.cs b/.NET Core/Origin/Models/OriginContext.cs deleted file mode 100644 index 51e8f35..0000000 --- a/.NET Core/Origin/Models/OriginContext.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore; -using Origin.Models.Store; - -namespace Origin.Models -{ - public class OriginContext : DbContext - { - public OriginContext(DbContextOptions options) - : base(options) - { - } - - public DbSet OR_Forms { get; set; } - - public DbSet OR_Properties { get; set; } - - public DbSet OR_Inputs { get; set; } - - public DbSet OR_Items { get; set; } - - public DbSet OR_ItemActions { get; set; } - - public DbSet OR_ItemTypes { get; set; } - - public DbSet OR_Lookups { get; set; } - - public DbSet OR_LookupValues { get; set; } - - //protected override void OnModelCreating(ModelBuilder modelBuilder) - //{ - // base.OnModelCreating(modelBuilder); - //} - } -} \ No newline at end of file diff --git a/.NET Core/Origin/Models/OriginContextExtensions.cs b/.NET Core/Origin/Models/OriginContextExtensions.cs deleted file mode 100644 index 3390872..0000000 --- a/.NET Core/Origin/Models/OriginContextExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Linq; - -namespace Origin.Models -{ - public static class OriginContextExtensions - { - /// - /// Extension used to insert default data sinto the database - /// - /// - public static void EnsureSeedData(this OriginContext context) - { - if (context.AllMigrationsApplied()) - { - // Code to insert datas - } - } - } -} \ No newline at end of file diff --git a/.NET Core/Origin/Models/ApplicationDbContext.cs b/.NET Core/Origin/Models/OriginDbContext.cs similarity index 57% rename from .NET Core/Origin/Models/ApplicationDbContext.cs rename to .NET Core/Origin/Models/OriginDbContext.cs index 348cb9f..7e67a92 100644 --- a/.NET Core/Origin/Models/ApplicationDbContext.cs +++ b/.NET Core/Origin/Models/OriginDbContext.cs @@ -6,14 +6,32 @@ namespace Origin.Models { - public class ApplicationDbContext : IdentityDbContext + public class OriginDbContext : IdentityDbContext { - public ApplicationDbContext(DbContextOptions options) + public OriginDbContext(DbContextOptions options) : base(options) { } - public DbSet OR_Roles { get; set; } + //public DbSet OR_Roles { get; set; } + + public DbSet OR_Forms { get; set; } + + public DbSet OR_Properties { get; set; } + + public DbSet OR_PropertyValues { get; set; } + + public DbSet OR_Inputs { get; set; } + + public DbSet OR_Items { get; set; } + + public DbSet OR_ItemActions { get; set; } + + public DbSet OR_ItemTypes { get; set; } + + public DbSet OR_Lookups { get; set; } + + public DbSet OR_LookupValues { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -21,26 +39,26 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) var user = modelBuilder.Entity(); user.ToTable("OR_Users"); - user.Property(p => p.Id).HasDefaultValueSql("NewId()"); + //user.Property(p => p.Id).HasDefaultValueSql("NewId()"); var role = modelBuilder.Entity(); role.ToTable("OR_Roles"); - role.Property(p => p.Id).HasDefaultValueSql("NewId()"); + //role.Property(p => p.Id).HasDefaultValueSql("NewId()"); - var userRole = modelBuilder.Entity>(); + var userRole = modelBuilder.Entity>(); userRole.ToTable("OR_UserRoles"); userRole.HasKey(r => new { r.UserId, r.RoleId }); - var userClaim = modelBuilder.Entity>(); + var userClaim = modelBuilder.Entity>(); userClaim.ToTable("OR_UserClaims"); - var roleClaim = modelBuilder.Entity>(); + var roleClaim = modelBuilder.Entity>(); roleClaim.ToTable("OR_RoleClaims"); - var userToken = modelBuilder.Entity>(); + var userToken = modelBuilder.Entity>(); userToken.ToTable("OR_UserTokens"); - var userLogin = modelBuilder.Entity>(); + var userLogin = modelBuilder.Entity>(); userLogin.ToTable("OR_UserLogins"); userLogin.HasKey(l => new { l.LoginProvider, l.ProviderKey, l.UserId }); } diff --git a/.NET Core/Origin/Models/SeedData.cs b/.NET Core/Origin/Models/SeedData.cs deleted file mode 100644 index 2fbf6bd..0000000 --- a/.NET Core/Origin/Models/SeedData.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Identity; -using Origin.Models.Store; - -namespace Origin.Models -{ - public static class SeedData - { - public static async Task CreateAdminUserAndRole(ApplicationDbContext context, UserManager userManager, RoleManager roleManager) - { - if (context.AllMigrationsApplied()) - { - if (false == await roleManager.RoleExistsAsync("Administrator")) - { - var administratorRole = new OR_Role { Name = "Administrator" }; - await roleManager.CreateAsync(administratorRole); - } - - if (null == await userManager.FindByEmailAsync("administrator@origin.com")) - { - var user = new OR_User { UserName = "administrator@origin.com", Email = "administrator@origin.com" }; - await userManager.CreateAsync(user, "P@ssw0rd"); - await userManager.AddToRoleAsync(user, "Administrator"); - } - } - } - } -} diff --git a/.NET Core/Origin/Models/Store/OR_Form.cs b/.NET Core/Origin/Models/Store/OR_Form.cs index 6240e76..1c366f1 100644 --- a/.NET Core/Origin/Models/Store/OR_Form.cs +++ b/.NET Core/Origin/Models/Store/OR_Form.cs @@ -1,39 +1,24 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_Form { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; + public int Id { get; set; } + + public Guid OriginId { get; set; } + + [Required(ErrorMessage = "A type name is required")] private string _name; - private string _type; - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + #endregion - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + #region Properties public string Name { @@ -43,20 +28,17 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid type name"); + } + else + { + _name = value; + } } } - public string Type - { - get - { - return _type; - } - set - { - _type = value; - } - } + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_Input.cs b/.NET Core/Origin/Models/Store/OR_Input.cs index 56d4e4a..1876439 100644 --- a/.NET Core/Origin/Models/Store/OR_Input.cs +++ b/.NET Core/Origin/Models/Store/OR_Input.cs @@ -1,52 +1,30 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using Origin.Models.Enums; namespace Origin.Models.Store { public class OR_Input { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; - private Guid _relatedOriginId; - private string _name; - private string _type; + public int Id { get; set; } - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + public Guid OriginId { get; set; } - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + [Required] + public Guid FormOriginId { get; set; } - public Guid RelatedOriginId - { - get - { - return _relatedOriginId; - } - set - { - _relatedOriginId = value; - } - } + public InputType Type { get; set; } + + [Required(ErrorMessage = "A name is required")] + private string _name; + + #endregion + + #region Properties public string Name { @@ -56,20 +34,17 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } - public string Type - { - get - { - return _type; - } - set - { - _type = value; - } - } + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_Item.cs b/.NET Core/Origin/Models/Store/OR_Item.cs index db9526d..3cad258 100644 --- a/.NET Core/Origin/Models/Store/OR_Item.cs +++ b/.NET Core/Origin/Models/Store/OR_Item.cs @@ -1,75 +1,27 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_Item { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; - private Guid _itemTypeOriginId; - private DateTime _creationDate; - private DateTime _lastEditDate; + public int Id { get; set; } - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + public Guid OriginId { get; set; } - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + [Required] + public Guid ItemTypeOriginId { get; set; } - public Guid ItemTypeOriginId - { - get - { - return _itemTypeOriginId; - } - set - { - _itemTypeOriginId = value; - } - } + [Required] + public DateTime CreationDate { get; set; } - public DateTime CreationDate - { - get - { - return _creationDate; - } - set - { - _creationDate = value; - } - } + [Required] + public DateTime LastEditDate { get; set; } - public DateTime LastEditDate - { - get - { - return _lastEditDate; - } - set - { - _lastEditDate = value; - } - } + #endregion } } \ No newline at end of file diff --git a/.NET Core/Origin/Models/Store/OR_ItemAction.cs b/.NET Core/Origin/Models/Store/OR_ItemAction.cs index 550dc37..8fc30bd 100644 --- a/.NET Core/Origin/Models/Store/OR_ItemAction.cs +++ b/.NET Core/Origin/Models/Store/OR_ItemAction.cs @@ -1,64 +1,30 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_ItemAction { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; - private Guid _itemTypeOriginId; - private Guid _formOriginId; - private string _name; + public int Id { get; set; } - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + public Guid OriginId { get; set; } - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + [Required] + public Guid ItemTypeOriginId { get; set; } - public Guid ItemTypeOriginId - { - get - { - return _itemTypeOriginId; - } - set - { - _itemTypeOriginId = value; - } - } + [Required] + public Guid FormOriginId { get; set; } - public Guid FormOriginId - { - get - { - return _formOriginId; - } - set - { - _formOriginId = value; - } - } + [Required(ErrorMessage = "A name is required")] + private string _name; + + #endregion + + #region Properties public string Name { @@ -68,8 +34,17 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } + + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_ItemType.cs b/.NET Core/Origin/Models/Store/OR_ItemType.cs index 5d3b4c4..d8e79b9 100644 --- a/.NET Core/Origin/Models/Store/OR_ItemType.cs +++ b/.NET Core/Origin/Models/Store/OR_ItemType.cs @@ -1,38 +1,27 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { + /// + /// It's the root where the Items and Action comes from + /// public class OR_ItemType { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; + public int Id { get; set; } + + public Guid OriginId { get; set; } + + [Required(ErrorMessage = "A name is required")] private string _name; - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + #endregion - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + #region Properties public string Name { @@ -42,8 +31,17 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } + + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_Lookup.cs b/.NET Core/Origin/Models/Store/OR_Lookup.cs index a1ff554..3991ebe 100644 --- a/.NET Core/Origin/Models/Store/OR_Lookup.cs +++ b/.NET Core/Origin/Models/Store/OR_Lookup.cs @@ -1,38 +1,24 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_Lookup { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; + public int Id { get; set; } + + public Guid OriginId { get; set; } + + [Required(ErrorMessage = "A name is required")] private string _name; - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + #endregion - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + #region Properties public string Name { @@ -42,8 +28,17 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } + + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_LookupValue.cs b/.NET Core/Origin/Models/Store/OR_LookupValue.cs index 770a178..b30a6bd 100644 --- a/.NET Core/Origin/Models/Store/OR_LookupValue.cs +++ b/.NET Core/Origin/Models/Store/OR_LookupValue.cs @@ -1,51 +1,27 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_LookupValue { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; - private Guid _relatedOriginId; - private string _value; + public int Id { get; set; } - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + public Guid OriginId { get; set; } - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + [Required] + public Guid LookupOriginId { get; set; } - public Guid RelatedOriginId - { - get - { - return _relatedOriginId; - } - set - { - _relatedOriginId = value; - } - } + [Required(ErrorMessage = "A value is required")] + private string _value; + + #endregion + + #region Properties public string Value { @@ -55,8 +31,17 @@ public string Value } set { - _value = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid value"); + } + else + { + _value = value; + } } } + + #endregion } } diff --git a/.NET Core/Origin/Models/Store/OR_Property.cs b/.NET Core/Origin/Models/Store/OR_Property.cs index ffbf07b..bbac4da 100644 --- a/.NET Core/Origin/Models/Store/OR_Property.cs +++ b/.NET Core/Origin/Models/Store/OR_Property.cs @@ -1,52 +1,27 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Origin.Models.Store { public class OR_Property { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private int _id; - private Guid _originId; - private Guid _relatedOriginId; - private string _name; - private string _value; + public int Id { get; set; } - public int Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + public Guid OriginId { get; set; } - public Guid OriginId - { - get - { - return _originId; - } - set - { - _originId = value; - } - } + [Required] + public Guid ItemTypeOriginId { get; set; } - public Guid RelatedOriginId - { - get - { - return _relatedOriginId; - } - set - { - _relatedOriginId = value; - } - } + [Required(ErrorMessage = "A name is required")] + private string _name; + + #endregion + + #region Properties public string Name { @@ -56,20 +31,18 @@ public string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } - public string Value - { - get - { - return _value; - } - set - { - _value = value; - } - } + #endregion + } } diff --git a/.NET Core/Origin/Models/Store/OR_PropertyValue.cs b/.NET Core/Origin/Models/Store/OR_PropertyValue.cs new file mode 100644 index 0000000..9086fab --- /dev/null +++ b/.NET Core/Origin/Models/Store/OR_PropertyValue.cs @@ -0,0 +1,48 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Origin.Models.Store +{ + public class OR_PropertyValue + { + #region Fields + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + + [Required] + public Guid ItemOriginId { get; set; } + + [Required] + public Guid PropertyOriginId { get; set; } + + [Required(ErrorMessage = "A value is required")] + private string _value; + + #endregion + + #region Properties + + public string Value + { + get + { + return _value; + } + set + { + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid value"); + } + else + { + _value = value; + } + } + } + + #endregion + } +} diff --git a/.NET Core/Origin/Models/Store/OR_Role.cs b/.NET Core/Origin/Models/Store/OR_Role.cs index 4a0b3d3..53f95c4 100644 --- a/.NET Core/Origin/Models/Store/OR_Role.cs +++ b/.NET Core/Origin/Models/Store/OR_Role.cs @@ -1,26 +1,23 @@ using System; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.AspNetCore.Identity; namespace Origin.Models.Store { - public class OR_Role : IdentityRole + public class OR_Role : IdentityRole { + #region Fields + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private Guid _id; + public override int Id { get; set; } + + [Required(ErrorMessage = "A name is required")] private string _name; - public override Guid Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + #endregion + + #region Properties public override string Name { @@ -30,8 +27,17 @@ public override string Name } set { - _name = value; + if (String.IsNullOrEmpty(value)) + { + throw new Exception("Invalid name"); + } + else + { + _name = value; + } } } + + #endregion } } \ No newline at end of file diff --git a/.NET Core/Origin/Models/Store/OR_User.cs b/.NET Core/Origin/Models/Store/OR_User.cs index 60b5a19..5c6122c 100644 --- a/.NET Core/Origin/Models/Store/OR_User.cs +++ b/.NET Core/Origin/Models/Store/OR_User.cs @@ -5,7 +5,7 @@ namespace Origin.Models.Store { - public class OR_User : IdentityUser + public class OR_User : IdentityUser { #region Constructor @@ -17,34 +17,31 @@ public OR_User() #endregion + #region Fields + [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] - private Guid _id; - [StringLength(255), Required] + public override int Id { get; set; } + + public Guid OriginId { get; set; } + + //[StringLength(255), Required] private string _name; - [StringLength(255), Required] + + //[StringLength(255), Required] private string _surname; - [StringLength(50), Required] - private string _phoneNumber; - [DatabaseGenerated(DatabaseGeneratedOption.Computed)] - private bool _phoneNumberConfirmed; - [Required] - private string _email; - [DatabaseGenerated(DatabaseGeneratedOption.Computed)] - private bool _emailConfirmed; + + [Phone] + public override string PhoneNumber { get; set; } + + [EmailAddress, Required] + public override string Email { get; set; } + [Required] - private string _passwordHash; + public override string PasswordHash { get; set; } - public override Guid Id - { - get - { - return _id; - } - set - { - _id = value; - } - } + #endregion + + #region Properties public string Name { @@ -70,64 +67,6 @@ public string Surname } } - public override string PhoneNumber - { - get - { - return _phoneNumber; - } - set - { - _phoneNumber = value; - } - } - - public override bool PhoneNumberConfirmed - { - get - { - return _phoneNumberConfirmed; - } - set - { - _phoneNumberConfirmed = value; - } - } - - public override string Email - { - get - { - return _email; - } - set - { - _email = value; - } - } - - public override bool EmailConfirmed - { - get - { - return _emailConfirmed; - } - set - { - _emailConfirmed = value; - } - } - - public override string PasswordHash - { - get - { - return _passwordHash; - } - set - { - _passwordHash = value; - } - } + #endregion } } \ No newline at end of file diff --git a/.NET Core/Origin/Origin.csproj b/.NET Core/Origin/Origin.csproj index 77cffcc..c5fc505 100644 --- a/.NET Core/Origin/Origin.csproj +++ b/.NET Core/Origin/Origin.csproj @@ -21,6 +21,7 @@ + diff --git a/.NET Core/Origin/Program.cs b/.NET Core/Origin/Program.cs index 9b9a86e..84c63f3 100644 --- a/.NET Core/Origin/Program.cs +++ b/.NET Core/Origin/Program.cs @@ -1,9 +1,5 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Identity; -using Microsoft.Extensions.DependencyInjection; -using Origin.Models; -using Origin.Models.Store; namespace Origin { @@ -11,16 +7,7 @@ public class Program { public static void Main(string[] args) { - var host = BuildWebHost(args); - using (var scope = host.Services.CreateScope()) - { - var context = scope.ServiceProvider.GetService(); - var userManager = scope.ServiceProvider.GetService>(); - var roleManager = scope.ServiceProvider.GetService>(); - - SeedData.CreateAdminUserAndRole(context, userManager, roleManager).Wait(); - } - host.Run(); + BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => diff --git a/.NET Core/Origin/Resources/EN-us.xml b/.NET Core/Origin/Resources/EN-us.xml index f0d475a..cabddb4 100644 --- a/.NET Core/Origin/Resources/EN-us.xml +++ b/.NET Core/Origin/Resources/EN-us.xml @@ -9,6 +9,7 @@ + diff --git a/.NET Core/Origin/Services/Implementation/ItemService.cs b/.NET Core/Origin/Services/Implementation/ItemService.cs index 05d0525..b35ce9e 100644 --- a/.NET Core/Origin/Services/Implementation/ItemService.cs +++ b/.NET Core/Origin/Services/Implementation/ItemService.cs @@ -4,32 +4,34 @@ using Origin.ViewModel.Elements; using Origin.ViewModels.Requests; using Origin.ViewModels.Responses; +using Origin.Models; +using Origin.ViewModels; namespace Origin.Service.Implementation { class ItemService { - //#region Private + #region Private - //private OriginDbContext _dataContext; + private OriginDbContext _dataContext; //private Configuration _configuration; //private string _localizationErrorKey; - //#endregion + #endregion - //#region Constructor + #region Constructor + + public ItemService(OriginDbContext context) + { + _dataContext = context; + // _configuration = configurationService.GetConfiguration(); + // TODO: mettere in configurazione + //_localizationErrorKey = "General.Configuration.Error."; + } - //public ItemService() - //{ - // _dataContext = new OriginDbContext(); - // //_configuration = configurationService.GetConfiguration(); - // // TODO: mettere in configurazione - // _localizationErrorKey = "General.Configuration.Error."; - //} - - //#endregion + #endregion //#region Public Methods @@ -80,67 +82,65 @@ class ItemService // return viewModel; //} - //public GetItemsResponse GetItems(GetItemsRequest request) - //{ - // GetItemsResponse viewModel = new GetItemsResponse(); - - // try - // { - // var viewedItems = request.CurrentPage * request.ItemsPerPage; - - // // If the list isn't configurated in the settings, the application will not show it - // if (!_configuration.ItemLists.ItemLists.Any(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))) - // { - // throw new Exception(string.Format("{0}{1}", _localizationErrorKey, "ListNotConfigurated")); - // } - - // viewModel.Headers = _configuration.ItemLists.ItemLists - // .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) - // .VisibleFields.Select(vf => new GetItemsResponse.Header() - // { - // Name = vf.Name - // }) - // .OrderBy(vf => vf.Name) - // .ToList(); - - // viewModel.Items = _dataContext.OR_Items - // .OrderByDescending(i => i.CreationDate) - // .Skip(viewedItems).Take(request.ItemsPerPage) - // .Where(i => i.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) - // .Select(i => new GetItemsResponse.Item() - // { - // Id = i.Id, - // OriginId = i.OriginId.ToString(), - // ItemTypeOriginId = i.ItemTypeOriginId.ToString(), - // CreationDate = FormatDate(i.CreationDate), - // LastEditDate = FormatDate(i.LastEditDate), - // Properties = _dataContext.OR_Properties - // .Where(p => p.RelatedOriginId == i.OriginId) - // .Where(p => _configuration.ItemLists.ItemLists - // .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) - // .VisibleFields.Select(vf => vf.Name).ToList() - // .Contains(p.Name)) - // .Select(p => new GetItemsResponse.Property() - // { - // Id = p.Id, - // OriginId = p.OriginId.ToString(), - // Name = p.Name, - // Value = p.Value - // }) - // .OrderBy(p => p.Name) - // .ToList() - // }) - // .ToList(); - - // } - // catch (Exception exc) - // { - // viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error; - // viewModel.ResultInfo.ErrorMessage = exc.Message; - // } - - // return viewModel; - //} + public GetItemsResponse GetItemsToList(GetItemsRequest request) + { + GetItemsResponse viewModel = new GetItemsResponse(); + + try + { + var viewedItems = request.CurrentPage * request.ItemsPerPage; + + // If the list isn't configurated in the settings, the application will not show it + //if (!_configuration.ItemLists.ItemLists.Any(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))) + //{ + // throw new Exception(string.Format("{0}{1}", _localizationErrorKey, "ListNotConfigurated")); + //} + + //viewModel.Headers = _configuration.ItemLists.ItemLists + // .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) + // .VisibleFields.Select(vf => new GetItemsResponse.Header() + // { + // Name = vf.Name + // }) + // .OrderBy(vf => vf.Name) + // .ToList(); + + viewModel.Items = _dataContext.OR_Items + .OrderByDescending(i => i.CreationDate) + .Skip(viewedItems).Take(request.ItemsPerPage) + .Where(i => i.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) + .Select(i => new GetItemsResponse.Item() + { + Id = i.Id, + OriginId = i.OriginId.ToString(), + ItemTypeOriginId = i.ItemTypeOriginId.ToString(), + CreationDate = FormatDate(i.CreationDate), + LastEditDate = FormatDate(i.LastEditDate), + Properties = _dataContext.OR_PropertyValues + .Where(pv => pv.ItemOriginId == i.OriginId) + .Join(_dataContext.OR_Properties, + value => value.PropertyOriginId, + property => property.OriginId, + (value, property) => new GetItemsResponse.Property() + { + Id = property.Id, + OriginId = property.OriginId.ToString(), + Name = property.Name, + Value = value.Value + }) + .OrderBy(p => p.Name) + .ToList() + }) + .ToList(); + } + catch (Exception exc) + { + viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error; + viewModel.ResultInfo.ErrorMessage = exc.Message; + } + + return viewModel; + } //public GetItemResponse GetItem(GetItemRequest request) //{ @@ -281,14 +281,14 @@ class ItemService //#endregion - //#region Private Methods + #region Private Methods - //private GetLookupResponse GetLookup(string name) - //{ - // GetLookupResponse viewModel = new GetLookupResponse(); + private GetLookupResponse GetLookup(string name) + { + GetLookupResponse viewModel = new GetLookupResponse(); - // return viewModel; - //} + return viewModel; + } //private OR_ItemType GetItemType(string name) //{ @@ -298,11 +298,13 @@ class ItemService // return itemType; //} - //private string FormatDate(DateTime date) - //{ - // return date.ToString(_configuration.Date.Format); - //} + private string FormatDate(DateTime date) + { + // TODO: put in a UI configuration file + //return date.ToString(_configuration.Date.Format); + return date.ToString(); + } - //#endregion + #endregion } } diff --git a/.NET Core/Origin/Services/Implementation/ItemTypeService.cs b/.NET Core/Origin/Services/Implementation/ItemTypeService.cs new file mode 100644 index 0000000..99d3a3c --- /dev/null +++ b/.NET Core/Origin/Services/Implementation/ItemTypeService.cs @@ -0,0 +1,100 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using Origin.ViewModel.Elements; +using Origin.ViewModels.Requests; +using Origin.ViewModels.Responses; +using Origin.Models; +using Origin.ViewModels; + +namespace Origin.Service.Implementation +{ + class ItemTypeService + { + #region Private + + private OriginDbContext _dataContext; + + //private Configuration _configuration; + + //private string _localizationErrorKey; + + #endregion + + #region Constructor + + public ItemTypeService(OriginDbContext context) + { + _dataContext = context; + //_configuration = configurationService.GetConfiguration(); + // TODO: mettere in configurazione + //_localizationErrorKey = "General.Configuration.Error."; + } + + #endregion + + #region Public Methods + + // TODO: consider to create a different method to use for both GetItems and GetItemTypes + // Maybe GetItemTypesForList + public GetItemsResponse GetItemTypesToList(GetItemTypesRequest request) + { + GetItemsResponse viewModel = new GetItemsResponse(); + + try + { + var viewedItems = request.CurrentPage * request.ItemsPerPage; + + // If the list isn't configurated in the settings, the application will not show it + //if (!_configuration.ItemLists.ItemLists.Any(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))) + //{ + // throw new Exception(string.Format("{0}{1}", _localizationErrorKey, "ListNotConfigurated")); + //} + + //viewModel.Headers = _configuration.ItemLists.ItemLists + // .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) + // .VisibleFields.Select(vf => new GetItemsResponse.Header() + // { + // Name = vf.Name + // }) + // .OrderBy(vf => vf.Name) + // .ToList(); + + viewModel.Items = _dataContext.OR_ItemTypes + .Skip(viewedItems).Take(request.ItemsPerPage) + //.Where(i => i.ItemTypeOriginId.Equals(request.ItemTypeOriginId)) + .Select(i => new GetItemsResponse.Item() + { + Id = i.Id, + OriginId = i.OriginId.ToString(), + // TODO: This motherfucker don't have any properties. Just a name + Properties = new List() + { + new GetItemsResponse.Property() + { + // TODO: avoit to set id to zero, find a better way to do it + Id = 0, + // TODO: avoit to set OriginId to string.Empty, find a better way to do it + OriginId = string.Empty, + // TODO: avoid to set the name to name, find a better way to do it + Name = "Name", + Value = i.Name + } + } + }) + .ToList(); + + } + catch (Exception exc) + { + viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error; + viewModel.ResultInfo.ErrorMessage = exc.Message; + } + + return viewModel; + } + + #endregion + + } +} diff --git a/.NET Core/Origin/Services/Interfaces/IItemTypeService.cs b/.NET Core/Origin/Services/Interfaces/IItemTypeService.cs new file mode 100644 index 0000000..ef56c4d --- /dev/null +++ b/.NET Core/Origin/Services/Interfaces/IItemTypeService.cs @@ -0,0 +1,11 @@ +using Origin.ViewModels.Requests; +using Origin.ViewModels.Responses; +using Origin.ViewModels; + +namespace Origin.Service.Interfaces +{ + interface IItemTypeService + { + GetItemsResponse GetItemTypes(GetItemTypesRequest request); + } +} diff --git a/.NET Core/Origin/Startup.cs b/.NET Core/Origin/Startup.cs index f77a27f..984b668 100644 --- a/.NET Core/Origin/Startup.cs +++ b/.NET Core/Origin/Startup.cs @@ -12,6 +12,7 @@ namespace Origin { public class Startup { + // TODO: Take a look public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() @@ -32,24 +33,17 @@ public Startup(IHostingEnvironment env) public IConfiguration Configuration { get; } - // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { - // In-memory caching is a service that is referenced from your app using Dependency Injection. - services.AddMemoryCache(); services.AddMvc(); - // Add framework services. - services.AddDbContext(options => - options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); - - //services.AddSingleton(); + services.AddMemoryCache(); - services.AddDbContext(options => + services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); - + services.AddIdentity() - .AddEntityFrameworkStores() + .AddEntityFrameworkStores() .AddDefaultTokenProviders(); services.Configure(options => @@ -73,33 +67,21 @@ public void ConfigureServices(IServiceCollection services) services.ConfigureApplicationCookie(options => { - // Cookie settings options.Cookie.HttpOnly = true; options.Cookie.Expiration = TimeSpan.FromDays(150); - // If the LoginPath is not set here, ASP.NET Core will default to /Account/Login options.LoginPath = "/Account/Login"; - // If the LogoutPath is not set here, ASP.NET Core will default to /Account/Logout options.LogoutPath = "/Account/Logout"; - // If the AccessDeniedPath is not set here, ASP.NET Core will default to /Account/AccessDenied options.AccessDeniedPath = "/Account/AccessDenied"; options.SlidingExpiration = true; }); } - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); - - using (var serviceScope = app.ApplicationServices.GetRequiredService().CreateScope()) - { - serviceScope.ServiceProvider.GetService().Database.Migrate(); - serviceScope.ServiceProvider.GetService().Database.Migrate(); - serviceScope.ServiceProvider.GetService().EnsureSeedData(); - } } else { @@ -108,7 +90,6 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseStaticFiles(); - // Enable the identity for the application app.UseAuthentication(); app.UseMvc(routes => diff --git a/.NET Core/Origin/ViewModels/Requests/GetItemTypesRequest.cs b/.NET Core/Origin/ViewModels/Requests/GetItemTypesRequest.cs new file mode 100644 index 0000000..bd49e51 --- /dev/null +++ b/.NET Core/Origin/ViewModels/Requests/GetItemTypesRequest.cs @@ -0,0 +1,11 @@ +using Origin.ViewModels; + +namespace Origin.ViewModels.Requests +{ + public class GetItemTypesRequest : Base + { + public int CurrentPage { get; set; } + + public int ItemsPerPage { get; set; } + } +} diff --git a/.NET Core/Origin/Views/Shared/_Layout.cshtml b/.NET Core/Origin/Views/Shared/_Layout.cshtml index 1669cdc..eb4a034 100644 --- a/.NET Core/Origin/Views/Shared/_Layout.cshtml +++ b/.NET Core/Origin/Views/Shared/_Layout.cshtml @@ -101,6 +101,12 @@ +
  • + + + + +
  • diff --git a/.NET Core/Origin/Views/Shared/_TableDetails.cshtml b/.NET Core/Origin/Views/Shared/_TableDetails.cshtml deleted file mode 100644 index eeaf0ea..0000000 --- a/.NET Core/Origin/Views/Shared/_TableDetails.cshtml +++ /dev/null @@ -1,52 +0,0 @@ -
    - -
    -
    -

    -

    -
    -
    -
    -
      -
    • -
      -
      - # -
      - -
      - -
      - -
      -
    • - @* -
    • -
      -
      - -
      - -
      - -
      - -
      - -
      -
      -
    • - *@ -
    • -
      -
      - - - -
      -
      -
    • -
    -
    - -
    \ No newline at end of file diff --git a/.NET Core/Origin/Views/Shared/_TablesList.cshtml b/.NET Core/Origin/Views/Shared/_TablesList.cshtml deleted file mode 100644 index 4f93e15..0000000 --- a/.NET Core/Origin/Views/Shared/_TablesList.cshtml +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -
    -

    -

    -
    -
    - - -
    -
    - - - -
    - - @*41,410*@ -
    -
    -
    - - -
    \ No newline at end of file diff --git a/.NET Core/Origin/appsettings.json b/.NET Core/Origin/appsettings.json index 9a239f1..f91107c 100644 --- a/.NET Core/Origin/appsettings.json +++ b/.NET Core/Origin/appsettings.json @@ -5,10 +5,12 @@ "Default": "Warning" } }, + // TODO: Crypt connection string "ConnectionStrings": { "DefaultConnection": "Server=.\\SQLEXPRESS;Database=Origin;Trusted_Connection=True;MultipleActiveResultSets=true" }, + // TODO: Relative path and remove this configuration. It's useless "Paths": { - "Localization": "C:\\Users\\ivanp\\Documents\\Visual Studio 2017\\Projects\\Origin\\Origin\\Resources" + "Localization": "C:\\Users\\ivanp\\Desktop\\Origin\\.NET Core\\Origin\\Resources" } } diff --git a/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.dll b/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.dll index 645fd7b..dcc0d33 100644 Binary files a/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.dll and b/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.dll differ diff --git a/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.pdb b/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.pdb index 5ed8f5c..a867465 100644 Binary files a/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.pdb and b/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.pdb differ diff --git a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.CoreCompileInputs.cache b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.CoreCompileInputs.cache index 7a81909..e6689c9 100644 --- a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.CoreCompileInputs.cache +++ b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -32701ae0a6afb8a0d258e93c6bea73fc1418f4d2 +faec5e11c24cdeb258b5408b6098296f35f9f6e8 diff --git a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.FileListAbsolute.txt b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.FileListAbsolute.txt index c68a8e8..ff7e392 100644 --- a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.FileListAbsolute.txt +++ b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csproj.FileListAbsolute.txt @@ -35,3 +35,14 @@ C:\Users\ivanp\Documents\Visual Studio 2017\Projects\Origin\Origin\bin\Debug\net C:\Users\ivanp\Documents\Visual Studio 2017\Projects\Origin\Origin\bin\Debug\netcoreapp2.0\Origin.pdb C:\Users\ivanp\Documents\Visual Studio 2017\Projects\Origin\Origin\obj\Debug\netcoreapp2.0\Origin.dll C:\Users\ivanp\Documents\Visual Studio 2017\Projects\Origin\Origin\obj\Debug\netcoreapp2.0\Origin.pdb +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\bin\Debug\netcoreapp2.0\Origin.deps.json +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\bin\Debug\netcoreapp2.0\Origin.runtimeconfig.json +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\bin\Debug\netcoreapp2.0\Origin.runtimeconfig.dev.json +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\bin\Debug\netcoreapp2.0\Origin.dll +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\bin\Debug\netcoreapp2.0\Origin.pdb +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.csprojResolveAssemblyReference.cache +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.csproj.CoreCompileInputs.cache +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.AssemblyInfoInputs.cache +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.AssemblyInfo.cs +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.dll +C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\Debug\netcoreapp2.0\Origin.pdb diff --git a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csprojResolveAssemblyReference.cache b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csprojResolveAssemblyReference.cache index e01630d..c575fc5 100644 Binary files a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csprojResolveAssemblyReference.cache and b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.csprojResolveAssemblyReference.cache differ diff --git a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.dll b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.dll index 645fd7b..dcc0d33 100644 Binary files a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.dll and b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.dll differ diff --git a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.pdb b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.pdb index 5ed8f5c..a867465 100644 Binary files a/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.pdb and b/.NET Core/Origin/obj/Debug/netcoreapp2.0/Origin.pdb differ diff --git a/.NET Core/Origin/obj/Origin.csproj.nuget.cache b/.NET Core/Origin/obj/Origin.csproj.nuget.cache index 49614f3..48ccbf3 100644 --- a/.NET Core/Origin/obj/Origin.csproj.nuget.cache +++ b/.NET Core/Origin/obj/Origin.csproj.nuget.cache @@ -1,5 +1,5 @@ { "version": 1, - "dgSpecHash": "JMr5Ra6ehXwWqOyUYqAa0T4N1bwUXQrkSjMErJq4NV9tFB6ebhwKdoLj78VDWQbhUZv67XT6NS7tysB3AZMDyA==", + "dgSpecHash": "17nLvWcnUgrfIbRnvd271RAlJLcBwzJbNrM5IAW37Jgll5vbNQ5SE5JH9yyyvbckjWHG3+qCzWRqKBYQTHBdlw==", "success": true } \ No newline at end of file diff --git a/.NET Core/Origin/obj/Origin.csproj.nuget.g.props b/.NET Core/Origin/obj/Origin.csproj.nuget.g.props index 9b6cdbe..301165f 100644 --- a/.NET Core/Origin/obj/Origin.csproj.nuget.g.props +++ b/.NET Core/Origin/obj/Origin.csproj.nuget.g.props @@ -3,11 +3,11 @@ True NuGet - C:\Users\ivanp\Documents\Visual Studio 2017\Projects\Origin\Origin\obj\project.assets.json + C:\Users\ivanp\Desktop\Origin\.NET Core\Origin\obj\project.assets.json $(UserProfile)\.nuget\packages\ C:\Users\ivanp\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder PackageReference - 4.5.0 + 4.6.2 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/.NET Core/Origin/obj/Origin.csproj.nuget.g.targets b/.NET Core/Origin/obj/Origin.csproj.nuget.g.targets index 1df3eec..a3ec7db 100644 --- a/.NET Core/Origin/obj/Origin.csproj.nuget.g.targets +++ b/.NET Core/Origin/obj/Origin.csproj.nuget.g.targets @@ -6,8 +6,8 @@ - - - + + + \ No newline at end of file diff --git a/.NET Core/Origin/obj/project.assets.json b/.NET Core/Origin/obj/project.assets.json index 65e86a1..e48637e 100644 --- a/.NET Core/Origin/obj/project.assets.json +++ b/.NET Core/Origin/obj/project.assets.json @@ -13127,15 +13127,12 @@ }, "project": { "version": "1.0.0", - "restoreSettings": { - "hideWarningsAndErrors": true - }, "restore": { - "projectUniqueName": "C:\\Users\\ivanp\\Documents\\Visual Studio 2017\\Projects\\Origin\\Origin\\Origin.csproj", + "projectUniqueName": "C:\\Users\\ivanp\\Desktop\\Origin\\.NET Core\\Origin\\Origin.csproj", "projectName": "Origin", - "projectPath": "C:\\Users\\ivanp\\Documents\\Visual Studio 2017\\Projects\\Origin\\Origin\\Origin.csproj", + "projectPath": "C:\\Users\\ivanp\\Desktop\\Origin\\.NET Core\\Origin\\Origin.csproj", "packagesPath": "C:\\Users\\ivanp\\.nuget\\packages\\", - "outputPath": "C:\\Users\\ivanp\\Documents\\Visual Studio 2017\\Projects\\Origin\\Origin\\obj\\", + "outputPath": "C:\\Users\\ivanp\\Desktop\\Origin\\.NET Core\\Origin\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" diff --git a/.NET Core/Origin/wwwroot/css/site.css b/.NET Core/Origin/wwwroot/css/site.css index bf56f30..f97e495 100644 --- a/.NET Core/Origin/wwwroot/css/site.css +++ b/.NET Core/Origin/wwwroot/css/site.css @@ -72,7 +72,7 @@ .btn-primary:hover, .btn-primary:target { min-width: 30px; - background-color: #007078 !important; + background-color: #0067B8 !important; border: 1px solid #034e53; color: #ffffff; } @@ -111,8 +111,8 @@ a:focus { /* ==== 3. START: TOP NAVBAR ==== */ .topbar { - background: #007078; - border-color: #007078; + background: #0067B8; + border-color: #0067B8; border-radius: 0px; color: #FFFFFF; } @@ -184,13 +184,13 @@ a:focus { color: #fff; background: #fff; background: rgba(255,255,255,0.2); - border-left: 2px solid #007078; + border-left: 2px solid #0067B8; } .sidebar > .sidebar-nav > li a:active { text-decoration: none; } .sidebar > .sidebar-nav > li.active a { - border-left: 5px solid #007078; + border-left: 5px solid #0067B8; padding: 0px; } .sidebar > .sidebar-nav > li span { @@ -344,7 +344,7 @@ a:focus { text-align: center; font-size: 45px; line-height: 90px; - background-color: #007078; + background-color: #0067B8; color: #fff; } diff --git a/.NET Core/Origin/wwwroot/js/site.js b/.NET Core/Origin/wwwroot/js/site.js index 692d11b..90b5900 100644 --- a/.NET Core/Origin/wwwroot/js/site.js +++ b/.NET Core/Origin/wwwroot/js/site.js @@ -18,6 +18,9 @@ function ViewModel(baseUrl) { getItem: self.baseUrl + "Item/GetItem", deleteItem: self.baseUrl + "Item/DeleteItem", }, + itemTypes: { + getItemTypes: self.baseUrl + "ItemType/GetItemTypes" + }, form: { getForm: self.baseUrl + "Form/GetForm" } @@ -176,35 +179,6 @@ function ViewModel(baseUrl) { }); }; - self.getTables = function () { - - self.isLoading(true); - - var ajaxUrl = self.urls.general.getTables; - $.ajax({ - type: "GET", - url: ajaxUrl, - cache: false, - contentType: "application/json; charset=utf-8", - dataType: 'json', - success: function (viewModel) { - if (viewModel.resultInfo.result === 0) { - self.tablesList.tables.removeAll(); - ko.utils.arrayForEach(viewModel.tables, function (table) { - var tableToAdd = new TableViewModel(); - tableToAdd.setProperties(table, self.resources()); - self.tablesList.tables.push(tableToAdd); - }); - } else { - self.isError(true); - self.errorDetails = self.localizedText(viewModel.resultInfo.errorMessage); - } - }, - complete: function () { - self.isLoading(false); - } - }); - }; self.getItem = function () { self.isLoading(true); @@ -278,14 +252,14 @@ function ViewModel(baseUrl) { }); }; // TODO adjust - - self.getTable = function () { - + self.getItemTypes = function () + { self.isLoading(true); - var ajaxUrl = self.urls.general.getTable, + var ajaxUrl = self.urls.itemType.getItemTypes, ajaxData = { - name: self.tableDetails.name(), + currentPage: self.itemsList.page(), + itemsPerPage: self.itemsList.pageDimension() }; $.ajax({ type: "POST", @@ -295,18 +269,28 @@ function ViewModel(baseUrl) { contentType: "application/json; charset=utf-8", dataType: 'json', success: function (viewModel) { - if (viewModel.ResultInfo.Result === 0) { - self.itemDetails.setProperties(viewModel.Item, self.resources()); + if (viewModel.resultInfo.result === 0) { + + // set itemsList headers + // TODO: Move in another call, it's useless that i get this data foreach call + self.itemsList.Headers.removeAll(); + ko.utils.arrayForEach(viewModel.headers, function (header) { + var headerToAdd = new HeaderViewModel(); + header.localizedName = self.localizedText("Section.ItemsList.Property." + header.name); + headerToAdd.setProperties(header); + self.itemsList.headers.push(headerToAdd); + }); + + self.addItemsToItemsList(viewModel); } else { self.isError(true); - self.errorDetails = self.localizedText(viewModel.ResultInfo.ErrorMessage); + //self.errorDetails = self.localizedText(viewModel.ResultInfo.ErrorMessage); } }, complete: function () { self.isLoading(false); } }); - }; /* =============== 2. ADD ============= */ @@ -476,6 +460,11 @@ function ViewModel(baseUrl) { self.getItems(); self.toggleVisibilities("itemsList"); }; + self.onClickItemTypesList = function () { + self.resetItemList(); + self.getItemTypes(); + self.toggleVisibilities("itemsList"); + }; self.onClickConfiguration = function () { self.getTables(); self.toggleVisibilities("tablesList"); diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..7fe0a8d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,46 @@ +{ + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "version": "0.2.0", + "configurations": [ + { + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/.NET Core/Origin/bin/Debug/netcoreapp2.0/Origin.dll", + "args": [], + "cwd": "${workspaceFolder}/.NET Core/Origin", + "stopAtEntry": false, + "internalConsoleOptions": "openOnSessionStart", + "launchBrowser": { + "enabled": true, + "args": "${auto-detect-url}", + "windows": { + "command": "cmd.exe", + "args": "/C start ${auto-detect-url}" + }, + "osx": { + "command": "open" + }, + "linux": { + "command": "xdg-open" + } + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach", + "processId": "${command:pickProcess}" + } + ,] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ca6dbaa --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,15 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/.NET Core/Origin/Origin.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file