webdav portal Dependency resolver added

This commit is contained in:
vfedosevich 2015-01-10 00:49:29 -08:00
parent 6e6b2abd8a
commit 2244ce5add
16 changed files with 210 additions and 35 deletions

View file

@ -22,26 +22,30 @@ namespace WebsitePanel.WebDavPortal.Controllers
[LdapAuthorization]
public class FileSystemController : Controller
{
private readonly IKernel _kernel = new StandardKernel(new WebDavExplorerAppModule());
private readonly IWebDavManager _webdavManager;
public FileSystemController(IWebDavManager webdavManager)
{
_webdavManager = webdavManager;
}
[HttpGet]
public ActionResult ShowContent(string org, string pathPart = "")
{
var webDavManager = new StandardKernel(new WebDavExplorerAppModule()).Get<IWebDavManager>();
if (org != webDavManager.OrganizationName)
if (org != _webdavManager.OrganizationName)
return new HttpStatusCodeResult(HttpStatusCode.NoContent);
string fileName = pathPart.Split('/').Last();
if (webDavManager.IsFile(fileName))
if (_webdavManager.IsFile(fileName))
{
var fileBytes = webDavManager.GetFileBytes(fileName);
var fileBytes = _webdavManager.GetFileBytes(fileName);
return File(fileBytes, MediaTypeNames.Application.Octet, fileName);
}
try
{
webDavManager.OpenFolder(pathPart);
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/')));
_webdavManager.OpenFolder(pathPart);
IEnumerable<IHierarchyItem> children = _webdavManager.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/')));
var model = new ModelForWebDav { Items = children.Take(WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount), UrlSuffix = pathPart };
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount;
@ -56,8 +60,7 @@ namespace WebsitePanel.WebDavPortal.Controllers
public ActionResult ShowOfficeDocument(string org, string pathPart = "")
{
var webDavManager = _kernel.Get<IWebDavManager>();
string fileUrl = webDavManager.RootPath.TrimEnd('/') + "/" + pathPart.TrimStart('/');
string fileUrl = _webdavManager.RootPath.TrimEnd('/') + "/" + pathPart.TrimStart('/');
var uri = new Uri(WebDavAppConfigManager.Instance.OfficeOnline.Url).AddParameter("src", fileUrl).ToString();
return View(new OfficeOnlineModel(uri, new Uri(fileUrl).Segments.Last()));
@ -69,9 +72,11 @@ namespace WebsitePanel.WebDavPortal.Controllers
if (Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] != null)
{
var renderedElementsCount = (int)Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount];
var webDavManager = _kernel.Get<IWebDavManager>();
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren();
IEnumerable<IHierarchyItem> children = _webdavManager.GetChildren();
var result = children.Skip(renderedElementsCount).Take(WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount);
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = renderedElementsCount + WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount;
return PartialView("_ResourseCollectionPartial", result);