示例#1
0
        /// <summary>
        /// Cand lista de fisiere este updatata, fisierele sunt luate in functie de
        /// propietatile selectate de utilizator si de valoarea boolean-ului filtered.
        /// Daca path-ul obtinut din baza de date nu mai este prezent pe calculator,
        /// atunci fisierul respectiv isi va avea informatiile redate cu rosu.
        /// </summary>
        /// <param name="filtered">Daca este true, atunci cautarea va fi filtrata.</param>
        private void UpdateFileList(bool filtered = false)
        {
            fileView.Items.Clear();
            List <int> propertiesToSearchFor = new List <int>();
            var        propertyIndices       = propertyView.CheckedIndices.Cast <int>();

            if (filtered)
            {
                foreach (int property in propertyIndices)
                {
                    propertiesToSearchFor.Add(Properties[property].Id);
                }
            }
            Files = FileAPI.FileSearch(propertiesToSearchFor);
            foreach (var file in Files)
            {
                var listItem = new ListViewItem(new string[] { file.Id.ToString(), file.Name, file.Description, file.Path,
                                                               file.Size.ToString(), file.CreationDate.ToString(), file.ToDelete.ToString() });
                if (!System.IO.File.Exists(file.Path))
                {
                    listItem.ForeColor = Color.Red;
                }
                fileView.Items.Add(listItem);
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            Interpreter.Init(registers: 32);

            var mini = Interpreter.Instance;

            StandardAPI.output = Console.WriteLine; // change output method
            StandardAPI.input  = Console.ReadLine;  // change input method

            Bootloader.CreateReference();
            FileAPI.CreateReference();
            StandardAPI.Load(mini);

            while (mini.Ready)
            {
                if (mini.IsLabelDefinition)
                {
                    Console.Write(">> ");
                }
                else
                {
                    Console.Write("\n> ");
                }

                mini.Run(Console.ReadLine());
                mini.ResetLineNum();
            }

            Console.WriteLine("bye");
        }
示例#3
0
        /// <summary>
        /// Cand utilizatorul apasa pe un fisier din lista, atunci propietatile
        /// sale vor fi selectate in lista de propietati.
        /// Acest lucru e realizat folosind API-ul de obtinere a propietatilor
        /// pentru un fisier dat.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fileView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (fileView.SelectedItems.Count == 0)
            {
                return;
            }

            foreach (ListViewItem property in propertyView.Items)
            {
                property.Checked = false;
            }

            int fileIndex  = Files[fileView.Items.IndexOf(fileView.SelectedItems[0])].Id;
            var properties = FileAPI.GetFileProperties(fileIndex);

            int index = 0;

            foreach (ListViewItem property in propertyView.Items)
            {
                if (properties.Where(x => x.Id == Properties[index].Id).Count() != 0)
                {
                    property.Checked = true;
                }
                index++;
            }
        }
示例#4
0
        private void Download_Click(object sender, RoutedEventArgs e)
        {
            if (currentBtn == null)
            {
                return;
            }
            String dir = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PacChat/Downloads");

            Directory.CreateDirectory(dir);
            String savePath = System.IO.Path.Combine(dir, currentBtn.FileName);

            //if (!MainWindow.Instance.DownloadWindow.Visible)
            //{
            //    MainWindow.Instance.DownloadWindow.ShowPopUp();
            //}
            var downloadWindow = DownloadWindow.Instance;

            if (downloadWindow.IsDownloading(currentBtn.FileID))
            {
                return;
            }

            DownloadProgressNoti noti = new DownloadProgressNoti();

            noti.FileLocation = FileAPI.RepairSavePath(savePath);
            noti.SetFileName(System.IO.Path.GetFileName(noti.FileLocation));
            noti.FileID = currentBtn.FileID;

            downloadWindow.DownloadList.Children.Insert(0, noti);
            MainWindow.chatApplication.model.DownloadProgresses.Add(noti);

            FileAPI.DownloadMedia(currentBtn.StreamURL, savePath,
                                  noti.SetProgress, noti.FinalizeDownload, null);
        }
示例#5
0
        /// <summary>
        /// Cand butonul de adaugare fisier e apasat, se va verifica daca text boxurile
        /// relevante sunt goale. Daca nu sunt, atunci fisierul va fi adaugat in baza de date
        /// folosind API-ul corespunzator, text box-urile vor fi golite iar lista de fisiere
        /// updatata.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addFileButton_Click(object sender, EventArgs e)
        {
            if (FileToAdd == null || nameBox.Text == null || nameBox.Text.Length == 0 ||
                fileDescriptionBox.Text == null || fileDescriptionBox.Text.Length == 0)
            {
                return;
            }
            FileToAdd.Name        = nameBox.Text;
            FileToAdd.Description = fileDescriptionBox.Text;

            List <int> propertiesToAdd = new List <int>();
            var        propertyIndices = propertyView.CheckedIndices.Cast <int>();

            foreach (int property in propertyIndices)
            {
                propertiesToAdd.Add(Properties[property].Id);
            }

            FileAPI.AddFile(FileToAdd, propertiesToAdd);
            propertyView.SelectedItems.Clear();
            filePathBox.Text        = "";
            nameBox.Text            = "";
            fileDescriptionBox.Text = "";
            UpdateFileList();
        }
示例#6
0
        /// <summary>
        /// Cand butonul de modificare fisier e apasat, se verifica cate fisiere au fost selectate.
        /// Daca este unul singur, atunci fisierul va fi modificat in functie de textul din
        /// path, nume si descriere fisier + propietatile selectate.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void changeButton_Click(object sender, EventArgs e)
        {
            var fileIndices = fileView.CheckedIndices.Cast <int>();

            if (fileIndices.Count() != 1)
            {
                return;
            }

            List <int> propertiesToChange = new List <int>();
            var        propertyIndices    = propertyView.CheckedIndices.Cast <int>();

            foreach (int property in propertyIndices)
            {
                propertiesToChange.Add(Properties[property].Id);
            }

            var file = new ModelAndAPI.File()
            {
                Id          = Files[fileIndices.ElementAt(0)].Id,
                Name        = nameBox.Text,
                Description = fileDescriptionBox.Text,
                Path        = filePathBox.Text
            };

            FileAPI.ModifyFile(file, propertiesToChange);

            nameBox.Text            = "";
            fileDescriptionBox.Text = "";
            filePathBox.Text        = "";
            UpdateFileList();
        }
示例#7
0
        // GET: api/Files/5
        public List <FileModel> Get(string id)
        {
            var service = AuthenticationHelper.GetDriveService();

            var gdriveFiles = FileAPI.GetFilesInFolder(service, id);

            return(FileHelper.GetFiles(_dbManager, gdriveFiles));
        }
示例#8
0
        /// <summary>
        /// Cand butonul de delete e apasat, toate fisierele selectate isi vor avea
        /// id-ul pus intr-o lista ce va fi trimis catre API.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void deleteButton_Click(object sender, EventArgs e)
        {
            List <int> filesToMark = new List <int>();
            var        fileIndices = fileView.CheckedIndices.Cast <int>();

            foreach (int file in fileIndices)
            {
                filesToMark.Add(Files[file].Id);
            }
            FileAPI.MarkForDeletion(filesToMark);
            UpdateFileList();
        }
示例#9
0
        public void UploadVideo()
        {
            OpenFileDialog op = new OpenFileDialog();

            op.Title  = "Select a video";
            op.Filter = "MPEG4 (*.mp4)|*.mp4";

            FakeLoadingBubble bubble = new FakeLoadingBubble();

            if (op.ShowDialog() == true)
            {
                List <string> paths = op.FileNames.ToList();
                var           app   = MainWindow.chatApplication;
                FileAPI.UploadMedia(app.model.currentSelectedConversation,
                                    paths, bubble.OnVideoUploadCompleted, OnVideoUploadError);
                AddFakeLoadingBubble(bubble);
            }
        }
