﻿Imports System.Data
Imports System.IO


Partial Class admin_orderstoday
    Inherits System.Web.UI.Page

    Private Sub btnExportCSV_ServerClick(sender As Object, e As EventArgs) Handles btnExportCSV.ServerClick
        Dim sb As StringBuilder = New StringBuilder
        Dim pars As List(Of functions.Parameter) = New List(Of functions.Parameter) From {New functions.Parameter("@datefrom", DateFrom.Value), New functions.Parameter("@dateto", DateTo.Value)}
        Dim dt As DataTable = functions.SP_SELECT("ORDERS_CSV_spsel", pars)

        For Each dc As DataColumn In dt.Columns
            sb.Append((WriteCSV(dc.ColumnName.ToString) + ","))
        Next
        sb.Remove((sb.Length - 1), 1)
        sb.AppendLine()

        For Each dr As DataRow In dt.Rows
            For Each dc As DataColumn In dt.Columns
                sb.Append((WriteCSV(dr(dc.ColumnName).ToString) + ","))
            Next
            sb.Remove((sb.Length - 1), 1)
            sb.AppendLine()
        Next

        Response.Clear()
        Response.ContentType = "application/csv"
        Response.AddHeader("content-disposition", "attachment; filename=CSV_Orders.csv")
        Response.Write(sb.ToString())
        Response.End()
    End Sub

    Public Shared Function WriteCSV(ByVal input As String) As String
        Try
            If (input Is Nothing) Then
                Return String.Empty
            End If

            Dim containsQuote As Boolean = False
            Dim containsComma As Boolean = False
            Dim len As Integer = input.Length
            Dim i As Integer = 0
            Do While ((i < len) _
                        AndAlso ((containsComma = False) _
                        OrElse (containsQuote = False)))
                Dim ch As Char = input(i)
                If (ch = Microsoft.VisualBasic.ChrW(34)) Then
                    containsQuote = True
                ElseIf (ch = Microsoft.VisualBasic.ChrW(44)) Then
                    containsComma = True
                End If

                i = (i + 1)
            Loop

            If (containsQuote AndAlso containsComma) Then
                input = input.Replace("""", """""")
            End If
            If (containsComma) Then
                Return """" & input & """"
            Else
                Return input
            End If

        Catch ex As System.Exception
            Throw
        End Try

    End Function

End Class
