コード例 #1
0
        public IActionResult Upload(IList <IFormFile> files)
        {
            foreach (var file in files)
            {
                ContentDispositionHeaderValue header = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
                string fileName = header.FileName;
                fileName = fileName.Trim('"');
                fileName = Path.GetFileName(fileName);

                MemoryStream ms = new MemoryStream();
                Stream       s  = file.OpenReadStream();
                s.CopyTo(ms);
                byte[] data = ms.ToArray();
                s.Dispose();
                ms.Dispose();
                string fileContent = System.Text.ASCIIEncoding.ASCII.GetString(data);

                FileFormatHandler  handler1 = new FileFormatHandler();
                FileStorageHandler handler2 = new FileStorageHandler();
                DataImportHandler  handler3 = new DataImportHandler();

                handler1.NextHandler = handler2;
                handler2.NextHandler = handler3;
                handler3.NextHandler = null;

                handler1.Process(fileName, fileContent);
            }
            ViewBag.Message = files.Count + " file(s) imported successfully!";
            return(View("Index"));
        }
コード例 #2
0
ファイル: FileMapComponent.cs プロジェクト: vaginessa/Code
        public List <FileComponent> Search(string keyword, FileFilter filter)
        {
            List <FileComponent> list     = new List <FileComponent>();
            List <string>        keywords = new List <string>();

            // Keywords
            if (keyword.StartsWith("\""))
            {
                int offset = keyword.EndsWith("\"") ? 2 : 1;
                keywords.Add(keyword.Substring(1, keyword.Length - offset));
            }
            else
            {
                keywords.AddRange(keyword.Split(' '));
            }

            // Filters
            FileFormatHandler handler = FileFormat.GetHandler(filter);

            // Files
            IEnumerator <string> it = keywords.GetEnumerator();

            while (it.MoveNext())
            {
                keyword = (string)it.Current;

                lock (Map)
                {
                    foreach (string id in Map.Keys)
                    {
                        FileComponent file = Get(id);

                        if (handler(file.Extension))
                        {
                            string filename = file.Name.ToLower();
                            if (filename.Contains(keyword))
                            {
                                list.Add(file);
                            }
                        }
                    }
                }
            }

            return(list);
        }
コード例 #3
0
ファイル: ClientData.cs プロジェクト: vaginessa/Code
        public Dictionary <string, FileData> SearchFiles(string keyword, FileFilter filter)
        {
            Dictionary <string, FileData> files = new Dictionary <string, FileData>();
            List <string> items = new List <string>();

            // Keywords
            if (keyword.StartsWith("\""))
            {
                int offset = keyword.EndsWith("\"") ? 2 : 1;
                items.Add(keyword.Substring(1, keyword.Length - offset));
            }
            else
            {
                items.AddRange(keyword.Split(' '));
            }

            // Filters
            FileFormatHandler handler = FileFormat.GetHandler(filter);

            // Files
            foreach (string item in items)
            {
                lock (FileMap)
                {
                    foreach (string key in FileMap.Keys)
                    {
                        FileData data = FileMap[key];

                        if (handler(data.Extension))
                        {
                            string filename = data.Name.ToLower();
                            if (filename.Contains(item) && !files.ContainsKey(key))
                            {
                                files.Add(key, data);
                            }
                        }
                    }
                }
            }

            return(files);
        }
コード例 #4
0
 public static void SpeichereKarteikartenSammlung(FileHandler fileHandler, FileFormatHandler fileFormatHandler, RecordcardSet recordCardSet, string path)
 {
     fileHandler.Schreibe(fileFormatHandler.Serialize(recordCardSet), path);
 }
コード例 #5
0
 public static RecordcardSet LeseKarteikartenSammlungAus(FileFormatHandler fileFormatHandler, FileHandler fileHandler, string path)
 {
     return(fileFormatHandler.Deserialize(fileHandler.Lade(path)));
 }