Пример #1
0
        public async Task <ICollection <PostFile> > GetPostImages(AttachmentData attachments, string postId)
        {
            var fileList = new List <PostFile>();

            var arrayOfImages = attachments.Subattachments?.Data ?? new List <SubAttachmentData>();

            if (arrayOfImages.Count == 0)
            {
                var mainImage = attachments.Media?.Image;
                if (mainImage != null)
                {
                    arrayOfImages.Add(new SubAttachmentData
                    {
                        Media = new Media
                        {
                            Image = mainImage
                        }
                    });
                }
            }
            foreach (var image in arrayOfImages)
            {
                var info = await GetFileInfo(image, postId);

                if (info != null)
                {
                    fileList.Add(FileMapper.ConvertToPostFile(info));
                }
            }
            return(fileList);
        }
Пример #2
0
        public IHttpActionResult PostFile()
        {
            try
            {
                ShapeFile  shapeFile   = null;
                DbfReader  dbfFile     = null;
                FileMapper fileMapper  = null;
                string[]   shpFileStr  = Directory.GetFiles(@"C:\testFile", "*.shp");
                string[]   dbfFilesStr = Directory.GetFiles(@"C:\testFile", "*.dbf");

                if (shpFileStr != null && dbfFilesStr != null)
                {
                    if (shpFileStr.Length == 1 && dbfFilesStr.Length == 1)
                    {
                        shapeFile = new ShapeFile(shpFileStr[0]);
                        dbfFile   = new DbfReader(dbfFilesStr[0]);

                        fileMapper = new FileMapper(shapeFile, dbfFile);
                        fileMapper.StartFilter();
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Пример #3
0
        public void Encrypted_RunSync_IOException()
        {
            // ARRANGE
            byte[] fileMock = new byte[1888];
            new Random().NextBytes(fileMock);
            Stream s = new MemoryStream(fileMock);
            IInternalDracoonClient c        = FactoryClients.InternalDracoonClientMock(true);
            FileUploadCallbackMock callback = new FileUploadCallbackMock();
            ApiCreateFileUpload    acfu     = FactoryFile.ApiCreateFileUpload;

            acfu.Classification = null;
            EncFileUpload f = new EncFileUpload(c, "id1", FactoryFile.UploadFileRequest, s, FactoryUser.UserPublicKey, fileMock.Length);

            f.AddFileUploadCallback(callback);
            Mock.Arrange(() => FileMapper.ToApiCreateFileUpload(Arg.IsAny <FileUploadRequest>())).Returns(acfu);
            Mock.Arrange(() => c.Builder.PostCreateFileUpload(Arg.IsAny <ApiCreateFileUpload>())).Returns(FactoryRestSharp.PostCreateFileUploadMock());
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiUploadToken>(Arg.IsAny <IRestRequest>(), RequestType.PostUploadToken, 0))
            .Returns(FactoryFile.ApiUploadToken);
            Mock.Arrange(() => c.Builder.GetGeneralSettings())
            .Returns(FactoryRestSharp.RestRequestWithAuth(ApiConfig.ApiGetGeneralConfig, Method.GET)).Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiGeneralSettings>(Arg.IsAny <IRestRequest>(), RequestType.GetGeneralSettings, 0))
            .Returns(FactoryServerSettings.ApiGeneralSettings).Occurs(1);
            Mock.Arrange(() => Crypto.Sdk.Crypto.GenerateFileKey(Arg.AnyString)).Returns(FactoryFile.PlainFileKey);
            FileEncryptionCipher cipher = Mock.Create <FileEncryptionCipher>();

            Mock.Arrange(() => Crypto.Sdk.Crypto.CreateFileEncryptionCipher(Arg.IsAny <PlainFileKey>())).Returns(cipher);
            Mock.Arrange(() => cipher.ProcessBytes(Arg.IsAny <PlainDataContainer>())).Returns(new EncryptedDataContainer(fileMock, fileMock));
            Mock.Arrange(() => cipher.DoFinal()).Returns(new EncryptedDataContainer(fileMock, fileMock));
            Mock.NonPublic.Arrange <ApiUploadChunkResult>(f, "UploadChunkWebClient", ArgExpr.IsAny <Uri>(), ArgExpr.IsAny <byte[]>(),
                                                          ArgExpr.IsAny <long>(), ArgExpr.IsAny <int>()).Throws(new IOException());

            // ACT - ASSERT
            Assert.Throws <DracoonFileIOException>(() => f.RunSync());
            s.Close();
        }
Пример #4
0
        internal EncryptedFileKey GetEncryptedFileKey(long nodeId)
        {
            IRestRequest fileKeyRequest = _client.Builder.GetFileKey(nodeId);

            return(FileMapper.FromApiFileKey(
                       _client.Executor.DoSyncApiCall <ApiFileKey>(fileKeyRequest, RequestType.GetFileKey)));
        }
Пример #5
0
        public async Task <FileInfoDTO> CreateAsync(CreateFileRequest file, Stream data)
        {
            if (!Directory.Exists(StorageFolderPath))
            {
                Directory.CreateDirectory(StorageFolderPath);
            }

            var fileInfoDto = FileMapper.ConvertToFileInfoDTO(file);

            var fileInfo = await _db.Files.CreateAsync(FileMapper.ConvertToFileInfo(fileInfoDto));

            var filePath = GetAbsoluteFilePath(fileInfo);


            if (!File.Exists(filePath))
            {
                using (var fileStream = File.Create(filePath))
                {
                    using (data)
                    {
                        if (data.CanSeek)
                        {
                            data.Seek(0, SeekOrigin.Begin);
                        }

                        await data.CopyToAsync(fileStream);
                    }
                }
                await _db.SaveAsync(); // don't move to other place.
            }
            return(await GetFileInfoAsync(fileInfo.Id));
        }
Пример #6
0
        public async Task <PagedResultDTO <PostDTO> > GetPageAsync(int id, int page, int pageSize, bool justMyPosts, string srchStr = null)
        {
            var pagedResult = await _db.Posts.GetPageAsync(id, page, pageSize, justMyPosts, srchStr);

            pagedResult.Data.ForEach(p =>
                                     p.PostFiles = p.PostFiles.Count > 0 ?
                                                   new List <PostFile>()
            {
                p.PostFiles.First()
            }
                : new List <PostFile>()
                                     );

            Func <Post, PostDTO> func = post =>
            {
                var postDTO = PostMapper.ConvertToPostDTO(post);
                postDTO.Files       = FileMapper.ConvertToFileInfoDTOCollection(post.PostFiles);
                postDTO.UserDTO     = UserMapper.ConvertToUserDTO(post.User);
                postDTO.CommentsDTO = CommentMapper.ConvertToCommentDTOCollection(post.Comments);
                var usersDTOLikes = new List <UserDTO>();
                post.PostLikes.ToList().ForEach(pl =>
                {
                    var userDTO     = UserMapper.ConvertToUserDTO(pl.User);
                    userDTO.RoleDTO = RoleMapper.ConvertToRoleDTO(pl.User.Role);
                    usersDTOLikes.Add(userDTO);
                });
                postDTO.UsersLikes = usersDTOLikes;
                return(postDTO);
            };

            var pageResultDTO = PagedResultMapper.MapToDTO(pagedResult, func);

            return(pageResultDTO);
        }
Пример #7
0
        private void HandlePendingMissingFileKeys(ApiMissingFileKeys missingFileKeys, UserPrivateKey thisUserPrivateKey)
        {
            if (missingFileKeys == null || missingFileKeys.Items.Count == 0)
            {
                return;
            }

            Dictionary <long, UserPublicKey> userPublicKeys         = UserMapper.ConvertApiUserIdPublicKeys(missingFileKeys.UserPublicKey);
            Dictionary <long, PlainFileKey>  plainFileKeys          = GeneratePlainFileKeyMap(missingFileKeys.FileKeys, thisUserPrivateKey);
            ApiSetUserFileKeysRequest        setUserFileKeysRequest = new ApiSetUserFileKeysRequest {
                Items = new List <ApiSetUserFileKey>(missingFileKeys.UserPublicKey.Count)
            };

            foreach (ApiUserIdFileId currentMissingFileKey in missingFileKeys.Items)
            {
                UserPublicKey currentUsersPublicKey = userPublicKeys[currentMissingFileKey.UserId];
                PlainFileKey  currentPlainFileKey   = plainFileKeys[currentMissingFileKey.FileId];

                EncryptedFileKey currentEncryptedFileKey = EncryptFileKey(currentPlainFileKey, currentUsersPublicKey, currentMissingFileKey.FileId);

                ApiSetUserFileKey newRequestEntry = new ApiSetUserFileKey {
                    FileId  = currentMissingFileKey.FileId,
                    UserId  = currentMissingFileKey.UserId,
                    FileKey = FileMapper.ToApiFileKey(currentEncryptedFileKey)
                };
                setUserFileKeysRequest.Items.Add(newRequestEntry);
            }

            IRestRequest restRequest = _client.Builder.PostMissingFileKeys(setUserFileKeysRequest);

            _client.Executor.DoSyncApiCall <VoidResponse>(restRequest, RequestType.PostMissingFileKeys);
        }
Пример #8
0
 private void InitializeConfig()
 {
     if (!Config.IsInitialized)
     {
         Config.Initialize(FileMapper.MapPath(ApplicationPath), PathVariation);
     }
 }
Пример #9
0
        static void Main(string[] args)
        {
            const string filePath = @"U:\TestData\DSS.csv";

            var fileReader = new FileReader();

            char[] separator  = { ',' };
            var    fieldNames = fileReader.GetHeaderFieldNamesFromFile(0, filePath, separator);

            //var userRecords = fileReader.ReadFile(filePath, 1, fieldNames, separator);
            var stream      = File.OpenText(filePath);
            var ignoreLines = 1;
            var userRecords = fileReader.ReadStream(stream, ignoreLines, fieldNames, separator);


            //These will come from database
            var validatorDefs = new List <ValidatorDef>
            {
                new ValidatorDef("BarcodeId", "IsRequired"),
                new ValidatorDef("AnimalID", "IsRequired"),
                new ValidatorDef("DamRegistrationNumber", "number"),
                new ValidatorDef("SexofAnimal", "Gender", "", "m,F,Male,Female,sire,dam,heifer,steer"),
            };

            var validationProcessor = new ValidationProcessor(validatorDefs);

            if (!validationProcessor.RunValidatorsForAllObjects(fileReader.InputType, userRecords))
            {
                Console.WriteLine(validationProcessor.ErrorMessages.ToString());
                EndProgram();
                return;
            }

            var fileMapper = new FileMapper();


            //These will come from database
            IList <MapDefinition> mapDefs = new List <MapDefinition>();

            mapDefs.Add(new MapDefinition()
            {
                InputName = "BarcodeId", OutputName = "BarcodeId"
            });
            mapDefs.Add(new MapDefinition()
            {
                InputName = "AnimalID", OutputName = "AnimalId"
            });
            mapDefs.Add(new MapDefinition()
            {
                InputName = "SexofAnimal", OutputName = "GenderOfAnimal"
            });
            mapDefs.Add(new MapDefinition()
            {
                InputName = "DamRegistrationNumber", OutputName = "DamRegistrationNumber"
            });

            var output = fileMapper.MapFields <OutPutRow>(userRecords, mapDefs, fileReader.InputType);

            EndProgram();
        }
Пример #10
0
        public Feature Parse(TextReader featureFileReader)
        {
            var language        = this.DetermineLanguage();
            var gherkinParser   = new Gherkin.Parser();
            var dialectProvider = this.GetDialectProvider(language);

            try
            {
                Gherkin.Ast.GherkinDocument gherkinDocument = gherkinParser.Parse(
                    new Gherkin.TokenScanner(featureFileReader),
                    new Gherkin.TokenMatcher(dialectProvider));

                var     languageServices = this.languageServicesRegistry.GetLanguageServicesForLanguage(gherkinDocument.Feature.Language);
                Feature result           = new FileMapper(this.configuration, languageServices).MapToFeature(gherkinDocument);
                result = new FeatureFilter(result, this.configuration.ExcludeTags).ExcludeScenariosByTags();

                if (result != null)
                {
                    this.descriptionProcessor.Process(result);
                }

                return(result);
            }
            catch (Gherkin.CompositeParserException exception)
            {
                throw new FeatureParseException("Unable to parse feature", exception);
            }
        }
Пример #11
0
        public void Encrypted_RunSync_CreateFileKeyError()
        {
            // ARRANGE
            byte[] fileMock = new byte[1888];
            new Random().NextBytes(fileMock);
            Stream s = new MemoryStream(fileMock);
            IInternalDracoonClient c        = FactoryClients.InternalDracoonClientMock(true);
            FileUploadCallbackMock callback = new FileUploadCallbackMock();
            ApiCreateFileUpload    acfu     = FactoryFile.ApiCreateFileUpload;

            acfu.Classification = null;
            EncFileUpload f = new EncFileUpload(c, "id1", FactoryFile.UploadFileRequest, s, FactoryUser.UserPublicKey, fileMock.Length);

            f.AddFileUploadCallback(callback);
            Mock.Arrange(() => c.Builder.GetGeneralSettings())
            .Returns(FactoryRestSharp.RestRequestWithAuth(ApiConfig.ApiGetGeneralConfig, Method.GET)).Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiGeneralSettings>(Arg.IsAny <IRestRequest>(), RequestType.GetGeneralSettings, 0))
            .Returns(FactoryServerSettings.ApiGeneralSettings).Occurs(1);
            Mock.Arrange(() => FileMapper.ToApiCreateFileUpload(Arg.IsAny <FileUploadRequest>())).Returns(acfu);
            Mock.Arrange(() => c.Builder.PostCreateFileUpload(Arg.IsAny <ApiCreateFileUpload>())).Returns(FactoryRestSharp.PostCreateFileUploadMock());
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiUploadToken>(Arg.IsAny <IRestRequest>(), RequestType.PostUploadToken, 0))
            .Returns(FactoryFile.ApiUploadToken);
            Mock.Arrange(() => Crypto.Sdk.Crypto.GenerateFileKey(Arg.AnyString)).Throws(new CryptoException("Error"));

            // ACT - ASSERT
            Assert.Throws <DracoonCryptoException>(() => f.RunSync());
            s.Close();
        }
Пример #12
0
        /// <summary>
        /// Creates the default application configuration and assigns the provided user as the primary administrator.
        /// </summary>
        /// <param name="settings">General and custom application settings.</param>
        /// <returns>The application configuration component.</returns>
        private AppConfig CreateConfig(Dictionary <string, object> settings)
        {
            AppConfig config = null;

            using (LogGroup logGroup = LogGroup.StartDebug("Creating the default application config."))
            {
                CheckFileMapper();

                CheckPathVariation();

                config = ConfigFactory <AppConfig> .NewConfig(FileMapper.MapPath(ApplicationPath + "/" + DataDirectory), "Application", PathVariation);

                config.ApplicationPath         = ApplicationPath;
                config.PhysicalApplicationPath = FileMapper.MapPath(ApplicationPath);

                // Add the provided settings to the configuration ifle.
                foreach (string key in settings.Keys)
                {
                    config.Settings[key] = settings[key];
                }

                LogWriter.Debug("Application path: " + config.ApplicationPath);
                LogWriter.Debug("Physical application path: " + config.PhysicalApplicationPath);

                // TODO: Check if needed
                //config.Settings["ApplicationVersion"] = Utilities.GetVersion();

                LogWriter.Debug("Version: " + config.Settings["ApplicationVersion"]);
            }
            return(config);
        }
Пример #13
0
        public async Task <IActionResult> GetAsync([FromRoute] int userId,
                                                   [FromQuery] int?fileTypeId)
        {
            var files = await _repositoryManager
                        .FileRepository.GetAsync(userId, fileTypeId);

            return(Ok(files.Select(f => FileMapper.MapWithType(f))));
        }
Пример #14
0
        public async Task <List <FileDto> > GetAllFilesAsync()
        {
            List <File> files = await fileService.GetAllFilesAsync();

            List <FileDto> response = FileMapper.MapFilesToDto(files);

            return(response);
        }
Пример #15
0
        public FileDto GetFileById(int fileId)
        {
            var file = Session.QueryOver <File>()
                       .Where(x => x.FileId == fileId)
                       .SingleOrDefault();

            return(FileMapper.MapToDto(file));
        }
Пример #16
0
        public ActionResult <IEnumerable <FileViewModel> > GetFiles(int medicalChartId)
        {
            if (!_medicalChartService.Exist(medicalChartId))
            {
                return(NotFound());
            }

            return(_medicalChartService.GetFiles(medicalChartId).Select(f => FileMapper.DTOtoFiileVM(f)).ToList());
        }
Пример #17
0
        public void CreateDownloadShare_Success()
        {
            // ARRANGE
            Node node = FactoryNode.Node;

            node.IsEncrypted = true;
            node.Type        = NodeType.File;
            CreateDownloadShareRequest req = FactoryShare.CreateDownloadShareRequest;

            req.EmailRecipients = new List <string> {
                "985678"
            };
            req.EmailBody     = "Any body!";
            req.EmailSubject  = "Any subject!";
            req.SmsRecipients = new List <string> {
                "28436054"
            };
            IInternalDracoonClient c = FactoryClients.InternalDracoonClientMock(true);
            DracoonSharesImpl      s = new DracoonSharesImpl(c);

            Mock.Arrange(() => Arg.IsAny <CreateDownloadShareRequest>().MustNotNull(Arg.AnyString)).DoNothing().Occurs(1);
            Mock.Arrange(() => c.NodesImpl.GetNode(Arg.AnyLong)).Returns(node).Occurs(1);
            Mock.Arrange(() => Arg.AnyString.MustNotNullOrEmptyOrWhitespace(Arg.AnyString, Arg.AnyBool)).DoNothing().OccursAtLeast(1);
            Mock.Arrange(() => Arg.IsAny <int?>().NullableMustPositive(Arg.AnyString)).DoNothing().Occurs(1);
            Mock.Arrange(() => Arg.IsAny <IEnumerable <string> >().EnumerableMustNotNullOrEmpty(Arg.AnyString)).DoNothing();
            Mock.Arrange(() => ShareMapper.ToUnencryptedApiCreateDownloadShareRequest(Arg.IsAny <CreateDownloadShareRequest>()))
            .Returns(FactoryShare.ApiCreateDownloadShareRequest).Occurs(1);
            Mock.Arrange(() => c.AccountImpl.GetAndCheckUserKeyPair()).Returns(FactoryUser.UserKeyPair).Occurs(1);
            Mock.Arrange(() => c.NodesImpl.GetEncryptedFileKey(Arg.AnyLong)).Returns(FactoryFile.EncryptedFileKey).Occurs(1);
            Mock.Arrange(() => c.NodesImpl.DecryptFileKey(Arg.IsAny <EncryptedFileKey>(), Arg.IsAny <UserPrivateKey>(), Arg.IsAny <long?>())).Returns(FactoryFile.PlainFileKey).Occurs(1);
            Mock.Arrange(() => c.AccountImpl.GenerateNewUserKeyPair(Arg.AnyString)).Returns(FactoryUser.UserKeyPair);
            Mock.Arrange(() => c.NodesImpl.EncryptFileKey(Arg.IsAny <PlainFileKey>(), Arg.IsAny <UserPublicKey>(), Arg.IsAny <long?>())).Returns(FactoryFile.EncryptedFileKey).Occurs(1);
            Mock.Arrange(() => UserMapper.ToApiUserKeyPair(Arg.IsAny <UserKeyPair>())).Returns(FactoryUser.ApiUserKeyPair).Occurs(1);
            Mock.Arrange(() => FileMapper.ToApiFileKey(Arg.IsAny <EncryptedFileKey>())).Returns(FactoryFile.ApiFileKey).Occurs(1);
            Mock.Arrange(() => c.Builder.PostCreateDownloadShare(Arg.IsAny <ApiCreateDownloadShareRequest>())).Returns(FactoryRestSharp.PostCreateDownloadShareMock()).Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiDownloadShare>(Arg.IsAny <IRestRequest>(), RequestType.PostCreateDownloadShare, 0))
            .Returns(FactoryShare.ApiDownloadShare).Occurs(1);
            Mock.Arrange(() => ShareMapper.FromApiDownloadShare(Arg.IsAny <ApiDownloadShare>())).Returns(FactoryShare.DownloadShare).Occurs(1);

            // ACT
            DownloadShare actual = s.CreateDownloadShare(req);

            // ASSERT
            Assert.NotNull(actual);
            Mock.Assert(() => Arg.IsAny <CreateDownloadShareRequest>().MustNotNull(Arg.AnyString));
            Mock.Assert(() => Arg.AnyString.MustNotNullOrEmptyOrWhitespace(Arg.AnyString, Arg.AnyBool));
            Mock.Assert(() => Arg.IsAny <int?>().NullableMustPositive(Arg.AnyString));
            Mock.Assert(() => Arg.IsAny <IEnumerable <string> >().EnumerableMustNotNullOrEmpty(Arg.AnyString));
            Mock.Assert(() => ShareMapper.ToUnencryptedApiCreateDownloadShareRequest(Arg.IsAny <CreateDownloadShareRequest>()));
            Mock.Assert(() => UserMapper.ToApiUserKeyPair(Arg.IsAny <UserKeyPair>()));
            Mock.Assert(() => FileMapper.ToApiFileKey(Arg.IsAny <EncryptedFileKey>()));
            Mock.Assert(() => ShareMapper.FromApiDownloadShare(Arg.IsAny <ApiDownloadShare>()));
            Mock.Assert(c.NodesImpl);
            Mock.Assert(c.AccountImpl);
            Mock.Assert(c.Builder);
            Mock.Assert(c.Executor);
        }
        public List <FileDTO> GetFiles(int medicalChartId)
        {
            var filesDTO = _context.Files
                           .Where(f => f.MedicalChartId.Equals(medicalChartId))
                           .Select(f => FileMapper.FileToFileDTO(f))
                           .ToList();

            return(filesDTO);
        }
