Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ChangeScript" /> class.
 /// </summary>
 /// <param name="fileInfo">The embbeded file.</param>
 /// <param name="scriptNumber">The script number.</param>
 /// <param name="encoding">The encoding.</param>
 public ChangeScript(EmbeddedFileInfo fileInfo, int scriptNumber, Encoding encoding)
     : base(fileInfo.Folder, scriptNumber)
 {
     this.EmbeddedFileInfo = fileInfo;
     this.ScriptName       = fileInfo.FileName;
     this.encoding         = encoding;
 }
        public void GetFileInfo_ReturnsFileInfo_ForEmbeddedFile()
        {
            using (var provider = new InMemoryFileProvider())
            {
                var embeddedFileInfo = new EmbeddedFileInfo(GetAssemblyFromType(this.GetType()),
                                                            $"Dazinator.AspNet.Extensions.FileProviders.Tests.Resources.myresource.txt",
                                                            "myfile.txt");

                provider.Directory.AddFile("/some/folder", embeddedFileInfo);

                var info = provider.GetFileInfo("/some/folder/myfile.txt");
                using (var stream = info.CreateReadStream())
                {
                    Assert.NotNull(stream);
                    Assert.True(stream.Length > 0);
                }
            }
        }
Example #3
0
        private IEnumerable <ChangeScript> GetChangeScriptsFromAssembly(Assembly assembly)
        {
            try
            {
                this.infoTextWriter.WriteLine("Reading change scripts from assembly '" + assembly.FullName + "'...");
            }
            catch (IOException)
            {
                // ignore
            }

            var scripts = new List <ChangeScript>();

            var resourceScripts = assembly.GetManifestResourceNames().Where(resourceName => resourceName.EndsWith(".sql"));

            if (resourceNameFilter != null)
            {
                resourceScripts = resourceScripts.Where(resourceName => resourceNameFilter.Invoke(resourceName));
            }

            foreach (var resourceScript in resourceScripts)
            {
                string folder   = ExtractFolderNameWithUnderlines(resourceScript);
                string fileName = ExtractFileName(resourceScript, folder);

                try
                {
                    folder = folder.Replace("._", ".");
                    int scriptNumber = filenameParser.ExtractScriptNumberFromFilename(fileName);

                    var embeddedFileInfo = new EmbeddedFileInfo
                    {
                        Assembly = assembly, FileName = fileName, Folder = folder, ResourceName = resourceScript
                    };
                    scripts.Add(new ChangeScript(embeddedFileInfo, scriptNumber, encoding));
                }
                catch (UnrecognisedFilenameException)
                {
                    // ignore
                }
            }

            return(scripts);
        }
Example #4
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EmbeddedFileInfo obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }