Esempio n. 1
0
        public int Create(FileStorageAddRequest fileStorageAddRequest)
        {
            int returnVal = 0;

            _dataProvider.ExecuteNonQuery(
                "file_storage_create",
                inputParamMapper : delegate(SqlParameterCollection paramCol)
            {
                SqlParameter parm = new SqlParameter
                {
                    ParameterName = "@Id",
                    SqlDbType     = System.Data.SqlDbType.Int,
                    Direction     = System.Data.ParameterDirection.Output
                };
                paramCol.Add(parm);
                paramCol.AddWithValue("@UserFileName", fileStorageAddRequest.UserFileName);
                paramCol.AddWithValue("@BasePath", fileStorageAddRequest.BasePath);
                paramCol.AddWithValue("@SystemFileName", fileStorageAddRequest.SystemFileName);
                paramCol.AddWithValue("@IncidentId", fileStorageAddRequest.IncidentId);
                paramCol.AddWithValue("@ModifiedBy", fileStorageAddRequest.ModifiedBy);
            },
                returnParameters : delegate(SqlParameterCollection paramCol)
            {
                returnVal = (int)paramCol["@Id"].Value;
            }
                );
            return(returnVal);
        }
        public int Insert(FileStorageAddRequest model)
        {
            int id = 0;

            this.DataProvider.ExecuteNonQuery(
                "FileStorage_Insert",
                inputParamMapper : delegate(SqlParameterCollection paramCol)
            {
                SqlParameter parm  = new SqlParameter();
                parm.ParameterName = "@Id";
                parm.SqlDbType     = SqlDbType.Int;
                parm.Direction     = ParameterDirection.Output;
                paramCol.Add(parm);
                paramCol.AddWithValue("@FileTypeId", model.FileTypeId);
                paramCol.AddWithValue("@UserFileName", model.UserFileName);
                paramCol.AddWithValue("@SystemFileName", model.SystemFileName);
                paramCol.AddWithValue("@Location", model.Location);
                paramCol.AddWithValue("@CreatedBy", model.CreatedBy);
            },
                returnParameters : delegate(SqlParameterCollection paramCol)
            {
                id = (int)paramCol["@Id"].Value;
            }
                );
            return(id);
        }
        public HttpResponseMessage UploadFile()
        {
            var    httpPostedFile = HttpContext.Current.Request.Files[0];
            string fileName       = Path.GetFileNameWithoutExtension(httpPostedFile.FileName);
            string extension      = Path.GetExtension(httpPostedFile.FileName);
            var    newGuid        = Guid.NewGuid().ToString("");
            var    newFileName    = fileName + "_" + newGuid + extension;
            Stream st             = httpPostedFile.InputStream;

            try
            {
                if (httpPostedFile != null)
                {
                    TransferUtility utility = new TransferUtility(awsS3Client);
                    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
                    request.BucketName  = bucketname;
                    request.Key         = newFileName;
                    request.InputStream = st;
                    log.Debug(newFileName + "uploading to AWS S3");
                    utility.Upload(request); //File Streamed to AWS

                    FileStorageAddRequest model       = new FileStorageAddRequest();
                    IUserAuthData         currentUser = _principal.Identity.GetCurrentUser();

                    if (extension == ".jpg" || extension == ".jpeg" || extension == ".png" ||
                        extension == ".gif" || extension == ".bmp" || extension == ".svg")
                    {
                        model.FileTypeId = 1;
                    }
                    else
                    {
                        model.FileTypeId = 8;
                    }
                    //Logic needed in order to separate filetypeId in correct type because this is more specific to documents...
                    model.UserFileName   = fileName;
                    model.SystemFileName = newFileName;
                    model.Location       = "https://sabio-training.s3.us-west-2.amazonaws.com/C53/" + newFileName;
                    model.CreatedBy      = currentUser.Name;
                    int id = _fileStorageService.Insert(model);
                    ItemResponse <int> resp = new ItemResponse <int>();
                    resp.Item = id;
                    log.Debug("URL:" + " " + model.Location);
                    return(Request.CreateResponse(HttpStatusCode.OK, resp));
                }
                else
                {
                    log.Error("Error trying to upload and store metadata");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error("Unable to upload files");
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public HttpResponseMessage Upload(int id)
        {
            // GRABBING THE FILE FROM THE HTTP REQUEST & ASSIGNING GUID TO SERVERFILENAME
            var httpRequest = HttpContext.Current.Request;

            if (httpRequest.Files.Count > 0)
            {
                try
                {
                    var postedFile     = httpRequest.Files[0];
                    var postedFileName = postedFile.FileName;
                    var serverFileName = Path.GetFileNameWithoutExtension(postedFileName) + "." + Guid.NewGuid() + Path.GetExtension(postedFileName);

                    // AWS Upload
                    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest
                    {
                        BucketName  = awsBucketName,
                        Key         = serverFileName,
                        InputStream = postedFile.InputStream
                    };
                    fileTransferUtility.Upload(request);

                    // CREATING MODEL TO SEND TO SERVICE TO SAVE FILE DATA TO SQL
                    FileStorageAddRequest newFile = new FileStorageAddRequest
                    {
                        UserFileName   = postedFileName,
                        BasePath       = "C64/goodneighbor/",
                        SystemFileName = serverFileName,
                        IncidentId     = id,
                        ModifiedBy     = "Your Neighbor"
                    };
                    int newFileId = _fileStorageService.Create(newFile);
                    FileStorageViewModel newFileUpload = _fileStorageService.SelectById(newFileId);

                    ItemResponse <FileStorageViewModel> resp = new ItemResponse <FileStorageViewModel>();
                    resp.Item = newFileUpload;
                    return(Request.CreateResponse(HttpStatusCode.Created, resp));
                }
                catch (Exception ex)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ex));
                }
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Upload Failed - Check the file being uploaded."));
            }
        }
        public HttpResponseMessage UploadFile()
        {
            var    httpPostedFile = HttpContext.Current.Request.Files[0];
            string fileName       = Path.GetFileNameWithoutExtension(httpPostedFile.FileName);
            string extension      = Path.GetExtension(httpPostedFile.FileName);
            var    newGuid        = Guid.NewGuid().ToString("");
            var    newFileName    = fileName + "_" + newGuid + extension;
            Stream st             = httpPostedFile.InputStream;

            try
            {
                if (httpPostedFile != null)
                {
                    TransferUtility utility = new TransferUtility(awsS3Client);
                    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
                    request.BucketName  = bucketname;
                    request.Key         = newFileName;
                    request.InputStream = st;
                    log.Debug(newFileName + "uploading to AWS S3");
                    utility.Upload(request);

                    FileStorageAddRequest model       = new FileStorageAddRequest();
                    IUserAuthData         currentUser = _principal.Identity.GetCurrentUser();

                    model.UserFileName   = fileName;
                    model.SystemFileName = newFileName;
                    model.Location       = "URL" + newFileName;
                    model.CreatedBy      = currentUser.Name;
                    int id = _fileStorageService.Insert(model);
                    ItemResponse <int> resp = new ItemResponse <int>();
                    resp.Item = id;
                    log.Debug("URL:" + " " + model.Location);
                    return(Request.CreateResponse(HttpStatusCode.OK, resp));
                }
                else
                {
                    log.Error("Error trying to upload and store metadata");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
                }
            }
            catch (Exception ex)
            {
                log.Error("Unable to upload files");
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }