예제 #1
0
        private async Task <File> SaveFileAsync(IFormFile file, int userId, int fileType)
        {
            logger.Info($"{ GetType().Name}  {  ExtensionUtility.GetCurrentMethod() }  AnswerFileType : {fileType} UserIPAddress: {  _userIPAddress.GetUserIP().Result }");
            var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == userId);

            var data = new File()
            {
                IdGuid       = Guid.NewGuid(),
                SizeMb       = file.Length.ToFileMB(),
                Name         = file.FileName,
                ProviderName = "SqlProvider",
                ExtraParams  = "",
                Created      = DateTime.UtcNow,
                MimeType     = file.ContentType,
                Modified     = DateTime.UtcNow,
                CreatedBy    = userInfo.Email,
                ModifiedBy   = userInfo.Email
            };

            var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;

            if (fileType == (int)ApplicationQuestionType.File)
            {
                logger.Info($"{ GetType().Name}  {  ExtensionUtility.GetCurrentMethod() }  DocFile : {fileType}");
                await UploadIntoFileDbAsync(savedEntity.IdGuid, file);
            }
            else if (fileType == (int)ApplicationQuestionType.VideoAttachment)
            {
                logger.Info($"{ GetType().Name}  {  ExtensionUtility.GetCurrentMethod() }  VideoFile : {fileType}");
                minioAudioVideoUpload(file, savedEntity.IdGuid);
            }
            await _appDbContext.SaveChangesAsync();

            return(savedEntity);
        }
        public async Task <File> SaveMeetupFileAsync(IFormFile file, int userId)
        {
            var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == userId);

            var data = new File()
            {
                IdGuid       = Guid.NewGuid(),
                SizeMb       = GetFileSize(file.Length),
                Name         = file.FileName,
                ProviderName = "SqlProvider",
                ExtraParams  = "",
                Created      = DateTime.UtcNow,
                MimeType     = file.ContentType,
                Modified     = DateTime.UtcNow,
                CreatedBy    = userInfo.Email,
                ModifiedBy   = userInfo.Email
            };

            var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;
            await _appDbContext.SaveChangesAsync();

            var fileDb = new FileDB()
            {
                Id    = savedEntity.IdGuid,
                Bytes = StreamToBytes(file.OpenReadStream())
            };

            await _fileDbContext.FileDB.AddAsync(fileDb);

            await _fileDbContext.SaveChangesAsync();

            return(savedEntity);
        }
        private async Task UploadIntoFileDbAsync(File savedEntity, UploadDocumentView model)
        {
            var fileDb = new FileDB()
            {
                Id    = savedEntity.IdGuid,
                Bytes = StreamToBytes(model.File.OpenReadStream())
            };

            await _fileDbContext.FileDB.AddAsync(fileDb);

            await _fileDbContext.SaveChangesAsync();
        }
        public async Task <IFileResponse> UploadProfileImageAsync(UploadProfileImageView model)
        {
            try
            {
                var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == model.UserId);

                var data = new File()
                {
                    IdGuid       = Guid.NewGuid(),
                    SizeMb       = GetFileSize(model.File.Length),
                    Name         = model.File.FileName,
                    ProviderName = "SqlProvider",
                    ExtraParams  = model.ExtraParams,
                    Created      = DateTime.UtcNow,
                    MimeType     = model.File.ContentType,
                    Modified     = DateTime.UtcNow,
                    CreatedBy    = userInfo.Email,
                    ModifiedBy   = userInfo.Email
                };

                var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;

                await _appDbContext.SaveChangesAsync();

                var user = await _appDbContext.Users.FirstOrDefaultAsync(k => k.Id == model.UserId);

                user.OriginalImageFileId = savedEntity.Id;
                user.SmallImageFileId    = savedEntity.Id;
                user.LargeImageFileId    = savedEntity.Id;

                await _appDbContext.SaveChangesAsync();

                var fileDb = new FileDB()
                {
                    Id    = savedEntity.IdGuid,
                    Bytes = StreamToBytes(model.File.OpenReadStream())
                };

                await _fileDbContext.FileDB.AddAsync(fileDb);

                await _fileDbContext.SaveChangesAsync();

                return(new FileResponse(true, "", HttpStatusCode.Accepted)
                {
                    ProfileCompletedPercentage = await _profilePercentageCalculation.UpdateProfileCompletedPercentageAsync(model.UserId), UploadedFileUrl = ConstantUrlPath.ProfileImagePath + savedEntity.Id
                });
            }
            catch (Exception e)
            {
                return(new FileResponse(e));
            }
        }
        public async Task <IFileResponse> UploadBioVideoAsync(UploadBioVideoView model)
        {
            try
            {
                var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == model.UserId);

                var data = new File()
                {
                    IdGuid       = Guid.NewGuid(),
                    SizeMb       = GetFileSize(model.File.Length),
                    Name         = model.File.FileName,
                    ProviderName = "SqlProvider",
                    ExtraParams  = model.ExtraParams,
                    Created      = DateTime.UtcNow,
                    MimeType     = model.File.ContentType,
                    Modified     = DateTime.UtcNow,
                    CreatedBy    = userInfo.Email,
                    ModifiedBy   = userInfo.Email
                };

                var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;

                await _appDbContext.SaveChangesAsync();

                var profile = await _appDbContext.Profiles.FirstOrDefaultAsync(k => k.Id == model.UserId);

                profile.ExpressYourselfUrl = _encryption.Encrypt(savedEntity.Id.ToString());

                await _appDbContext.SaveChangesAsync();

                var fileDb = new FileDB()
                {
                    Id    = savedEntity.IdGuid,
                    Bytes = StreamToBytes(model.File.OpenReadStream())
                };

                await _fileDbContext.FileDB.AddAsync(fileDb);

                await _fileDbContext.SaveChangesAsync();

                return(new FileResponse(true, "Success", HttpStatusCode.Accepted));
            }
            catch (Exception e)
            {
                return(new FileResponse(e));
            }
        }
        public async Task <FileView> UploadFileAsync(GenericFileView model)
        {
            var data = new File()
            {
                IdGuid       = Guid.NewGuid(),
                SizeMb       = GetFileSize(model.File.Length),
                Name         = model.File.FileName,
                ProviderName = "SqlProvider",
                //ExtraParams = model.ExtraParams,
                Created    = DateTime.UtcNow,
                MimeType   = model.File.ContentType,
                Modified   = DateTime.UtcNow,
                CreatedBy  = "",
                ModifiedBy = ""
            };

            var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;

            await _appDbContext.SaveChangesAsync();

            await _appDbContext.SaveChangesAsync();

            var fileDb = new FileDB()
            {
                Id    = savedEntity.IdGuid,
                Bytes = StreamToBytes(model.File.OpenReadStream())
            };

            await _fileDbContext.FileDB.AddAsync(fileDb);

            await _fileDbContext.SaveChangesAsync();

            var fileData = _mapper.Map <FileView>(data);

            fileData.IsSuccess       = true;
            fileData.ResponseMessage = "Sucesss";


            return(fileData);
        }
        private async Task <File> SaveFileAsync(UploadDocumentView model)
        {
            var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == model.UserId);

            var data = new File()
            {
                IdGuid       = Guid.NewGuid(),
                SizeMb       = GetFileSize(model.File.Length),
                Name         = model.File.FileName,
                ProviderName = "SqlProvider",
                ExtraParams  = model.ExtraParams,
                Created      = DateTime.UtcNow,
                MimeType     = model.File.ContentType,
                Modified     = DateTime.UtcNow,
                CreatedBy    = userInfo.Email,
                ModifiedBy   = userInfo.Email
            };

            var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity;
            await _appDbContext.SaveChangesAsync();

            return(savedEntity);
        }
        private async Task SaveFile(CriteriaClaimRequestView model, UserInfo userInfo)
        {
            foreach (var formFile in model.AttachmentFile)
            {
                if (formFile == null)
                {
                    continue;
                }
                var data = new File()
                {
                    IdGuid        = Guid.NewGuid(),
                    CorrelationId = model.CorrelationId,
                    SizeMb        = GetFileSize(formFile.Length),
                    Name          = formFile.FileName,
                    ProviderName  = "SqlProvider",
                    Created       = DateTime.UtcNow,
                    MimeType      = formFile.ContentType,
                    Modified      = DateTime.UtcNow,
                    CreatedBy     = userInfo.Email,
                    ModifiedBy    = userInfo.Email
                };

                await _appDbContext.Files.AddAsync(data);

                await _appDbContext.SaveChangesAsync();

                var fileDb = new FileDB()
                {
                    Id    = data.IdGuid,
                    Bytes = StreamToBytes(formFile.OpenReadStream())
                };

                await _fileDbContext.FileDB.AddAsync(fileDb);

                await _fileDbContext.SaveChangesAsync();
            }
        }