public void Test_FileStoring_TestRealData()
        {
            var documentManager = new PresentationDocumentManager();

            var simpleFile = GetGenerationData();

            var filePath = "E:\\Temp\\Amrop\\Generated\\PPT";
            var fileName = $"{Guid.NewGuid().ToString()}.pptx";

            documentManager.SaveDocument(simpleFile, filePath, fileName);
        }
        public HttpResponseMessage DownloadPdfFile(string language, string id)
        {
            try
            {
                telemetry.TrackEvent("DownloadPdfFile", new Dictionary<string, string> { { "User", User.Identity.Name } });

                var documentManager = new PresentationDocumentManager();

                var generationData = GetGenerationData(language, id);
                var cleanedFullName = !string.IsNullOrEmpty(generationData.FullName) ? generationData.FullName.Replace(' ', '_') : string.Empty;

                var bytes = documentManager.GetDocument(GetGenerationData(language, id));

                var result = Request.CreateResponse(HttpStatusCode.OK);
                result.Content = new ByteArrayContent(bytes);
                result.Content.Headers.ContentDisposition =
                    new System.Net.Http.Headers.ContentDispositionHeaderValue(
                            "attachment")
                    { FileName = $"CV_{cleanedFullName}_{language.ToUpper()}" + ".pptx" };

                using (var db = new ProfileInformationDbContext())
                {
                    db.AuditLogs.Add(new AuditLog
                    {
                        AuditEvent = AuditEvent.DownloadPpt.ToString(),
                        EventTime = DateTime.Now,
                        UserAffected = generationData.FullName,
                        UserAffectedId = id,
                        Username = User.Identity.Name
                    });

                    db.SaveChanges();
                }

                return result;
            }
            catch (Exception ex)
            {
                telemetry.TrackException(ex);

                return Request.CreateResponse(HttpStatusCode.InternalServerError);
            }
        }