diff --git a/AzureDevOpsStateTracker.Functions/AzureDevOpsStateTracker.Functions.sln b/AzureDevOpsStateTracker.Functions/AzureDevOpsStateTracker.Functions.sln index 79411da..da8e283 100644 --- a/AzureDevOpsStateTracker.Functions/AzureDevOpsStateTracker.Functions.sln +++ b/AzureDevOpsStateTracker.Functions/AzureDevOpsStateTracker.Functions.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.31229.75 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureDevOpsStateTracker.Functions", "AzureDevOpsStateTracker.Functions.csproj", "{3C86C085-C8C6-46BB-8315-D4348928034C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureDevopsStateTracker", "..\AzureDevopsStateTracker\AzureDevopsStateTracker.csproj", "{04EC1CF9-5BEA-4E1D-9C1F-201FBD805B44}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureDevopsStateTracker", "..\AzureDevopsStateTracker\AzureDevopsStateTracker.csproj", "{9F58B2EA-6594-41E5-8BAD-DAC7DF9CADA7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -17,10 +17,10 @@ Global {3C86C085-C8C6-46BB-8315-D4348928034C}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C86C085-C8C6-46BB-8315-D4348928034C}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C86C085-C8C6-46BB-8315-D4348928034C}.Release|Any CPU.Build.0 = Release|Any CPU - {04EC1CF9-5BEA-4E1D-9C1F-201FBD805B44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04EC1CF9-5BEA-4E1D-9C1F-201FBD805B44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04EC1CF9-5BEA-4E1D-9C1F-201FBD805B44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04EC1CF9-5BEA-4E1D-9C1F-201FBD805B44}.Release|Any CPU.Build.0 = Release|Any CPU + {9F58B2EA-6594-41E5-8BAD-DAC7DF9CADA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F58B2EA-6594-41E5-8BAD-DAC7DF9CADA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F58B2EA-6594-41E5-8BAD-DAC7DF9CADA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F58B2EA-6594-41E5-8BAD-DAC7DF9CADA7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.Designer.cs b/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.Designer.cs new file mode 100644 index 0000000..9a8b8ed --- /dev/null +++ b/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.Designer.cs @@ -0,0 +1,154 @@ +// +using System; +using AzureDevopsStateTracker.Data; +using AzureDevopsStateTracker.Data.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace AzureDevopsStateTracker.Migrations +{ + [DbContext(typeof(AzureDevopsStateTrackerContext))] + [Migration("20210720105645_FunctionToTimeInitial")] + partial class FunctionToTimeInitial + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasDefaultSchema(DataBaseConfig.SchemaName) + .HasAnnotation("ProductVersion", "3.1.16") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("AzureDevopsStateTracker.Entities.TimeByState", b => + { + b.Property("Id") + .HasColumnType("varchar(200)"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("varchar(200)"); + + b.Property("TotalTime") + .HasColumnType("float"); + + b.Property("TotalWorkedTime") + .HasColumnType("float"); + + b.Property("WorkItemId") + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.HasIndex("WorkItemId"); + + b.ToTable("TimeByStates"); + }); + + modelBuilder.Entity("AzureDevopsStateTracker.Entities.WorkItem", b => + { + b.Property("Id") + .HasColumnType("varchar(200)"); + + b.Property("Activity") + .HasColumnType("varchar(200)"); + + b.Property("AreaPath") + .HasColumnType("varchar(200)"); + + b.Property("AssignedTo") + .HasColumnType("varchar(200)"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("CreatedBy") + .HasColumnType("varchar(200)"); + + b.Property("Effort") + .HasColumnType("varchar(200)"); + + b.Property("IterationPath") + .HasColumnType("varchar(200)"); + + b.Property("OriginalEstimate") + .HasColumnType("varchar(200)"); + + b.Property("StoryPoints") + .HasColumnType("varchar(200)"); + + b.Property("Tags") + .HasColumnType("varchar(200)"); + + b.Property("TeamProject") + .HasColumnType("varchar(200)"); + + b.Property("Title") + .HasColumnType("varchar(200)"); + + b.Property("Type") + .HasColumnType("varchar(200)"); + + b.Property("WorkItemParentId") + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("WorkItems"); + }); + + modelBuilder.Entity("AzureDevopsStateTracker.Entities.WorkItemChange", b => + { + b.Property("Id") + .HasColumnType("varchar(200)"); + + b.Property("ChangedBy") + .HasColumnType("varchar(200)"); + + b.Property("CreatedAt") + .HasColumnType("datetime2"); + + b.Property("NewDate") + .HasColumnType("datetime2"); + + b.Property("NewState") + .HasColumnType("varchar(200)"); + + b.Property("OldDate") + .HasColumnType("datetime2"); + + b.Property("OldState") + .HasColumnType("varchar(200)"); + + b.Property("WorkItemId") + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.HasIndex("WorkItemId"); + + b.ToTable("WorkItemsChange"); + }); + + modelBuilder.Entity("AzureDevopsStateTracker.Entities.TimeByState", b => + { + b.HasOne("AzureDevopsStateTracker.Entities.WorkItem", "WorkItem") + .WithMany("TimeByStates") + .HasForeignKey("WorkItemId"); + }); + + modelBuilder.Entity("AzureDevopsStateTracker.Entities.WorkItemChange", b => + { + b.HasOne("AzureDevopsStateTracker.Entities.WorkItem", "WorkItem") + .WithMany("WorkItemsChanges") + .HasForeignKey("WorkItemId"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.cs b/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.cs new file mode 100644 index 0000000..d6dd362 --- /dev/null +++ b/AzureDevopsStateTracker/Migrations/20210720105645_FunctionToTimeInitial.cs @@ -0,0 +1,24 @@ +using AzureDevopsStateTracker.Data; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace AzureDevopsStateTracker.Migrations +{ + public partial class FunctionToTimeInitial : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + var rawFunction = @"CREATE OR ALTER FUNCTION ToTime (@segundos float) + RETURNS TIME + AS BEGIN + return CONVERT(TIME, DATEADD(SECOND, @segundos + 86400000, 0), 114) + END"; + migrationBuilder.Sql(rawFunction); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + var dropFunction = @$"DROP FUNCTION IF EXISTS {DataBaseConfig.SchemaName}.ToTime"; + migrationBuilder.Sql(dropFunction); + } + } +}