Пример #19
0
        public JsonResult GetFileTreeData(string path)
        {
            var fileProvider = new FileProvider();
            var fileMapper = new FileMapper();

            var filesList = fileProvider.GetFiles(path);
            var rootJsTreeFileDto = fileMapper.From(filesList);
            rootJsTreeFileDto.text = "Project files";

            return Json(rootJsTreeFileDto, JsonRequestBehavior.AllowGet);
        }
Пример #20
0
        private void Initialize()
        {
            if (ConfigurationManager.AppSettings != null)
            {
                CheckFileMapper();

                LegacyDirectoryPath = FileMapper.MapApplicationRelativePath(ConfigurationUtilities.GetSetting("Legacy.Directory", "Legacy"));

                PersonalizationDirectoryPath = FileMapper.MapApplicationRelativePath(DataDirectory + "/Personalization_Data");
            }
        }
Пример #21
0
        public void RunSync_UnknownFileSize_Success()
        {
            // ARRANGE
            byte[] fileMock = new byte[1888];
            new Random().NextBytes(fileMock);
            Stream s = new MemoryStream(fileMock);
            IInternalDracoonClient c        = FactoryClients.InternalDracoonClientMock(true);
            FileUploadCallbackMock callback = new FileUploadCallbackMock();
            FileUpload             f        = new FileUpload(c, "id1", FactoryFile.UploadFileRequest, s, -1);

            f.AddFileUploadCallback(callback);
            ApiCreateFileUpload acfu = FactoryFile.ApiCreateFileUpload;

            acfu.Classification = null;
            Mock.Arrange(() => c.Builder.PostCreateFileUpload(Arg.IsAny <ApiCreateFileUpload>())).Returns(FactoryRestSharp.PostCreateFileUploadMock())
            .Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiUploadToken>(Arg.IsAny <IRestRequest>(), RequestType.PostUploadToken, 0))
            .Returns(FactoryFile.ApiUploadToken).Occurs(1);
            Mock.Arrange(() => c.Builder.PutCompleteFileUpload(Arg.AnyString, Arg.IsAny <ApiCompleteFileUpload>()))
            .Returns(FactoryRestSharp.PutCompleteFileUploadMock("path")).Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiNode>(Arg.IsAny <IRestRequest>(), RequestType.PutCompleteUpload, 0))
            .Returns(FactoryNode.ApiNode).Occurs(1);
            Mock.Arrange(() => c.Builder.GetGeneralSettings())
            .Returns(FactoryRestSharp.RestRequestWithAuth(ApiConfig.ApiGetGeneralConfig, Method.GET)).Occurs(1);
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiGeneralSettings>(Arg.IsAny <IRestRequest>(), RequestType.GetGeneralSettings, 0))
            .Returns(FactoryServerSettings.ApiGeneralSettings).Occurs(1);
            Mock.Arrange(() => FileMapper.ToApiCreateFileUpload(Arg.IsAny <FileUploadRequest>())).Returns(acfu).Occurs(1);
            Mock.Arrange(() => NodeMapper.FromApiNode(Arg.IsAny <ApiNode>())).Returns(FactoryNode.Node).Occurs(1);
            Mock.Arrange(() => FileHash.CompareFileHashes(Arg.AnyString, Arg.IsAny <byte[]>(), Arg.AnyInt)).Returns(true).OccursAtLeast(1);
            DracoonWebClientExtension wc = Mock.Create <DracoonWebClientExtension>();

            Mock.Arrange(() => Mock.Create <UploadProgressChangedEventArgs>().BytesSent).IgnoreInstance();
            Mock.Arrange(() => c.Executor.ExecuteWebClientChunkUpload(Arg.IsAny <WebClient>(), Arg.IsAny <Uri>(), Arg.IsAny <byte[]>(),
                                                                      RequestType.PostUploadChunk, Arg.IsAny <Thread>(), Arg.AnyInt)).DoInstead(() => Thread.Sleep(250))
            .Raises(() => wc.UploadProgressChanged += null, null, Mock.Create <UploadProgressChangedEventArgs>()).Returns(new byte[13]);
            Mock.Arrange(() => c.Builder.ProvideChunkUploadWebClient(Arg.AnyInt, Arg.AnyLong, Arg.AnyString, Arg.AnyString)).Returns(wc);
            Mock.Arrange(() => JsonConvert.DeserializeObject <ApiUploadChunkResult>(Arg.AnyString)).Returns(FactoryFile.ApiUploadChunkResult);

            Mock.Arrange(() => callback.OnStarted(Arg.AnyString)).Occurs(1);
            Mock.Arrange(() => callback.OnRunning(Arg.AnyString, Arg.AnyLong, Arg.AnyLong)).OccursAtLeast(1);
            Mock.Arrange(() => callback.OnFinished(Arg.AnyString, Arg.IsAny <Node>())).Occurs(1);

            // ACT
            Node actual = f.RunSync();

            s.Close();

            // ASSERT
            Assert.Equal(FactoryNode.Node, actual, new NodeComparer());
            Mock.Assert(callback);
            Mock.Assert(c.Builder);
            Mock.Assert(c.Executor);
        }
Пример #22
0
        public async Task <ICollection <PostFile> > GetPostImages(IList <SharepointPostImages> attachments, int postId)
        {
            var fileList = new List <PostFile>();

            foreach (var image in attachments)
            {
                var info = await GetFileInfo(image, postId);

                fileList.Add(FileMapper.ConvertToPostFile(info));
            }
            return(fileList);
        }
Пример #23
0
        public async Task <IActionResult> CreateAsync([FromBody] InFileDTO fileDTO)
        {
            var file = FileMapper.Map(fileDTO);

            file = _repositoryManager.FileRepository.Create(file);

            await _repositoryManager.SaveAsync();

            var outFileDTO = FileMapper.Map(file);

            return(Ok(outFileDTO));
        }
Пример #24
0
        public void RunAsync_IOException()
        {
            // ARRANGE
            byte[] fileMock = new byte[1888];
            new Random().NextBytes(fileMock);
            Stream s = new MemoryStream(fileMock);
            IInternalDracoonClient c        = FactoryClients.InternalDracoonClientMock(true);
            FileUploadCallbackMock callback = new FileUploadCallbackMock();
            FileUpload             f        = new FileUpload(c, "id1", FactoryFile.UploadFileRequest, s, fileMock.Length);

            f.AddFileUploadCallback(callback);
            Mock.Arrange(() => c.Builder.PostCreateFileUpload(Arg.IsAny <ApiCreateFileUpload>())).Returns(FactoryRestSharp.PostCreateFileUploadMock())
            .OnAllThreads();
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiUploadToken>(Arg.IsAny <IRestRequest>(), RequestType.PostUploadToken, 0))
            .Returns(FactoryFile.ApiUploadToken).OnAllThreads();
            Mock.Arrange(() => c.Builder.PutCompleteFileUpload(Arg.AnyString, Arg.IsAny <ApiCompleteFileUpload>()))
            .Returns(FactoryRestSharp.PutCompleteFileUploadMock("path")).OnAllThreads();
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiNode>(Arg.IsAny <IRestRequest>(), RequestType.PutCompleteUpload, 0))
            .Returns(FactoryNode.ApiNode).OnAllThreads();
            Mock.Arrange(() => c.Builder.GetGeneralSettings())
            .Returns(FactoryRestSharp.RestRequestWithAuth(ApiConfig.ApiGetGeneralConfig, Method.GET)).OnAllThreads();
            Mock.Arrange(() => c.Executor.DoSyncApiCall <ApiGeneralSettings>(Arg.IsAny <IRestRequest>(), RequestType.GetGeneralSettings, 0))
            .Returns(FactoryServerSettings.ApiGeneralSettings).OnAllThreads();
            Mock.Arrange(() => FileMapper.ToApiCreateFileUpload(Arg.IsAny <FileUploadRequest>())).Returns(FactoryFile.ApiCreateFileUpload)
            .OnAllThreads();
            Mock.Arrange(() => NodeMapper.FromApiNode(Arg.IsAny <ApiNode>())).Returns(FactoryNode.Node).OnAllThreads();
            Mock.Arrange(() => FileHash.CompareFileHashes(Arg.AnyString, Arg.IsAny <byte[]>(), Arg.AnyInt)).Returns(true).OnAllThreads();
            DracoonWebClientExtension wc = Mock.Create <DracoonWebClientExtension>();

            Mock.Arrange(() => Mock.Create <UploadProgressChangedEventArgs>().BytesSent).IgnoreInstance().OnAllThreads();
            Mock.Arrange(() => c.Executor.ExecuteWebClientChunkUpload(Arg.IsAny <WebClient>(), Arg.IsAny <Uri>(), Arg.IsAny <byte[]>(),
                                                                      RequestType.PostUploadChunk, Arg.IsAny <Thread>(), Arg.AnyInt))
            .Raises(() => wc.UploadProgressChanged += null, null, Mock.Create <UploadProgressChangedEventArgs>()).Returns(new byte[13])
            .OnAllThreads();
            Mock.Arrange(() => c.Builder.ProvideChunkUploadWebClient(Arg.AnyInt, Arg.AnyLong, Arg.AnyString, Arg.AnyString)).Returns(wc)
            .OnAllThreads();
            Mock.Arrange(() => JsonConvert.DeserializeObject <ApiUploadChunkResult>(Arg.AnyString)).Returns(FactoryFile.ApiUploadChunkResult)
            .OnAllThreads();
            Mock.Arrange(() => s.Read(Arg.IsAny <byte[]>(), Arg.AnyInt, Arg.AnyInt)).Throws(new IOException()).OnAllThreads();
            Mock.Arrange(() => callback.OnStarted(Arg.AnyString)).Occurs(1);
            Mock.Arrange(() => callback.OnFailed(Arg.AnyString, Arg.IsAny <DracoonException>())).Occurs(1);

            // ACT
            f.RunAsync();
            while (f.RunningThread.IsAlive)
            {
            }

            s.Close();

            // ASSERT
            Mock.Assert(callback);
        }
