Example #1
0
        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);
        }
Example #2
0
        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);
            }));
        }
Example #3
0
        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);
        }
Example #5
0
        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;
            }
        }
Example #6
0
        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 { }
        }