public override bool OnStart() { // Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit = 100; //Initialize Indexer storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("CrawlerStorage")); //Initialize URL Queue urlQueueClient = storageAccount.CreateCloudQueueClient(); urlQueue = urlQueueClient.GetQueueReference("urlqueue"); if (urlQueue.CreateIfNotExist()) { //Add first URL to the queue CloudQueueMessage firstURL = new CloudQueueMessage(startURL); urlQueue.AddMessage(firstURL); } //Initialize Index Queue indexQueueClient = storageAccount.CreateCloudQueueClient(); indexQueue = indexQueueClient.GetQueueReference("indexqueue"); indexQueue.CreateIfNotExist(); //Initialize Database Blob databaseClient = storageAccount.CreateCloudBlobClient(); databaseContainer = databaseClient.GetContainerReference("wordfrequencies"); databaseContainer.CreateIfNotExist(); var permission = databaseContainer.GetPermissions(); permission.PublicAccess = BlobContainerPublicAccessType.Container; databaseContainer.SetPermissions(permission); return base.OnStart(); }
// Constructor - get settings from a hosted service configuration or .NET configuration file. public QueueHelper(string configurationSettingName, bool hostedService) { if (hostedService) { CloudStorageAccount.SetConfigurationSettingPublisher( (configName, configSettingPublisher) => { var connectionString = RoleEnvironment.GetConfigurationSettingValue(configName); configSettingPublisher(connectionString); } ); } else { CloudStorageAccount.SetConfigurationSettingPublisher( (configName, configSettingPublisher) => { var connectionString = ConfigurationManager.ConnectionStrings[configName].ConnectionString; configSettingPublisher(connectionString); } ); } Account = CloudStorageAccount.FromConfigurationSetting(configurationSettingName); QueueClient = Account.CreateCloudQueueClient(); QueueClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.Zero); }
// Constructor - get settings from a hosted service configuration /// <summary> /// Initializes a new instance of the <see cref="QueueHelper"/> class. /// </summary> /// <param name="configurationSettingName">Name of the configuration setting.</param> /// <remarks></remarks> public QueueHelper(string configurationSettingName) { var connectString = CloudConfigurationManager.GetSetting(configurationSettingName); _storageAccount = CloudStorageAccount.Parse(connectString); _queueClient = _storageAccount.CreateCloudQueueClient(); _queueClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.FromSeconds(1)); }
public override bool OnStart() { // Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit = 12; #if DEBUG account = CloudStorageAccount.DevelopmentStorageAccount; #else account = new CloudStorageAccount(accountAndKey, true); #endif tableContext = new TableServiceContext(account.TableEndpoint.ToString(), account.Credentials); //client = new CloudQueueClient(account.BlobEndpoint.ToString(), account.Credentials); qclient = account.CreateCloudQueueClient(); q = qclient.GetQueueReference("icd9mapplotrequests"); rows = new List<ICD9MapPlotResultEntry>(); bclient = account.CreateCloudBlobClient(); container = bclient.GetContainerReference("results"); container.CreateIfNotExist(); client = account.CreateCloudTableClient(); client.CreateTableIfNotExist("ICD9MapPlotResult"); client.CreateTableIfNotExist("DoctorDetails"); client.CreateTableIfNotExist("PatientDetails"); // For information on handling configuration changes // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. return base.OnStart(); }
public static void InitializeCloudStorage(CloudStorageAccount account) { CloudTableClient cloudTableClient = account.CreateCloudTableClient(); CloudQueueClient cloudQueueClient = account.CreateCloudQueueClient(); CreateUserPrivilegeTable(cloudTableClient); }
// Constructor - pass in a storage connection string. public QueueHelper(string connectionString) { Account = CloudStorageAccount.Parse(connectionString); QueueClient = Account.CreateCloudQueueClient(); QueueClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.Zero); }
public ProcessingQueue() { _formatter = new BinaryFormatter(); storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); queueClient = storageAccount.CreateCloudQueueClient(); queue = queueClient.GetQueueReference(TableName); queue.CreateIfNotExist(); }
public ProcessingQueue() { _formatter = new BinaryFormatter(); storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); queueClient = storageAccount.CreateCloudQueueClient(); queue = queueClient.GetQueueReference(TableName); queue.CreateIfNotExist(); }
public SingleDeliveryQueueClient(CloudStorageAccount account, string queueName) { var queueClient = account.CreateCloudQueueClient(); queue = queueClient.GetQueueReference(queueName); queue.CreateIfNotExist(); tableClient = account.CreateCloudTableClient(); tableClient.CreateTableIfNotExist(TableName); }
public static void Initialize(string account, string key) { Uri blobUri = new Uri(string.Format("http://{0}.blob.core.windows.net", account)); Uri queueUri = new Uri(string.Format("http://{0}.queue.core.windows.net", account)); Uri tableUri = new Uri(string.Format("http://{0}.table.core.windows.net", account)); s_credentials = new StorageCredentialsAccountAndKey(account, key); s_storageAccount = new CloudStorageAccount(s_credentials, blobUri, queueUri, tableUri); s_blobClient = s_storageAccount.CreateCloudBlobClient(); s_tableClient = s_storageAccount.CreateCloudTableClient(); s_queueClient = s_storageAccount.CreateCloudQueueClient(); }
public AzureQueueProvider() { //var accountAndKey = new StorageCredentialsAccountAndKey("cloudmorph", "Q7Vco66yV3hncM/piawqSHyiXZZ8meZdRMAMElOorgE/EHv4t8B18Nn7zUF/7nLu6WSMaZzmjaUo4LUHlWCfyw=="); //var _storageAccount = new CloudStorageAccount(accountAndKey, true); // Retrieve storage account from connection-string //_storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); //_storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=http;AccountName=bmaigorcloudmorphstorage;AccountKey=Q7Vco66yV3hncM/piawqSHyiXZZ8meZdRMAMElOorgE/EHv4t8B18Nn7zUF/7nLu6WSMaZzmjaUo4LUHlWCfyw=="); _storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); // Create the queue client _client = _storageAccount.CreateCloudQueueClient(); }
public AzureMessageQueue(CloudStorageAccount cloudStorageAccount, string inputQueueName, string errorQueueName) { if (inputQueueName == null) throw new ArgumentNullException("inputQueueName"); if (errorQueueName == null) throw new ArgumentNullException("errorQueueName"); inputQueueName = inputQueueName.ToLowerInvariant(); errorQueueName = errorQueueName.ToLowerInvariant(); cloudQueueClient = cloudStorageAccount.CreateCloudQueueClient(); inputQueue = cloudQueueClient.GetQueueReference(inputQueueName); inputQueue.CreateIfNotExist(); cloudQueueClient.GetQueueReference(errorQueueName).CreateIfNotExist(); this.inputQueueName = inputQueueName; this.errorQueueName = errorQueueName; }
public override bool OnStart() { // Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit = 12; //Initialize Storage storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("CrawlerStorage")); //Create Scheduler Queue queueClient = storageAccount.CreateCloudQueueClient(); queue = queueClient.GetQueueReference("urlschedulerqueue"); queue.CreateIfNotExist(); //Add first URL to the queue CloudQueueMessage firstURL = new CloudQueueMessage(startURL); queue.AddMessage(firstURL); return base.OnStart(); }
/// <summary> /// /// </summary> /// <param name="storageAccountName"></param> private void InitializeAzureStorage(AzureStorageOptions options) { Debug.Assert(null != options); // TODO: put in the logic to appropriately load configuration bool useRoleEnvironment = false; string storageConnectionStringValue = null; if (useRoleEnvironment) { storageConnectionStringValue = RoleEnvironment.GetConfigurationSettingValue(options.StorageAccountName); } else { storageConnectionStringValue = ConfigurationManager.ConnectionStrings[options.StorageAccountName].ConnectionString; } Debug.Assert(null != storageConnectionStringValue); Account = CloudStorageAccount.Parse(storageConnectionStringValue); // This will not work unless run in the DevFabric or in Azure // Trace.WriteLine("Azure account credentials:" + Account.Credentials.ToString(), "Information"); TableClient = Account.CreateCloudTableClient(); TableClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.Zero); TableServiceContext = TableClient.GetDataServiceContext(); BlobClient = Account.CreateCloudBlobClient(); BlobClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.Zero); QueueClient = Account.CreateCloudQueueClient(); QueueClient.RetryPolicy = RetryPolicies.Retry(4, TimeSpan.Zero); }
public AzureQueueProvider(CloudStorageAccount storageAccount) { _storageAccount = storageAccount; _client = _storageAccount.CreateCloudQueueClient(); }
public AzureDocumentExecutor(CloudStorageAccount account) { var client = account.CreateCloudQueueClient(); queue = client.GetQueueReference("documents"); queue.CreateIfNotExist(); }
private static void InitializeStorageResources(CloudStorageAccount storageAccount) { var blobStorage = storageAccount.CreateCloudBlobClient(); LogWorker.LogBlobContainer = blobStorage.GetContainerReference("logitems"); CommandWorker.CommandBlobContainer = blobStorage.GetContainerReference("commands"); var queueStorage = storageAccount.CreateCloudQueueClient(); LogWorker.LogQueue = queueStorage.GetQueueReference("logmessages"); CommandWorker.CommandQueue = queueStorage.GetQueueReference("commandmessages"); bool isStorageFinalized = false; while (!isStorageFinalized) { try { LogWorker.LogBlobContainer.CreateIfNotExist(); LogWorker.LogQueue.CreateIfNotExist(); CommandWorker.CommandBlobContainer.CreateIfNotExist(); CommandWorker.CommandQueue.CreateIfNotExist(); isStorageFinalized = true; } catch (StorageClientException sce) { if (sce.ErrorCode == StorageErrorCode.TransportError) { Trace.TraceError("Storage services initialization failure. " + "Check your storage account configuration settings. " + "If running locally, ensure that the Development Storage service is running. " + "Message: '{0}'", sce.Message); } else { throw sce; } } } }
public QueueUtilities(string connectionString) { _account = CloudStorageAccount.Parse(connectionString); _client = _account.CreateCloudQueueClient(); }
/// <summary> /// This is where we get the role instance configured and ready to begin processing /// STAHC jobs /// </summary> /// <returns>True if succesfully configured. False otherwise</returns> public override bool OnStart() { ServicePointManager.DefaultConnectionLimit = 64; DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); config.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration() { CounterSpecifier = @"\Processor(_Total)\% Processor Time", SampleRate = TimeSpan.FromSeconds(30) }); config.PerformanceCounters.DataSources.Add( new PerformanceCounterConfiguration() { CounterSpecifier = @"\Network Interface(*)\Bytes Total/sec", SampleRate = TimeSpan.FromSeconds(30) }); config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5); config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Error; config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5); config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; config.PerformanceCounters.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1); config.WindowsEventLog.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5); DiagnosticMonitor.Start("DiagnosticsConnectionString", config); // restart the role upon all configuration changes RoleEnvironment.Changing += RoleEnvironmentChanging; // read storage account configuration settings CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => { configSetter(RoleEnvironment.GetConfigurationSettingValue(configName)); }); // get the scratch path scratchPath = RoleEnvironment.GetLocalResource(Constants.AzureScratchName).RootPath; // get the time to sleep between runs of the queue monitoring loop queueSleepTime = int.Parse( RoleEnvironment.GetConfigurationSettingValue("QueueSleepTime"), CultureInfo.InvariantCulture); // get the max time (seconds) that the server should take to process a queue job maxJobLength = int.Parse( RoleEnvironment.GetConfigurationSettingValue("MaxJobLength"), CultureInfo.InvariantCulture); // get the storage container to be used for processing job data jobContainer = RoleEnvironment.GetConfigurationSettingValue("JobContainer"); // get queue data/configuration storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); // get the name of the queue used for this job set var queueName = RoleEnvironment.GetConfigurationSettingValue("StachQueueName"); // get the queues CloudQueueClient queueStorage = storageAccount.CreateCloudQueueClient(); queueStorage.RetryPolicy = RetryPolicies.RetryExponential(3, TimeSpan.FromSeconds(10)); stahcJobQueue = queueStorage.GetQueueReference(queueName); stahcJobQueue.CreateIfNotExist(); // report on read values Trace.WriteLine(string.Format("QueueSleepTime: '{0}'", queueSleepTime.ToString(CultureInfo.InvariantCulture)), "Verbose"); Trace.WriteLine(string.Format("MaxJobLength: '{0}'", maxJobLength.ToString(CultureInfo.InvariantCulture)), "Verbose"); Trace.WriteLine(string.Format("JobContainer: '{0}'", jobContainer), "Verbose"); Trace.WriteLine(string.Format("StachQueueName: '{0}'", queueName), "Verbose"); // read-in/download all source files DownloadStagingFiles(); // loop through and execute each of the actions (if any) provided in the staging file var stagingControlFile = Path.Combine( scratchPath, Constants.StagingActionsFileName); if (File.Exists(stagingControlFile)) { var sucessful = RunStagingActions(stagingControlFile); if (!sucessful) { Trace.TraceError( "Unable to complete staging actions. Review logs for more detail."); return sucessful; } } return base.OnStart(); }
private static void LoadConfigSettings() { _storageAccount = CloudStorageAccount.FromConfigurationSetting("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"); _queueClient = _storageAccount.CreateCloudQueueClient(); // Get and create the container _cloudQueue = _queueClient.GetQueueReference("email-queue"); _cloudQueue.CreateIfNotExist(); }
public string ComputeICD9MapPlotData(string ICD9Code, DateTime startTime, DateTime endTime) { #if DEBUG account = CloudStorageAccount.DevelopmentStorageAccount; #else account = new CloudStorageAccount(accountAndKey, true); #endif //client = new CloudQueueClient(account.BlobEndpoint.ToString(), account.Credentials); qclient = account.CreateCloudQueueClient(); q = qclient.GetQueueReference("icd9mapplotrequests"); q.CreateIfNotExist(); string OperationID = Guid.NewGuid().ToString(); string starttime = startTime.Ticks.ToString(); string endtime = endTime.Ticks.ToString(); q.AddMessage(new CloudQueueMessage(string.Format("{0}|{1}|{2}|{3}",ICD9Code,starttime,endtime,OperationID))); return OperationID; }
public static int GetQueueLength( string accountName, string accountKey, string queueName) { var storageAccount = new CloudStorageAccount( new StorageCredentialsAccountAndKey(accountName, accountKey), false); CloudQueueClient queueStorage = storageAccount.CreateCloudQueueClient(); var jobQueue = queueStorage.GetQueueReference(queueName); jobQueue.CreateIfNotExist(); return jobQueue.RetrieveApproximateMessageCount(); }
public static void CreateQueueMessage( string accountName, string accountKey, string queueName, Executeable[] executeables, string[] inputFiles, string[] outFiles, string[] removeFiles) { var storageAccount = new CloudStorageAccount( new StorageCredentialsAccountAndKey(accountName, accountKey), false); CloudQueueClient queueStorage = storageAccount.CreateCloudQueueClient(); var jobQueue = queueStorage.GetQueueReference(queueName); jobQueue.CreateIfNotExist(); var message = new StahcJob() { Executables = executeables, InputFiles = inputFiles, OutputFiles = outFiles, FilesToRemove = removeFiles }; XmlSerializer serializer = new XmlSerializer(typeof(StahcJob)); using (StringWriter sw1 = new StringWriter()) { serializer.Serialize(sw1, message); // Put message on queue CloudQueueMessage cloudMessage = new CloudQueueMessage(sw1.ToString()); jobQueue.AddMessage(cloudMessage); } }
public JsonModels.UploadReponse UploadPictureElement(int projectId, Stream pictureStream, string fileName, bool isCoverPicture = false) { try { BlobStorageAccessor blobStorageAccessor = new BlobStorageAccessor(); UploadManager uploadManager = new UploadManager(); ProjectAccessor projectAccessor = new ProjectAccessor(); //initiate queue message storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlobConnectionString")); queueClient = storageAccount.CreateCloudQueueClient(); queue = queueClient.GetQueueReference(messageQueueName); queue.CreateIfNotExist(); string imageURI = blobStorageAccessor.uploadImage(pictureStream, false).ToString(); Project p = pa.GetProject(projectId); if (isCoverPicture) { string FileNameThumb1 = Guid.NewGuid().ToString(); string artifactURL1 = string.Format("{0}{1}", FileNameThumb1, ".jpeg"); CloudQueueMessage message3 = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", imageURI, p.id, "thumbnail", "ProjectPicture", 266, 266, "", artifactURL1)); queue.AddMessage(message3); p.coverPictureThumbnail = RoleEnvironment.GetConfigurationSettingValue("storageAccountUrl").ToString() + "thumbnails/" + artifactURL1; p.coverPicture = imageURI; p.dateModified = DateTime.Now; Project newP = projectAccessor.UpdateProject(p); return new JsonModels.UploadReponse { id = p.id, fileURL = imageURI, name = fileName, galeriaURL = "noGalleryURL", artifactURL = artifactURL1, description = "default description" }; } else { string FileNameThumb = Guid.NewGuid().ToString(); string artifactURL = string.Format("{0}{1}", FileNameThumb, ".jpeg"); ProjectElement_Picture pe = new ProjectElement_Picture { title = GetTitle(fileName), pictureLocation = imageURI, pictureThumbnailLocation = RoleEnvironment.GetConfigurationSettingValue("storageAccountUrl").ToString()+"thumbnails/" + artifactURL }; int projectElementId = pa.AddProjectElement(p, pe); if (projectElementId == -1) { logAccessor.CreateLog(DateTime.Now, "ProjectManager - UploadPictureElement", "problem saving project element - 165 ProjectManager"); return null; } //string FileNameGaleria = Guid.NewGuid().ToString(); //string galleryURL = string.Format("{0}{1}", FileNameGaleria, ".jpeg"); CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", imageURI, projectElementId, "thumbnail", "PictureElement", 635, 397, "", artifactURL)); //CloudQueueMessage message2 = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", imageURI, projectElementId, "thumbnail", "PictureElement_Galleria", 1000, 750, "", galleryURL)); queue.AddMessage(message); //queue.AddMessage(message2); return new JsonModels.UploadReponse { id = projectElementId, fileURL = imageURI, name = fileName, galeriaURL = "galleryURL", artifactURL = artifactURL, description = null }; } } catch (Exception ex) { logAccessor.CreateLog(DateTime.Now, "ProjectManager - UploadPictureElement", ex.StackTrace); return null; } }
public JsonModels.UploadReponse AddDocumentElement(int projectId, string description, Stream fileStream, string fileName, string userName) { Project p = pa.GetProject(projectId); BlobStorageAccessor ba = new BlobStorageAccessor(); string location = null; string[] s2 = fileName.Split('.'); string extention = s2[s2.Count() - 1].ToLower(); UserAccessor ua = new UserAccessor(); User u = ua.GetUser(userName); string fullName = u.firstName +" " + u.lastName; storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlobConnectionString")); queueClient = storageAccount.CreateCloudQueueClient(); queue = queueClient.GetQueueReference(messageQueueName); queue.CreateIfNotExist(); string documentText = ""; //string PDFLocation = "notset"; if (extention == "pdf") { location = ba.uploadPDF(fileStream, false).ToString(); UploadManager um = new UploadManager(); //location = um.stampThatShit(location, fullName, null); //documentText = um.ExtractText(location); } else if (extention == "doc" || extention == "docx") { location = ba.uploadDOC(fileStream, false, "."+extention).ToString(); } else if (extention == "ppt" || extention == "pptx") { location = ba.uploadUnknown(fileStream, false, extention).ToString(); } else if( extention == "xls" || extention == "xlsx") { location = ba.uploadUnknown(fileStream,false, extention).ToString(); } else if (extention == "rtf") { location = ba.uploadUnknown(fileStream, false, extention).ToString(); } else if (extention == "txt") { location = ba.uploadUnknown(fileStream, false, extention).ToString(); } else { //upload unknown file type. do this or display message Uri result = ba.uploadUnknown(fileStream, false, extention); if (result == null) { return null; } else { location = result.ToString(); } } String FileName = Guid.NewGuid().ToString(); string uniqueBlobName = string.Format("{0}{1}", FileName, ".pdf"); string docThumb = ""; if (extention == "pdf") { docThumb = location; } else { docThumb = RoleEnvironment.GetConfigurationSettingValue("storageAccountUrl").ToString()+"pdfs/" + uniqueBlobName; } ProjectElement_Document pe = new ProjectElement_Document { description = description, documentLocation = location, title = fileName, documentText = documentText, documentThumbnailLocation = docThumb }; int projectElementId = pa.AddProjectElement(p, pe); if (extention == "doc" || extention == "docx") { CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", location, projectElementId, "documentConversion", @"http://do.convertapi.com/Word2Pdf", 0, 0, fullName, uniqueBlobName)); queue.AddMessage(message); } else if (extention == "ppt" || extention == "pptx") { CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", location, projectElementId, "documentConversion", @"http://do.convertapi.com/PowerPoint2Pdf", 0, 0, "", uniqueBlobName)); queue.AddMessage(message); } else if( extention == "xls" || extention == "xlsx") { CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", location, projectElementId, "documentConversion", @"http://do.convertapi.com/Excel2Pdf", 0, 0, fullName, uniqueBlobName)); queue.AddMessage(message); } else if (extention == "rtf") { CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", location, projectElementId, "documentConversion", @"http://do.convertapi.com/RichText2Pdf", 0, 0, fullName, uniqueBlobName)); queue.AddMessage(message); } else if (extention == "txt") { CloudQueueMessage message = new CloudQueueMessage(String.Format("{0},{1},{2},{3},{4},{5},{6},{7}", location, projectElementId, "documentConversion", @"http://do.convertapi.com/Text2Pdf", 0, 0, fullName, uniqueBlobName)); queue.AddMessage(message); } if (extention == "pdf") { return new JsonModels.UploadReponse { id = projectElementId, fileURL = location, name = fileName, artifactURL = location }; } return new JsonModels.UploadReponse { id = projectElementId, fileURL = location, artifactURL = docThumb, name = fileName }; }