Пример #25
0
        private Dictionary <long, PlainFileKey> GeneratePlainFileKeyMap(List <ApiFileIdFileKey> fileIdFileKeys, UserPrivateKey thisUserPrivateKey)
        {
            Dictionary <long, PlainFileKey> plainFileKeys = new Dictionary <long, PlainFileKey>(fileIdFileKeys.Count);

            foreach (ApiFileIdFileKey currentEncryptedFileKey in fileIdFileKeys)
            {
                EncryptedFileKey encryptedFileKey = FileMapper.FromApiFileKey(currentEncryptedFileKey.FileKeyContainer);
                PlainFileKey     decryptedFileKey = DecryptFileKey(encryptedFileKey, thisUserPrivateKey, currentEncryptedFileKey.FileId);
                plainFileKeys.Add(currentEncryptedFileKey.FileId, decryptedFileKey);
            }

            return(plainFileKeys);
        }
Пример #26
0
        public async Task <IActionResult> GetAsync([FromQuery] int?fileTypeId)
        {
            var userId = HttpContext.User.GetUserId();

            if (!userId.HasValue)
            {
                return(Unauthorized());
            }

            var files = await _repositoryManager
                        .FileRepository.GetAsync(userId.Value, fileTypeId);

            return(Ok(files.Select(f => FileMapper.MapWithType(f))));
        }