示例#10
0
        public void UploadImage()
        {
            OpenFileDialog op = new OpenFileDialog();

            op.Title  = "Select a picture";
            op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png;*.mp4|" +
                        "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
                        "Portable Network Graphic (*.png)|*.png|" +
                        "MPEG4 (*.mp4)|*.mp4";

            FakeLoadingBubble bubble = new FakeLoadingBubble();

            if (op.ShowDialog() == true)
            {
                List <string> paths = op.FileNames.ToList();
                var           app   = MainWindow.chatApplication;
                FileAPI.UploadMedia(app.model.currentSelectedConversation,
                                    paths, bubble.OnImageUploadCompleted, OnImageUploadError);
                AddFakeLoadingBubble(bubble);
            }
        }
示例#11
0
    void Start()
    {
        StandardAPI.output   = Debug.Log;
        StandardAPI.input    = null;
        Interpreter.debugOut = Debug.Log;
        Interpreter.errorOut = Debug.LogError;
        Interpreter.Init(32);

        mini = Interpreter.Instance;

        Bootloader.CreateReference();
        FileAPI.CreateReference();
        StandardAPI.Load(mini);

        game.AddAll(mini);
        go.Init(mini, transform, prefabs);
        go.AddAll();

        for (int i = 0; i < transform.childCount; i++)
        {
            go.AddTranform(transform.GetChild(i));
        }
    }
        public MainViewModel()
        {
            if (IsolatedStorageSettings.ApplicationSettings.Contains("user") == false)
            {
            }
            else
            {
                _informerManagerLocator           = new InformerManagerLocator();
                _internetConnectionManagerLocator = new InternetConnectionManagerLocator();
                _internetConnectionManagerLocator.InternetConnectionManager.ConnectionStateChanged += InternetConnectionManager_ConnectionStateChanged;

                _folderApi = new FolderAPI(new Uri(AppResources.BaseAddress));
                _folderApi.ErrorReceived += _folderApi_ErrorReceived;

                _fileApi = new FileAPI(new Uri(AppResources.BaseAddress));
                _fileApi.ErrorReceived += _fileApi_ErrorReceived;

                _foldersIdTree = new List <int>();

                Entities      = new ObservableCollection <DiskEntity>();
                LocalEntities = new ObservableCollection <DiskEntity>();
                Permissions   = new ObservableCollection <Permission>();

                //transferRequests = new ObservableCollection<BackgroundTransferRequest>();
                transferRequests = new ObservableCollection <CustomBackgroundTransferRequest>();

                using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (!isoStore.DirectoryExists("/shared/transfers"))
                    {
                        isoStore.CreateDirectory("/shared/transfers");
                    }
                }

                InitDownload();
            }
        }
示例#13
0
        private void AttachmentLink_Click(object sender, RoutedEventArgs e)
        {
            var            app    = MainWindow.chatApplication;
            SaveFileDialog dialog = new SaveFileDialog();

            dialog.Title            = "Select a place to download";
            dialog.Filter           = "All file types|*.*";
            dialog.FileName         = textBlock.Text;
            dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            if (dialog.ShowDialog() == true)
            {
                //if (!MainWindow.Instance.DownloadWindow.Visible)
                //{
                //    MainWindow.Instance.DownloadWindow.ShowPopUp();
                //}
                String fileID         = AttachmentLink.Tag as String;
                var    downloadWindow = DownloadWindow.Instance;

                if (downloadWindow.IsDownloading(fileID))
                {
                    return;
                }

                DownloadProgressNoti noti = new DownloadProgressNoti();
                noti.SetFileName(System.IO.Path.GetFileName(dialog.FileName));
                noti.FileLocation = dialog.FileName;
                noti.FileID       = fileID;

                downloadWindow.DownloadList.Children.Insert(0, noti);
                MainWindow.chatApplication.model.DownloadProgresses.Add(noti);

                FileAPI.DownloadAttachment(app.model.currentSelectedConversation,
                                           noti.FileID, dialog.FileName,
                                           noti.SetProgress, noti.FinalizeDownload, OnDownloadFileError);
            }
        }
