示例#1
0
        public int Insert(FileAddRequest model)
        {
            int id = 0;

            using (SqlConnection conn = new SqlConnection(connStr))
            {
                string cmdStr = "Files_Insert";
                using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
                {
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.ParameterName = "@Id";
                    param.SqlDbType     = System.Data.SqlDbType.Int;
                    param.Direction     = System.Data.ParameterDirection.Output;
                    cmd.Parameters.Add(param);
                    cmd.Parameters.AddWithValue("@AccountId", model.AccountId);
                    cmd.Parameters.AddWithValue("@FileName", model.FileName);
                    cmd.Parameters.AddWithValue("@Size", model.Size);
                    cmd.Parameters.AddWithValue("@Type", model.Type);
                    cmd.Parameters.AddWithValue("@SystemFileName", model.SystemFileName);
                    cmd.Parameters.AddWithValue("@ModifiedBy", model.ModifiedBy);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    id = (int)cmd.Parameters["@Id"].Value;
                    conn.Close();
                }
            }
            return(id);
        }
示例#2
0
        public override void FileAdded(FileResponse res, FileAddRequest req)
        {
            if (!IsImage(res.Model.Path))
            {
                return;
            }

            FrontEndDeveloperOptions.Instance.Images.ResizeOptions.ForEach(opt =>
            {
                var resizedPath = CreateFileName(res.Model, opt);
                CreateImageOnServer(res, opt, resizedPath);

                var meta = new Meta
                {
                    MetaName   = MetaName,
                    TargetId   = res.Model.Id,
                    TargetType = FileData.MetaTypeName,
                    MetaData   =
                        JObject.FromObject(new ImageData
                    {
                        Path     = "/" + resizedPath.Replace(AppDir, "").Replace("\\", "/"),
                        SizeName = opt.Name,
                        Width    = opt.Width,
                        Height   = opt.Height,
                        Name     = Path.GetFileNameWithoutExtension(resizedPath)
                    })
                };

                _unitOfWork.Add(meta);
                res.Model.MetaData.Add(meta.MapToViewModel());
            });
        }
示例#3
0
        public async Task <string> UploadFile(IFormFile file, int id)
        {
            TransferUtility     fileTransferUtility = null;
            BasicAWSCredentials credentials         = null;
            string bucketName = _aWSCredential.BucketName;
            string filePath   = Path.GetTempFileName();
            string keyName    = bucketName + Guid.NewGuid() + "_" + file.FileName;

            using (FileStream stream = new FileStream(filePath, FileMode.Create))
            {
                credentials = new BasicAWSCredentials(_aWSCredential.AccessKey, _aWSCredential.Secret);
                s3Client    = new AmazonS3Client(credentials, RegionEndpoint.USWest2);
                file.CopyTo(stream);
                fileTransferUtility = new TransferUtility(s3Client);
                await fileTransferUtility.UploadAsync(stream, bucketName, keyName);
            }
            // This below section inserts file information to sql database.
            FileAddRequest model = new FileAddRequest()
            {
                Name     = file.FileName,
                Url      = _aWSCredential.Domain + keyName,
                FileType = 1,
            };

            Add(model, id);

            return(model.Url);
        }