Пример #27
0
        public async Task <PostDTO> CreateAsync(PostDTO post)
        {
            if (post.EndDateTime <= post.StartDateTime)
            {
                throw new InvalidOperationException("EndDateTime should be greater than StartDateTime");
            }

            var currentUser = _userContext.CurrentUser;

            if (currentUser.RoleId != (int)Roles.Moderator)
            {
                var defaultEndDateTime = _postDefaultValuesOptions.Value.DisplayPeriodInDaysForUsers;
                post.EndDateTime = post.StartDateTime.AddDays(defaultEndDateTime);
            }

            if (post.CreatedDate == default(DateTime))
            {
                post.CreatedDate = DateTime.Now;
            }
            if (post.PostType == PostType.None)
            {
                post.PostType = PostType.InTouch;
            }
            post.IsDeleted = false;


            post.UserId = currentUser.Id;

            if (post.Priority == PostPriority.High && currentUser.RoleId != Role.ModeratorRoleId)
            {
                throw new InvalidOperationException("This user has no rights to set high priority for the post");
            }

            post.IsPublic = false;

            var postToSave = PostMapper.ConvertToPost(post);

            postToSave.PostFiles = FileMapper.ConvertToPostFileCollection(post.Files);

            var createdPost = await _db.Posts.CreateAsync(postToSave);

            await _db.SaveAsync();

            var createdPostDTO = PostMapper.ConvertToPostDTO(createdPost);

            createdPostDTO.UserDTO = currentUser;
            return(createdPostDTO);
        }
Пример #28
0
        public async Task <IActionResult> CreateAsync([FromBody] PostCreateViewModel postCreateModel)
        {
            if (postCreateModel == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            List <FileInfoDTO> filesDTO = new List <FileInfoDTO>();

            postCreateModel.VideoUrl = string.IsNullOrEmpty(postCreateModel.VideoUrl) ? null : postCreateModel.VideoUrl;

            var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);

            postCreateModel.StartDate = postCreateModel.StartDate.AddHours(offset.TotalHours);
            postCreateModel.EndDate   = postCreateModel.EndDate.AddHours(offset.TotalHours);

            foreach (var file in postCreateModel.Files)
            {
                var createRequestFile = FileMapper.ConvertToCreateFileRequest(file);

                using (var stream = _fileManager.GetFileStream(file))
                {
                    var createdPostFileDTO = await _fileService.CreateAsync(createRequestFile, stream);

                    filesDTO.Add(createdPostFileDTO);
                }
            }

            var post = PostMapper.ConvertToPostDTO(postCreateModel);

            post.Files = filesDTO;
            var createdPostDTO = await _postService.CreateAsync(post);

            var currentUser   = _userContext.CurrentUser;
            var postViewModel = PostMapper.ConvertToPostViewModel(createdPostDTO);

            if (currentUser.RoleId != (int)Roles.Moderator)
            {
                _emailService.PostCreatedNotificationAsync(postViewModel);
            }
            return(Ok(createdPostDTO));
        }
Пример #29
0
        public async Task <IEnumerable <PostDTO> > GetPostsAsync()
        {
            var posts = await _db.Posts.GetAllAsync();

            var postsDTO = new List <PostDTO>();

            //var currentDateTime = DateTime.Now;

            posts.ForEach(p =>
            {
                var postDTO = PostMapper.ConvertToPostDTO(p);

                postDTO.Files = FileMapper.ConvertToFileInfoDTOCollection(p.PostFiles);
                postsDTO.Add(postDTO);
            });
            return(postsDTO);
        }
Пример #30
0
        public override void PreInitialize()
        {
            Configuration.Authorization.Providers.Add <CCodeAuthorizationProvider>();

            Configuration.Authorization.Providers.Add <ArticleAppAuthorizationProvider>();
            Configuration.Authorization.Providers.Add <CategoryAuthorizationProvider>();
            Configuration.Authorization.Providers.Add <FileAuthorizationProvider>();


            Configuration.Modules.AbpAutoMapper().Configurators.Add(configuration =>
            {
                CategoryMapper.CreateMappings(configuration);
                FileMapper.CreateMappings(configuration);
                ArticleDtoMapper.CreateMappings(configuration);
                // ....
            });
        }
Пример #31
0
        public Node UpdateFile(UpdateFileRequest request)
        {
            _client.Executor.CheckApiServerVersion();

            #region Parameter Validation

            request.MustNotNull(nameof(request));
            request.Id.MustPositive(nameof(request.Id));
            request.Name.MustNotNullOrEmptyOrWhitespace(nameof(request.Name), true);

            #endregion

            ApiUpdateFileRequest apiUpdateFileRequest = FileMapper.ToApiUpdateFileRequest(request);
            IRestRequest         restRequest          = _client.Builder.PutFile(request.Id, apiUpdateFileRequest);
            ApiNode result = _client.Executor.DoSyncApiCall <ApiNode>(restRequest, RequestType.PutFile);
            return(NodeMapper.FromApiNode(result));
        }