Example #1
0
        public void TestShareProjectSuccess()
        {
            TestHelper.ClearFolder(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SliceOfPie"));

            LocalFileModel model = new LocalFileModel();

            IEnumerable <Project> projects = model.GetProjects("local");
            Project project = projects.First();

            model.UploadStructure("*****@*****.**");
            model.FindProjects();
            projects = model.GetProjects("local");
            project  = projects.First();

            Assert.AreEqual(1, projects.Count());

            userModel.ShareProject(project.Id, "*****@*****.**");

            using (var dbContext = new sliceofpieEntities2()) {
                var projectUsers = from projectUser in dbContext.ProjectUsers
                                   where projectUser.ProjectId == project.Id && projectUser.UserEmail == "*****@*****.**"
                                   select projectUser;
                Assert.AreEqual(1, projectUsers.Count());
            }
        }
Example #2
0
        public void TestProjectShare()
        {
            LocalFileModel model = new LocalFileModel();

            IEnumerable <Project> projects = model.GetProjects("local");
            Project project = projects.First();

            model.UploadStructure("*****@*****.**");
            model.FindProjects();
            projects = model.GetProjects("local");
            project  = projects.First();

            Assert.AreEqual(1, projects.Count());

            string[]     emails  = { "*****@*****.**" };
            IAsyncResult shareAr = controller.BeginShareProject(project, emails, null, null);

            controller.EndShareProject(shareAr);

            using (var dbContext = new sliceofpieEntities2()) {
                var projectUsers = from projectUser in dbContext.ProjectUsers
                                   where projectUser.ProjectId == project.Id && projectUser.UserEmail == "*****@*****.**"
                                   select projectUser;
                Assert.AreEqual(1, projectUsers.Count());
            }
        }
Example #3
0
        public void TestSyncProjects()
        {
            LocalFileModel model = new LocalFileModel();

            IAsyncResult          ar             = controller.BeginSyncProjects("*****@*****.**", "pw", null, null);
            IEnumerable <Project> projectsSynced = controller.EndSyncProjects(ar);

            Assert.IsTrue(projectsSynced.Count() > 0);
        }
Example #4
0
        public void TestDownloadRevisions()
        {
            LocalFileModel model = new LocalFileModel(); //To reinitialize the underlying filesystem

            Project  p = controller.CreateProject("Thirteen-Thirtyseven", "*****@*****.**");
            Document d = controller.CreateDocument("Fourty-Two", "*****@*****.**", p);

            d.CurrentRevision = "Noget ordentligt";
            controller.SaveDocument(d);
            IEnumerable <Project> projects = controller.SyncProjects("*****@*****.**", "pw");

            p = projects.First(project => project.Title.Equals(p.Title));
            d = p.GetDocuments().First();
            IAsyncResult           ar     = controller.BeginDownloadRevisions(d, null, null);
            IEnumerable <Revision> result = controller.EndDownloadRevisions(ar);

            Assert.IsTrue(result.Count() > 0);
        }
Example #5
0
        public void TestShareProjectFailureProjectUser()
        {
            TestHelper.ClearFolder(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SliceOfPie"));

            LocalFileModel model = new LocalFileModel();

            IEnumerable <Project> projects = model.GetProjects("local");
            Project project = projects.First();

            model.UploadStructure("*****@*****.**");
            model.FindProjects();
            projects = model.GetProjects("local");
            project  = projects.First();

            Assert.AreEqual(1, projects.Count());

            userModel.ShareProject(project.Id, "*****@*****.**");
            userModel.ShareProject(project.Id, "*****@*****.**");
        }
Example #6
0
        public void TestShareProjectFailureProjectUser()
        {
            TestHelper.ClearFolder(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SliceOfPie"));

            LocalFileModel model = new LocalFileModel();

            IEnumerable<Project> projects = model.GetProjects("local");
            Project project = projects.First();

            model.UploadStructure("*****@*****.**");
            model.FindProjects();
            projects = model.GetProjects("local");
            project = projects.First();

            Assert.AreEqual(1, projects.Count());

            userModel.ShareProject(project.Id, "*****@*****.**");
            userModel.ShareProject(project.Id, "*****@*****.**");
        }
Example #7
0
        public void TestShareProjectSuccess()
        {
            TestHelper.ClearFolder(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SliceOfPie"));

            LocalFileModel model = new LocalFileModel();

            IEnumerable<Project> projects = model.GetProjects("local");
            Project project = projects.First();

            model.UploadStructure("*****@*****.**");
            model.FindProjects();
            projects = model.GetProjects("local");
            project = projects.First();

            Assert.AreEqual(1, projects.Count());

            userModel.ShareProject(project.Id, "*****@*****.**");

            using (var dbContext = new sliceofpieEntities2()) {
                var projectUsers = from projectUser in dbContext.ProjectUsers
                                   where projectUser.ProjectId == project.Id && projectUser.UserEmail == "*****@*****.**"
                                   select projectUser;
                Assert.AreEqual(1, projectUsers.Count());
            }
        }
Example #8
0
 public void Initialize()
 {
     TestHelper.ClearDatabase("*****@*****.**");
     TestHelper.ClearFolder(AppPath);
     Model = new LocalFileModel();
 }
        public async Task <LocalFileModel> SaveAsync(ImageModel image)
        {
            //ImageInfo result = new ImageInfo();
            var result = new LocalFileModel();

            var baseUrl = image.GetBaseUrl();

            var now = DateTimeOffset.UtcNow;

            var destinationDirectory = appOptions.DestinationPath;

            if (!Directory.Exists(destinationDirectory))
            {
                Directory.CreateDirectory(destinationDirectory);
            }

            result.Directory = destinationDirectory;

            var suffixes = new string[] { "_UHD", "_1920x1080" };

            foreach (var suffix in suffixes)
            {
                var imageInfo = image.GetFileName(suffix);
                var imageUrl  = $"{baseUrl}{imageInfo.BaseUrl}";
                var response  = await client.GetAsync(imageUrl);

                if (response.IsSuccessStatusCode && response.Content != null)
                {
                    if (response.Content.Headers.Contains("content-type"))
                    {
                        var contentType = response.Content.Headers.GetValues("content-type").FirstOrDefault();

                        result.ContentType = contentType;
                    }
                    else
                    {
                        result.ContentType = "application/octet-stream";
                    }

                    var fileName = imageInfo.FileName;

                    if (String.IsNullOrEmpty(fileName))
                    {
                        throw new ArgumentException("Does not find a file name");
                    }

                    result.FileName = fileName;

                    var fileNameWithoutExtension = fileName;
                    var fileExtension            = String.Empty;

                    if (fileName.Contains("."))
                    {
                        var fileNamesToken = fileName.Split('.');

                        fileNameWithoutExtension = String.Join(".", fileNamesToken.Take(fileNamesToken.Length - 1));

                        fileExtension = $".{ fileName.Split('.').LastOrDefault() }";
                    }

                    var saveFileName = $"{fileNameWithoutExtension}-{now.Ticks}{fileExtension}";


                    var filePath = Path.Combine(destinationDirectory, saveFileName);
                    result.FilePath = filePath;

                    using (var responseStream = await response.Content.ReadAsStreamAsync())
                    {
                        result.Size = responseStream.Length;

                        responseStream.Position = 0;

                        using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
                        {
                            await responseStream.CopyToAsync(fileStream);

                            await fileStream.FlushAsync();

                            fileStream.Close();
                        }
                        responseStream.Close();
                    }

                    await imageFileService.GenerateThumbnailAsync(filePath);

                    break;
                }
            }


            return(result);
        }