public async Task GetFileTextIdentifiesCorrectResponseForPreProdIntegration()
        {
            const string expectedFileText =
                @"User-agent: SemrushBot-SA
Disallow: /alerts/
Disallow: /ab/
Disallow: /webchat/
{Insertion}

User-agent: *
Disallow: /";

            var fileInfoHelper = new FileInfoHelper();

            var httpContextAccessor = A.Fake <IHttpContextAccessor>();

            A.CallTo(() => httpContextAccessor.HttpContext.Request.Host).Returns(new HostString("staging.nationalcareers.service.gov.uk"));

            var service = new ShellRobotFileService(fileInfoHelper, httpContextAccessor);

            var result = await service.GetStaticFileText($"{AppDomain.CurrentDomain.BaseDirectory}wwwroot");

            Assert.Equal(expectedFileText, result);
        }
예제 #2
0
        private ItemLiberacaoRelease AnalisarItemLiberacaoRelease(Projeto projeto)
        {
            var itemLiberacaoRelease = new ItemLiberacaoRelease(projeto);

            var pathRelease = $@"{Versao.DiretorioRelease}\{projeto.PathRelease}";
            var pathTeste   = $@"{Versao.DiretorioTeste}\{projeto.PathTeste}";

            if (itemLiberacaoRelease.Validate(pathRelease))
            {
                itemLiberacaoRelease.ReleaseAttriburesDiretorioRelese = FileInfoHelper.GetDataFileVersion(pathRelease);
            }

            if (itemLiberacaoRelease.Validate(pathTeste))
            {
                itemLiberacaoRelease.ReleaseAttriburesDiretorioTeste = FileInfoHelper.GetDataFileVersion(pathTeste);
            }

            if (!itemLiberacaoRelease.Notifications.Any())
            {
                itemLiberacaoRelease.SetStatusRelease();
            }

            return(itemLiberacaoRelease);
        }
예제 #3
0
        public OpenFolderRoot GetComputer()
        {
            OpenFolderRoot root = new OpenFolderRoot();

            root.Name  = "Computer";
            root.Image = FileInfoHelper.GetComputerImage(false);

            List <OpenFolderItem> items = new List <OpenFolderItem>();

            DriveInfo[] drives = DriveInfo.GetDrives();
            foreach (var drive in drives)
            {
                if (drive.DriveType == DriveType.Network || drive.DriveType == DriveType.Unknown)
                {
                    continue;
                }
                if (drive.IsReady)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append(drive.DriveType);
                    sb.Append(" (");
                    sb.Append(drive.Name, 0, drive.Name.Length - 1);
                    sb.Append(") ");
                    sb.Append(drive.VolumeLabel);

                    OpenFolderItem item = new OpenFolderItem(drive.Name);
                    item.Name  = sb.ToString();
                    item.Image = FileInfoHelper.GetSmallImage(item.Path, false);
                    items.Add(item);
                }
            }

            root.Children = items;

            return(root);
        }
예제 #4
0
        public UnixMultiProcessFileAppender(string fileName, ICreateFileParameters parameters) : base(fileName, parameters)
        {
            UnixFileInfo fileInfo   = null;
            bool         fileExists = false;

            try
            {
                fileInfo   = new UnixFileInfo(fileName);
                fileExists = fileInfo.Exists;
            }
            catch
            {
            }

            int fd = Syscall.open(fileName, OpenFlags.O_CREAT | OpenFlags.O_WRONLY | OpenFlags.O_APPEND, (FilePermissions)(6 | (6 << 3) | (6 << 6)));

            if (fd == -1)
            {
                if (Stdlib.GetLastError() == Errno.ENOENT && parameters.CreateDirs)
                {
                    string dirName = Path.GetDirectoryName(fileName);
                    if (!Directory.Exists(dirName) && parameters.CreateDirs)
                    {
                        Directory.CreateDirectory(dirName);
                    }

                    fd = Syscall.open(fileName, OpenFlags.O_CREAT | OpenFlags.O_WRONLY | OpenFlags.O_APPEND, (FilePermissions)(6 | (6 << 3) | (6 << 6)));
                }
            }
            if (fd == -1)
            {
                UnixMarshal.ThrowExceptionForLastError();
            }

            try
            {
                _file = new UnixStream(fd, true);

                long filePosition = _file.Position;
                if (fileExists || filePosition > 0)
                {
                    if (fileInfo != null)
                    {
                        CreationTimeUtc = FileInfoHelper.LookupValidFileCreationTimeUtc(fileInfo, (f) => File.GetCreationTimeUtc(f.FullName), (f) => { f.Refresh(); return(f.LastStatusChangeTimeUtc); }, (f) => DateTime.UtcNow).Value;
                    }
                    else
                    {
                        CreationTimeUtc = FileInfoHelper.LookupValidFileCreationTimeUtc(fileName, (f) => File.GetCreationTimeUtc(f), (f) => DateTime.UtcNow).Value;
                    }
                }
                else
                {
                    // We actually created the file and eventually concurrent processes
                    CreationTimeUtc = DateTime.UtcNow;
                    File.SetCreationTimeUtc(FileName, CreationTimeUtc);
                }
            }
            catch
            {
                Syscall.close(fd);
                throw;
            }
        }
