diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment - Backup.Api.DocuLinks.Test.csproj b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment - Backup.Api.DocuLinks.Test.csproj
new file mode 100644
index 0000000..6d6c72f
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment - Backup.Api.DocuLinks.Test.csproj
@@ -0,0 +1,27 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DamageAssesment.Api.DocuLinks.Test.csproj b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment.Api.DocuLinks.Test.csproj
similarity index 93%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DamageAssesment.Api.DocuLinks.Test.csproj
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment.Api.DocuLinks.Test.csproj
index e990a2c..6d6c72f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DamageAssesment.Api.DocuLinks.Test.csproj
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DamageAssesment.Api.DocuLinks.Test.csproj
@@ -21,7 +21,7 @@
-
+
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DocumentsServiceTest.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
similarity index 67%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DocumentsServiceTest.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
index 9ca0bbd..b953eeb 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents.Test/DocumentsServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/DoculinkServiceTest.cs
@@ -1,11 +1,11 @@
-using DamageAssesment.Api.Documents.Controllers;
-using DamageAssesment.Api.Documents.Interfaces;
-using DamageAssesment.Api.Documents.Models;
+using DamageAssesment.Api.DocuLinks.Controllers;
+using DamageAssesment.Api.DocuLinks.Interfaces;
+using DamageAssesment.Api.DocuLinks.Models;
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;
-namespace DamageAssesment.Api.Documents.Test
+namespace DamageAssesment.Api.DocuLinks.Test
{
public class DocumentServiceTest
@@ -14,67 +14,66 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Documents - NoContent Case")]
public async Task GetDocumentsLanguageAsync_ShouldReturnStatusCode204()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getNoContentResponse();
- mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en")).ReturnsAsync(mockResponse);
+ mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en",null)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("", "");
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("", "", null);
Assert.Equal(204, result.StatusCode);
}
- [Fact(DisplayName = "Get Documents - NoContent Case")]
+ [Fact(DisplayName = "Get active Documents - NoContent Case")]
public async Task GetDocumentsLinkTypeAsync_ShouldReturnStatusCode204()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getNoContentResponse();
- mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en")).ReturnsAsync(mockResponse);
+ mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", true)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("", "");
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (NoContentResult)await DocumentProvider.GetDocumentsByActiveAsync("", "");
Assert.Equal(204, result.StatusCode);
}
[Fact(DisplayName = "Get Documents - Ok case")]
public async Task GetDocumentsAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getOkResponse();
- mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en")).ReturnsAsync(mockResponse);
+ mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en", null)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (OkObjectResult)await DocumentProvider.GetDocumentsAsync("forms","en");
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (OkObjectResult)await DocumentProvider.GetDocumentsAsync("forms","en", null);
Assert.Equal(200, result.StatusCode);
}
-
- [Fact(DisplayName = "Get Documents - NoContent Case")]
- public async Task GetDocumentsAsync_ShouldReturnStatusCode204()
+ [Fact(DisplayName = "Get active Documents - Ok case")]
+ public async Task GetActiveDocumentsAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
- var mockResponse = await MockData.getNoContentResponse();
- mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en")).ReturnsAsync(mockResponse);
+ var mockResponse = await MockData.getOkResponse();
+ mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", true)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("forms","en");
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (OkObjectResult)await DocumentProvider.GetDocumentsByActiveAsync("forms", "en");
- Assert.Equal(204, result.StatusCode);
+ Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Document by Id - Ok case")]
public async Task GetDocumentAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getOkResponse(1);
mockDocumentService.Setup(service => service.GetDocumentAsync(1,"forms","en")).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (OkObjectResult)await DocumentProvider.GetDocumentAsync(1, "forms", "en");
Assert.Equal(200, result.StatusCode);
@@ -83,24 +82,24 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Document by Id - NotFound case")]
public async Task GetDocumentAsync_ShouldReturnStatusCode404()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
mockDocumentService.Setup(service => service.GetDocumentAsync(99, "forms", "en")).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (NotFoundResult)await DocumentProvider.GetDocumentAsync(99, "forms", "en");
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Post Document - Ok case")]
public async Task PostDocumentAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getOkResponse(1);
var mockInputDocument = await MockData.getInputDocumentData();
- var DocumentResponse = await MockData.GetDocumentsInfo(0);
+ var DocumentResponse = await MockData.GetDocuLinksInfo(0);
mockDocumentService.Setup(service => service.PostDocumentAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (NoContentResult)await DocumentProvider.CreateDocument(DocumentResponse);
Assert.Equal(204, result.StatusCode);
@@ -109,13 +108,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Post Document - BadRequest case")]
public async Task PostDocumentAsync_ShouldReturnStatusCode400()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockInputDocument = await MockData.getInputDocumentData();
var mockResponse = await MockData.getBadRequestResponse();
- DocumentInfo documentInfo = null;
+ ReqDoculink documentInfo = null;
mockDocumentService.Setup(service => service.PostDocumentAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (BadRequestObjectResult)await DocumentProvider.CreateDocument(documentInfo);
Assert.Equal(400, result.StatusCode);
@@ -124,13 +123,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Put Document - Ok case")]
public async Task PutDocumentAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getOkResponse(1);
var mockInputDocument = await MockData.getInputDocumentData();
- var DocumentResponse = await MockData.GetDocumentsInfo(1);
+ var DocumentResponse = await MockData.GetDocuLinksInfo(1);
mockDocumentService.Setup(service => service.UpdateDocumentAsync(1,mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (NotFoundResult)await DocumentProvider.UpdateDocument(1,DocumentResponse);
Assert.Equal(404, result.StatusCode);
@@ -139,12 +138,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Put Document - BadRequest case")]
public async Task PutDocumentAsync_ShouldReturnStatusCode400()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getBadRequestResponse();
var mockInputDocument = await MockData.getInputDocumentData();
mockDocumentService.Setup(service => service.UpdateDocumentAsync(99,mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (BadRequestObjectResult)await DocumentProvider.UpdateDocument(99,null);
Assert.Equal(400, result.StatusCode);
}
@@ -152,11 +151,11 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Delete Document - Ok case")]
public async Task DeleteDocumentAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getOkResponse(1);
mockDocumentService.Setup(service => service.DeleteDocumentAsync(1)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (OkObjectResult)await DocumentProvider.DeleteDocument(1);
Assert.Equal(200, result.StatusCode);
@@ -164,11 +163,11 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Delete Document - NotFound case")]
public async Task DeleteDocumentAsync_ShouldReturnStatusCode404()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
mockDocumentService.Setup(service => service.DeleteDocumentAsync(1)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (NotFoundResult)await DocumentProvider.DeleteDocument(1);
Assert.Equal(404, result.StatusCode);
}
@@ -180,12 +179,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Link types - Ok case")]
public async Task GetDocumentCategoriesAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getOkResponse();
- mockDocumentService.Setup(service => service.GetLinkTypesAsync()).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (OkObjectResult)await DocumentProvider.GetLinkTypesAsync();
+ mockDocumentService.Setup(service => service.GetLinkTypesAsync("en")).ReturnsAsync(mockResponse);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (OkObjectResult)await DocumentProvider.GetLinkTypesAsync("en");
Assert.Equal(200, result.StatusCode);
}
@@ -193,13 +192,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Link types - NoContent Case")]
public async Task GetDocumentCategoriesAsync_ShouldReturnStatusCode204()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getNoContentResponse();
- mockDocumentService.Setup(service => service.GetLinkTypesAsync()).ReturnsAsync(mockResponse);
+ mockDocumentService.Setup(service => service.GetLinkTypesAsync("en")).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NoContentResult)await DocumentProvider.GetLinkTypesAsync();
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (NoContentResult)await DocumentProvider.GetLinkTypesAsync("en");
Assert.Equal(204, result.StatusCode);
}
@@ -207,12 +206,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Link Type by Id - Ok case")]
public async Task GetDocumentcategoryAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getOkResponse(1);
- mockDocumentService.Setup(service => service.GetLinkTypeAsync(1)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (OkObjectResult)await DocumentProvider.GetLinkTypeAsync(1);
+ mockDocumentService.Setup(service => service.GetLinkTypeAsync(1,"en")).ReturnsAsync(mockResponse);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (OkObjectResult)await DocumentProvider.GetLinkTypeAsync(1, "en");
Assert.Equal(200, result.StatusCode);
}
@@ -220,25 +219,25 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Get Link Type by Id - NotFound case")]
public async Task GetDocumentcategoryAsync_ShouldReturnStatusCode404()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getNotFoundResponse();
- mockDocumentService.Setup(service => service.GetLinkTypeAsync(99)).ReturnsAsync(mockResponse);
+ mockDocumentService.Setup(service => service.GetLinkTypeAsync(99, "en")).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NotFoundResult)await DocumentProvider.GetLinkTypeAsync(99);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (NotFoundResult)await DocumentProvider.GetLinkTypeAsync(99, "en");
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Post Link Type - Ok case")]
public async Task PostDocumentcategoryAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getOkResponse(1);
var mockInputDocument = await LinkTypeMockData.getInputLinkData(0);
mockDocumentService.Setup(service => service.PostLinkTypeAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (OkObjectResult)await DocumentProvider.CreateLinkType(mockInputDocument);
Assert.Equal(200, result.StatusCode);
@@ -247,12 +246,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Post Link Type - BadRequest case")]
public async Task PostDocumentcategoryAsync_ShouldReturnStatusCode400()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockInputDocument = await LinkTypeMockData.getInputLinkData(99);
var mockResponse = await LinkTypeMockData.getBadRequestResponse();
mockDocumentService.Setup(service => service.PostLinkTypeAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (BadRequestObjectResult)await DocumentProvider.CreateLinkType(mockInputDocument);
Assert.Equal(400, result.StatusCode);
@@ -261,13 +260,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Put Document - Ok case")]
public async Task PutDocumentcategoryAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getOkResponse(1);
var mockInputDocument = await LinkTypeMockData.getInputLinkData(1);
- mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (OkObjectResult)await DocumentProvider.UpdateLinkType(mockInputDocument);
+ mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(1,mockInputDocument)).ReturnsAsync(mockResponse);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (OkObjectResult)await DocumentProvider.UpdateLinkType(1,mockInputDocument);
Assert.Equal(200, result.StatusCode);
}
@@ -275,13 +274,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Put Document - NotFound case")]
public async Task PutDocumentcategoryAsync_ShouldReturnStatusCode404()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getNotFoundResponse();
var mockInputDocument = await LinkTypeMockData.getInputLinkData(99);
- mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (NotFoundObjectResult)await DocumentProvider.UpdateLinkType(mockInputDocument);
+ mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(99,mockInputDocument)).ReturnsAsync(mockResponse);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (NotFoundObjectResult)await DocumentProvider.UpdateLinkType(99,mockInputDocument);
Assert.Equal(404, result.StatusCode);
}
@@ -289,13 +288,13 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Put Document - BadRequest case")]
public async Task PutDocumentcategoryAsync_ShouldReturnStatusCode400()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getBadRequestResponse();
var mockInputDocument = await LinkTypeMockData.getInputLinkData(1);
- mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(mockInputDocument)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
- var result = (BadRequestObjectResult)await DocumentProvider.UpdateLinkType(mockInputDocument);
+ mockDocumentService.Setup(service => service.UpdateLinkTypeAsync(1,mockInputDocument)).ReturnsAsync(mockResponse);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
+ var result = (BadRequestObjectResult)await DocumentProvider.UpdateLinkType(1, mockInputDocument);
Assert.Equal(400, result.StatusCode);
}
@@ -303,12 +302,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Delete Document - Ok case")]
public async Task DeleteDocumentcategoryAsync_ShouldReturnStatusCode200()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getOkResponse(1);
mockDocumentService.Setup(service => service.DeleteLinkTypeAsync(1)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (OkObjectResult)await DocumentProvider.DeleteLinkType(1);
Assert.Equal(200, result.StatusCode);
@@ -316,12 +315,12 @@ namespace DamageAssesment.Api.Documents.Test
[Fact(DisplayName = "Delete Document - NotFound case")]
public async Task DeleteDocumentcategoryAsync_ShouldReturnStatusCode404()
{
- var mockDocumentService = new Mock();
+ var mockDocumentService = new Mock();
var mockUploadService = new Mock();
var mockResponse = await LinkTypeMockData.getNotFoundResponse();
mockDocumentService.Setup(service => service.DeleteLinkTypeAsync(1)).ReturnsAsync(mockResponse);
- var DocumentProvider = new DocumentsController(mockDocumentService.Object, mockUploadService.Object);
+ var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
var result = (NotFoundResult)await DocumentProvider.DeleteLinkType(99);
Assert.Equal(404, result.StatusCode);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/LinkTypeMockData.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/LinkTypeMockData.cs
new file mode 100644
index 0000000..8ed56f1
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/LinkTypeMockData.cs
@@ -0,0 +1,71 @@
+using DamageAssesment.Api.DocuLinks.Db;
+using DamageAssesment.Api.DocuLinks.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Mail;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DamageAssesment.Api.DocuLinks.Test
+{
+ public class LinkTypeMockData
+ {
+
+ public static async Task<(bool, List, string)> getOkResponse()
+ {
+ List list = new List();
+ Dictionary dictdesc = new Dictionary();
+ dictdesc.Add("en", "test"); dictdesc.Add("fr", "tester");
+ for (int i = 1; i < 4; i++)
+ {
+ list.Add(new DocuLinks.Models.ResLinkType()
+ {
+ Id = i,
+ titles= dictdesc,
+ CustomOrder=i,
+ IsActive = true
+ });
+ }
+ return (true, list, null);
+ }
+ public static async Task<(bool, DocuLinks.Models.ResLinkType, string)> getOkResponse(int Id)
+ {
+ var DocuLinks = await getOkResponse();
+ var Document = DocuLinks.Item2.FirstOrDefault(s => s.Id == Id);
+ return (true, Document, null);
+ }
+ public static async Task<(bool, DocuLinks.Models.ResLinkType, string)> getBadRequestResponse()
+ {
+ return (false, null, "Bad Request");
+ }
+
+ public static async Task<(bool, DocuLinks.Models.ResLinkType, string)> getNotFoundResponse()
+ {
+ return (false, null, "Not Found");
+ }
+ public static async Task<(bool, IEnumerable, string)> getNoContentResponse()
+ {
+ IEnumerable list = new List();
+ return (false, list, null);
+ }
+
+ public static async Task getInputLinkData(int id)
+ {
+ List DocuLinksTranslations = new List();
+ DocuLinksTranslations.Add(new Models.LinksTranslation()
+ {
+ Language = "en",
+ TypeText = "tel"
+ });
+ return new Models.LinkType
+ {
+ Id = id,
+ linksTranslations = DocuLinksTranslations,
+ CustomOrder=1,
+ IsActive = true
+ };
+ }
+
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs
new file mode 100644
index 0000000..bd10e4b
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks.Test/MockData.cs
@@ -0,0 +1,137 @@
+using DamageAssesment.Api.DocuLinks.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Mail;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DamageAssesment.Api.DocuLinks.Test
+{
+ public class MockData
+ {
+
+ public static async Task<(bool, List, string)> getOkResponse()
+ {
+ List list = new List();
+
+ for (int i = 1; i < 4; i++)
+ {
+ Dictionary dicttitle = new Dictionary();
+ Dictionary dictdesc = new Dictionary();
+ dicttitle.Add("en", "test"); dicttitle.Add("fr", "tester");
+ dictdesc.Add("en", "test"); dictdesc.Add("fr", "tester");
+ List DocuLinksTranslations = new List();
+ DocuLinksTranslations.Add(new DoculinkTranslation()
+ {
+ Language = "en",
+ title = "tel"+i,
+ description = "Sample"+i
+ });
+ List doclinksAttachments = new List();
+ doclinksAttachments.Add(new DoculinkAttachments()
+ {
+ docName = "",Path="www.google.com",
+ IsAttachments=false,CustomOrder=1
+ });
+ list.Add(new DocuLinks.Models.ResDoculink()
+ {
+
+ Id = i,
+ linkTypeId = i,
+ IsActive = true,
+ titles= dicttitle,
+ description=dictdesc,
+ CustomOrder=i,
+ doclinksAttachments= doclinksAttachments
+ });
+ }
+ return (true, list, null);
+ }
+ public static async Task<(bool, DocuLinks.Models.ResDoculink, string)> getOkResponse(int Id)
+ {
+ var DocuLinks = await getOkResponse();
+ var Document = DocuLinks.Item2.FirstOrDefault(s => s.Id == Id);
+ return (true, Document, null);
+ }
+
+ public static async Task<(bool, DocuLinks.Models.ResDoculink, string)> getBadRequestResponse()
+ {
+ return (false, null, "Bad Request");
+ }
+
+ public static async Task<(bool, DocuLinks.Models.ResDoculink, string)> getNotFoundResponse()
+ {
+ return (false, null, "Not Found");
+ }
+ public static async Task<(bool, IEnumerable, string)> getNoContentResponse()
+ {
+ IEnumerable list = new List();
+ return (false, list, null);
+ }
+ public static async Task GetDocuLinksInfo(int id)
+ {
+
+ List fileModels = new List();
+ fileModels.Add( new FileModel() { FileName = "Sample", FileContent = "c2FtcGxl", FileExtension = ".txt",IsAttachments=true,CustomOrder=1 });
+ return new ReqDoculink() { Id=id, linkTypeId = 1, CustomOrder = 1, Files = fileModels };
+ }
+ public static async Task getInputDocumentData()
+ {
+ List DocuLinksTranslations = new List();
+ DocuLinksTranslations.Add(new DoculinkTranslation()
+ {
+ Language = "en",
+ title = "tel",
+ description = "Sample"
+ });
+ List doclinksAttachments = new List();
+ doclinksAttachments.Add(new DoculinkAttachments()
+ {
+ docName = "",
+ Path = "www.google.com",
+ IsAttachments = false,
+ CustomOrder = 1
+ });
+ return new Models.Doculink
+ {
+ Id = 1,
+ linkTypeId = 1,
+ IsActive = true,
+ CustomOrder=1,
+ documentsTranslations = DocuLinksTranslations,
+ doclinksAttachments= doclinksAttachments
+ };
+ }
+ public static async Task> getInputDocuLinksData()
+ {
+ List DocuLinksTranslations = new List();
+ DocuLinksTranslations.Add(new DoculinkTranslation()
+ {
+ Language = "en",
+ title = "tel",
+ description = "Sample"
+ });
+ List doclinksAttachments = new List();
+ doclinksAttachments.Add(new DoculinkAttachments()
+ {
+ docName = "",
+ Path = "www.google.com",
+ IsAttachments = false,
+ CustomOrder = 1
+ });
+ List DocuLinks = new List();
+ DocuLinks.Add(new Models.Doculink
+ {
+ Id = 1,
+ linkTypeId = 1,
+ IsActive = true,
+ CustomOrder = 1,
+ documentsTranslations = DocuLinksTranslations,
+ doclinksAttachments = doclinksAttachments
+ });
+ return DocuLinks;
+ }
+
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Controllers/DocumentsController.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Controllers/DoculinkController.cs
similarity index 67%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Controllers/DocumentsController.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Controllers/DoculinkController.cs
index dcf43b9..cfbd508 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Controllers/DocumentsController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Controllers/DoculinkController.cs
@@ -1,19 +1,19 @@
-using DamageAssesment.Api.Documents.Db;
-using DamageAssesment.Api.Documents.Interfaces;
-using DamageAssesment.Api.Documents.Models;
-using DamageAssesment.Api.Documents.Providers;
+using DamageAssesment.Api.DocuLinks.Db;
+using DamageAssesment.Api.DocuLinks.Interfaces;
+using DamageAssesment.Api.DocuLinks.Models;
+using DamageAssesment.Api.DocuLinks.Providers;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-namespace DamageAssesment.Api.Documents.Controllers
+namespace DamageAssesment.Api.DocuLinks.Controllers
{
[ApiController]
- public class DocumentsController : ControllerBase
+ public class DoculinkController : ControllerBase
{
- private readonly IDocumentsProvider documentsProvider;
+ private readonly IDoculinkProvider documentsProvider;
private readonly IUploadService uploadService;
- public DocumentsController(IDocumentsProvider documentsProvider,IUploadService uploadService)
+ public DoculinkController(IDoculinkProvider documentsProvider,IUploadService uploadService)
{
this.documentsProvider = documentsProvider;
@@ -21,13 +21,14 @@ namespace DamageAssesment.Api.Documents.Controllers
}
///
- /// Get all document link type.
+ /// Get all Doculink type.
///
[HttpGet]
[Route("doculinks/types")]
- public async Task GetLinkTypesAsync()
+ [Route("doculinks/types/{language:alpha}")]
+ public async Task GetLinkTypesAsync(string? language)
{
- var result = await this.documentsProvider.GetLinkTypesAsync();
+ var result = await this.documentsProvider.GetLinkTypesAsync(language);
if (result.IsSuccess)
{
return Ok(result.LinkTypes);
@@ -35,13 +36,14 @@ namespace DamageAssesment.Api.Documents.Controllers
return NoContent();
}
///
- /// Get a document link type by id.
+ /// Get a Doculink type by id.
///
[HttpGet]
[Route("doculinks/types/{id}")]
- public async Task GetLinkTypeAsync(int id)
+ [Route("doculinks/types/{id}/{language:alpha}")]
+ public async Task GetLinkTypeAsync(int id,string? language)
{
- var result = await this.documentsProvider.GetLinkTypeAsync(id);
+ var result = await this.documentsProvider.GetLinkTypeAsync(id, language);
if (result.IsSuccess)
{
return Ok(result.LinkType);
@@ -49,15 +51,15 @@ namespace DamageAssesment.Api.Documents.Controllers
return NotFound();
}
///
- /// Update a existing document link type.
+ /// Update a existing Doculink type.
///
[HttpPut]
- [Route("doculinks/types")]
- public async Task UpdateLinkType(Models.LinkType linkType)
+ [Route("doculinks/types/{id}")]
+ public async Task UpdateLinkType(int id,Models.LinkType linkType)
{
if (linkType != null)
{
- var result = await this.documentsProvider.UpdateLinkTypeAsync(linkType);
+ var result = await this.documentsProvider.UpdateLinkTypeAsync(id,linkType);
if (result.IsSuccess)
{
return Ok(result.LinkType);
@@ -70,7 +72,7 @@ namespace DamageAssesment.Api.Documents.Controllers
return CreatedAtRoute("DefaultApi", new { id = linkType.Id }, linkType);
}
///
- /// Create a new document link type.
+ /// Create a new Doculink type.
///
[HttpPost]
[Route("doculinks/types")]
@@ -88,7 +90,7 @@ namespace DamageAssesment.Api.Documents.Controllers
return CreatedAtRoute("DefaultApi", new { id = linkType.Id }, linkType);
}
///
- /// Delete a existing document link type by id.
+ /// Delete a existing Doculink type by id.
///
[HttpDelete]
[Route("doculinks/types/{id}")]
@@ -101,17 +103,17 @@ namespace DamageAssesment.Api.Documents.Controllers
}
return NotFound();
}
- ///
- /// Get all documents.
- ///
- ///
- [Route("doculinks")]
+ ///
+ /// Get all Doculink.
+ ///
+ ///
+ [Route("doculinks")]
[Route("doculinks/{linktype:alpha}")]
[Route("doculinks/{linktype:alpha}/{language:alpha}")]
[HttpGet]
- public async Task GetDocumentsAsync(string? linktype, string? language)
+ public async Task GetDocumentsAsync(string? linktype, string? language,bool? isactive)
{
- var result = await this.documentsProvider.GetdocumentsByLinkAsync(linktype, language);
+ var result = await this.documentsProvider.GetdocumentsByLinkAsync(linktype, language, isactive);
if (result.IsSuccess)
{
return Ok(result.documents);
@@ -119,24 +121,24 @@ namespace DamageAssesment.Api.Documents.Controllers
return NoContent();
}
///
- /// Get all documents.
+ /// Get all active Doculink.
///
- ///
- //[Route("doculinks/{language:alpha}")]
- //[Route("doculinks")]
- //[HttpGet]
- //public async Task GetDocumentsAsync(string? language)
- //{
- // var result = await this.documentsProvider.GetdocumentsAsync(language);
- // if (result.IsSuccess)
- // {
- // return Ok(result.documents);
- // }
- // return NoContent();
- //}
+ [Route("doculinks/active")]
+ [Route("doculinks/active/{linktype:alpha}")]
+ [Route("doculinks/active/{linktype:alpha}/{language:alpha}")]
+ [HttpGet]
+ public async Task GetDocumentsByActiveAsync(string? linktype, string? language)
+ {
+ var result = await this.documentsProvider.GetdocumentsByLinkAsync(linktype, language,true);
+ if (result.IsSuccess)
+ {
+ return Ok(result.documents);
+ }
+ return NoContent();
+ }
///
- /// Get a document by id.
+ /// Get a Doculink by id.
///
[HttpGet]
[Route("doculinks/{id}")]
@@ -152,19 +154,20 @@ namespace DamageAssesment.Api.Documents.Controllers
return NotFound();
}
///
- /// Upload new document.
+ /// update existing doclink.
///
[HttpPut]
[Route("doculinks/{id}")]
- public async Task UpdateDocument(int id,DocumentInfo documentInfo)
+ public async Task UpdateDocument(int id,ReqDoculink documentInfo)
{
if (documentInfo != null)
{
var dbdoc = await this.documentsProvider.GetDocumentByidAsync(id);
if (dbdoc.IsSuccess)
{
- Models.Document document = uploadService.UpdateDocuments(dbdoc.Document, documentInfo);
- var result = await this.documentsProvider.UpdateDocumentAsync(id,document);
+ var documents = await this.documentsProvider.GetDocumentCounter();
+ Models.Doculink DocuLink= uploadService.UpdateDocuments(documents.counter,dbdoc.Document, documentInfo);
+ var result = await this.documentsProvider.UpdateDocumentAsync(id, DocuLink);
if (result.IsSuccess)
{
return Ok(result.Document);
@@ -176,19 +179,19 @@ namespace DamageAssesment.Api.Documents.Controllers
return BadRequest(documentInfo);
}
///
- /// update existing document.
+ /// Create new doclink.
///
[HttpPost]
[Route("doculinks")]
- public async Task CreateDocument(DocumentInfo documentInfo)
+ public async Task CreateDocument(ReqDoculink documentInfo)
{
try
{
if (documentInfo != null)
{
var documents = await this.documentsProvider.GetDocumentCounter();
- Models.Document document = uploadService.UploadDocument(documents.counter, documentInfo);
- var result = await this.documentsProvider.PostDocumentAsync(document);
+ Models.Doculink DocuLink= uploadService.UploadDocument(documents.counter, documentInfo);
+ var result = await this.documentsProvider.PostDocumentAsync(DocuLink);
if (result.IsSuccess)
{
return Ok(result.Document);
@@ -203,7 +206,7 @@ namespace DamageAssesment.Api.Documents.Controllers
}
}
///
- /// Delete document by id.
+ /// Delete Doculink by id.
///
[HttpDelete]
[Route("doculinks/{id}")]
@@ -214,7 +217,10 @@ namespace DamageAssesment.Api.Documents.Controllers
if (result.IsSuccess)
{
// deleting file from folder
- uploadService.Movefile(result.Document.Path);
+ foreach (var item in result.Document.doclinksAttachments)
+ {
+ uploadService.Movefile(item.Path);
+ }
return Ok(result.Document);
}
return NotFound();
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/DamageAssesment.Api.DocuLinks.csproj b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/DamageAssesment.Api.DocuLinks.csproj
similarity index 95%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/DamageAssesment.Api.DocuLinks.csproj
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/DamageAssesment.Api.DocuLinks.csproj
index dab0e6c..b71afa9 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/DamageAssesment.Api.DocuLinks.csproj
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/DamageAssesment.Api.DocuLinks.csproj
@@ -25,8 +25,4 @@
-
-
-
-
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/Document.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/Doculink.cs
similarity index 60%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Db/Document.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/Doculink.cs
index 5313d72..8fe5f21 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/Document.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/Doculink.cs
@@ -1,23 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-namespace DamageAssesment.Api.Documents.Db
+namespace DamageAssesment.Api.DocuLinks.Db
{
- public class Document
+ public class Doculink
{
[Key]
public int Id { get; set; }
[ForeignKey("LinkType")]
public int linkTypeId { get; set; }
- public LinkType? LinkType { get; set; }
- public string docName { get; set; }
-
- public string url { get; set; }
- public string Path { get; set; }
public bool IsActive { get; set; }
+ public bool IsDeleted { get; set; }
+ public int CustomOrder { get; set; }
+ //public bool IsAttachments { get; set; }
+ //public bool IsUrl { get; set; }
public DateTime dateCreated { get; set; }
public DateTime dateUpdated { get; set; }
-
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkAttachments.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkAttachments.cs
new file mode 100644
index 0000000..035ae9b
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkAttachments.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Db
+{
+ public class DoculinkAttachments
+ {
+
+ [Key]
+ public int Id { get; set; }
+ [ForeignKey("Document")]
+ public int DocumentId { get; set; }
+ public string docName { get; set; }
+ public string Path { get; set; }
+ public bool IsAttachments { get; set; }
+ public int CustomOrder { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentDbContext.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkDbContext.cs
similarity index 56%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentDbContext.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkDbContext.cs
index 28b1c92..f24303e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentDbContext.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkDbContext.cs
@@ -3,33 +3,41 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System.ComponentModel.DataAnnotations;
-namespace DamageAssesment.Api.Documents.Db
+namespace DamageAssesment.Api.DocuLinks.Db
{
- public class DocumentDbContext : DbContext
+ public class DoculinkDbContext : DbContext
{
private IConfiguration _Configuration { get; set; }
- public DocumentDbContext(DbContextOptions options, IConfiguration configuration) : base(options)
+ public DoculinkDbContext(DbContextOptions options, IConfiguration configuration) : base(options)
{
_Configuration = configuration;
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
// connect to sql server with connection string from app settings
- options.UseSqlServer(_Configuration.GetConnectionString("DocumentConnection"));
+ options.UseSqlServer(_Configuration.GetConnectionString("DoculinConnection"));
}
- public DbSet Documents { get; set; }
+ public DbSet Documents { get; set; }
public DbSet LinkTypes { get; set; }
- public DbSet DocumentsTranslations { get; set; }
+ public DbSet DocumentsTranslations { get; set; }
+ public DbSet LinksTranslations { get; set; }
+ public DbSet DoclinksAttachments { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
- modelBuilder.Entity()
+ modelBuilder.Entity()
.Property(item => item.Id)
.ValueGeneratedOnAdd();
modelBuilder.Entity()
.Property(item => item.Id)
.ValueGeneratedOnAdd();
- modelBuilder.Entity()
+ modelBuilder.Entity()
+ .Property(item => item.Id)
+ .ValueGeneratedOnAdd();
+ modelBuilder.Entity()
+ .Property(item => item.Id)
+ .ValueGeneratedOnAdd();
+ modelBuilder.Entity()
.Property(item => item.Id)
.ValueGeneratedOnAdd();
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentsTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkTranslation.cs
similarity index 82%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentsTranslation.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkTranslation.cs
index b3a31fc..b932f66 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/DocumentsTranslation.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/DoculinkTranslation.cs
@@ -1,9 +1,9 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-namespace DamageAssesment.Api.Documents.Db
+namespace DamageAssesment.Api.DocuLinks.Db
{
- public class DocumentsTranslation
+ public class DoculinkTranslation
{
[Key]
public int Id { get; set; }
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/LinkType.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinkType.cs
similarity index 57%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Db/LinkType.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinkType.cs
index f5e1e86..510f9e3 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Db/LinkType.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinkType.cs
@@ -1,13 +1,12 @@
using System.ComponentModel.DataAnnotations;
-namespace DamageAssesment.Api.Documents.Db
+namespace DamageAssesment.Api.DocuLinks.Db
{
public class LinkType
{
[Key]
public int Id { get; set; }
- public string TypeText { get; set; }
public bool IsActive { get; set; }
- public bool IsAttachment { get; set; }
+ public int CustomOrder { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinksTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinksTranslation.cs
new file mode 100644
index 0000000..e477743
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Db/LinksTranslation.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Db
+{
+ public class LinksTranslation
+ {
+ [Key]
+ public int Id { get; set; }
+ [ForeignKey("LinkType")]
+ public int LinkTypeId { get; set; }
+ public string TypeText { get; set; }
+ public string Language { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Interfaces/IAzureBlobService.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IAzureBlobService.cs
similarity index 81%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Interfaces/IAzureBlobService.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IAzureBlobService.cs
index d88c827..844945e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Interfaces/IAzureBlobService.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IAzureBlobService.cs
@@ -1,6 +1,6 @@
using Azure.Storage.Blobs.Models;
-namespace DamageAssesment.Api.Documents.Interfaces
+namespace DamageAssesment.Api.DocuLinks.Interfaces
{
public interface IAzureBlobService
{
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs
new file mode 100644
index 0000000..f4f9c84
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IDoculinkProvider.cs
@@ -0,0 +1,18 @@
+using DamageAssesment.Api.DocuLinks.Models;
+
+namespace DamageAssesment.Api.DocuLinks.Interfaces
+{
+ public interface IDoculinkProvider : ILinkTypesProvider
+ {
+ 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, 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)> DeleteDocumentAsync(int id);
+ Task<(bool IsSuccess, int counter, string message)> GetDocumentCounter();
+
+
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/ILinkTypeProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/ILinkTypeProvider.cs
new file mode 100644
index 0000000..133ff16
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/ILinkTypeProvider.cs
@@ -0,0 +1,11 @@
+namespace DamageAssesment.Api.DocuLinks.Interfaces
+{
+ public interface ILinkTypesProvider
+ {
+ Task<(bool IsSuccess, Models.ResLinkType LinkType, string ErrorMessage)> GetLinkTypeAsync(int id,string? language);
+ Task<(bool IsSuccess, IEnumerable LinkTypes, string ErrorMessage)> GetLinkTypesAsync(string? language);
+ Task<(bool IsSuccess, Models.ResLinkType LinkType, string ErrorMessage)> PostLinkTypeAsync(Models.LinkType LinkType);
+ Task<(bool IsSuccess, Models.ResLinkType LinkType, string ErrorMessage)> UpdateLinkTypeAsync(int id,Models.LinkType LinkType);
+ Task<(bool IsSuccess, Models.ResLinkType LinkType, string ErrorMessage)> DeleteLinkTypeAsync(int id);
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IUploadService.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IUploadService.cs
new file mode 100644
index 0000000..4219fd6
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Interfaces/IUploadService.cs
@@ -0,0 +1,12 @@
+using DamageAssesment.Api.DocuLinks.Models;
+
+namespace DamageAssesment.Api.DocuLinks.Interfaces
+{
+ public interface IUploadService
+ {
+ Models.Doculink UploadDocument( int counter, ReqDoculink documentInfo);
+ public Models.Doculink UpdateDocuments(int counter, Models.Doculink document, ReqDoculink documentInfo);
+ void Deletefile(string path);
+ void Movefile(string path);
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.Designer.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
similarity index 91%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
index ba5ecae..8072057 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using DamageAssesment.Api.Documents.Db;
+using DamageAssesment.Api.DocuLinks.Db;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,9 +9,9 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace DamageAssesment.Api.Documents.Migrations
+namespace DamageAssesment.Api.DocuLinks.Migrations
{
- [DbContext(typeof(DocumentDbContext))]
+ [DbContext(typeof(DoculinkDbContext))]
[Migration("20230828165655_InitialDocumentCreate")]
partial class InitialDocumentCreate
{
@@ -25,7 +25,7 @@ namespace DamageAssesment.Api.Documents.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.Document", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -70,7 +70,7 @@ namespace DamageAssesment.Api.Documents.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.LinkType", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
similarity index 97%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
index 3d55b84..741574e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230828165655_InitialDocumentCreate.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230828165655_InitialDocumentCreate.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace DamageAssesment.Api.Documents.Migrations
+namespace DamageAssesment.Api.DocuLinks.Migrations
{
///
public partial class InitialDocumentCreate : Migration
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.Designer.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
similarity index 91%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.Designer.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
index 9fcc43d..b9006ba 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.Designer.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using DamageAssesment.Api.Documents.Db;
+using DamageAssesment.Api.DocuLinks.Db;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,9 +9,9 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace DamageAssesment.Api.Documents.Migrations
+namespace DamageAssesment.Api.DocuLinks.Migrations
{
- [DbContext(typeof(DocumentDbContext))]
+ [DbContext(typeof(DoculinkDbContext))]
[Migration("20230830200432_DocumentTranslation")]
partial class DocumentTranslation
{
@@ -25,7 +25,7 @@ namespace DamageAssesment.Api.Documents.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.Document", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -62,7 +62,7 @@ namespace DamageAssesment.Api.Documents.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.DocumentsTranslation", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DocumentsTranslation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -90,7 +90,7 @@ namespace DamageAssesment.Api.Documents.Migrations
b.ToTable("DocumentsTranslations");
});
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.LinkType", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
similarity index 97%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
index 90f26be..d639539 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/20230830200432_DocumentTranslation.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230830200432_DocumentTranslation.cs
@@ -2,7 +2,7 @@
#nullable disable
-namespace DamageAssesment.Api.Documents.Migrations
+namespace DamageAssesment.Api.DocuLinks.Migrations
{
///
public partial class DocumentTranslation : Migration
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.Designer.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.Designer.cs
new file mode 100644
index 0000000..a8fd840
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.Designer.cs
@@ -0,0 +1,162 @@
+//
+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("20230926163717_doculinkUpdate")]
+ partial class doculinkUpdate
+ {
+ ///
+ 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.Doculink", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CustomOrder")
+ .HasColumnType("int");
+
+ b.Property("IsActive")
+ .HasColumnType("bit");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("dateCreated")
+ .HasColumnType("datetime2");
+
+ b.Property("dateUpdated")
+ .HasColumnType("datetime2");
+
+ b.Property("linkTypeId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("Documents");
+ });
+
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DoculinkAttachments", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CustomOrder")
+ .HasColumnType("int");
+
+ b.Property("DocumentId")
+ .HasColumnType("int");
+
+ b.Property("IsAttachments")
+ .HasColumnType("bit");
+
+ b.Property("Path")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("docName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("DoclinksAttachments");
+ });
+
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DoculinkTranslation", 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("CustomOrder")
+ .HasColumnType("int");
+
+ b.Property("IsActive")
+ .HasColumnType("bit");
+
+ b.HasKey("Id");
+
+ b.ToTable("LinkTypes");
+ });
+
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinksTranslation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Language")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LinkTypeId")
+ .HasColumnType("int");
+
+ b.Property("TypeText")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("LinksTranslations");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.cs
new file mode 100644
index 0000000..f5df82a
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/20230926163717_doculinkUpdate.cs
@@ -0,0 +1,144 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace DamageAssesment.Api.DocuLinks.Migrations
+{
+ ///
+ public partial class doculinkUpdate : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "IsAttachment",
+ table: "LinkTypes");
+
+ migrationBuilder.DropColumn(
+ name: "TypeText",
+ table: "LinkTypes");
+
+ migrationBuilder.DropColumn(
+ name: "Path",
+ table: "Documents");
+
+ migrationBuilder.DropColumn(
+ name: "docName",
+ table: "Documents");
+
+ migrationBuilder.DropColumn(
+ name: "url",
+ table: "Documents");
+
+ migrationBuilder.AddColumn(
+ name: "CustomOrder",
+ table: "LinkTypes",
+ type: "int",
+ nullable: false,
+ defaultValue: 0);
+
+ migrationBuilder.AddColumn(
+ name: "CustomOrder",
+ table: "Documents",
+ type: "int",
+ nullable: false,
+ defaultValue: 0);
+
+ migrationBuilder.AddColumn(
+ name: "IsDeleted",
+ table: "Documents",
+ type: "bit",
+ nullable: false,
+ defaultValue: false);
+
+ migrationBuilder.CreateTable(
+ name: "DoclinksAttachments",
+ columns: table => new
+ {
+ Id = table.Column(type: "int", nullable: false)
+ .Annotation("SqlServer:Identity", "1, 1"),
+ DocumentId = table.Column(type: "int", nullable: false),
+ docName = table.Column(type: "nvarchar(max)", nullable: false),
+ Path = table.Column(type: "nvarchar(max)", nullable: false),
+ IsAttachments = table.Column(type: "bit", nullable: false),
+ CustomOrder = table.Column(type: "int", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_DoclinksAttachments", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "LinksTranslations",
+ columns: table => new
+ {
+ Id = table.Column(type: "int", nullable: false)
+ .Annotation("SqlServer:Identity", "1, 1"),
+ LinkTypeId = table.Column(type: "int", nullable: false),
+ TypeText = table.Column(type: "nvarchar(max)", nullable: false),
+ Language = table.Column(type: "nvarchar(max)", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_LinksTranslations", x => x.Id);
+ });
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "DoclinksAttachments");
+
+ migrationBuilder.DropTable(
+ name: "LinksTranslations");
+
+ migrationBuilder.DropColumn(
+ name: "CustomOrder",
+ table: "LinkTypes");
+
+ migrationBuilder.DropColumn(
+ name: "CustomOrder",
+ table: "Documents");
+
+ migrationBuilder.DropColumn(
+ name: "IsDeleted",
+ table: "Documents");
+
+ migrationBuilder.AddColumn(
+ name: "IsAttachment",
+ table: "LinkTypes",
+ type: "bit",
+ nullable: false,
+ defaultValue: false);
+
+ migrationBuilder.AddColumn(
+ name: "TypeText",
+ table: "LinkTypes",
+ type: "nvarchar(max)",
+ nullable: false,
+ defaultValue: "");
+
+ migrationBuilder.AddColumn(
+ name: "Path",
+ table: "Documents",
+ type: "nvarchar(max)",
+ nullable: false,
+ defaultValue: "");
+
+ migrationBuilder.AddColumn(
+ name: "docName",
+ table: "Documents",
+ type: "nvarchar(max)",
+ nullable: false,
+ defaultValue: "");
+
+ migrationBuilder.AddColumn(
+ name: "url",
+ table: "Documents",
+ type: "nvarchar(max)",
+ nullable: false,
+ defaultValue: "");
+ }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/DocumentDbContextModelSnapshot.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
similarity index 63%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/DocumentDbContextModelSnapshot.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
index 24681f1..536727e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Migrations/DocumentDbContextModelSnapshot.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Migrations/DocumentDbContextModelSnapshot.cs
@@ -1,6 +1,6 @@
//
using System;
-using DamageAssesment.Api.Documents.Db;
+using DamageAssesment.Api.DocuLinks.Db;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,9 +8,9 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace DamageAssesment.Api.Documents.Migrations
+namespace DamageAssesment.Api.DocuLinks.Migrations
{
- [DbContext(typeof(DocumentDbContext))]
+ [DbContext(typeof(DoculinkDbContext))]
partial class DocumentDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
@@ -22,7 +22,7 @@ namespace DamageAssesment.Api.Documents.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.Document", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.Doculink", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -30,12 +30,14 @@ namespace DamageAssesment.Api.Documents.Migrations
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+ b.Property("CustomOrder")
+ .HasColumnType("int");
+
b.Property("IsActive")
.HasColumnType("bit");
- b.Property("Path")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
b.Property("dateCreated")
.HasColumnType("datetime2");
@@ -43,23 +45,45 @@ namespace DamageAssesment.Api.Documents.Migrations
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.Documents.Db.DocumentsTranslation", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DoculinkAttachments", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("CustomOrder")
+ .HasColumnType("int");
+
+ b.Property("DocumentId")
+ .HasColumnType("int");
+
+ b.Property("IsAttachments")
+ .HasColumnType("bit");
+
+ b.Property("Path")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("docName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("DoclinksAttachments");
+ });
+
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.DoculinkTranslation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -87,7 +111,7 @@ namespace DamageAssesment.Api.Documents.Migrations
b.ToTable("DocumentsTranslations");
});
- modelBuilder.Entity("DamageAssesment.Api.Documents.Db.LinkType", b =>
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinkType", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -95,11 +119,31 @@ namespace DamageAssesment.Api.Documents.Migrations
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+ b.Property("CustomOrder")
+ .HasColumnType("int");
+
b.Property("IsActive")
.HasColumnType("bit");
- b.Property("IsAttachment")
- .HasColumnType("bit");
+ b.HasKey("Id");
+
+ b.ToTable("LinkTypes");
+ });
+
+ modelBuilder.Entity("DamageAssesment.Api.DocuLinks.Db.LinksTranslation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Language")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LinkTypeId")
+ .HasColumnType("int");
b.Property("TypeText")
.IsRequired()
@@ -107,7 +151,7 @@ namespace DamageAssesment.Api.Documents.Migrations
b.HasKey("Id");
- b.ToTable("LinkTypes");
+ b.ToTable("LinksTranslations");
});
#pragma warning restore 612, 618
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/Doculink.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/Doculink.cs
new file mode 100644
index 0000000..6fb538b
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/Doculink.cs
@@ -0,0 +1,25 @@
+using DamageAssesment.Api.DocuLinks.Models;
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Models
+{
+ public class Doculink : BaseDoculink
+ {
+ public List documentsTranslations { get; set; }
+ }
+ public class ResDoculink:BaseDoculink
+ {
+ public object titles { get; set; }
+ public object description { get; set; }
+ public object linktypes { get; set; }
+ }
+ public class BaseDoculink
+ {
+ public int Id { get; set; }
+ public int linkTypeId { get; set; }
+ public bool IsActive { get; set; }
+ public bool IsDeleted { get; set; }
+ public List doclinksAttachments { get; set; }
+ public int CustomOrder { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkAttachments.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkAttachments.cs
new file mode 100644
index 0000000..ce87857
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkAttachments.cs
@@ -0,0 +1,13 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Models
+{
+ public class DoculinkAttachments
+ {
+ public string docName { get; set; }
+ public string Path { get; set; }
+ public bool IsAttachments { get; set; }
+ public int CustomOrder { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Models/DocumentsTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkTranslation.cs
similarity index 74%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Models/DocumentsTranslation.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkTranslation.cs
index f2ca5af..d632557 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Models/DocumentsTranslation.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/DoculinkTranslation.cs
@@ -1,9 +1,9 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-namespace DamageAssesment.Api.Documents.Models
+namespace DamageAssesment.Api.DocuLinks.Models
{
- public class DocumentsTranslation
+ public class DoculinkTranslation
{
public string title { get; set; }
public string description { get; set; }
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinkType.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinkType.cs
new file mode 100644
index 0000000..37323da
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinkType.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Models
+{
+ public class LinkType : BaseLinkType
+ {
+ public List linksTranslations { get; set; }
+ }
+ public class BaseLinkType
+ {
+ public int Id { get; set; }
+ public bool IsActive { get; set; }
+ public int CustomOrder { get; set; }
+ }
+
+ public class ResLinkType : BaseLinkType
+ {
+ public object titles { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinksTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinksTranslation.cs
new file mode 100644
index 0000000..2008aa8
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/LinksTranslation.cs
@@ -0,0 +1,11 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+
+namespace DamageAssesment.Api.DocuLinks.Models
+{
+ public class LinksTranslation
+ {
+ public string TypeText { get; set; }
+ public string Language { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/ReqDoculink.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/ReqDoculink.cs
new file mode 100644
index 0000000..0f2ea17
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Models/ReqDoculink.cs
@@ -0,0 +1,22 @@
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace DamageAssesment.Api.DocuLinks.Models
+{
+ public class ReqDoculink
+ {
+ public int Id { get; set; }
+ public int linkTypeId { get; set; }
+ public List documentsTranslations { get; set; }
+ public int CustomOrder { get; set; }
+ public List? Files { get; set; }
+ }
+ public class FileModel
+ {
+ public string? FileName { get; set; }
+ public string? FileContent { get; set; }
+ public string? FileExtension { get; set; }
+ public int CustomOrder { get; set; }
+ public string url { get;set; }
+ public bool IsAttachments { get; set; }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Profiles/DoculinkProfile.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Profiles/DoculinkProfile.cs
new file mode 100644
index 0000000..084638f
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Profiles/DoculinkProfile.cs
@@ -0,0 +1,22 @@
+using AutoMapper;
+
+namespace DamageAssesment.Api.DocuLinks.Profiles
+{
+ public class DoculinkProfile : AutoMapper.Profile
+ {
+ public DoculinkProfile()
+ {
+ CreateMap() ;
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ }
+ }
+}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Program.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Program.cs
similarity index 77%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Program.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Program.cs
index 04b93fe..f28dd76 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Program.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Program.cs
@@ -1,6 +1,6 @@
-using DamageAssesment.Api.Documents.Db;
-using DamageAssesment.Api.Documents.Interfaces;
-using DamageAssesment.Api.Documents.Providers;
+using DamageAssesment.Api.DocuLinks.Db;
+using DamageAssesment.Api.DocuLinks.Interfaces;
+using DamageAssesment.Api.DocuLinks.Providers;
using Microsoft.EntityFrameworkCore;
using System.Reflection;
@@ -19,13 +19,13 @@ builder.Services.AddSwaggerGen(c =>
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
-builder.Services.AddScoped();
+builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); //4/30
-builder.Services.AddDbContext(option =>
+builder.Services.AddDbContext(option =>
{
- option.UseSqlServer("DocumentConnection");
+ option.UseSqlServer("DoculinConnection");
});
var app = builder.Build();
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Properties/launchSettings.json b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Properties/launchSettings.json
similarity index 100%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Properties/launchSettings.json
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Properties/launchSettings.json
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Documents/Providers/AzureBlobService.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/AzureBlobService.cs
similarity index 93%
rename from DamageAssesmentApi/DamageAssesment.Api.Documents/Providers/AzureBlobService.cs
rename to DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/AzureBlobService.cs
index bc456f5..bfa2ca4 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Documents/Providers/AzureBlobService.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/AzureBlobService.cs
@@ -2,9 +2,9 @@
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
-using DamageAssesment.Api.Documents.Interfaces;
+using DamageAssesment.Api.DocuLinks.Interfaces;
-namespace DamageAssesment.Api.Documents.Providers
+namespace DamageAssesment.Api.DocuLinks.Providers
{
public class AzureBlobService: IAzureBlobService
{
diff --git a/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs
new file mode 100644
index 0000000..cf8bcfe
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.DocuLinks/Providers/DoculinkProvider.cs
@@ -0,0 +1,531 @@
+using AutoMapper;
+using DamageAssesment.Api.DocuLinks.Db;
+using DamageAssesment.Api.DocuLinks.Interfaces;
+using DamageAssesment.Api.DocuLinks.Models;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Internal;
+using System;
+using System.Diagnostics.Eventing.Reader;
+using System.Reflection.Metadata;
+using System.Xml.Linq;
+
+namespace DamageAssesment.Api.DocuLinks.Providers
+{
+
+
+ public class DoculinkProvider : IDoculinkProvider
+ {
+ private DoculinkDbContext DocumentDbContext;
+ private ILogger logger;
+ private IUploadService uploadservice;
+ private IMapper mapper;
+
+ public DoculinkProvider(DoculinkDbContext DocumentDbContext, ILogger logger, IMapper mapper, IUploadService uploadservice)
+ {
+ this.DocumentDbContext = DocumentDbContext;
+ this.logger = logger;
+ this.mapper = mapper;
+ this.uploadservice = uploadservice;
+ SeedData();
+ }
+
+
+
+ private void SeedData()
+ {
+ if (!DocumentDbContext.LinkTypes.Any())
+ {
+ DocumentDbContext.LinkTypes.Add(new Db.LinkType() { IsActive = true, CustomOrder = 1 });
+ DocumentDbContext.LinkTypes.Add(new Db.LinkType() { IsActive = true, CustomOrder = 2 });
+ DocumentDbContext.LinkTypes.Add(new Db.LinkType() { IsActive = true, CustomOrder = 3 });
+ DocumentDbContext.LinkTypes.Add(new Db.LinkType() { IsActive = true, CustomOrder = 4 });
+ DocumentDbContext.SaveChanges();
+ }
+ if (!DocumentDbContext.LinksTranslations.Any())
+ {
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Forms", Language = "en", LinkTypeId = 1 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Communiques", Language = "en", LinkTypeId = 2 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Memos", Language = "en", LinkTypeId = 3 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Trainings", Language = "en", LinkTypeId = 4 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Formularios", Language = "es", LinkTypeId = 1 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Comunicados", Language = "es", LinkTypeId = 2 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "notas", Language = "es", LinkTypeId = 3 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Entrenamientos", Language = "es", LinkTypeId = 4 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Formes", Language = "fr", LinkTypeId = 1 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Communiqués", Language = "fr", LinkTypeId = 2 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Mémos", Language = "fr", LinkTypeId = 3 });
+ DocumentDbContext.LinksTranslations.Add(new Db.LinksTranslation() { TypeText = "Formations", Language = "fr", LinkTypeId = 4 });
+ DocumentDbContext.SaveChanges();
+ }
+ if (!DocumentDbContext.Documents.Any())
+ {
+ int counter = 0;
+ for (int i = 1; i <= 4; i++)
+ {
+ FileModel fileModel = new FileModel() { url = "www.google"+i+".com", IsAttachments = false, CustomOrder = 1 };
+ ReqDoculink documentInfo = new ReqDoculink() { linkTypeId = i,CustomOrder=i, Files = new List() { fileModel } };
+ Db.DoculinkTranslation documents = new Db.DoculinkTranslation { DocumentId = i, title = "Test"+i, description = "ss"+i, Language = "en" };
+ Models.Doculink document = uploadservice.UploadDocument(counter, documentInfo);
+ DocumentDbContext.Documents.Add(mapper.Map(document));
+ DocumentDbContext.SaveChanges();
+ DocumentDbContext.DocumentsTranslations.AddRange(documents);
+ var dbattachments = mapper.Map, List>(document.doclinksAttachments);
+ dbattachments.ForEach(a => a.DocumentId = i);
+ DocumentDbContext.DoclinksAttachments.AddRange(dbattachments);
+ DocumentDbContext.SaveChanges();
+ counter++;
+ }
+ }
+ }
+ public List GetDocumentTranslations(int id, string? language)
+ {
+ List QuestionTranslations;
+ if (string.IsNullOrEmpty(language))
+ {
+ QuestionTranslations = mapper.Map, List>(
+ DocumentDbContext.DocumentsTranslations.AsNoTracking().Where(a => a.DocumentId == id).ToList());
+ }
+ else
+ {
+ QuestionTranslations = mapper.Map