public void GetObjectHandlerReports(IContextResponder responder, ReadOnlyMemory <byte> Name)
        {
            var stream = TemplateToExcelStream(Name.Slice(12));

            if (stream != null)
            {
                responder.DeliverFile(Name.Slice(12), stream);
            }
            responder.CloseResponse("");
        }
        public void UpdateCreateHeaderOrContent(IContextResponder responder, ReadOnlyMemory <byte> sdata)
        {
            var screate = false;
            var amp     = Encoder.GetBytes("&");

            if (sdata.Span.IndexOf(Encoder.GetBytes("&sheetname=")) > 0)
            {
                ReadOnlyMemory <byte> name      = sdata.Span.Slice(13).Slice(0, sdata.Span.IndexOf(amp)).ToArray().AsMemory();
                ReadOnlyMemory <byte> sheetName = sdata.Span.Slice(13 + name.Length + 11).Slice(0, sdata.Span.IndexOf(amp)).ToArray().AsMemory();

                if (sdata.Span.IndexOf(Encoder.GetBytes("&header=")) > 0)
                {
                    var header = sdata.Span.Slice(13 + name.Length + 11 + sheetName.Length + 8);
                    if (header.IndexOf(amp) > 0)
                    {
                        header  = header.Slice(0, header.IndexOf(amp));
                        screate = sdata.Span.Slice(sdata.Span.LastIndexOf(amp) + 11).SequenceEqual(Encoder.GetBytes("true"));
                    }
                    responder.WriteResponse(
                        HandleTemplateCreateModify(
                            name,
                            sheetName,
                            Encoder.GetString(header).Split(','),
                            screate));
                }
                else if (sdata.Span.IndexOf(Encoder.GetBytes("&content=")) > 0)
                {
                    var content = sdata.Span.Slice(13 + name.Length + 11 + sheetName.Length + 9);
                    if (content.IndexOf(amp) > 0)
                    {
                        content = content.Slice(0, content.IndexOf(amp));
                        screate = sdata.Span.Slice(sdata.Span.LastIndexOf(amp) + 11).SequenceEqual(Encoder.GetBytes("true"));
                    }
                    responder.WriteResponse(
                        HandleTemplateAddAppend(
                            name,
                            sheetName,
                            Encoder.GetString(content).Split(','),
                            screate));
                }
            }
        }