public StoredDataSheet Create(StoredDataSheet storedDataSheet)
        {
            _context.StoredDataSheets.Add(storedDataSheet);
            _context.SaveChanges();

            return(storedDataSheet);
        }
        public StoredDataSheet Update(StoredDataSheet newDetails)
        {
            var storedDataSheet = Read(newDetails.Url);

            var entity = _context.StoredDataSheets.Find(storedDataSheet.Id);

            if (entity != null)
            {
                _context.Entry(entity).CurrentValues.SetValues(newDetails);
            }
            _context.SaveChanges();

            return(storedDataSheet);
        }
        public FileResult GetPDF(string url)
        {
            var dataSheetRepository = new DataSheetRepository();
            var dataSheet           = dataSheetRepository.Read(url);

            try
            {
                var pdfHelper = new PDFHelper();
                var data      = pdfHelper.GetBytesFromURL(url);
                if (dataSheet == null)
                {
                    var newDataSheet = new StoredDataSheet()
                    {
                        Url        = url,
                        StoredFile = data
                    };
                    dataSheetRepository.Create(newDataSheet);
                }
                else if (dataSheet.StoredFile != data)
                {
                    var newDataSheet = new StoredDataSheet()
                    {
                        StoredFile = data
                    };
                    dataSheetRepository.Update(newDataSheet);
                }

                return(File(data, "application/pdf"));
            }
            catch
            {
                if (dataSheet == null)
                {
                    throw new Exception("Unable to find pdf");
                }
                return(File(dataSheet.StoredFile, "application/pdf"));
            }
        }