public HttpResponseMessage Post() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); int blocksCount; int.TryParse(nvc["blocksCount"], out blocksCount); var fileName = nvc["fileName"]; long fileSize; long.TryParse(nvc["fileSize"], out fileSize); var userId = nvc["userId"]; var fileId = Guid.NewGuid().ToString(); var newFileName = fileId + ".dat"; var connectionString = RoleEnvironment.GetConfigurationSettingValue(Constants.ConfigurationSectionKey); var storageAccount = CloudStorageAccount.Parse(connectionString); var fileToUpload = new FileUpload(userId, fileId) { UserIP = ClientIP.GetClientIp(Request), BlockCount = blocksCount, FileName = fileName, NewFileName = newFileName, FileSize = fileSize, StartTime = DateTime.Now, IsUploadCompleted = false, UploadStatusMessage = "Starting Upload" }; var tableClient = storageAccount.CreateCloudTableClient(); var table = tableClient.GetTableReference("FileUpload"); table.CreateIfNotExists(); var insertOperation = TableOperation.Insert(fileToUpload); table.Execute(insertOperation); var resp = Request.CreateResponse(HttpStatusCode.OK); var metaDataOutput = new MetaDataOutput { Success = true, FileId = fileToUpload.FileId }; resp.Content = new ObjectContent(typeof(MetaDataOutput), metaDataOutput, new JsonMediaTypeFormatter()); resp.Headers.Add("Access-Control-Allow-Methods", "OPTIONS, POST"); resp.Headers.Add("Access-Control-Allow-Origin", "*"); resp.Headers.Add("Access-Control-Allow-Headers", "x-requested-with"); return(resp); }
public HttpResponseMessage Post() { var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); var fileName = nvc["fileName"]; long fileSize; long.TryParse(nvc["fileSize"], out fileSize); var userIP = nvc["userIP"]; var fileId = Guid.NewGuid().ToString(); var fileType = nvc["fileType"]; var fileURI = nvc["fileURI"]; var userKey = nvc["userKey"]; var queueItem = new EVSAppController.Models.UploadQueue(); //fix to trim IPv4 addresses if (userIP.Contains(":")) { userIP = userIP.Split(':')[0]; } queueItem.ContentSize = fileSize; queueItem.ContentType = fileType; queueItem.FileID = fileId; queueItem.FileLocation = fileURI; queueItem.OriginalFileName = fileName; queueItem.UploadedDate = DateTime.Now; queueItem.UserIP = userIP; queueItem.UserKey = userKey; queueItem.Processing = false; EVSAppController.Controllers.UploadQueueController.AddItemToQueue(queueItem); var resp = Request.CreateResponse(HttpStatusCode.OK); var metaDataOutput = new MetaDataOutput { Success = true, FileId = fileId }; resp.Content = new ObjectContent(typeof(MetaDataOutput), metaDataOutput, new JsonMediaTypeFormatter()); resp.Headers.Add("Access-Control-Allow-Methods", "OPTIONS, POST"); resp.Headers.Add("Access-Control-Allow-Origin", "*"); resp.Headers.Add("Access-Control-Allow-Headers", "x-requested-with"); return(resp); }