From 7e9d0dfe97be977f50ce3bea112e553d088ff4ae Mon Sep 17 00:00:00 2001 From: Lucio Maranta Date: Thu, 12 Jul 2018 11:41:37 +0200 Subject: [PATCH] Added favorite softkey API --- .../FavoriteUserSoftkeysController.cs | 65 +++++++++++++++++++ Step.Database/DatabaseContext.cs | 1 + ...201807120908403_InitMigration.Designer.cs} | 2 +- ...on.cs => 201807120908403_InitMigration.cs} | 10 +++ ...esx => 201807120908403_InitMigration.resx} | 2 +- Step.Database/Step.Database.csproj | 11 ++-- .../FavoriteUserSoftKeyModel.cs | 20 ++++++ Step.Model/Step.Model.csproj | 1 + .../WebApi/FavoriteUserSoftKeyController.cs | 58 +++++++++++++++++ Step/Step.csproj | 1 + 10 files changed, 164 insertions(+), 7 deletions(-) create mode 100644 Step.Database/Controllers/FavoriteUserSoftkeysController.cs rename Step.Database/Migrations/{201806220920193_InitMigration.Designer.cs => 201807120908403_InitMigration.Designer.cs} (92%) rename Step.Database/Migrations/{201806220920193_InitMigration.cs => 201807120908403_InitMigration.cs} (95%) rename Step.Database/Migrations/{201806220920193_InitMigration.resx => 201807120908403_InitMigration.resx} (50%) create mode 100644 Step.Model/DatabaseModels/FavoriteUserSoftKeyModel.cs create mode 100644 Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs diff --git a/Step.Database/Controllers/FavoriteUserSoftkeysController.cs b/Step.Database/Controllers/FavoriteUserSoftkeysController.cs new file mode 100644 index 00000000..11f5e6c4 --- /dev/null +++ b/Step.Database/Controllers/FavoriteUserSoftkeysController.cs @@ -0,0 +1,65 @@ +using Step.Model.DatabaseModels; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Step.Database.Controllers +{ + public class FavoriteUserSoftkeysController : IDisposable + { + private DatabaseContext dbCtx; + + public FavoriteUserSoftkeysController() + { + // Initialize database context + dbCtx = new DatabaseContext(); + } + + public void Dispose() + { + // Clear database context + dbCtx.Dispose(); + } + + public List GetUserFavoriteSoftkeys(int userId) + { + return dbCtx. + FavoriteUserSoftkeys + .Where(x => x.UserId == userId) + .ToList(); + } + + public List InsertUserSoftkeyModel(List softKeyIds, int userId) + { + List softKeys = new List(); + // Create new list with db models + foreach (int softKeyId in softKeyIds) + { + softKeys.Add(new FavoriteUserSoftkeyModel() + { + UserId = userId, + SoftkeyId = softKeyId + }); + } + // Add list to database + dbCtx.FavoriteUserSoftkeys.AddRange(softKeys); + dbCtx.SaveChanges(); + + return softKeys; + } + + public void DeleteUserSoftkeyModel(int userId) + { + // Get user favorite softkeys + List softKeys = GetUserFavoriteSoftkeys(userId); + + foreach(FavoriteUserSoftkeyModel sofkey in softKeys) + { + // Delete + dbCtx.FavoriteUserSoftkeys.Remove(sofkey); + } + // Save database context + dbCtx.SaveChanges(); + } + } +} diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 41eee8de..0d393933 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -28,6 +28,7 @@ namespace Step.Database public DbSet PerformedMaintenances { get; set; } public DbSet MaintenancesNotes { get; set; } public DbSet MaintenanceFiles { get; set; } + public DbSet FavoriteUserSoftkeys { get; set; } // Create migration string public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME +";Uid="+ DATABASE_USER +";Pwd="+ DATABASE_PWD +";"; diff --git a/Step.Database/Migrations/201806220920193_InitMigration.Designer.cs b/Step.Database/Migrations/201807120908403_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201806220920193_InitMigration.Designer.cs rename to Step.Database/Migrations/201807120908403_InitMigration.Designer.cs index c9143e22..e85b13ea 100644 --- a/Step.Database/Migrations/201806220920193_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201807120908403_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201806220920193_InitMigration"; } + get { return "201807120908403_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201806220920193_InitMigration.cs b/Step.Database/Migrations/201807120908403_InitMigration.cs similarity index 95% rename from Step.Database/Migrations/201806220920193_InitMigration.cs rename to Step.Database/Migrations/201807120908403_InitMigration.cs index c01635d2..13fd7834 100644 --- a/Step.Database/Migrations/201806220920193_InitMigration.cs +++ b/Step.Database/Migrations/201807120908403_InitMigration.cs @@ -7,6 +7,15 @@ namespace Step.Database.Migrations { public override void Up() { + CreateTable( + "dbo.favorite_user_softkey", + c => new + { + user_softkey_id = c.Int(nullable: false), + user_id = c.Int(nullable: false), + }) + .PrimaryKey(t => new { t.user_softkey_id, t.user_id }); + CreateTable( "dbo.function_access", c => new @@ -181,6 +190,7 @@ namespace Step.Database.Migrations DropTable("dbo.machine_user"); DropTable("dbo.machine"); DropTable("dbo.function_access"); + DropTable("dbo.favorite_user_softkey"); } } } diff --git a/Step.Database/Migrations/201806220920193_InitMigration.resx b/Step.Database/Migrations/201807120908403_InitMigration.resx similarity index 50% rename from Step.Database/Migrations/201806220920193_InitMigration.resx rename to Step.Database/Migrations/201807120908403_InitMigration.resx index 7e3fbe82..85236052 100644 --- a/Step.Database/Migrations/201806220920193_InitMigration.resx +++ b/Step.Database/Migrations/201807120908403_InitMigration.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 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 dbo diff --git a/Step.Database/Step.Database.csproj b/Step.Database/Step.Database.csproj index 41eaceba..6b272a17 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -70,6 +70,7 @@ + @@ -77,9 +78,9 @@ - - - 201806220920193_InitMigration.cs + + + 201807120908403_InitMigration.cs @@ -115,8 +116,8 @@ - - 201806220920193_InitMigration.cs + + 201807120908403_InitMigration.cs diff --git a/Step.Model/DatabaseModels/FavoriteUserSoftKeyModel.cs b/Step.Model/DatabaseModels/FavoriteUserSoftKeyModel.cs new file mode 100644 index 00000000..60771e52 --- /dev/null +++ b/Step.Model/DatabaseModels/FavoriteUserSoftKeyModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DatabaseModels +{ + [Table("favorite_user_softkey")] + public class FavoriteUserSoftkeyModel + { + [Key, Column("user_softkey_id", Order = 0)] + public int SoftkeyId { get; set; } + + [Key, Column("user_id", Order = 1)] + public int UserId { get; set; } + } +} diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index 456e8864..355ea9d2 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -69,6 +69,7 @@ + diff --git a/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs b/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs new file mode 100644 index 00000000..3cf02595 --- /dev/null +++ b/Step/Controllers/WebApi/FavoriteUserSoftKeyController.cs @@ -0,0 +1,58 @@ +using Step.Database.Controllers; +using Step.Model.DatabaseModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; +using System.Web.Http; +using static Step.Model.Constants; + +namespace Step.Controllers.WebApi +{ + [RoutePrefix("api/user_softkey")] + public class FavoriteUserSoftkeyController : ApiController + { + [Route("favorite"), HttpGet] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)] + public IHttpActionResult GetFavoriteSoftkeys() + { + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + int userIdInt = Convert.ToInt32(userId.Value); + using (FavoriteUserSoftkeysController controller = new FavoriteUserSoftkeysController()) + { + return Ok( + controller.GetUserFavoriteSoftkeys(userIdInt) + ); + } + } + + [Route("favorite"), HttpPut] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)] + public IHttpActionResult PutFavoriteSoftkeys(List favoriteSoftkeyIds) + { + var identity = User.Identity as ClaimsIdentity; + + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + int intUserId = Convert.ToInt32(userId.Value); + using (FavoriteUserSoftkeysController controller = new FavoriteUserSoftkeysController()) + { + // Delete saved softkey + controller.DeleteUserSoftkeyModel(intUserId); + List favorite = new List(); + if (favoriteSoftkeyIds == null && favoriteSoftkeyIds.Count > 0) + { + // Insert new list of id + favorite = controller.InsertUserSoftkeyModel(favoriteSoftkeyIds, intUserId); + } + + return Ok(favorite); + } + } + + + } +} diff --git a/Step/Step.csproj b/Step/Step.csproj index 9702a336..665c8111 100644 --- a/Step/Step.csproj +++ b/Step/Step.csproj @@ -172,6 +172,7 @@ +