Tuesday 30 October 2018

C# Export DataSet to CSV and Download

 protected void exportToCSV_Click(object senderEventArgs e)
    {
        if (exportToCSV.Visible && ViewState["data"!= null)
        {
            StringBuilder sb = new StringBuilder();
            DataTable dt = ((DataSet)ViewState["data"]).Tables[0];
 
            IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
            sb.AppendLine(string.Join(","columnNames));
 
            foreach (DataRow row in dt.Rows)
            {
                IEnumerable<string> fields = row.ItemArray.Select(field => string.Concat("\""field.ToString().Replace("\"""\"\""), "\""));
                sb.AppendLine(string.Join(","fields));
            }
 
            Response.Clear();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition""inline;filename=TeachersBySchoolAndGrade.csv");
            Response.AddHeader("Content-Type""application/Excel");
            Response.ContentType = "text/csv";
            Response.Write(sb);
            Response.Flush();
            Response.End();
        }
    }
 
 

Monday 22 October 2018

VSCode Detects lof of Changes (5K) - Exclude files/folder from Git

1. git rev-parse --show-toplevel
2. delete .git folder

1. add .gitignore file to the project
2. add the folder/module name int he added file (e.g. /src/app.js, /node_modules)


Wednesday 17 October 2018

Independent Redux

Independent Redux const redux = require ('redux'); // using node
const createStore = redux.createStore;

// initialize the state
const initialState = { counter: 0 }

// REDUCER
const rootReducer = (state= initialState, action) => { // set the initial state
    if (action.type === 'INC_COUNTER')
        return {
            ...state, // copy the old state - prevent changing the original state
            counter: state.counter + 1 // read the old state and update it to a new object
        };

    if (action.type === 'ADD_COUNTER')
        return {
            ...state, // copy the old state - prevent changing the original state
            counter: state.counter + action.value // read the old state and update it to a new object
        };

    return state; // finally return the state
}

// STORE
const store = createStore(rootReducer);
console.log(store.getState());

// SUBSCRIPTION - execute when state is updated - when action reach to reducer
store.subscribe (() => { console.log('[Subscription]', store.getState()); });

// DISPATCHER - Action
store.dispatch({type: 'INC_COUNTER'}); // for convention, use uupercase type
store.dispatch({type: 'ADD_COUNTER', value: 10}); // property name (value) is up to us
console.log(store.getState());


Upgrade Windows 11 Home to Windows 11 Pro

Disable internet connection (Wi-Fi, Internet, etc.) Change the product key using the following Generic product key:                     VK7J...