From f91b935374aebabd1307e05380a9499e3c2c38ca Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Fri, 13 Oct 2023 18:28:15 -0400
Subject: [PATCH 01/30] Added Azure Pipeline to ACR
---
...28165655_InitialDocumentCreate.Designer.cs | 95 --------------
.../20230828165655_InitialDocumentCreate.cs | 60 ---------
...0830200432_DocumentTranslation.Designer.cs | 118 ------------------
.../20230830200432_DocumentTranslation.cs | 70 -----------
.../DocumentDbContextModelSnapshot.cs | 115 -----------------
DamageAssesmentApi/azure-pipelines.yml | 21 ++++
6 files changed, 21 insertions(+), 458 deletions(-)
delete mode 100644 DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
delete mode 100644 DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
delete mode 100644 DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
delete mode 100644 DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
delete mode 100644 DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
create mode 100644 DamageAssesmentApi/azure-pipelines.yml
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
deleted file mode 100644
index 8072057..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-using System;
-using DamageAssesment.Api.DocuLinks.Db;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace DamageAssesment.Api.DocuLinks.Migrations
-{
- [DbContext(typeof(DoculinkDbContext))]
- [Migration("20230828165655_InitialDocumentCreate")]
- partial class InitialDocumentCreate
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "7.0.9")
- .HasAnnotation("Relational:MaxIdentifierLength", 128);
-
- SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Document", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("Path")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("dateCreated")
- .HasColumnType("datetime2");
-
- b.Property("dateUpdated")
- .HasColumnType("datetime2");
-
- b.Property("description")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("docName")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("linkTypeId")
- .HasColumnType("int");
-
- b.Property("title")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("url")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("Documents");
- });
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("TypeText")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("LinkTypes");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
deleted file mode 100644
index 741574e..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DamageAssesment.Api.DocuLinks.Migrations
-{
- ///
- public partial class InitialDocumentCreate : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Documents",
- columns: table => new
- {
- Id = table.Column(type: "int", nullable: false)
- .Annotation("SqlServer:Identity", "1, 1"),
- title = table.Column(type: "nvarchar(max)", nullable: false),
- linkTypeId = table.Column(type: "int", nullable: false),
- description = table.Column(type: "nvarchar(max)", nullable: false),
- docName = table.Column(type: "nvarchar(max)", nullable: false),
- url = table.Column(type: "nvarchar(max)", nullable: false),
- Path = table.Column(type: "nvarchar(max)", nullable: false),
- IsActive = table.Column(type: "bit", nullable: false),
- dateCreated = table.Column(type: "datetime2", nullable: false),
- dateUpdated = table.Column(type: "datetime2", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Documents", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "LinkTypes",
- columns: table => new
- {
- Id = table.Column(type: "int", nullable: false)
- .Annotation("SqlServer:Identity", "1, 1"),
- TypeText = table.Column(type: "nvarchar(max)", nullable: false),
- IsActive = table.Column(type: "bit", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_LinkTypes", x => x.Id);
- });
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "Documents");
-
- migrationBuilder.DropTable(
- name: "LinkTypes");
- }
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
deleted file mode 100644
index b9006ba..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-using System;
-using DamageAssesment.Api.DocuLinks.Db;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace DamageAssesment.Api.DocuLinks.Migrations
-{
- [DbContext(typeof(DoculinkDbContext))]
- [Migration("20230830200432_DocumentTranslation")]
- partial class DocumentTranslation
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "7.0.9")
- .HasAnnotation("Relational:MaxIdentifierLength", 128);
-
- SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Document", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("Path")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("dateCreated")
- .HasColumnType("datetime2");
-
- b.Property("dateUpdated")
- .HasColumnType("datetime2");
-
- b.Property("docName")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("linkTypeId")
- .HasColumnType("int");
-
- b.Property("url")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("Documents");
- });
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DocumentsTranslation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("DocumentId")
- .HasColumnType("int");
-
- b.Property("Language")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("description")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("title")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("DocumentsTranslations");
- });
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("IsAttachment")
- .HasColumnType("bit");
-
- b.Property("TypeText")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("LinkTypes");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
deleted file mode 100644
index d639539..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DamageAssesment.Api.DocuLinks.Migrations
-{
- ///
- public partial class DocumentTranslation : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropColumn(
- name: "description",
- table: "Documents");
-
- migrationBuilder.DropColumn(
- name: "title",
- table: "Documents");
-
- migrationBuilder.AddColumn(
- name: "IsAttachment",
- table: "LinkTypes",
- type: "bit",
- nullable: false,
- defaultValue: false);
-
- migrationBuilder.CreateTable(
- name: "DocumentsTranslations",
- columns: table => new
- {
- Id = table.Column(type: "int", nullable: false)
- .Annotation("SqlServer:Identity", "1, 1"),
- DocumentId = table.Column(type: "int", nullable: false),
- title = table.Column(type: "nvarchar(max)", nullable: false),
- description = table.Column(type: "nvarchar(max)", nullable: false),
- Language = table.Column(type: "nvarchar(max)", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_DocumentsTranslations", x => x.Id);
- });
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "DocumentsTranslations");
-
- migrationBuilder.DropColumn(
- name: "IsAttachment",
- table: "LinkTypes");
-
- migrationBuilder.AddColumn(
- name: "description",
- table: "Documents",
- type: "nvarchar(max)",
- nullable: false,
- defaultValue: "");
-
- migrationBuilder.AddColumn(
- name: "title",
- table: "Documents",
- type: "nvarchar(max)",
- nullable: false,
- defaultValue: "");
- }
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
deleted file mode 100644
index a692f80..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-using System;
-using DamageAssesment.Api.DocuLinks.Db;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace DamageAssesment.Api.DocuLinks.Migrations
-{
- [DbContext(typeof(DoculinkDbContext))]
- partial class DocumentDbContextModelSnapshot : ModelSnapshot
- {
- protected override void BuildModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "7.0.9")
- .HasAnnotation("Relational:MaxIdentifierLength", 128);
-
- SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Document", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("Path")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("dateCreated")
- .HasColumnType("datetime2");
-
- b.Property("dateUpdated")
- .HasColumnType("datetime2");
-
- b.Property("docName")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("linkTypeId")
- .HasColumnType("int");
-
- b.Property("url")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("Documents");
- });
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DocumentsTranslation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("DocumentId")
- .HasColumnType("int");
-
- b.Property("Language")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("description")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("title")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("DocumentsTranslations");
- });
-
- modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("int");
-
- SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
-
- b.Property("IsActive")
- .HasColumnType("bit");
-
- b.Property("IsAttachment")
- .HasColumnType("bit");
-
- b.Property("TypeText")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.ToTable("LinkTypes");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
new file mode 100644
index 0000000..147dd91
--- /dev/null
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -0,0 +1,21 @@
+trigger:
+ - docker-branch # Change this to your preferred branch or trigger
+
+pr:
+ - '*'
+
+pool:
+ vmImage: 'ubuntu-latest'
+
+jobs:
+- job: 'BuildAndPush'
+ steps:
+ - script: |
+ docker-compose -f docker-compose.yml build
+ docker login -u $(acrServiceConnectionUsername) -p $(acrServiceConnectionPassword) $(acrServiceConnectionServer)
+ docker-compose -f docker-compose.yml push
+ displayName: 'Build and Push Docker Compose Project'
+ env:
+ acrServiceConnectionUsername: $(ACRServiceConnectionName.username)
+ acrServiceConnectionPassword: $(ACRServiceConnectionName.password)
+ acrServiceConnectionServer: $(ACRServiceConnectionName.server)
\ No newline at end of file
From 45109881ad3a7909550a08f15a459c9c545baf2e Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Sat, 14 Oct 2023 04:12:30 +0000
Subject: [PATCH 02/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 147dd91..747ee0f 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -16,6 +16,6 @@ jobs:
docker-compose -f docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
env:
- acrServiceConnectionUsername: $(ACRServiceConnectionName.username)
- acrServiceConnectionPassword: $(ACRServiceConnectionName.password)
- acrServiceConnectionServer: $(ACRServiceConnectionName.server)
\ No newline at end of file
+ acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
+ acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
+ acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
From d3cf6a63e51d2c215065967afd75531a1e0c166d Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Sat, 14 Oct 2023 04:13:24 +0000
Subject: [PATCH 03/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 747ee0f..32a0e68 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -9,13 +9,13 @@ pool:
jobs:
- job: 'BuildAndPush'
+ env:
+ acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
+ acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
+ acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
steps:
- script: |
docker-compose -f docker-compose.yml build
docker login -u $(acrServiceConnectionUsername) -p $(acrServiceConnectionPassword) $(acrServiceConnectionServer)
docker-compose -f docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
- env:
- acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
- acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
- acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
From 0dd6d3b1e36afcfc6e8452f9f14e39326ee0896b Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Sat, 14 Oct 2023 04:14:40 +0000
Subject: [PATCH 04/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 32a0e68..3f78ac3 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -9,13 +9,15 @@ pool:
jobs:
- job: 'BuildAndPush'
- env:
- acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
- acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
- acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
+ pool:
+ vmImage: 'ubuntu-latest'
steps:
- script: |
docker-compose -f docker-compose.yml build
docker login -u $(acrServiceConnectionUsername) -p $(acrServiceConnectionPassword) $(acrServiceConnectionServer)
docker-compose -f docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
+ env:
+ acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
+ acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
+ acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
From 7985428f8b70037edecd4c85818936086b00d83d Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Sat, 14 Oct 2023 04:16:24 +0000
Subject: [PATCH 05/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 3f78ac3..33fad0a 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,5 +1,7 @@
trigger:
- - docker-branch # Change this to your preferred branch or trigger
+ branches:
+ include:
+ - docker-branch # Change this to your preferred branch or trigger
pr:
- '*'
From 3ac36bf86fc09475c4b74ee40a43bb0b77ab0931 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Sun, 15 Oct 2023 16:48:47 +0000
Subject: [PATCH 06/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 33fad0a..aba5677 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -16,10 +16,7 @@ jobs:
steps:
- script: |
docker-compose -f docker-compose.yml build
- docker login -u $(acrServiceConnectionUsername) -p $(acrServiceConnectionPassword) $(acrServiceConnectionServer)
+ docker login -u $("dadeSchoolsContainerRegistry") -p $("k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn") $("dadeschoolscontainerregistry.azurecr.io")
docker-compose -f docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
- env:
- acrServiceConnectionUsername: "dadeSchoolsContainerRegistry"
- acrServiceConnectionPassword: "k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn"
- acrServiceConnectionServer: "dadeschoolscontainerregistry.azurecr.io"
+
\ No newline at end of file
From 55e27059e5d018760c90293465fb404211fbf99b Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 03:31:15 +0000
Subject: [PATCH 07/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index aba5677..996f9db 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,8 +1,3 @@
-trigger:
- branches:
- include:
- - docker-branch # Change this to your preferred branch or trigger
-
pr:
- '*'
@@ -14,9 +9,14 @@ jobs:
pool:
vmImage: 'ubuntu-latest'
steps:
+ - checkout: self
- script: |
docker-compose -f docker-compose.yml build
- docker login -u $("dadeSchoolsContainerRegistry") -p $("k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn") $("dadeschoolscontainerregistry.azurecr.io")
+ docker login -u "$(dadeSchoolsContainerRegistry)" -p "$(k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn)" "dadeschoolscontainerregistry.azurecr.io"
docker-compose -f docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
-
\ No newline at end of file
+
+trigger:
+ branches:
+ include:
+ - docker-branch
From 7935302b2d31c112af057590519e23086803e403 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 03:40:48 +0000
Subject: [PATCH 08/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 996f9db..4ee7e7b 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,3 +1,5 @@
+name: Build & Push to ACR Pipeline # Replace "Build and Push to ACR" with the desired name
+
pr:
- '*'
@@ -11,9 +13,9 @@ jobs:
steps:
- checkout: self
- script: |
- docker-compose -f docker-compose.yml build
+ docker-compose -f compose-files/docker-compose.sql.yml build
docker login -u "$(dadeSchoolsContainerRegistry)" -p "$(k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn)" "dadeschoolscontainerregistry.azurecr.io"
- docker-compose -f docker-compose.yml push
+ docker-compose -f compose-files/docker-compose.sql.yml push
displayName: 'Build and Push Docker Compose Project'
trigger:
From dadbcf98b9473eaf63fce9075ff9372c78ca38e2 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 03:44:19 +0000
Subject: [PATCH 09/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 4ee7e7b..f6df08d 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,4 +1,4 @@
-name: Build & Push to ACR Pipeline # Replace "Build and Push to ACR" with the desired name
+name: Build & Push to ACR Pipeline
pr:
- '*'
@@ -13,9 +13,9 @@ jobs:
steps:
- checkout: self
- script: |
- docker-compose -f compose-files/docker-compose.sql.yml build
+ docker-compose build
docker login -u "$(dadeSchoolsContainerRegistry)" -p "$(k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn)" "dadeschoolscontainerregistry.azurecr.io"
- docker-compose -f compose-files/docker-compose.sql.yml push
+ docker-compose push
displayName: 'Build and Push Docker Compose Project'
trigger:
From 08f873e8e35ec75836074309de23f7748cab8f70 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 03:47:09 +0000
Subject: [PATCH 10/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index f6df08d..e473b30 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -13,9 +13,9 @@ jobs:
steps:
- checkout: self
- script: |
- docker-compose build
+ docker-compose -f **/docker-compose.yml build
docker login -u "$(dadeSchoolsContainerRegistry)" -p "$(k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn)" "dadeschoolscontainerregistry.azurecr.io"
- docker-compose push
+ docker-compose -f **/docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
trigger:
From c89c6f60c36d72f1853c0d418195ae78ef2f312a Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 11:21:54 +0000
Subject: [PATCH 11/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index e473b30..7cc8ea8 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -13,8 +13,9 @@ jobs:
steps:
- checkout: self
- script: |
+ export DOCKER_CLI_CONTEXT=default
docker-compose -f **/docker-compose.yml build
- docker login -u "$(dadeSchoolsContainerRegistry)" -p "$(k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn)" "dadeschoolscontainerregistry.azurecr.io"
+ docker login -u dadeSchoolsContainerRegistry -p k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn dadeschoolscontainerregistry.azurecr.io
docker-compose -f **/docker-compose.yml push
displayName: 'Build and Push Docker Compose Project'
From 8a803ad1577b74bd4683aae3f3051a49cc40ef6c Mon Sep 17 00:00:00 2001
From: uppuv
Date: Mon, 16 Oct 2023 14:02:28 -0400
Subject: [PATCH 12/30] added logic to get active surveys from survey responses
---
.../Controllers/SurveyResponsesController.cs | 22 ++++++++++++---
.../Interfaces/ISurveysResponse.cs | 4 +--
.../Providers/SurveyResponsesProvider.cs | 28 +++++++++----------
.../Providers/SurveysProvider.cs | 5 ++--
4 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
index d5f6192..36f40a5 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
@@ -198,11 +198,12 @@ namespace DamageAssesment.Api.Responses.Controllers
else
return BadRequest(result.ErrorMessage);
}
-
+ [Route("responses/surveys/active")]
+ [Route("responses/surveys/active/{language:alpha}")]
[Route("responses/surveys/active/{employeeid:int}")]
[Route("responses/surveys/active/{employeeid:int}/{language:alpha}")]
[HttpGet]
- public async Task GetActiveSurveysAsync(int employeeid, string? language)
+ public async Task GetActiveSurveysAsync(int? employeeid, string? language)
{
var result = await this.surveyResponseProvider.GetActiveSurveysAsync(employeeid, language);
if (result.IsSuccess)
@@ -211,11 +212,24 @@ namespace DamageAssesment.Api.Responses.Controllers
}
return NoContent();
}
-
+ //[Route("responses/surveys/active")]
+ //[Route("responses/surveys/active/{language:alpha}")]
+ //[HttpGet]
+ //public async Task GetActiveSurveysAsync( string? language)
+ //{
+ // var result = await this.surveyResponseProvider.GetActiveSurveysAsync(null, language);
+ // if (result.IsSuccess)
+ // {
+ // return Ok(result.Surveys);
+ // }
+ // return NoContent();
+ //}
+ [Route("responses/surveys/historic")]
+ [Route("responses/surveys/historic/{language:alpha}")]
[Route("responses/surveys/historic/{employeeid:int}")]
[Route("responses/surveys/historic/{employeeid:int}/{language:alpha}")]
[HttpGet]
- public async Task GetHistoricSurveysAsync(int employeeid, string? language)
+ public async Task GetHistoricSurveysAsync(int? employeeid, string? language)
{
var result = await this.surveyResponseProvider.GetHistoricSurveysAsync(employeeid, language);
if (result.IsSuccess)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Interfaces/ISurveysResponse.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Interfaces/ISurveysResponse.cs
index dea50eb..19893c8 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Interfaces/ISurveysResponse.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Interfaces/ISurveysResponse.cs
@@ -9,8 +9,8 @@ namespace DamageAssesment.Api.Responses.Interfaces
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse);
// Task<(bool IsSuccess,dynamic surveyResponses, string ErrorMessage)> GetSurveyResponseAsync(int responseId);
Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync(int employeeid);
- Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int employeeid, string language);
- Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int employeeid, string language);
+ Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language);
+ Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int? employeeid, string language);
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse);
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> DeleteSurveyResponseAsync(int Id);
Task<(bool IsSuccess, dynamic SurveyResponse, string ErrorMessage)> GetSurveyResponseByIdAsync(int responseId);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
index 5278c5c..af11925 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
@@ -112,24 +112,18 @@ namespace DamageAssesment.Api.Responses.Providers
}
}
- public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int employeeid, string language)
+ public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language)
{
try
{
logger?.LogInformation("Querying to get SurveyResponse object from DB");
//get all the survey that already taken by the employee
- var listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).Select(y => y.SurveyId).ToListAsync();
var surveys = await surveyServiceProvider.getSurveysAsync(language);
-
- if (surveys != null)
- {
- surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
- }
-
- if (listOfsurveysId==null || listOfsurveysId.Count == 0)
+ surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
+ if (employeeid==null || employeeid==0)
return (true, surveys, null);
-
- var activeSurveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now && !listOfsurveysId.Contains(s.Id));
+ List listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid.Value).Select(y => y.SurveyId).ToListAsync();
+ var activeSurveys = surveys.Where(s => !listOfsurveysId.Contains(s.Id));
return (true, activeSurveys, null);
}
catch (Exception ex)
@@ -139,21 +133,25 @@ namespace DamageAssesment.Api.Responses.Providers
}
}
- public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int employeeid, string language)
+ public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int? employeeid, string language)
{
try
{
logger?.LogInformation("Querying to get SurveyResponse object from DB");
- //get all the survey that already taken by the employee
- var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
+
var surveys = await surveyServiceProvider.getSurveysAsync(language);
+ // returning only historic data: end date is less than current date.
+ surveys = surveys.Where(s => s.EndDate < DateTime.Now).ToList();
+ if(employeeid==null|| employeeid==0)
+ return (true, surveys, null);
+ var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
var historicSurveys = from s in surveys
from r in surveyResponses
where s.Id == r.SurveyId
select s;
-
return (true, historicSurveys, null);
+
}
catch (Exception ex)
{
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
index 2d6cbc9..de945c6 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
@@ -18,7 +18,7 @@ namespace DamageAssesment.Api.Surveys.Providers
this.surveyDbContext = surveysDbContext;
this.logger = logger;
this.mapper = mapper;
- //seedData();
+ // seedData();
}
// Method to seed initial data into the database
@@ -93,7 +93,8 @@ namespace DamageAssesment.Api.Surveys.Providers
try
{
logger?.LogInformation("Get all Surveys from DB");
- var surveys = await surveyDbContext.Surveys.Where(s => s.IsEnabled == true).ToListAsync();
+ //checking is enabled in survey response
+ var surveys = await surveyDbContext.Surveys.ToListAsync();//Where(s => s.IsEnabled == true)
if (surveys != null)
{
From 8349e78f6ecbb15f7eaccfd83da708e8d4b92e40 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Mon, 16 Oct 2023 23:30:50 +0000
Subject: [PATCH 13/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 64 ++++++++++++++++++++------
1 file changed, 50 insertions(+), 14 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 7cc8ea8..2e367d4 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,25 +1,61 @@
name: Build & Push to ACR Pipeline
+trigger:
+- '*'
+
pr:
- - '*'
+- '*'
pool:
vmImage: 'ubuntu-latest'
jobs:
-- job: 'BuildAndPush'
- pool:
- vmImage: 'ubuntu-latest'
+- job: BuildAndPushImages
steps:
- checkout: self
- - script: |
- export DOCKER_CLI_CONTEXT=default
- docker-compose -f **/docker-compose.yml build
- docker login -u dadeSchoolsContainerRegistry -p k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn dadeschoolscontainerregistry.azurecr.io
- docker-compose -f **/docker-compose.yml push
- displayName: 'Build and Push Docker Compose Project'
-trigger:
- branches:
- include:
- - docker-branch
+ - bash: |
+ #!/bin/bash
+
+ # Specify the path to your docker-compose.yml
+ composeFile="$(find $(Build.SourcesDirectory) -name docker-compose.yml | head -1)"
+
+ # Check if a docker-compose.yml file was found
+ if [ -z "$composeFile" ]; then
+ echo "No docker-compose.yml file found in the workspace."
+ exit 1
+ fi
+
+ # Log the path to the docker-compose.yml file
+ echo "Using docker-compose file at: $composeFile"
+
+ # Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
+ docker login dadeschoolscontainerregistry.azurecr.io -u ACR_USERNAME -p ACR_PASSWORD
+
+ # List of services to build, tag, and push
+ services=(
+ "damageassesmentapianswers"
+ "damageassesmentapiattachments"
+ "damageassesmentapiemployees"
+ "damageassesmentapilocations"
+ "damageassesmentapiquestions"
+ "damageassesmentapisurveys"
+ "damageassesmentapidoculinks"
+ "damageassesmentapiresponses"
+ )
+
+ # Loop through the services and build, tag, and push
+ for service in "${services[@]}"; do
+ # Build the service
+ docker-compose -f "$composeFile" build "$service"
+
+ # Tag the image for ACR
+ docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
+
+ # Push the image to ACR
+ docker push "dadeschoolscontainerregistry.azurecr.io/$service"
+ done
+ displayName: 'Build and Push Docker Images'
+ env:
+ ACR_USERNAME: $(acrUsername) # Set your ACR username secret here
+ ACR_PASSWORD: $(acrPassword) # Set your ACR password secret here
From f3216418701b080965e42c87a3b3deef7eeb76b4 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 11:36:35 -0400
Subject: [PATCH 14/30] folder for Common build support scripts
---
Scripts/build_and_push_services2acr.ps1 | 30 ++++++++++++++++++++++++
Scripts/build_and_push_services2acr.sh | 31 +++++++++++++++++++++++++
2 files changed, 61 insertions(+)
create mode 100644 Scripts/build_and_push_services2acr.ps1
create mode 100644 Scripts/build_and_push_services2acr.sh
diff --git a/Scripts/build_and_push_services2acr.ps1 b/Scripts/build_and_push_services2acr.ps1
new file mode 100644
index 0000000..d61eb0e
--- /dev/null
+++ b/Scripts/build_and_push_services2acr.ps1
@@ -0,0 +1,30 @@
+# powershell -ExecutionPolicy Bypass -File .\build_and_push_services2acr.ps1
+# Specify the path to your docker-compose.yml
+$composeFile = "C:\Users\santh\OneDrive\Desktop\DOCKERS\ubuntu\Sprint6\C1011\Backend-API-Services\DamageAssesmentApi\docker-compose.yml"
+
+# List of services to build, tag, and push
+$services = @(
+ "damageassesmentapianswers",
+ "damageassesmentapiattachments",
+ "damageassesmentapiemployees",
+ "damageassesmentapilocations",
+ "damageassesmentapiquestions",
+ "damageassesmentapisurveys",
+ "damageassesmentapidoculinks",
+ "damageassesmentapiresponses"
+)
+
+# Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
+docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegistry -p k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn
+
+# Loop through the services and build, tag, and push
+foreach ($service in $services) {
+ # Build the service
+ docker-compose -f $composeFile build $service
+
+ # Tag the image for ACR
+ docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
+
+ # Push the image to ACR
+ docker push "dadeschoolscontainerregistry.azurecr.io/$service"
+}
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
new file mode 100644
index 0000000..990902b
--- /dev/null
+++ b/Scripts/build_and_push_services2acr.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# Specify the path to your docker-compose.yml
+composeFile="C:/Users/santh/OneDrive/Desktop/DOCKERS/ubuntu/Sprint6/C1011/Backend-API-Services/DamageAssesmentApi/docker-compose.yml"
+
+# List of services to build, tag, and push
+services=(
+ "damageassesmentapianswers"
+ "damageassesmentapiattachments"
+ "damageassesmentapiemployees"
+ "damageassesmentapilocations"
+ "damageassesmentapiquestions"
+ "damageassesmentapisurveys"
+ "damageassesmentapidoculinks"
+ "damageassesmentapiresponses"
+)
+
+# Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
+docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegistry -p k1f8hE0O5hj3tYCCR/5stNrkw5BZoTmAqid/hvaVo8+ACRDc2Arn
+
+# Loop through the services and build, tag, and push
+for service in "${services[@]}"; do
+ # Build the service
+ docker-compose -f "$composeFile" build "$service"
+
+ # Tag the image for ACR
+ docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
+
+ # Push the image to ACR
+ docker push "dadeschoolscontainerregistry.azurecr.io/$service"
+done
From 7b821decbd8f0d08fca100ab414f501a3544edb7 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 12:09:42 -0400
Subject: [PATCH 15/30] Updated with folder path
---
Scripts/build_and_push_services2acr.sh | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 990902b..478a313 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -1,7 +1,13 @@
#!/bin/bash
-# Specify the path to your docker-compose.yml
-composeFile="C:/Users/santh/OneDrive/Desktop/DOCKERS/ubuntu/Sprint6/C1011/Backend-API-Services/DamageAssesmentApi/docker-compose.yml"
+# Get the current working directory
+current_directory="$(pwd)"
+
+# Specify the relative path to the docker-compose.yml
+relative_path="Backend-API-Services/DamageAssesmentApi/docker-compose.yml"
+
+# Combine the current directory with the relative path to get the full path to docker-compose.yml
+composeFile="$current_directory/$relative_path"
# List of services to build, tag, and push
services=(
From 1f046e0c70ff8c5adf2ee2c580da166aaf237ba7 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Tue, 17 Oct 2023 16:37:23 +0000
Subject: [PATCH 16/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 57 ++++----------------------
1 file changed, 7 insertions(+), 50 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 2e367d4..9bd1ee7 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -1,61 +1,18 @@
-name: Build & Push to ACR Pipeline
-
trigger:
-- '*'
+ - '*'
pr:
-- '*'
+ - '*'
pool:
vmImage: 'ubuntu-latest'
-jobs:
-- job: BuildAndPushImages
- steps:
+steps:
- checkout: self
- - bash: |
+ - script: |
#!/bin/bash
- # Specify the path to your docker-compose.yml
- composeFile="$(find $(Build.SourcesDirectory) -name docker-compose.yml | head -1)"
-
- # Check if a docker-compose.yml file was found
- if [ -z "$composeFile" ]; then
- echo "No docker-compose.yml file found in the workspace."
- exit 1
- fi
-
- # Log the path to the docker-compose.yml file
- echo "Using docker-compose file at: $composeFile"
-
- # Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
- docker login dadeschoolscontainerregistry.azurecr.io -u ACR_USERNAME -p ACR_PASSWORD
-
- # List of services to build, tag, and push
- services=(
- "damageassesmentapianswers"
- "damageassesmentapiattachments"
- "damageassesmentapiemployees"
- "damageassesmentapilocations"
- "damageassesmentapiquestions"
- "damageassesmentapisurveys"
- "damageassesmentapidoculinks"
- "damageassesmentapiresponses"
- )
-
- # Loop through the services and build, tag, and push
- for service in "${services[@]}"; do
- # Build the service
- docker-compose -f "$composeFile" build "$service"
-
- # Tag the image for ACR
- docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
-
- # Push the image to ACR
- docker push "dadeschoolscontainerregistry.azurecr.io/$service"
- done
- displayName: 'Build and Push Docker Images'
- env:
- ACR_USERNAME: $(acrUsername) # Set your ACR username secret here
- ACR_PASSWORD: $(acrPassword) # Set your ACR password secret here
+ chmod +x ./Backend-API-Services/Script/build_and_push_services2acr.sh
+ ./Backend-API-Services/Script/build_and_push_services2acr.sh
+ displayName: 'Run build_and_push_services2acr.sh'
From afb520463a0276715313d75ca80e76206681fb6a Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Tue, 17 Oct 2023 16:41:54 +0000
Subject: [PATCH 17/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 9bd1ee7..6778953 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -13,6 +13,6 @@ steps:
- script: |
#!/bin/bash
- chmod +x ./Backend-API-Services/Script/build_and_push_services2acr.sh
- ./Backend-API-Services/Script/build_and_push_services2acr.sh
+ chmod +x ./Script/build_and_push_services2acr.sh
+ ./Script/build_and_push_services2acr.sh
displayName: 'Run build_and_push_services2acr.sh'
From e8cbe7616643d2e41580a5e17c3e5c11d79a56a9 Mon Sep 17 00:00:00 2001
From: Santhosh Nair <913441@dadeschools.net>
Date: Tue, 17 Oct 2023 16:44:04 +0000
Subject: [PATCH 18/30] Update azure-pipelines.yml for Azure Pipelines
---
DamageAssesmentApi/azure-pipelines.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DamageAssesmentApi/azure-pipelines.yml b/DamageAssesmentApi/azure-pipelines.yml
index 6778953..bbaebd3 100644
--- a/DamageAssesmentApi/azure-pipelines.yml
+++ b/DamageAssesmentApi/azure-pipelines.yml
@@ -13,6 +13,6 @@ steps:
- script: |
#!/bin/bash
- chmod +x ./Script/build_and_push_services2acr.sh
- ./Script/build_and_push_services2acr.sh
+ chmod +x ./Scripts/build_and_push_services2acr.sh
+ ./Scripts/build_and_push_services2acr.sh
displayName: 'Run build_and_push_services2acr.sh'
From f7141493cad663d0b8a8b76502ac6b480160ea84 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 12:51:51 -0400
Subject: [PATCH 19/30] Updated relative path
---
Scripts/build_and_push_services2acr.sh | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 478a313..10ee2c5 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -4,21 +4,21 @@
current_directory="$(pwd)"
# Specify the relative path to the docker-compose.yml
-relative_path="Backend-API-Services/DamageAssesmentApi/docker-compose.yml"
+relative_path="Backend-API-Services/DamageAssesmentApi"
# Combine the current directory with the relative path to get the full path to docker-compose.yml
-composeFile="$current_directory/$relative_path"
+composeFile="$current_directory/$relative_path/docker-compose.yml"
# List of services to build, tag, and push
services=(
- "damageassesmentapianswers"
- "damageassesmentapiattachments"
- "damageassesmentapiemployees"
- "damageassesmentapilocations"
- "damageassesmentapiquestions"
- "damageassesmentapisurveys"
- "damageassesmentapidoculinks"
- "damageassesmentapiresponses"
+ "damageassesment.api.answers"
+ "damageassesment.api.attachments"
+ "damageassesment.api.employees"
+ "damageassesment.api.locations"
+ "damageassesment.api.questions"
+ "damageassesment.api.responses"
+ "damageassesment.api.surveys"
+ "damageassesment.api.doculinks"
)
# Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
From fa68071d64123f33feb305321852baa453f3787c Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 15:14:41 -0400
Subject: [PATCH 20/30] modified push acr script
---
Scripts/build_and_push_services2acr.sh | 36 +++++++++++++++++++-------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 10ee2c5..0f128ac 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -2,23 +2,31 @@
# Get the current working directory
current_directory="$(pwd)"
+echo "Current directory: $current_directory"
+
+# Navigate one folder up
+cd ..
+
+# Get and display the new working directory
+current_directory="$(pwd)"
+echo "New directory: $current_directory"
# Specify the relative path to the docker-compose.yml
-relative_path="Backend-API-Services/DamageAssesmentApi"
+relative_path="DamageAssesmentApi"
# Combine the current directory with the relative path to get the full path to docker-compose.yml
composeFile="$current_directory/$relative_path/docker-compose.yml"
# List of services to build, tag, and push
services=(
- "damageassesment.api.answers"
- "damageassesment.api.attachments"
- "damageassesment.api.employees"
- "damageassesment.api.locations"
- "damageassesment.api.questions"
- "damageassesment.api.responses"
- "damageassesment.api.surveys"
- "damageassesment.api.doculinks"
+ "damageassesmentapianswers"
+ "damageassesmentapiattachments"
+ "damageassesmentapiemployees"
+ "damageassesmentapilocations"
+ "damageassesmentapiquestions"
+ "damageassesmentapisurveys"
+ "damageassesmentapidoculinks"
+ "damageassesmentapiresponses"
)
# Log in to ACR (replace ACR_USERNAME and ACR_PASSWORD)
@@ -27,7 +35,7 @@ docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegi
# Loop through the services and build, tag, and push
for service in "${services[@]}"; do
# Build the service
- docker-compose -f "$composeFile" build "$service"
+ docker-compose -f "$composeFile" build # "$service"
# Tag the image for ACR
docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
@@ -35,3 +43,11 @@ for service in "${services[@]}"; do
# Push the image to ACR
docker push "dadeschoolscontainerregistry.azurecr.io/$service"
done
+
+# Get and display the current working directory
+current_directory="$(pwd)"
+echo "Current directory: $current_directory"
+
+# Wait for a keypress
+echo "Press any key to continue..."
+read -n 1 -s -r -p ""
From 0cc5be64ee2b63065dc44c7e52f788367bc96792 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 15:27:44 -0400
Subject: [PATCH 21/30] modified push acr script
---
Scripts/build_and_push_services2acr.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 0f128ac..c650dc9 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -35,10 +35,10 @@ docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegi
# Loop through the services and build, tag, and push
for service in "${services[@]}"; do
# Build the service
- docker-compose -f "$composeFile" build # "$service"
+ docker-compose -f "$composeFile" build "$service"
# Tag the image for ACR
- docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
+ docker tag $service "dadeschoolscontainerregistry.azurecr.io/$service"
# Push the image to ACR
docker push "dadeschoolscontainerregistry.azurecr.io/$service"
@@ -49,5 +49,5 @@ current_directory="$(pwd)"
echo "Current directory: $current_directory"
# Wait for a keypress
-echo "Press any key to continue..."
-read -n 1 -s -r -p ""
+#echo "Press any key to continue..."
+#read -n 1 -s -r -p ""
From 39df8c017b58a9fd42592eb9392f4fa7bfc45c14 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 22:07:15 -0400
Subject: [PATCH 22/30] modified push acr script
---
Scripts/build_and_push_services2acr.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index c650dc9..0483d57 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -15,7 +15,7 @@ echo "New directory: $current_directory"
relative_path="DamageAssesmentApi"
# Combine the current directory with the relative path to get the full path to docker-compose.yml
-composeFile="$current_directory/$relative_path/docker-compose.yml"
+composeFile="$current_directory/DamageAssesmentApi/docker-compose.yml"
# List of services to build, tag, and push
services=(
@@ -35,7 +35,7 @@ docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegi
# Loop through the services and build, tag, and push
for service in "${services[@]}"; do
# Build the service
- docker-compose -f "$composeFile" build "$service"
+ docker-compose -f "$composeFile" build #"$service"
# Tag the image for ACR
docker tag $service "dadeschoolscontainerregistry.azurecr.io/$service"
From aae073d4566483c7ed860ef196d312934d609211 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 22:10:31 -0400
Subject: [PATCH 23/30] modified push acr script
---
Scripts/build_and_push_services2acr.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 0483d57..48412a4 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -15,7 +15,8 @@ echo "New directory: $current_directory"
relative_path="DamageAssesmentApi"
# Combine the current directory with the relative path to get the full path to docker-compose.yml
-composeFile="$current_directory/DamageAssesmentApi/docker-compose.yml"
+#composeFile="$current_directory/DamageAssesmentApi/docker-compose.yml"
+composeFile="./DamageAssesmentApi/docker-compose.yml"
# List of services to build, tag, and push
services=(
From 40ab868e82f3b5d19208d6ce9bba41fce4ee5b00 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 22:18:56 -0400
Subject: [PATCH 24/30] Updated relative path
---
Scripts/build_and_push_services2acr.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index 48412a4..a4fd039 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -5,7 +5,7 @@ current_directory="$(pwd)"
echo "Current directory: $current_directory"
# Navigate one folder up
-cd ..
+#cd ..
# Get and display the new working directory
current_directory="$(pwd)"
@@ -16,7 +16,7 @@ relative_path="DamageAssesmentApi"
# Combine the current directory with the relative path to get the full path to docker-compose.yml
#composeFile="$current_directory/DamageAssesmentApi/docker-compose.yml"
-composeFile="./DamageAssesmentApi/docker-compose.yml"
+composeFile="../DamageAssesmentApi/docker-compose.yml"
# List of services to build, tag, and push
services=(
@@ -51,4 +51,4 @@ echo "Current directory: $current_directory"
# Wait for a keypress
#echo "Press any key to continue..."
-#read -n 1 -s -r -p ""
+read -n 1 -s -r -p ""
From d219faa14709cca9c36d6d254cc89fd682f70b8d Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 22:40:34 -0400
Subject: [PATCH 25/30] Updated with folder path
---
Scripts/build_and_push_services2acr.sh | 32 ++++++++------------------
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index a4fd039..dd0250b 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -1,22 +1,16 @@
#!/bin/bash
-# Get the current working directory
-current_directory="$(pwd)"
-echo "Current directory: $current_directory"
+# Determine the current directory (where the script is located)
+script_directory="$( cd "$(dirname "$0")" ; pwd -P )"
-# Navigate one folder up
-#cd ..
-
-# Get and display the new working directory
-current_directory="$(pwd)"
-echo "New directory: $current_directory"
+# Navigate to the root of the repository
+repository_root="$script_directory/.."
# Specify the relative path to the docker-compose.yml
-relative_path="DamageAssesmentApi"
+relative_path="DamageAssesmentApi/docker-compose.yml"
-# Combine the current directory with the relative path to get the full path to docker-compose.yml
-#composeFile="$current_directory/DamageAssesmentApi/docker-compose.yml"
-composeFile="../DamageAssesmentApi/docker-compose.yml"
+# Combine the repository root directory with the relative path to get the full path to docker-compose.yml
+composeFile="$repository_root/$relative_path"
# List of services to build, tag, and push
services=(
@@ -36,19 +30,11 @@ docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegi
# Loop through the services and build, tag, and push
for service in "${services[@]}"; do
# Build the service
- docker-compose -f "$composeFile" build #"$service"
+ docker-compose -f "$composeFile" build #"$service"
# Tag the image for ACR
- docker tag $service "dadeschoolscontainerregistry.azurecr.io/$service"
+ docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
# Push the image to ACR
docker push "dadeschoolscontainerregistry.azurecr.io/$service"
done
-
-# Get and display the current working directory
-current_directory="$(pwd)"
-echo "Current directory: $current_directory"
-
-# Wait for a keypress
-#echo "Press any key to continue..."
-read -n 1 -s -r -p ""
From f9b7fad33b96dd78a4a357d1193e40c255e909d0 Mon Sep 17 00:00:00 2001
From: Santhosh S <913341@dadeschools.net>
Date: Tue, 17 Oct 2023 23:04:28 -0400
Subject: [PATCH 26/30] Updated with folder path
---
Scripts/build_and_push_services2acr.sh | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/Scripts/build_and_push_services2acr.sh b/Scripts/build_and_push_services2acr.sh
index dd0250b..d562f19 100644
--- a/Scripts/build_and_push_services2acr.sh
+++ b/Scripts/build_and_push_services2acr.sh
@@ -3,14 +3,13 @@
# Determine the current directory (where the script is located)
script_directory="$( cd "$(dirname "$0")" ; pwd -P )"
-# Navigate to the root of the repository
-repository_root="$script_directory/.."
+# Use the 'find' command to locate the 'docker-compose.yml' file within the repository directory
+composeFile=$(find "$script_directory/.." -name "docker-compose.yml" -type f | head -n 1)
-# Specify the relative path to the docker-compose.yml
-relative_path="DamageAssesmentApi/docker-compose.yml"
-
-# Combine the repository root directory with the relative path to get the full path to docker-compose.yml
-composeFile="$repository_root/$relative_path"
+if [ -z "$composeFile" ]; then
+ echo "docker-compose.yml not found."
+ exit 1
+fi
# List of services to build, tag, and push
services=(
@@ -30,7 +29,7 @@ docker login dadeschoolscontainerregistry.azurecr.io -u dadeSchoolsContainerRegi
# Loop through the services and build, tag, and push
for service in "${services[@]}"; do
# Build the service
- docker-compose -f "$composeFile" build #"$service"
+ docker-compose -f "$composeFile" build "$service"
# Tag the image for ACR
docker tag "$service" "dadeschoolscontainerregistry.azurecr.io/$service"
From 7b7e5c0ce80b1b1816b8850246fcf87f36a6fa5e Mon Sep 17 00:00:00 2001
From: uppuv
Date: Mon, 23 Oct 2023 12:03:50 -0400
Subject: [PATCH 27/30] added status field in survey micro service
---
.../Models/Survey.cs | 7 +++++++
.../Providers/SurveysProvider.cs | 21 +++++++++++++++----
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
index 25f5405..38fa72a 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
@@ -2,9 +2,16 @@
namespace DamageAssesment.Api.Surveys.Models
{
+ public enum SurveyStatus
+ {
+ PENDING,
+ ACTIVE,
+ INACTIVE
+ }
public class MultiLanSurvey : BaseSurvey
{
public object Titles { get; set; }
+ public string Status { get; set; }
}
public class Survey : BaseSurvey
{
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
index de945c6..e48efc1 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
@@ -26,9 +26,9 @@ namespace DamageAssesment.Api.Surveys.Providers
{
if (!surveyDbContext.Surveys.Any())
{
- var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
- var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
- var survey3 = new Db.Survey { IsEnabled = false, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
+ var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
+ var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now.AddDays(-10) };
+ var survey3 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-100), EndDate = DateTime.Now.AddDays(-10), CreatedDate = DateTime.Now.AddDays(-100) };
surveyDbContext.Surveys.Add(survey1);
surveyDbContext.Surveys.Add(survey2);
@@ -85,7 +85,15 @@ namespace DamageAssesment.Api.Surveys.Providers
MultiLanguage = dict;
return MultiLanguage;
}
-
+ public string GetStatus(DateTime StartDate,DateTime EndDate)
+ {
+ if (StartDate > DateTime.Now)
+ return SurveyStatus.PENDING.ToString();
+ else if (StartDate <= DateTime.Now && EndDate > DateTime.Now)
+ return SurveyStatus.ACTIVE.ToString();
+ else
+ return SurveyStatus.INACTIVE.ToString();
+ }
// Method to get surveys asynchronously with multi-language support
public async Task<(bool IsSuccess, IEnumerable Surveys, string ErrorMessage)> GetSurveysAsync(string language)
{
@@ -106,6 +114,7 @@ namespace DamageAssesment.Api.Surveys.Providers
EndDate = s.EndDate,
IsEnabled = s.IsEnabled,
CreatedDate = s.CreatedDate,
+ Status= GetStatus(s.StartDate,s.EndDate),
Titles = CreateMultiLanguageObject(GetSurveyTranslations(s.Id, null, language))
};
@@ -140,6 +149,7 @@ namespace DamageAssesment.Api.Surveys.Providers
EndDate = survey.EndDate,
IsEnabled = survey.IsEnabled,
CreatedDate = survey.CreatedDate,
+ Status = GetStatus(survey.StartDate, survey.EndDate),
Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, language))
};
logger?.LogInformation($"Survey Id: {id} found");
@@ -173,6 +183,7 @@ namespace DamageAssesment.Api.Surveys.Providers
}
await surveyDbContext.SaveChangesAsync();
var result = mapper.Map(_survey);
+ result.Status = GetStatus(_survey.StartDate, _survey.EndDate);
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
return (true, result, "Successful");
}
@@ -217,6 +228,7 @@ namespace DamageAssesment.Api.Surveys.Providers
await surveyDbContext.SaveChangesAsync();
var result = mapper.Map(_survey);
+ result.Status = GetStatus(_survey.StartDate, _survey.EndDate);
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
return (true, result, "Successful");
}
@@ -249,6 +261,7 @@ namespace DamageAssesment.Api.Surveys.Providers
if (survey != null)
{
var result = mapper.Map(survey);
+ result.Status = GetStatus(survey.StartDate, survey.EndDate);
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, ""));
surveyDbContext.Surveys.Remove(survey);
await surveyDbContext.SaveChangesAsync();
From 499ac9248bff70d4da44535bc275cb5c5d793b6b Mon Sep 17 00:00:00 2001
From: uppuv
Date: Tue, 24 Oct 2023 12:15:13 -0400
Subject: [PATCH 28/30] reverted doculinks grouping by linktype
---
.../DoculinkServiceTest.cs | 6 +++---
.../DamageAssesment.Api.DocuLinks.Test/MockData.cs | 6 +++---
.../Interfaces/IDoculinkProvider.cs | 8 ++++----
.../Providers/DoculinkProvider.cs | 12 ++++++------
4 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
index 14ddaaa..a8f45d1 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
@@ -16,7 +16,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
{
var mockDocumentService = new Mock();
var mockUploadService = new Mock();
- var mockResponse = await MockData.getNoContentResponses();
+ var mockResponse = await MockData.getNoContentResponse();
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en",null)).ReturnsAsync(mockResponse);
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
@@ -30,7 +30,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
{
var mockDocumentService = new Mock();
var mockUploadService = new Mock();
- var mockResponse = await MockData.getNoContentResponses();
+ var mockResponse = await MockData.getNoContentResponse();
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", true)).ReturnsAsync(mockResponse);
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
@@ -83,7 +83,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
{
var mockDocumentService = new Mock();
var mockUploadService = new Mock();
- var mockResponse = await MockData.getNoContentResponses();
+ var mockResponse = await MockData.getNoContentResponse();
mockDocumentService.Setup(service => service.GetdocumentsByLinkTypeIdAsync(null, "en", true)).ReturnsAsync(mockResponse);
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs
index 23ffae4..843b4d3 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs
@@ -11,7 +11,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
public class MockData
{
- public static async Task<(bool, List, string)> getOkResponses()
+ public static async Task<(bool, List, string)> getOkResponses()
{
List list = new List();
@@ -46,8 +46,8 @@ namespace DamageAssesment.Api.DocuLinks.Test
doclinksAttachments= doclinksAttachments
});
}
- List doculinks = list.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
- return (true, doculinks, null);
+ // List doculinks = list.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
+ return (true, list, null);
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs
index 6d271fd..e9717ee 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs
@@ -6,11 +6,11 @@ namespace DamageAssesment.Api.DocuLinks.Interfaces
{
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> GetDocumentAsync(int id, string? linktype, string? language);
Task<(bool IsSuccess, Models.Doculink Document, string ErrorMessage)> GetDocumentByidAsync(int id);
- // Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetDocumnetsAsync(string? language);
- Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive);
- Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive);
+ // Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetDocumnetsAsync(string? language);
+ Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive);
+ Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive);
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> PostDocumentAsync(Models.Doculink Document);
- Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> UpdateDocumentAsync(int id,Models.Doculink Document);
+ Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> UpdateDocumentAsync(int id, Models.Doculink Document);
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> DeleteDocumentAsync(int id);
Task<(bool IsSuccess, int counter, string message)> GetDocumentCounter();
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs
index 81535ab..5eb57ae 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs
@@ -171,7 +171,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers
return MultiLanguage;
}
- public async Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive)
+ public async Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive)
{
try
@@ -195,8 +195,8 @@ namespace DamageAssesment.Api.DocuLinks.Providers
item.doclinksAttachments = mapper.Map, List>(
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
}
- List doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
- return (true, doculinks, null);
+ // List doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
+ return (true, result, null);
}
return (false, null, "Not found");
}
@@ -207,7 +207,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers
}
}
- public async Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive)
+ public async Task<(bool IsSuccess, IEnumerable documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive)
{
try
@@ -231,8 +231,8 @@ namespace DamageAssesment.Api.DocuLinks.Providers
item.doclinksAttachments = mapper.Map, List>(
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
}
- List doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
- return (true, doculinks, null);
+ //List doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
+ return (true, result, null);
}
return (false, null, "Not found");
}
From 6f10e9962736b9605c1030e1ee5ea0c861e41827 Mon Sep 17 00:00:00 2001
From: uppuv
Date: Wed, 1 Nov 2023 12:42:30 -0400
Subject: [PATCH 29/30] added excel export and removed random number
---
.../SurveyResponsesServiceTest.cs | 62 +++----
.../Controllers/SurveyResponsesController.cs | 32 +++-
.../DamageAssesment.Api.Responses.csproj | 1 +
.../Interfaces/IExcelExportService.cs | 7 +
.../Interfaces/IQuestionServiceProvider.cs | 3 +-
.../Interfaces/ISurveysResponse.cs | 3 +-
.../Models/Attachment.cs | 1 +
.../Models/Location.cs | 1 +
.../Models/QuestionCategory.cs | 10 ++
.../Models/SurveyExport.cs | 24 +++
.../DamageAssesment.Api.Responses/Program.cs | 1 +
.../Providers/ExcelExportService.cs | 56 ++++++
.../Providers/SurveyResponsesProvider.cs | 170 ++++++++++++++++--
.../Services/QuestionServiceProvider.cs | 27 ++-
.../appsettings.json | 2 +-
.../Providers/SurveysProvider.cs | 18 +-
16 files changed, 360 insertions(+), 58 deletions(-)
create mode 100644 DamageAssesmentApi/DamageAssesment.Api.Responses/Interfaces/IExcelExportService.cs
create mode 100644 DamageAssesmentApi/DamageAssesment.Api.Responses/Models/QuestionCategory.cs
create mode 100644 DamageAssesmentApi/DamageAssesment.Api.Responses/Models/SurveyExport.cs
create mode 100644 DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/ExcelExportService.cs
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses.Test/SurveyResponsesServiceTest.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses.Test/SurveyResponsesServiceTest.cs
index 48cec58..05b3e02 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses.Test/SurveyResponsesServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses.Test/SurveyResponsesServiceTest.cs
@@ -12,9 +12,11 @@ namespace DamageAssesment.SurveyResponses.Test
public class SurveyResponsesServiceTest
{
Mock mockSurveyResponseService;
+ Mock mockExcelExportService;
public SurveyResponsesServiceTest()
{
mockSurveyResponseService = new Mock();
+ mockExcelExportService = new Mock();
}
[Fact(DisplayName = "Get Responses - Ok case")]
@@ -23,7 +25,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse(mockRequestObject);
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -33,7 +35,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (BadRequestObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
Assert.Equal(400, result.StatusCode);
}
@@ -43,9 +45,9 @@ namespace DamageAssesment.SurveyResponses.Test
{
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
- mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1,1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1,1);
+ mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
+ var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
Assert.Equal(200, result.StatusCode);
}
@@ -53,9 +55,9 @@ namespace DamageAssesment.SurveyResponses.Test
public async Task GetSurveyResponsesBySurveyAsync_ShouldReturnStatusCode204()
{
var mockResponse = await MockData.getResponse();
- mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1,1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesAsync(1,1);
+ mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
+ var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
Assert.Equal(204, result.StatusCode);
}
@@ -67,9 +69,9 @@ namespace DamageAssesment.SurveyResponses.Test
{
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
- mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1,1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1,1);
+ mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
+ var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
Assert.Equal(200, result.StatusCode);
}
@@ -78,7 +80,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
Assert.Equal(204, result.StatusCode);
}
@@ -88,9 +90,9 @@ namespace DamageAssesment.SurveyResponses.Test
{
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
- mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes",1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes",1);
+ mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
+ var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
Assert.Equal(200, result.StatusCode);
}
@@ -99,8 +101,8 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes",1);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
+ var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
Assert.Equal(204, result.StatusCode);
}
@@ -110,8 +112,8 @@ namespace DamageAssesment.SurveyResponses.Test
{
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
- mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1,1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
Assert.Equal(200, result.StatusCode);
}
@@ -121,7 +123,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
Assert.Equal(204, result.StatusCode);
}
@@ -132,7 +134,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
Assert.Equal(200, result.StatusCode);
}
@@ -142,7 +144,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
Assert.Equal(204, result.StatusCode);
}
@@ -153,7 +155,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -163,7 +165,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
- var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
Assert.Equal(204, result.StatusCode);
}
@@ -175,7 +177,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse(mockRequestObject);
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
Assert.Equal(200, result.StatusCode);
}
@@ -186,7 +188,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (BadRequestObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
Assert.Equal(400, result.StatusCode);
}
@@ -197,7 +199,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse(mockRequestObject);
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse);
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
Assert.Equal(200, result.StatusCode);
}
@@ -208,7 +210,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse); ;
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (BadRequestObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
Assert.Equal(400, result.StatusCode);
}
@@ -219,7 +221,7 @@ namespace DamageAssesment.SurveyResponses.Test
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse(mockRequestObject);
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse);
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (OkObjectResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -229,7 +231,7 @@ namespace DamageAssesment.SurveyResponses.Test
{
var mockResponse = await MockData.getResponse();
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse); ;
- var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object);
+ var surveyResponseController = new SurveyResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
var result = (NotFoundResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
Assert.Equal(404, result.StatusCode);
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
index 36f40a5..a8f36f4 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Controllers/SurveyResponsesController.cs
@@ -8,10 +8,12 @@ namespace DamageAssesment.Api.Responses.Controllers
public class SurveyResponsesController : ControllerBase
{
private readonly ISurveysResponse surveyResponseProvider;
+ private readonly IExcelExportService excelExportService;
- public SurveyResponsesController(ISurveysResponse surveyResponseProvider)
+ public SurveyResponsesController(ISurveysResponse surveyResponseProvider, IExcelExportService excelExportService)
{
this.surveyResponseProvider = surveyResponseProvider;
+ this.excelExportService = excelExportService;
}
///
/// GET request for retrieving survey responses.
@@ -57,9 +59,9 @@ namespace DamageAssesment.Api.Responses.Controllers
[Route("responses/{surveyid:int}/{locationid:int}/{employeeid:int}")]
[Route("responses/{surveyid:int}/{locationid:int}")]
[HttpGet]
- public async Task GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid,int? employeeid)
+ public async Task GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid, int? employeeid)
{
- var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid,employeeid ?? 0);
+ var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid, employeeid ?? 0);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@@ -198,6 +200,9 @@ namespace DamageAssesment.Api.Responses.Controllers
else
return BadRequest(result.ErrorMessage);
}
+ ///
+ /// Get All active surveys .
+ ///
[Route("responses/surveys/active")]
[Route("responses/surveys/active/{language:alpha}")]
[Route("responses/surveys/active/{employeeid:int}")]
@@ -212,6 +217,23 @@ namespace DamageAssesment.Api.Responses.Controllers
}
return NoContent();
}
+ ///
+ /// Export all survey response data based on survey id.
+ ///
+ [HttpGet]
+ [Route("responses/surveys/export/{surveyid}")]
+ public async Task GetExcelSurveysAsync(int surveyid,string language, bool IsAdmin = false)
+ {
+ var result = await this.surveyResponseProvider.ExportSurveyResponsesAsync(surveyid,language, IsAdmin);
+ if (result.IsSuccess&& result.surveyResponses.Count>0)
+ {
+
+ byte[] fileContents = excelExportService.ExportToExcel
[HttpGet]
[Route("responses/surveys/export/{surveyid}")]
- public async Task GetExcelSurveysAsync(int surveyid,string language, bool IsAdmin = false)
+ public async Task GetExcelSurveysAsync(int surveyid, string language, bool IsAdmin = false)
{
- var result = await this.surveyResponseProvider.ExportSurveyResponsesAsync(surveyid,language, IsAdmin);
- if (result.IsSuccess&& result.surveyResponses.Count>0)
+ var result = await this.surveyResponseProvider.ExportSurveyResponsesAsync(surveyid, language, IsAdmin);
+ if (result.IsSuccess && result.surveyResponses.Count > 0)
{
byte[] fileContents = excelExportService.ExportToExcel(result.surveyResponses);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Models/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Models/Survey.cs
index 8265046..5419251 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Models/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Models/Survey.cs
@@ -2,13 +2,20 @@
namespace DamageAssesment.Api.Responses.Models
{
+ public enum SurveyStatus
+ {
+ PENDING,
+ ACTIVE,
+ INACTIVE
+ }
public class Survey
{
public int Id { get; set; }
public bool IsEnabled { get; set; }
- public DateTime StartDate { get; set; }
- public DateTime EndDate { get; set; }
+ public DateTime? StartDate { get; set; }
+ public DateTime? EndDate { get; set; }
public DateTime CreatedDate { get; set; }
+ public string Status { get; set; }
public Dictionary Titles { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/ExcelExportService.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/ExcelExportService.cs
index 0740cc6..b0fb669 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/ExcelExportService.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/ExcelExportService.cs
@@ -2,6 +2,7 @@
using DamageAssesment.Api.Responses.Models;
using OfficeOpenXml;
using System.Collections.Generic;
+using System.ComponentModel;
namespace DamageAssesment.Api.Responses.Providers
{
@@ -9,7 +10,7 @@ namespace DamageAssesment.Api.Responses.Providers
{
public byte[] ExportToExcel(List responses)
{
- ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
+ ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;
using (var package = new ExcelPackage())
{
// Create the first worksheet and populate it with responses
@@ -37,17 +38,22 @@ namespace DamageAssesment.Api.Responses.Providers
{
for (int col = 1; col <= properties.Length; col++)
{
+
string value = Convert.ToString(properties[col - 1].GetValue(data[row - 2]));
if (IsAttchments.Where(a => a == col).Count() > 0 && !string.IsNullOrEmpty(value))
{
List attachments = value.Split("##").ToList();
- Uri linkUri = new Uri(attachments[1]);
- worksheet.Cells[row, col].Hyperlink = linkUri;
- worksheet.Cells[row, col].Value = attachments[0];
- worksheet.Cells[row, col].Style.Font.UnderLine = true;
+ try
+ {
+ Uri linkUri = new Uri(attachments[1]);
+ worksheet.Cells[row, col].Value = attachments[0];
+ worksheet.Cells[row, col].Style.Font.UnderLine = true;
+ }
+ catch { worksheet.Cells[row, col].Value = attachments[1]; }
}
else
worksheet.Cells[row, col].Value = value;
+
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
index 2b5e3b0..d52d153 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs
@@ -121,7 +121,7 @@ namespace DamageAssesment.Api.Responses.Providers
logger?.LogInformation("Querying to get SurveyResponse object from DB");
//get all the survey that already taken by the employee
var surveys = await surveyServiceProvider.getSurveysAsync(language);
- surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
+ surveys = surveys.Where(s => s.IsEnabled == true && s.Status == SurveyStatus.ACTIVE.ToString()).ToList();
if (employeeid == null || employeeid == 0)
return (true, surveys, null);
List listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid.Value).Select(y => y.SurveyId).ToListAsync();
@@ -143,7 +143,7 @@ namespace DamageAssesment.Api.Responses.Providers
var surveys = await surveyServiceProvider.getSurveysAsync(language);
// returning only historic data: end date is less than current date.
- surveys = surveys.Where(s => s.EndDate < DateTime.Now).ToList();
+ surveys = surveys.Where(s => s.Status == SurveyStatus.INACTIVE.ToString()).ToList();
if (employeeid == null || employeeid == 0)
return (true, surveys, null);
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
@@ -313,7 +313,7 @@ namespace DamageAssesment.Api.Responses.Providers
{
try
{
- var responses = await getAllSurveyResponsesExcelAsync(surveyId,language, isadmin);
+ var responses = await getAllSurveyResponsesExcelAsync(surveyId, language, isadmin);
if (responses != null)
return (true, responses, "Request Successful.");
@@ -709,13 +709,13 @@ namespace DamageAssesment.Api.Responses.Providers
}
}
//Method to get All Survey Responses for excel export
- private async Task> getAllSurveyResponsesExcelAsync(int surveyId,string language, bool isadmin)
+ private async Task> getAllSurveyResponsesExcelAsync(int surveyId, string language, bool isadmin)
{
try
{
if (string.IsNullOrEmpty(language)) language = "en";
List surveyResonses;
- surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(a=>a.SurveyId==surveyId).ToListAsync();
+ surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(a => a.SurveyId == surveyId).ToListAsync();
var answers = await answerServiceProvider.getAnswersAsync();
var Locations = await locationServiceProvider.getLocationsAsync();
var regions = await regionServiceProvider.getRegionsAsync();
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Db/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Db/Survey.cs
index c031f57..2f19281 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Db/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Db/Survey.cs
@@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace DamageAssesment.Api.Surveys.Db
{
+ [Table("Surveys")]
public class Survey
{
[Key]
@@ -12,9 +13,9 @@ namespace DamageAssesment.Api.Surveys.Db
public bool IsEnabled { get; set; }
- public DateTime StartDate { get; set; }
+ public DateTime? StartDate { get; set; }
- public DateTime EndDate { get; set; }
+ public DateTime? EndDate { get; set; }
public DateTime CreatedDate { get; set; } = DateTime.Now;
/*
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
index 38fa72a..746047c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
@@ -21,8 +21,8 @@ namespace DamageAssesment.Api.Surveys.Models
{
public int Id { get; set; }
public bool IsEnabled { get; set; }
- public DateTime StartDate { get; set; }
- public DateTime EndDate { get; set; }
- public DateTime CreatedDate { get; set; }
+ public DateTime? StartDate { get; set; }
+ public DateTime? EndDate { get; set; }
+ public DateTime? CreatedDate { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
index 5a84843..3a2e81c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
@@ -85,14 +85,21 @@ namespace DamageAssesment.Api.Surveys.Providers
MultiLanguage = dict;
return MultiLanguage;
}
- public string GetStatus(DateTime StartDate, DateTime EndDate)
+ public string GetStatus(DateTime? StartDate, DateTime? EndDate)
{
- if (StartDate > DateTime.Now)
- return SurveyStatus.PENDING.ToString();
- else if (StartDate <= DateTime.Now && EndDate > DateTime.Now)
- return SurveyStatus.ACTIVE.ToString();
- else
+ try
+ {
+ if (StartDate > DateTime.Now)
+ return SurveyStatus.PENDING.ToString();
+ else if (StartDate <= DateTime.Now && EndDate > DateTime.Now)
+ return SurveyStatus.ACTIVE.ToString();
+ else
+ return SurveyStatus.INACTIVE.ToString();
+ }
+ catch
+ {
return SurveyStatus.INACTIVE.ToString();
+ }
}
// Method to get surveys asynchronously with multi-language support
public async Task<(bool IsSuccess, IEnumerable Surveys, string ErrorMessage)> GetSurveysAsync(string language)
@@ -136,7 +143,8 @@ namespace DamageAssesment.Api.Surveys.Providers
try
{
logger?.LogInformation("Query Survey");
- var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id && s.IsEnabled == true);
+ // removed is enabled becuase we are using it in responses to get response
+ var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id);
if (survey != null)
{