public void Insert(QuestionModel model)
        {
            var entity = _modelFactory.MapToDomain<QuestionModel, Question>(model, null);

            entity.Choices = _modelFactory.MapToDomain<ChoiceModel, Choice>(model.Choices);

            entity.Files = ManageFiles(model);

            _questionRepository.Insert(entity);

            _questionRepository.Save();
        }
        private ICollection<File> ManageFiles(QuestionModel model)
        {
            var files = new List<File>();
            const FileType fileType = FileType.Document;
            var fileCollection = HttpContext.Current.Request.Files;

            for (var index = 0; index < fileCollection.Count; index++)
            {
                if (fileCollection[index].ContentLength <= 0)
                {
                    continue;
                }

                var uploadConfig = FileHelper.Upload(fileCollection[index], fileType);

                if (uploadConfig.FileBase == null) continue;

                var existingRecords = _fileRepository.FindAll(x => x.Question.Id == model.Id).Select(x => new
                {
                    x.Id,
                    x.RelativePath
                }).ToList();

                /*foreach (var record in existingRecords)
                {
                    FileHelper.Delete(record.RelativePath);
                    _fileRepository.Delete(record.Id);
                }

                _fileRepository.Save();*/

                var file = new File
                {
                    Name = uploadConfig.FileName,
                    MimeType = uploadConfig.FileBase.ContentType,
                    Size = uploadConfig.FileBase.ContentLength,
                    RelativePath = uploadConfig.FilePath + uploadConfig.FileName,
                    FileType = fileType,
                    ObjectState = ObjectState.Added,
                    CreatedAt = DateTime.UtcNow,
                    UpdatedAt = DateTime.UtcNow,
                    CreatedBy = HttpContext.Current.User.Identity.GetUserId(),
                    UpdatedBy = HttpContext.Current.User.Identity.GetUserId()
                };

                files.Add(file);
            }

            return files;
        }