public Byte[] GetImageInBytes(string folder, int page,out int pageCount) { pageCount = 0; var applicationKeyService = new ApplicationKeyService(); var dbApplicationKeyModel = applicationKeyService.GetAllApplicationKey().FirstOrDefault(x => x.Key == new Guid(folder)); if (dbApplicationKeyModel.LastUpdatedDate.Date == DateTime.Now.Date && dbApplicationKeyModel.LastUpdatedDate.TimeOfDay.Add(new TimeSpan(0, 0, ApplicationConfiguration.DocumentExpirationMinute.Value, 0)) >= DateTime.Now.TimeOfDay) { var localPath = Common.Configuration.ApplicationConfiguration.DocStorePath + ApplicationConfiguration.RemoveDirectoryNFileFromServer + Path.DirectorySeparatorChar + dbApplicationKeyModel.Key + Path.DirectorySeparatorChar + "Water_" + dbApplicationKeyModel.Key + page + ApplicationConfiguration.ImageExtension; var fileInfo = new FileInfo(localPath); var data = new Byte[] { }; if (File.Exists(localPath)) { data = new byte[fileInfo.Length]; using (var fs = fileInfo.OpenRead()) { fs.Read(data, 0, data.Length); } pageCount = dbApplicationKeyModel.PageCount; //code added for proactive page creation dbApplicationKeyModel.IsDeleted = false; dbApplicationKeyModel.LastUpdatedDate = DateTime.Now; dbApplicationKeyModel.LastUpdatedBy = dbApplicationKeyModel.UserName; dbApplicationKeyModel.StatusId = 1; dbApplicationKeyModel.CurrentPage = page + 1; applicationKeyService.UpdateApplicationKey(dbApplicationKeyModel); } else { dbApplicationKeyModel.IsDeleted = false; dbApplicationKeyModel.CurrentPage = page; dbApplicationKeyModel.LastUpdatedDate = DateTime.Now; dbApplicationKeyModel.LastUpdatedBy = dbApplicationKeyModel.UserName; dbApplicationKeyModel.StatusId = 1; applicationKeyService.UpdateApplicationKeyCurrentPage(dbApplicationKeyModel); pageCount = dbApplicationKeyModel.PageCount; var status = applicationKeyService.GetProcessorStatus(dbApplicationKeyModel); //This might get stuck in an infinite loop //need a logic to get over while (applicationKeyService.GetProcessorStatus(dbApplicationKeyModel) != (int)ProcessorStatus.Completed) status = applicationKeyService.GetProcessorStatus(dbApplicationKeyModel); data = new byte[fileInfo.Length]; using (var fs = fileInfo.OpenRead()) { fs.Read(data, 0, data.Length); } //code added for proactive page creation dbApplicationKeyModel.IsDeleted = false; dbApplicationKeyModel.CurrentPage = page + 1; dbApplicationKeyModel.LastUpdatedDate = DateTime.Now; dbApplicationKeyModel.LastUpdatedBy = dbApplicationKeyModel.UserName; dbApplicationKeyModel.StatusId = 1; applicationKeyService.UpdateApplicationKeyCurrentPage(dbApplicationKeyModel); } var outpath = Common.Configuration.ApplicationConfiguration.DocStorePath + ApplicationConfiguration.RemoveDirectoryNFileFromServer + Path.DirectorySeparatorChar + dbApplicationKeyModel.Key + Path.DirectorySeparatorChar + "ecs_" + dbApplicationKeyModel.Key + page + ApplicationConfiguration.ImageExtension; File.WriteAllBytes(outpath, data); var stream = new MemoryStream(data); return stream.ToArray(); } if (Directory.Exists(dbApplicationKeyModel.DocumentPath)) Directory.Delete(dbApplicationKeyModel.DocumentPath, true); dbApplicationKeyModel.IsDeleted = true; dbApplicationKeyModel.LastUpdatedDate = DateTime.Now; dbApplicationKeyModel.LastUpdatedBy = dbApplicationKeyModel.UserName; applicationKeyService.UpdateApplicationKey(dbApplicationKeyModel); pageCount = dbApplicationKeyModel.PageCount; return new byte[12]; }