Check if masterpage file exists before populating it (could've been deleted from disk)

This commit is contained in:
Sebastiaan Janssen
2013-01-08 10:40:38 -01:00
parent 7e060d665b
commit 8935f5c678

View File

@@ -23,20 +23,20 @@ namespace Umbraco.Core.Persistence.Repositories
private IFileSystem _masterpagesFileSystem; private IFileSystem _masterpagesFileSystem;
private IFileSystem _viewsFileSystem; private IFileSystem _viewsFileSystem;
public TemplateRepository(IDatabaseUnitOfWork work) public TemplateRepository(IDatabaseUnitOfWork work)
: base(work) : base(work)
{ {
EnsureDepedencies(); EnsureDepedencies();
} }
public TemplateRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache) public TemplateRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache)
: base(work, cache) : base(work, cache)
{ {
EnsureDepedencies(); EnsureDepedencies();
} }
internal TemplateRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IFileSystem masterpageFileSystem, IFileSystem viewFileSystem) internal TemplateRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IFileSystem masterpageFileSystem, IFileSystem viewFileSystem)
: base(work, cache) : base(work, cache)
{ {
_masterpagesFileSystem = masterpageFileSystem; _masterpagesFileSystem = masterpageFileSystem;
_viewsFileSystem = viewFileSystem; _viewsFileSystem = viewFileSystem;
@@ -74,17 +74,20 @@ namespace Umbraco.Core.Persistence.Repositories
template.MasterTemplateId = dto.Master.Value; template.MasterTemplateId = dto.Master.Value;
} }
if(_viewsFileSystem.FileExists(csViewName)) if (_viewsFileSystem.FileExists(csViewName))
{ {
PopulateViewTemplate(template, csViewName); PopulateViewTemplate(template, csViewName);
} }
else if(_viewsFileSystem.FileExists(vbViewName)) else if (_viewsFileSystem.FileExists(vbViewName))
{ {
PopulateViewTemplate(template, vbViewName); PopulateViewTemplate(template, vbViewName);
} }
else else
{ {
PopulateMasterpageTemplate(template, masterpageName); if (_masterpagesFileSystem.FileExists(masterpageName))
{
PopulateMasterpageTemplate(template, masterpageName);
}
} }
return template; return template;
@@ -164,9 +167,9 @@ namespace Umbraco.Core.Persistence.Repositories
protected override void PersistNewItem(ITemplate entity) protected override void PersistNewItem(ITemplate entity)
{ {
using(var stream = new MemoryStream(Encoding.UTF8.GetBytes(entity.Content))) using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(entity.Content)))
{ {
if(entity.GetTypeOfRenderingEngine() == RenderingEngine.Mvc) if (entity.GetTypeOfRenderingEngine() == RenderingEngine.Mvc)
{ {
_viewsFileSystem.AddFile(entity.Name, stream, true); _viewsFileSystem.AddFile(entity.Name, stream, true);
} }
@@ -337,7 +340,7 @@ namespace Umbraco.Core.Persistence.Repositories
public IEnumerable<ITemplate> GetAll(params string[] aliases) public IEnumerable<ITemplate> GetAll(params string[] aliases)
{ {
if(aliases.Any()) if (aliases.Any())
{ {
foreach (var id in aliases) foreach (var id in aliases)
{ {
@@ -352,7 +355,7 @@ namespace Umbraco.Core.Persistence.Repositories
yield return Get(nodeDto.NodeId); yield return Get(nodeDto.NodeId);
} }
} }
} }
#endregion #endregion