Esempio n. 1
0
 public async Task <List <DataHistoryResponseModel> > GetDataHistory([FromBody] DataHistoryModel model)
 {
     return(await _dataLogImplementation.GetDataHistory(model.EntityName, model.Data));
 }
Esempio n. 2
0
        public async Task <HttpResponseMessage> Index([FromUri] DataHistoryModel UserData)
        {
            this.authenticateUser(UserData);
            BigDataLogControl bigDataControl = new BigDataLogControl();
            var timeline   = UserData.TimeLine;
            var logChanges = await bigDataControl.getLogChangesByType(UserData.UserID, timeline, UserData.ActivityType).ConfigureAwait(false);

            byte[] returnedData = null;

            using (var returnedMemoryStream = new MemoryStream())
            {
                using (var returnedArchive = new ZipArchive(returnedMemoryStream, ZipArchiveMode.Create, true))
                {
                    foreach (LogChange logChange in logChanges)
                    {
                        byte[] zippedLog = logChange.ZippedLog;

                        string entryFileName = logChange.JsTimeOfCreation + "_" + logChange.TypeOfEvent + "_" + logChange.JsTimeOfCreation;


                        MemoryStream zippedXmlMemoryStream = new MemoryStream(logChange.ZippedLog);

                        using (var zip = new ZipArchive(zippedXmlMemoryStream, ZipArchiveMode.Read))
                        {
                            foreach (var entry in zip.Entries)
                            {
                                using (var unzippedXmlStream = entry.Open())
                                {
                                    var copiedLogEntry = returnedArchive.CreateEntry(entryFileName + ".xml", CompressionLevel.Optimal);
                                    using (var entryStream = copiedLogEntry.Open())
                                    {
                                        unzippedXmlStream.CopyTo(entryStream);
                                        entryStream.Write(zippedLog, 0, zippedLog.Length);
                                        entryStream.Flush();
                                    }
                                }
                            }
                        }
                    }
                }
                returnedData = returnedMemoryStream.ToArray();
            }



            HttpResponseMessage retValue;

            if (returnedData != null && returnedData.Length > 0)
            {
                string fileName = UserData.UserName + "_" + UserData.UserActivityType + "_" + DateTimeOffset.Now.ToUnixTimeMilliseconds() + ".zip";
                retValue = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(returnedData)
                };
                retValue.Content.Headers.ContentDisposition =
                    new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
                {
                    FileName = fileName
                };
                retValue.Content.Headers.ContentType =
                    new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");

                return(retValue);
            }
            else
            {
                retValue = new HttpResponseMessage(HttpStatusCode.NotFound);
            }

            return(retValue);
        }
 public DataHistoryViewModel()
 {
     DataHistoryModel = new DataHistoryModel();
 }