/// <summary> /// Construct a new <see cref="DirectoryItemViewModel"/> using a <see cref="Models.DirectoryItem"/> object. /// </summary> /// <param name="item"></param> public ItemViewModel(Models.DirectoryItem item) { this.FullPath = item.FullPath; this.Name = item.Name; this.Directory = item.Directory; this.Extension = item.Extension; this.NewName = string.Empty; }
public List<WaldenCompleteFaxWeb.Models.DirectoryItem> GetDirectoryListing(string directory) { WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent()); Walden.CompleteFax.Library.Database.Log(wp.Identity.Name); // Obtain the authenticated user's Identity WindowsIdentity winId = (WindowsIdentity)HttpContext.Current.User.Identity; WindowsImpersonationContext ctx = null; //try //{ // // Start impersonating // ctx = winId.Impersonate(); // // Now impersonating // // Access resources using the identity of the authenticated user //} // Prevent exceptions from propagating //catch //{ //} //finally //{ // // Revert impersonation // if (ctx != null) // ctx.Undo(); //} // Back to running under the default ASP.NET process identity double id = 1; List<WaldenCompleteFaxWeb.Models.DirectoryItem> directoryItemsList = new List<WaldenCompleteFaxWeb.Models.DirectoryItem>(); WaldenCompleteFaxWeb.Models.DirectoryItem directoryItems; try { ctx = winId.Impersonate(); DirectoryInfo directoryInfo = new DirectoryInfo(directory); var directories = directoryInfo.GetDirectories(); for (int i = 0; i < directories.Length; i++) { string value = directories[i].Name; directoryItems = new Models.DirectoryItem(); directoryItems.id = directories[i].FullName; directoryItems.Name = directories[i].Name; directoryItems.hasChildren = true; directoryItemsList.Add(directoryItems); id++; } DirectoryInfo directoryInfo2 = new DirectoryInfo(directory); var directories2 = directoryInfo.GetFiles(); for (int i = 0; i < directories2.Length; i++) { directoryItems = new Models.DirectoryItem(); directoryItems.id = directories2[i].FullName; directoryItems.Name = directories2[i].Name; directoryItems.hasChildren = false; directoryItemsList.Add(directoryItems); id++; } return directoryItemsList; } catch (Exception er) { Walden.CompleteFax.Library.Database.Log(er.Message); return directoryItemsList; } finally { // Revert impersonation if (ctx != null) ctx.Undo(); } }