Beispiel #1
0
 public static void GenerateDpow(
     [QueueTrigger("dpowrequest")] XbimCloudModel blobInfo,
     [Blob("images/{ModelId}{Extension}", FileAccess.Read)] Stream input,
     [Blob("images/{ModelId}.json")] CloudBlockBlob outputCobieBlob)
 {
     if (input != null)
     {
         ConvertDpowToCobie(input, outputCobieBlob);
         outputCobieBlob.Properties.ContentType = ".json";
     }
 }
Beispiel #2
0
        // This function will get triggered/executed when a new message is written
        // on an Azure Queue called queue.
        //public static void ProcessQueueMessage([QueueTrigger("queue")] string message, TextWriter log)
        //{
        //    log.WriteLine(message);
        //}

        public static void GenerateModel(
            [QueueTrigger("modelrequest")] XbimCloudModel blobInfo,
            [Blob("images/{ModelId}{Extension}", FileAccess.Read)] Stream input,
            [Blob("images/{ModelId}.wexBIM")] CloudBlockBlob outputWexbimBlob,
            [Blob("images/{ModelId}.json")] CloudBlockBlob outputCobieBlob)
        {
            if (input != null)
            {
                ConvertIfcToWexbimAndCobie(input, outputWexbimBlob, outputCobieBlob, blobInfo.Extension);
                outputWexbimBlob.Properties.ContentType = ".wexBIM";
                outputCobieBlob.Properties.ContentType  = ".json";
            }
        }
Beispiel #3
0
        public async Task <ActionResult> UploadIFC(HttpPostedFileBase ifcFile)
        {
            if (ifcFile == null)
            {
                return(Json(new ModelStateResponse()
                {
                    State = "ERROR",
                    Message = "Failed to upload IFC model."
                }, JsonRequestBehavior.AllowGet));
            }

            var cloudModel = new XbimCloudModel {
                Extension = Path.GetExtension(ifcFile.FileName)
            };
            CloudBlockBlob modelBlob = null;

            if (ModelState.IsValid)
            {
                if (ifcFile.ContentLength != 0)
                {
                    modelBlob = await UploadAndSaveBlobAsync(ifcFile, cloudModel.ModelId);
                }

                if (modelBlob != null)
                {
                    var queueMessage = new CloudQueueMessage(JsonConvert.SerializeObject(cloudModel));
                    await _modelRequestQueue.AddMessageAsync(queueMessage);

                    Trace.TraceInformation("Created queue message for ModelId {0}", cloudModel.ModelId);

                    return(Json(new ModelStateResponse()
                    {
                        ModelName = cloudModel.ModelId,
                        State = "UPLOADED",
                        COBieName = cloudModel.ModelId + ".json",
                        WexBIMName = cloudModel.ModelId + ".wexBIM"
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(new ModelStateResponse()
            {
                ModelName = ifcFile.FileName,
                State = "ERROR",
                Message = "Invalid model state"
            }, JsonRequestBehavior.AllowGet));
        }