Exemplo n.º 1
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();
                }
            }
        }