コード例 #1
0
ファイル: DBCache.cs プロジェクト: ckkwing/MediaCenter
        public IList <DBTagInfo> GetContainTags(DBFileInfo monitoredFile)
        {
            IList <DBTagInfo> tagInfos = new List <DBTagInfo>();

            if (monitoredFile.IsNull())
            {
                return(tagInfos);
            }

            string[] array = monitoredFile.Tag.Split(';');
            for (int i = 0; i < array.Length; i++)
            {
                int tagId = -1;
                if (!Int32.TryParse(array[i], out tagId))
                {
                    continue;
                }
                DBTagInfo tagInfo = TagInfos.FirstOrDefault(tag => tag.ID == tagId);
                if (tagInfo.IsNull())
                {
                    continue;
                }
                tagInfos.Add(tagInfo);
            }
            return(tagInfos);
        }
コード例 #2
0
        private static void Server()
        {
            while (true)
            {
                HttpListenerContext context;
                try {
                    context = httpListener.GetContext();
                } catch { break; }

                var req = context.Request;
                var res = context.Response;
                try {
                    if (urlFile.IsMatch(req.RawUrl))
                    {
                        var result    = urlFile.Match(req.RawUrl);
                        var filename  = result.Groups["filename"].Value;
                        var format    = result.Groups["format"].Value;
                        var fileBytes = File.ReadAllBytes(Environment.CurrentDirectory + @"\library\" + filename + '.' + format);
                        res.OutputStream.Write(fileBytes, 0, fileBytes.Length);
                        res.StatusCode = 200;
                    }
                    else if (urlTagInfos.IsMatch(req.RawUrl))
                    {
                        var json      = JsonConvert.SerializeObject(TagInfos.ToArray());
                        var jsonBytes = Encoding.UTF8.GetBytes(json);
                        res.OutputStream.Write(jsonBytes, 0, jsonBytes.Length);
                        res.StatusCode = 200;
                    }
                    else if (urlFileInfos.IsMatch(req.RawUrl))
                    {
                        var json      = JsonConvert.SerializeObject(FileInfos.ToArray());
                        var jsonBytes = Encoding.UTF8.GetBytes(json);
                        res.OutputStream.Write(jsonBytes, 0, jsonBytes.Length);
                        res.StatusCode = 200;
                    }
                    else if (urlFileTagMappers.IsMatch(req.RawUrl))
                    {
                        var json      = JsonConvert.SerializeObject(FileTagMappers.ToArray());
                        var jsonBytes = Encoding.UTF8.GetBytes(json);
                        res.OutputStream.Write(jsonBytes, 0, jsonBytes.Length);
                        res.StatusCode = 200;
                    }
                    else
                    {
                        res.StatusCode = 404;
                    }
                } catch {
                    res.StatusCode = 500;
                } finally {
                    res.Close();
                }
            }
        }
コード例 #3
0
ファイル: ElfDynamicEntry.cs プロジェクト: omunroe-com/reko
 public TagInfo GetTagInfo(ElfMachine machine)
 {
     if (TagInfos.TryGetValue(Tag, out var info))
     {
         return(info);
     }
     if (MachineSpecificInfos.TryGetValue(machine, out var machineInfos))
     {
         if (machineInfos.TryGetValue(Tag, out info))
         {
             return(info);
         }
     }
     return(null);
 }
コード例 #4
0
        public async Task Refresh()
        {
            if (_gitRepository.TryGetTarget(out var gitRepository) == false)
            {
                System.Diagnostics.Debug.Assert(false);
                return;
            }

            TagInfos.Clear();
            string cmd = GitCommandCreator.ListTag();

            foreach (var tagInfo in TagParser.Parse(await gitRepository.CreateGitRunner().RunAsync(cmd)))
            {
                TagInfos.Add(tagInfo);
            }
            NotifyPropertyChanged("TagInfos");
        }