示例#4
0
 private static void AddCommonParams(FileAddRequest model, SqlParameterCollection col)
 {
     col.AddWithValue("@Url", model.Url);
     col.AddWithValue("@EntityTypeId", model.EntityTypeId);
     col.AddWithValue("@Name", model.Name);
     col.AddWithValue("@FileTypeId", model.FileTypeId);
 }
        public async Task <FileResponse> Add(FileAddRequest request)
        {
            var res = await _fileService.Add(request);

            if (res.Access == ResponseAccess.Granted)
            {
                _observers.ForEach(x => x.FileAdded(res, request));
                await _unitOfWork.SaveChangesAsync();
            }

            return(res);
        }
        public HttpResponseMessage Upload()
        {
            HttpPostedFile postedFile = HttpContext.Current.Request.Files[0];
            string         keyName    = Path.GetFileNameWithoutExtension(postedFile.FileName) + '_' + Guid.NewGuid().ToString() + Path.GetExtension(postedFile.FileName);
            FileAddRequest fModel     = new FileAddRequest
            {
                AccountId      = UserService.GetCurrentUser().Id,
                FileName       = postedFile.FileName,
                Size           = postedFile.ContentLength,
                Type           = postedFile.ContentType,
                SystemFileName = keyName,
                ModifiedBy     = UserService.GetCurrentUser().Email
            };
            int fileId = 0;

            using (client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
            {
                try
                {
                    string bucketName = "trivalitybucket/ProfilePictures";

                    PutObjectRequest putRequest1 = new PutObjectRequest
                    {
                        BucketName = bucketName,
                        Key        = keyName
                    };
                    PutObjectResponse response1 = client.PutObject(putRequest1);

                    PutObjectRequest putRequest2 = new PutObjectRequest
                    {
                        BucketName  = bucketName,
                        Key         = keyName,
                        InputStream = postedFile.InputStream,
                        ContentType = "text/plain"
                    };
                    putRequest2.Metadata.Add("x-amz-meta-title", "someTitle");
                    PutObjectResponse response2 = client.PutObject(putRequest2);

                    fileId = svc.Insert(fModel);
                }
                catch (AmazonS3Exception amazonS3Exception)
                {
                    throw amazonS3Exception;
                }
            }


            ItemResponse <int> resp = new ItemResponse <int>();

            resp.Item = fileId;
            return(Request.CreateResponse(HttpStatusCode.OK, resp));
        }
示例#7
0
 public ActionResult <ItemResponse <int> > Add(FileAddRequest model)
 {
     try
     {
         int id = _fileService.Add(model, _authService.GetCurrentUserId());
         ItemResponse <int> resp = new ItemResponse <int>();
         resp.Item = id;
         return(Created201(resp));
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.ToString());
         return(StatusCode(500, new ErrorResponse(ex.Message)));
     }
 }
示例#8
0
        public async Task <FileResponse> Add(FileAddRequest request)
        {
            var file = await _fileManager.SaveAsync(request.File, _saveDir);

            var fileData = new DomainClasses.Entities.FileData()
            {
                Name      = file.SavedFileName,
                Path      = file.SavedFilePath,
                Size      = file.Size,
                Extension = file.Extension
            };

            await base.BaseBeforeAddAsync(fileData, request.RequestOwner);

            await _fileDataService.AddAsync(fileData);

            await base.BaseAfterAddAsync(fileData, request.RequestOwner);

            _unitOfWork.Entry(fileData).Reference(x => x.Creator).Load();
            return(new FileResponse()
            {
                Access = ResponseAccess.Granted, Model = fileData.MapToViewModel()
            });
        }
示例#9
0
        public int Add(FileAddRequest model, int creadtedBy)
        {
            int id = 0;

            _dataProvider.ExecuteNonQuery("dbo.Files_Insert", inputParamMapper : delegate(SqlParameterCollection parms)
            {
                SqlParameter parm  = new SqlParameter();
                parm.ParameterName = "@Id";
                parm.SqlDbType     = SqlDbType.Int;
                parm.Direction     = ParameterDirection.Output;
                parms.Add(parm);

                parms.AddWithValue("@Name", model.Name);
                parms.AddWithValue("@Url", model.Url);
                parms.AddWithValue("@FileType", model.FileType);
                parms.AddWithValue("@CreatedBy", creadtedBy);
            },
                                          returnParameters : delegate(SqlParameterCollection parms)
            {
                Int32.TryParse(parms["@Id"].Value.ToString(), out id);
            });

            return(id);
        }
 public abstract void FileAdded(FileResponse res, FileAddRequest req);