public static async Task <List <int> > OpenFilesAndCreateNewTabsFiles(int IDList, StorageListTypes type) { var list_ids = new List <int>(); switch (type) { case StorageListTypes.LocalStorage: var opener = new FileOpenPicker(); opener.ViewMode = PickerViewMode.Thumbnail; opener.SuggestedStartLocation = PickerLocationId.ComputerFolder; opener.FileTypeFilter.Add("*"); IReadOnlyList <StorageFile> files = await opener.PickMultipleFilesAsync(); foreach (StorageFile file in files) { await Task.Run(() => { if (file != null) { StorageApplicationPermissions.FutureAccessList.Add(file); BasicProperties properties = Task.Run(async() => { return(await file.GetBasicPropertiesAsync()); }).Result; var tab = new InfosTab { TabName = file.Name, TabStorageMode = type, TabContentType = ContentType.File, CanBeDeleted = true, CanBeModified = true, TabOriginalPathContent = file.Path, TabInvisibleByDefault = false, TabType = LanguagesHelper.GetLanguageType(file.Name), TabDateModified = properties.DateModified.ToString() }; int id_tab = Task.Run(async() => { return(await TabsWriteManager.CreateTabAsync(tab, IDList, false)); }).Result; if (Task.Run(async() => { return(await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id_tab, ID_TabsList = IDList }), IDList).ReadFile(true)); }).Result) { Messenger.Default.Send(new STSNotification { Type = TypeUpdateTab.NewTab, ID = new TabID { ID_Tab = id_tab, ID_TabsList = IDList } }); } list_ids.Add(id_tab); } }); } break; case StorageListTypes.OneDrive: var currentAV = ApplicationView.GetForCurrentView(); var newAV = CoreApplication.CreateNewView(); await newAV.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async() => { var newWindow = Window.Current; var newAppView = ApplicationView.GetForCurrentView(); newAppView.Title = "OneDrive explorer"; var frame = new Frame(); frame.Navigate(typeof(OnedriveExplorer), new Tuple <OnedriveExplorerMode, TabID>(OnedriveExplorerMode.SelectFile, new TabID { ID_TabsList = IDList })); newWindow.Content = frame; newWindow.Activate(); await ApplicationViewSwitcher.TryShowAsStandaloneAsync( newAppView.Id, ViewSizePreference.UseHalf, currentAV.Id, ViewSizePreference.UseHalf); }); break; } return(list_ids); }
private async static Task <int> OpenSubFolder(StorageFolder Folder, int IDList, StorageListTypes type) { return(await Task.Run(async() => { var FolderItemIDs = new List <int>(); foreach (IStorageItem Item in await Folder.GetItemsAsync()) { StorageApplicationPermissions.FutureAccessList.Add(Item); if (Item.IsOfType(StorageItemTypes.File)) { StorageFile file = (StorageFile)Item; if (file.ContentType.Contains("text") || LanguagesHelper.IsFileLanguageIsCompatible(file.Name)) { var tab = new InfosTab { TabName = file.Name, TabStorageMode = type, TabContentType = ContentType.File, CanBeDeleted = true, CanBeModified = true, TabOriginalPathContent = file.Path, TabInvisibleByDefault = true, TabType = LanguagesHelper.GetLanguageType(file.Name) }; int id_tab = await TabsWriteManager.CreateTabAsync(tab, IDList, false); await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id_tab, ID_TabsList = IDList }), IDList).ReadFile(true); FolderItemIDs.Add(id_tab); } } else { FolderItemIDs.Add(await OpenSubFolder((StorageFolder)Item, IDList, type)); } } return await TabsWriteManager.CreateTabAsync(new InfosTab { TabName = Folder.Name, TabOriginalPathContent = Folder.Path, TabContentType = ContentType.Folder, FolderContent = FolderItemIDs, FolderOpened = false, TabInvisibleByDefault = true }, IDList, false); })); }
public static async Task <List <int> > OpenFolder(int IDList, StorageListTypes type) { var list_ids = new List <int>(); var opener = new FolderPicker(); opener.ViewMode = PickerViewMode.Thumbnail; opener.SuggestedStartLocation = PickerLocationId.ComputerFolder; opener.FileTypeFilter.Add("*"); var Folder = await opener.PickSingleFolderAsync(); if (Folder != null) { StorageApplicationPermissions.FutureAccessList.Add(Folder); foreach (IStorageItem Item in await Folder.GetItemsAsync()) { await Task.Run(async() => { if (Item.IsOfType(StorageItemTypes.File)) { StorageFile file = (StorageFile)Item; if (file != null) { StorageApplicationPermissions.FutureAccessList.Add(file); if (file.ContentType.Contains("text") || LanguagesHelper.IsFileLanguageIsCompatible(file.Name)) { var tab = new InfosTab { TabName = file.Name, TabStorageMode = type, TabContentType = ContentType.File, CanBeDeleted = true, CanBeModified = true, TabOriginalPathContent = file.Path, TabInvisibleByDefault = true, TabType = LanguagesHelper.GetLanguageType(file.Name) }; int id_tab = Task.Run(async() => { return(await TabsWriteManager.CreateTabAsync(tab, IDList, false)); }).Result; if (Task.Run(async() => { return(await new StorageRouter(TabsAccessManager.GetTabViaID(new TabID { ID_Tab = id_tab, ID_TabsList = IDList }), IDList).ReadFile(true)); }).Result) { Messenger.Default.Send(new STSNotification { Type = TypeUpdateTab.NewTab, ID = new TabID { ID_Tab = id_tab, ID_TabsList = IDList } }); } list_ids.Add(id_tab); } } } else { StorageFolder FolderItem = (StorageFolder)Item; list_ids.Add(await OpenSubFolder(FolderItem, IDList, type)); } }); } await TabsWriteManager.CreateTabAsync(new InfosTab { TabName = Folder.Name, TabOriginalPathContent = Folder.Path, TabContentType = ContentType.Folder, FolderContent = list_ids, FolderOpened = true }, IDList, true); } return(list_ids); }
public JsonResult Action(LanguageActionViewModel model) { JsonResult json = new JsonResult(); try { if (model.ID > 0) { var language = LanguagesService.Instance.GetLanguageByID(model.ID); if (language == null) { throw new Exception("Dashboard.Languages.Action.Validation.LanguageNotFound".LocalizedString()); } language.ID = model.ID; language.Name = model.Name; language.ShortCode = model.ShortCode; language.IsEnabled = model.IsEnabled; if (language.IsDefault && !model.IsDefault) { throw new Exception("Dashboard.Languages.Action.Validation.DefaultLanguageIsMust".LocalizedString()); } var makeDefault = false; if (model.IsDefault) { if (!language.IsDefault) { language.IsDefault = true; makeDefault = true; } } else { language.IsDefault = false; } language.IsRTL = model.IsRTL; language.IconCode = model.IconCode; if (!LanguagesService.Instance.UpdateLanguage(language, makeDefault)) { throw new Exception("Dashboard.Languages.Action.Validation.UnableToUpdateLanguage".LocalizedString()); } } else { var language = new Language { Name = model.Name, ShortCode = model.ShortCode, IsEnabled = model.IsEnabled, IsDefault = model.IsDefault, IsRTL = model.IsRTL, IconCode = model.IconCode }; var makeDefault = false; if (model.IsDefault) { language.IsDefault = true; makeDefault = true; } else { language.IsDefault = false; } if (!LanguagesService.Instance.AddLanguage(language, makeDefault)) { throw new Exception("Dashboard.Languages.Action.Validation.UnableToCreateLanguage".LocalizedString()); } } var enabledLanguages = LanguagesService.Instance.GetLanguages(enabledLanguagesOnly: true); LanguagesHelper.LoadLanguages(enabledLanguages: enabledLanguages, defaultLanguage: enabledLanguages.FirstOrDefault(x => x.IsDefault)); json.Data = new { Success = true }; } catch (Exception ex) { json.Data = new { Success = false, Message = ex.Message }; } return(json); }
private async void More_Tab_Click(object sender, RoutedEventArgs e) { if (infos_opened) { RemoveInfos.Begin(); infos_opened = false; if (current_tab.TabContentType == ContentType.Folder) { current_tab.FolderOpened = false; await TabsWriteManager.PushUpdateTabAsync(current_tab, current_list, false); } } else { enable_selection = false; switch (current_tab.TabContentType) { case ContentType.File: try { list_types.SelectedItem = LanguagesHelper.GetLanguageNameViaType(current_tab.TabType); switch (current_tab.TabStorageMode) { case StorageListTypes.LocalStorage: StorageFile file = await StorageFile.GetFileFromPathAsync(current_tab.TabOriginalPathContent); BasicProperties properties = await file.GetBasicPropertiesAsync(); if (properties.Size != 0) { if (properties.Size > 1024f) //Ko { size_file.Text = string.Format("{0:0.00}", (properties.Size / 1024f)) + " Ko"; if ((properties.Size / 1024f) > 1024f) //Mo { size_file.Text = string.Format("{0:0.00}", ((properties.Size / 1024f) / 1024f)) + " Mo"; } } else //Octect { size_file.Text = properties.Size + " Octect(s)"; } } modified_file.Text = properties.DateModified.ToString(); created_file.Text = file.DateCreated.ToString(); break; case StorageListTypes.OneDrive: if (await OneDriveAuthHelper.OneDriveAuthentification()) { var Item = await TabsDataCache.OneDriveClient.Drive.Items[current_tab.TabOriginalPathContent].Request().GetAsync(); if (Item.Size != 0) { if (Item.Size > 1024f) //Ko { size_file.Text = string.Format("{0:0.00}", (Item.Size / 1024f)) + " Ko"; if ((Item.Size / 1024f) > 1024f) //Mo { size_file.Text = string.Format("{0:0.00}", ((Item.Size / 1024f) / 1024f)) + " Mo"; } } else //Octect { size_file.Text = Item.Size + " Octect(s)"; } } modified_file.Text = Item.LastModifiedDateTime.ToString(); created_file.Text = Item.CreatedDateTime.ToString(); //path_tab.Text = System.Net.WebUtility.HtmlDecode(Item.ParentReference.Path); } break; } } catch { } break; case ContentType.Folder: current_tab.FolderOpened = true; await TabsWriteManager.PushUpdateTabAsync(current_tab, current_list, false); break; } ShowInfos.Begin(); infos_opened = true; enable_selection = true; } }
private async void UpdateTabInformations() { //Set temp tab + tabs list ID try { current_tab = TabsAccessManager.GetTabViaID(new TabID { ID_Tab = current_tab.ID, ID_TabsList = current_list }); name_tab.Text = current_tab.TabName; //Tooltip name ToolTip ButtonTooltip = new ToolTip(); ButtonTooltip.Content = current_tab.TabName; ToolTipService.SetToolTip(IconAndTabNameGrid, ButtonTooltip); switch (current_tab.TabContentType) { case ContentType.File: string ModuleIDIcon = LanguagesHelper.GetModuleIDOfLangageType(current_tab.TabType); TabIcon.Source = await ModulesAccessManager.GetModuleIconViaIDAsync(ModuleIDIcon, ModulesAccessManager.GetModuleViaID(ModuleIDIcon).ModuleSystem); encoding_file.Text = Encoding.GetEncoding(current_tab.TabEncoding).EncodingName; if (!string.IsNullOrEmpty(current_tab.TabOriginalPathContent)) { switch (current_tab.TabStorageMode) { case StorageListTypes.LocalStorage: path_tab.Text = current_tab.TabOriginalPathContent; break; case StorageListTypes.OneDrive: path_tab.Text = "OneDrive file"; break; } Size_Stackpanel.Visibility = Visibility.Visible; Modified_Stackpanel.Visibility = Visibility.Visible; Created_Stackpanel.Visibility = Visibility.Visible; Rename_Tab.IsEnabled = false; } else { Size_Stackpanel.Visibility = Visibility.Collapsed; Modified_Stackpanel.Visibility = Visibility.Collapsed; Created_Stackpanel.Visibility = Visibility.Collapsed; Rename_Tab.IsEnabled = true; } Notification.ShowBadge = current_tab.TabNewModifications; TabsListGrid.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Visible; FolderIcon.Visibility = Visibility.Collapsed; StackInfos.Visibility = Visibility.Visible; MaxHeightAnimShow.Value = 200; MaxHeightAnimRemove.Value = 200; break; case ContentType.Folder: Notification.ShowBadge = false; Rename_Tab.IsEnabled = false; More_Tab.Visibility = Visibility.Visible; TabsListGrid.Visibility = Visibility.Visible; StackInfos.Visibility = Visibility.Collapsed; TabIcon.Visibility = Visibility.Collapsed; FolderIcon.Visibility = Visibility.Visible; if (TempTabID != current_tab.ID && TabsList.ListID != current_list) { if (current_tab.FolderOpened) { ShowInfos.Begin(); infos_opened = true; } else { infos_opened = false; } TabsList.ListTabs.Items.Clear(); TempTabID = current_tab.ID; TabsList.ListID = current_list; foreach (int ID in current_tab.FolderContent) { try { if (TabsAccessManager.GetTabViaID(new TabID { ID_Tab = ID, ID_TabsList = current_list }) != null) { TabsList.ListTabs.Items.Add(new TabID { ID_Tab = ID, ID_TabsList = current_list }); if ((int)AppSettings.Values["Tabs_tab-selected-index"] == ID && (int)AppSettings.Values["Tabs_list-selected-index"] == current_list) { TabsList.ListTabs.SelectedIndex = TabsList.ListTabs.Items.Count - 1; } } } catch { } } } MaxHeightAnimShow.Value = 1500; MaxHeightAnimRemove.Value = 1500; break; } } catch { } }