예제 #5
0
        public ActionResult PostJoke(string joketitle, string jokecontent, int joketype, int jokecategory, HttpPostedFileBase jokeImgFile)
        {
            string content = "";

            if (joketype == 0)
            {
                content = jokecontent;
            }
            else if (joketype == 1)
            {
                //FileInfoHelper.GetFileName(jokeImgFile.FileName);
                //FileInfoHelper.GetFileExtend(jokeImgFile.FileName);
                string newName = FileInfoHelper.GetNewName(jokeImgFile.FileName);
                if (Request.IsLocal)
                {
                    newName = string.Format("local_{0}", newName);
                }
                else
                {
                    newName = string.Format("online_{0}", newName);
                }
                string uploadFolder = string.Format("{3}\\{0}\\{1}\\{2}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, JokeImgUpload);
                if (!Directory.Exists(uploadFolder))
                {
                    Directory.CreateDirectory(uploadFolder);
                }
                //
                jokeImgFile.SaveAs(uploadFolder + "\\" + newName);
                Thread.Sleep(1);
                string fileName = jokeImgFile.FileName;
                content = string.Format("{0}\\{1}\\{2}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day) + "\\" + newName;
                if (AppConfig.IsQiniuUpload > 0)
                {
                    bool updateResult = QiniuUpload.PutFile(newName, uploadFolder + "\\" + newName);
                }
            }

            T_Joke jokeinfo = new T_Joke()
            {
                AddDate      = DateTime.Now,
                Category     = jokecategory,
                CheckDate    = DateTime.Parse("1900-01-01"),
                CheckUserId  = 0,
                CommentCount = 0,
                Content      = content,
                HateCount    = 0,
                LikeCount    = 0,
                PostID       = user.UserId,
                State        = 0,
                Title        = joketitle,
                Type         = joketype
            };

            if (user.IsAdmin > 0)
            {
                jokeinfo.State       = 1;
                jokeinfo.CheckDate   = DateTime.Now;
                jokeinfo.CheckUserId = user.UserId;
            }
            int            jokeId     = jokeBusinessLogic.AddJoke(jokeinfo);
            PostJokeResult postResult = new PostJokeResult()
            {
                Success = jokeId > 0?true:false,
                Message = jokeId > 0?"发表成功":"发表失败"
            };

            TempData["PostResult"] = postResult;



            return(RedirectToAction("PostJokeResult"));
        }
예제 #6
0
        private void UpdateFolder()
        {
            List <FileItem> folder = new List <FileItem>();

            try
            {
                if (_SelectedFolder == null)
                {
                    return;
                }

                string path = _SelectedFolder.Path ?? string.Empty;
                if (!string.IsNullOrEmpty(path))
                {
                    if (IsDirectoryChooser)
                    {
                        string[] directories = Directory.GetDirectories(path);

                        foreach (string directory in directories)
                        {
                            DirectoryInfo di = new DirectoryInfo(directory);

                            FileItem item = new FileItem();
                            item.Path  = directory;
                            item.Name  = Path.GetFileName(directory);
                            item.Date  = di.LastWriteTime.ToString(DateFormat, CultureInfo.InvariantCulture);
                            item.Image = FileInfoHelper.GetSmallImage(directory, true);
                            folder.Add(item);
                        }
                    }
                    else
                    {
                        string[] files = Directory.GetFiles(path);

                        foreach (string file in files)
                        {
                            if (!string.IsNullOrEmpty(SelectedFileFilterExtension))
                            {
                                if (Path.GetExtension(file) != SelectedFileFilterExtension)
                                {
                                    continue;
                                }
                            }

                            FileInfo fi = new FileInfo(file);

                            FileItem item = new FileItem();
                            item.Path  = file;
                            item.Name  = Path.GetFileName(file);
                            item.Date  = fi.LastWriteTime.ToString(DateFormat, CultureInfo.InvariantCulture);
                            item.Size  = string.Format("{0}", fi.Length / 1024);
                            item.Type  = FileInfoHelper.GetFileType(file);
                            item.Image = FileInfoHelper.GetSmallImage(file, true);
                            folder.Add(item);
                        }
                    }
                }
            }
            catch (UnauthorizedAccessException)
            {
            }

            Folder = new ReadOnlyCollection <FileItem>(folder);
        }
예제 #7
0
 public static string GetShareImg(JokePostInfo jokeinfo)
 {
     if (AppConfig.IsQiniuUpload > 0)
     {
         return(string.Format("{0}/{1}", QiniuUpload.QiniuCloudUrl, jokeinfo.JokeType == 1 ? FileInfoHelper.GetFileName(jokeinfo.Content) : "shareimg.png"));
     }
     else
     {
         return(string.Format("{0}", jokeinfo.JokeType == 1 ? string.Format("{0}//{1}", AppConfig.JokeImgUpload, jokeinfo.Content) : "/imgs/shareimg.png"));
     }
 }