forked from MDCPS/DamageAssessment_Backend
		
	added multi language support for doculink attachments
This commit is contained in:
		| @ -32,7 +32,8 @@ namespace DamageAssesment.Api.DocuLinks.Test | ||||
|                 doclinksAttachments.Add(new DoculinkAttachments() | ||||
|                 { | ||||
|                     docName = "",Path="www.google.com", | ||||
|                     IsAttachments=false,CustomOrder=1 | ||||
|                     Language = "en", | ||||
|                     IsAttachments =false,CustomOrder=1 | ||||
|                 }); | ||||
|                 list.Add(new DocuLinks.Models.ResDoculink() | ||||
|                 { | ||||
| @ -91,6 +92,7 @@ namespace DamageAssesment.Api.DocuLinks.Test | ||||
|                 docName = "", | ||||
|                 Path = "www.google.com", | ||||
|                 IsAttachments = false, | ||||
|                 Language = "en", | ||||
|                 CustomOrder = 1 | ||||
|             }); | ||||
|             return new Models.Doculink | ||||
| @ -118,6 +120,7 @@ namespace DamageAssesment.Api.DocuLinks.Test | ||||
|                 docName = "", | ||||
|                 Path = "www.google.com", | ||||
|                 IsAttachments = false, | ||||
|                 Language = "en", | ||||
|                 CustomOrder = 1 | ||||
|             }); | ||||
|             List<DocuLinks.Models.Doculink> DocuLinks = new List<Models.Doculink>(); | ||||
|  | ||||
| @ -14,5 +14,6 @@ namespace DamageAssesment.Api.DocuLinks.Db | ||||
|         public string Path { get; set; } | ||||
|         public bool IsAttachments { get; set; } | ||||
|         public int CustomOrder { get; set; } | ||||
|         public string Language { get; set; } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -8,6 +8,7 @@ namespace DamageAssesment.Api.DocuLinks.Models | ||||
|         public string docName { get; set; } | ||||
|         public string Path { get; set; } | ||||
|         public bool IsAttachments { get; set; } | ||||
|         public string Language { get; set; } | ||||
|         public int CustomOrder { get; set; } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -18,5 +18,6 @@ namespace DamageAssesment.Api.DocuLinks.Models | ||||
|         public int CustomOrder { get; set; } | ||||
|         public string url { get;set; } | ||||
|         public bool IsAttachments { get; set; } | ||||
|         public string Language { get; set; } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -55,7 +55,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                         } | ||||
|                         else | ||||
|                             path = item.url; | ||||
|                         attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path, IsAttachments = item.IsAttachments, CustomOrder = item.CustomOrder }); | ||||
|                         attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path, IsAttachments = item.IsAttachments, CustomOrder = item.CustomOrder,Language=item.Language }); | ||||
|                     } | ||||
|                 } | ||||
|                 Documents = new Models.Doculink() | ||||
| @ -104,7 +104,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                     } | ||||
|                     else | ||||
|                         path = item.url; | ||||
|                     attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path, IsAttachments = item.IsAttachments, CustomOrder = item.CustomOrder }); | ||||
|                     attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path, IsAttachments = item.IsAttachments, CustomOrder = item.CustomOrder,Language=item.Language }); | ||||
|                 } | ||||
|                 Models.Doculink Documents = new Models.Doculink() | ||||
|                 { | ||||
|  | ||||
| @ -135,6 +135,54 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|             MultiLanguage = dicttitle; | ||||
|             return MultiLanguage; | ||||
|         } | ||||
|         private List<Models.DoculinkAttachments> GetDocumentAttachment(int id,string? language) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(language)) | ||||
|             { | ||||
|                 return  mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                     DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == id).ToList()); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 return  mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                 DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == id && a.Language == language).ToList()); | ||||
|             } | ||||
|         } | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive) | ||||
|         { | ||||
|  | ||||
|             try | ||||
|             { | ||||
|                 logger?.LogInformation("Query Question"); | ||||
|                 var documents = new List<Db.Doculink>(); | ||||
|                 if (linkTypeId==null) | ||||
|                     documents = await DocumentDbContext.Documents.AsNoTracking().Where(q => (isactive == null || q.IsActive == isactive.Value)).ToListAsync(); | ||||
|                 else | ||||
|                     documents = await DocumentDbContext.Documents.AsNoTracking().Where(q => (isactive == null || q.IsActive == isactive.Value) && | ||||
|                      q.linkTypeId == linkTypeId.Value).ToListAsync(); | ||||
|                 if (documents != null) | ||||
|                 { | ||||
|                     var result = mapper.Map<List<Db.Doculink>, List<Models.ResDoculink>>(documents); | ||||
|                     foreach (var item in result) | ||||
|                     { | ||||
|                         var multilan = CreateMultiLanguageObject(GetDocumentTranslations(item.Id, language)); | ||||
|                         item.titles = multilan.titles; | ||||
|                         item.description = multilan.description; | ||||
|                         item.linktypes = CreateMultiLanguageLinkTypeObject(GetLinkTypeTranslations(item.linkTypeId, language)); | ||||
|                         item.doclinksAttachments = GetDocumentAttachment(item.Id,language); | ||||
|                     } | ||||
|                    // List<ResDoculinks> 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"); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive) | ||||
|         { | ||||
|  | ||||
| @ -156,8 +204,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                         item.titles = multilan.titles; | ||||
|                         item.description = multilan.description; | ||||
|                         item.linktypes = CreateMultiLanguageLinkTypeObject(GetLinkTypeTranslations(item.linkTypeId, language)); | ||||
|                         item.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                             DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList()); | ||||
|                         item.doclinksAttachments = GetDocumentAttachment(item.Id, language); | ||||
|                     } | ||||
|                     return (true, result, null); | ||||
|                 } | ||||
| @ -211,8 +258,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                     result.documentsTranslations = mapper.Map<List<Db.DoculinkTranslation>, List<Models.DoculinkTranslation>>( | ||||
|                             DocumentDbContext.DocumentsTranslations.Where(a => a.DocumentId == result.Id).ToList()); | ||||
|  | ||||
|                     result.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                         DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == id).ToList()); | ||||
|                     result.doclinksAttachments = GetDocumentAttachment(id, ""); | ||||
|                     return (true, result, null); | ||||
|                 } | ||||
|                 return (false, null, "Not found"); | ||||
| @ -244,8 +290,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                     result.linktypes = CreateMultiLanguageLinkTypeObject(GetLinkTypeTranslations(result.linkTypeId, language)); | ||||
|                     result.titles = multilan.titles; | ||||
|                     result.description = multilan.description; | ||||
|                     result.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                         DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == id).ToList()); | ||||
|                     result.doclinksAttachments = GetDocumentAttachment(id, language); | ||||
|                     return (true, result, null); | ||||
|                 } | ||||
|                 return (false, null, "Not found"); | ||||
| @ -356,8 +401,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                 result.titles = multilan.titles; | ||||
|                 result.description = multilan.description; | ||||
|                 result.linktypes = CreateMultiLanguageLinkTypeObject(GetLinkTypeTranslations(result.linkTypeId, "")); | ||||
|                 result.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>( | ||||
|                     DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == id).ToList()); | ||||
|                 result.doclinksAttachments = GetDocumentAttachment(id, ""); | ||||
|                 Document.IsActive = false; | ||||
|                 DocumentDbContext.Documents.Update(Document); | ||||
|                 DocumentDbContext.SaveChanges(); | ||||
|  | ||||
| @ -51,7 +51,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                         } | ||||
|                         else | ||||
|                             path = item.url; | ||||
|                         attachments.Add(new Models.DoculinkAttachments { docName=UserfileName,Path=path,IsAttachments=item.IsAttachments,CustomOrder=item.CustomOrder }); | ||||
|                         attachments.Add(new Models.DoculinkAttachments { docName=UserfileName,Path=path,IsAttachments=item.IsAttachments,CustomOrder=item.CustomOrder,Language=item.Language }); | ||||
|                     } | ||||
|                 } | ||||
|                 Documents=new Models.Doculink (){ linkTypeId = documentInfo.linkTypeId, | ||||
| @ -93,7 +93,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                     } | ||||
|                     else | ||||
|                         path = item.url; | ||||
|                     attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path,IsAttachments=item.IsAttachments,CustomOrder=item.CustomOrder }); | ||||
|                     attachments.Add(new Models.DoculinkAttachments { docName = UserfileName, Path = path,IsAttachments=item.IsAttachments,CustomOrder=item.CustomOrder,Language=item.Language }); | ||||
|                 } | ||||
|                 Models.Doculink Documents = new Models.Doculink() | ||||
|                 { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user