forked from MDCPS/DamageAssessment_Backend
		
	added multi language support for doculink attachments
This commit is contained in:
		| @ -9,6 +9,7 @@ using System; | ||||
| using System.Collections.Immutable; | ||||
| using System.Diagnostics.Eventing.Reader; | ||||
| using System.Reflection.Metadata; | ||||
| using System.Runtime.CompilerServices; | ||||
| using System.Xml; | ||||
| using System.Xml.Linq; | ||||
|  | ||||
| @ -73,10 +74,10 @@ namespace DamageAssesment.Api.DocuLinks.Providers | ||||
|                     { | ||||
|                         linkTypeId = 1; | ||||
|  | ||||
|                         fileModel = new FileModel() { FileName = "Sample" + i, FileExtension = ".txt", FileContent = "c2FtcGxl", IsAttachments = true, CustomOrder = 1 }; | ||||
|                         fileModel = new FileModel() { FileName = "Sample" + i, FileExtension = ".txt", FileContent = "c2FtcGxl", IsAttachments = true, CustomOrder = 1, Language = "en"  }; | ||||
|                     } | ||||
|                     else | ||||
|                         fileModel = new FileModel() { url = "www.google" + i + ".com", IsAttachments = false, CustomOrder = 1 }; | ||||
|                         fileModel = new FileModel() { url = "www.google" + i + ".com", IsAttachments = false, CustomOrder = 1,Language="en" }; | ||||
|                     ReqDoculink documentInfo = new ReqDoculink() { linkTypeId = i, CustomOrder = i, Files = new List<FileModel>() { fileModel } }; | ||||
|                     Models.Doculink document = uploadservice.UploadDocument(counter, documentInfo); | ||||
|                     DocumentDbContext.Documents.Add(mapper.Map<Models.Doculink, Db.Doculink>(document)); | ||||
| @ -172,7 +173,19 @@ 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) | ||||
|         { | ||||
|  | ||||
| @ -194,8 +207,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); | ||||
|                     } | ||||
|                    // List<ResDoculinks> doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList(); | ||||
|                     return (true, result, null); | ||||
| @ -230,8 +242,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); | ||||
|                     } | ||||
|                     //List<ResDoculinks> doculinks =  result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList(); | ||||
|                     return (true, result, null); | ||||
| @ -286,8 +297,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"); | ||||
| @ -319,8 +329,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"); | ||||
| @ -431,8 +440,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