示例#14
0
        /// <summary>
        /// Se va alege din File Explorer un fisier .txt, si in el
        /// se vor salva informatii despre fisierele si propietatile
        /// lor din lista de fisierea filtrata.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void saveFileButton_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Text|*.txt|All|*.*";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filePath = openFileDialog.FileName;
                string toWrite  = "";

                foreach (var file in Files)
                {
                    toWrite += "Name: " + file.Name + " - Description: " + file.Description + " - Path: " + file.Path + " - Size: " + file.Size.ToString() +
                               " - Date: " + file.CreationDate.ToString() + " - To Delete: " + file.ToDelete.ToString() + "\n";
                    var properties = FileAPI.GetFileProperties(file.Id);
                    foreach (var property in properties)
                    {
                        toWrite += "\t" + property.Description + "\n";
                    }
                }

                System.IO.File.WriteAllText(filePath, toWrite);
            }
        }
示例#15
0
 /// <summary>
 /// Cand butonul de confirm delete e apasat, metoda corespunzatoare din API va fi apelata.
 /// De asemnea, se va updata lista de fisiere.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void confirmButton_Click(object sender, EventArgs e)
 {
     FileAPI.FinishDeletion(false);
     UpdateFileList(true);
 }
示例#16
0
 /// <summary>
 /// Cand butonul de cancel delete e apasat, metoda corespunzatoare din API va fi apelata.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cancelButton_Click(object sender, EventArgs e)
 {
     FileAPI.FinishDeletion(true);
     UpdateFileList();
 }
 /// <summary>
 /// Aceasta metoda marcheaza fisierele primite ca id pentru a fi sterse
 /// atunci cand butonul "Confirm Delete" este apasat de catre utilizator.
 /// </summary>
 /// <param name="fileIndices">Lista cu id-urile fisierelor ce vor fi marcate.</param>
 /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns>
 bool IFile.MarkForDeletion(List <int> fileIndices)
 {
     return(FileAPI.MarkForDeletion(fileIndices));
 }
 /// <summary>
 /// Metoda aceasta permite obtinerea tuturor propietatilor unui fisier.
 /// </summary>
 /// <param name="fileIndex">Id-ul fisierului.</param>
 /// <returns>Lista cu propietati pe care le are fisierul primit.</returns>
 List <Property> IFile.GetFileProperties(int fileIndex)
 {
     return(FileAPI.GetFileProperties(fileIndex));
 }
 /// <summary>
 /// In functie de boolean-ul primit, aceasta metoda apeleaza
 /// metoda de stergere sau de anulare a stergerii fisierelor marcate.
 /// </summary>
 /// <param name="cancel">Flag-ul de stergere.</param>
 /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns>
 bool IFile.FinishDeletion(bool cancel)
 {
     return(FileAPI.FinishDeletion(cancel));
 }
 /// <summary>
 /// Aceasta metoda permite cautarea fisierelor ce contin anumite propietati
 /// primite in forma de lista de id-uri.
 /// </summary>
 /// <param name="propertyIndices">Lista cu id-urile propietatilor.</param>
 /// <returns>Lista cu obiecte de tip fisier dupa filtrare.</returns>
 List <File> IFile.FileSearch(List <int> propertyIndices)
 {
     return(FileAPI.FileSearch(propertyIndices));
 }
 /// <summary>
 /// Aceasta metoda adauga un fisier primit in baza de date.
 /// De asemenea, creeaza legaturi cu propietatile primite ca id-uri.
 /// </summary>
 /// <param name="file">Obiectul de tip fisier.</param>
 /// <param name="propertyIndices">O lista cu id-urile propietatilor pentru fisier.</param>
 /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns>
 bool IFile.AddFile(File file, List <int> propertyIndices)
 {
     return(FileAPI.AddFile(file, propertyIndices));
 }