Thursday

Wednesday

msbuild release configuration

to build release from command line:
 msbuild  buildsrc\Test\Test.sln   /p:Configuration=Release 

Wednesday

C# bind dropdown to enum

For example we have enumeration Enum1 and want to bind ddEnum1.
here is how to do it in directly into html page , when GetEnum1 is function in codebehing , that will be getting SelectedValue for every record object (passign by parameter)
     
<asp:TemplateField HeaderText="Type" ItemStyle-Width="5%" ItemStyle-Wrap=False HeaderStyle-HorizontalAlign=Center HeaderStyle-Wrap=False ItemStyle-HorizontalAlign=Center>
<ItemTemplate>
<asp:DropDownList id="typeDropDown" runat="server" Width='150'
DataSource="<%# Enum.GetNames(typeof(myEnum1)) %>"
SelectedValue='<%# GetEnum1(Container.DataItem) %>'
OnInit="InitDropDown" />

</ItemTemplate>
</asp:TemplateField>


here is how to do it in codebehind
       
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
ddEnum1.DataSource = Enum.GetNames(typeof(Enum1));
ddEnum1.DataBind();
}
}

private void ddEnum1_SelectedIndexChanged(object sender, System.EventArgs e)
{
Enum1 selectedEnum1 = (Enum1)Enum.Parse(ddEnum1.SelectedValue);
}



Monday

This application has failed to start because vcl60.bpl was not found.


Easiest way for C++ Builder 6.0:
Project/Options:
Compiler tab: Click 'Release'

Packages tab:
Un-check 'Bulid with runtime packages'

Linker tab:
Uncheck the first 3 items under 'Linking'

more...

Tuesday

linq "in" exisits


var itemQuery = from cartItems in db.SalesOrderDetails
where cartItems.SalesOrderID == 75144
select cartItems.ProductID;


var myProducts = from p in db.Products
where itemQuery.Contains(p.ProductID)
select p;

details

mercurial source control visual studio

HgSccPackage - Mercurial Source Control Plugin for Microsoft Visual Studio 2008/2010

VisualHG - Mercurial Source Control Plugin for Microsoft Visual Studio 2005, 2008 and 2010

more...

Tuesday

C# shuffle list


public void Shuffle<T>(List<T> list)
{
Random rng = new Random();
int n = list.Count;
while (n > 1)
{
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}

more...

Manage Stored User Names and Passwords

To manage stored user names and passwords, follow these steps:
  • Log on to the computer as the user whose account you want to change.
  • Click Start, and then click Control Panel.
  • In Control Panel, click User Accounts under Pick a category to open the User Accounts dialog box.
  • Open the Stored User Names and Passwords dialog box; to do so, use the appropriate method:
    • If you log on with a limited account:
      1. Under Related Tasks, click Manage my network passwords.
    • If you log on with an account with administrative privileges:
      1. Under or pick an account to change, click your user account to open the What do you want to change about your account? dialog box.
      2. Under Related Tasks, click the Manage my network passwords.


    A list of stored user names and passwords similar to the following example is displayed:


    more...
  • Friday

    ASP.NET Editable grid

    aspx page:
     
    <div style="overflow:auto;height:150px;border-width:1px;">
    <asp:DataGrid ID="ScheduledPaymentAdjustmentDataGrid" CssClass="TableWithGrayBorders" Runat="server"
    AutoGenerateColumns="False"
    Width="200" BorderStyle="None"
    HeaderStyle-CssClass="TableWithGrayBordersHeader" ShowFooter=true
    HeaderStyle-HorizontalAlign="Center" DataKeyField="sID"
    OnItemCommand="ItemsGrid_Command"
    >

    <Columns>
    <asp:TemplateColumn HeaderText="Profile" ItemStyle-Width="5%" ItemStyle-Wrap=False
    HeaderStyle-HorizontalAlign=Center HeaderStyle-Wrap=False ItemStyle-HorizontalAlign=Center>
    <ItemTemplate>
    <img src="../images/spacer.gif" width=2>
    <asp:DropDownList id="ProfileDropDown" runat="server" Width='150'
    DataSource="<%# GetProfiles() %>"
    DataValueField="id" DataTextField="name"
    SelectedValue='<%# GetProFileId(DataBinder.Eval(Container.DataItem, "sID")) %>'
    />
    <img src="../images/spacer.gif" width=2>
    </ItemTemplate>

    <FooterTemplate>

    <img src="../images/spacer.gif" width=2>
    <asp:DropDownList id="ProfileDropDown" runat="server" Width='150' BackColor="LightGreen"
    DataSource="<%# GetProfiles() %>"
    DataValueField="id" DataTextField="name"
    SelectedValue='<%# GetProFileId(DataBinder.Eval(Container.DataItem, "sID")) %>'
    />
    <img src="../images/spacer.gif" width=2>
    </FooterTemplate>
    </asp:TemplateColumn>


    <asp:TemplateColumn HeaderText="Amount" ItemStyle-Width="5%" ItemStyle-Wrap=False
    HeaderStyle-HorizontalAlign=Center HeaderStyle-Wrap=False ItemStyle-HorizontalAlign=Center>
    <ItemTemplate>
    <img src="../images/spacer.gif" width=2>
    <asp:TextBox ID="AmountTextBox" runat="server" Text='<%# string.Format("{0:0.00}",DataBinder.Eval(Container.DataItem, "dAmount")) %>' Width='70' MaxLength="8" />
    <img src="../images/spacer.gif" width=2>
    </ItemTemplate>

    <FooterTemplate>
    <img src="../images/spacer.gif" width=2>
    <asp:TextBox ID="AmountTextBox" runat="server" BackColor="LightGreen" Text='<%# string.Format("{0:0.00}",DataBinder.Eval(Container.DataItem, "dAmount")) %>' Width='70' MaxLength="8" />
    <img src="../images/spacer.gif" width=2>
    </FooterTemplate>

    </asp:TemplateColumn>


    <asp:TemplateColumn HeaderText="" ItemStyle-Width="1%" ItemStyle-Wrap=False
    HeaderStyle-HorizontalAlign=Center HeaderStyle-Wrap=False ItemStyle-HorizontalAlign=Center>
    <ItemTemplate>

    <asp:ImageButton ID="ImageButton1" Runat="server" CommandName="Delete" ImageUrl ='../images/delete_icon.gif' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID")%>' />

    </ItemTemplate>

    <FooterTemplate>
    <asp:ImageButton ID="ImageButton2" Runat="server" ImageUrl='../images/bullet_add.png' CommandName="new" />
    </FooterTemplate>

    </asp:TemplateColumn>
    </Columns>

    </asp:DataGrid>



    Code behind:
      
    public void SaveScheduledPaymentAdjustmentDataGridChanges()
    {
    List<InvoiceDetailsRowView> lst = ((List<InvoiceDetailsRowView>)ScheduledPaymentAdjustmentDataGridSource);
    Hashtable H = new Hashtable(lst.Count);

    bool changed = false;
    foreach (InvoiceDetailsRowView i in lst)
    {
    H.Add(i.sID,i);

    }


    foreach (DataGridItem dataGridItem in ScheduledPaymentAdjustmentDataGrid.Items)
    {
    string key =(string) ScheduledPaymentAdjustmentDataGrid.DataKeys[dataGridItem.ItemIndex];
    UpdateInvoiceDetailsRowViewWithCells((InvoiceDetailsRowView)H[key], dataGridItem.Cells);
    }

    ScheduledPaymentAdjustmentDataGridSource = lst;
    }



    public void UpdateInvoiceDetailsRowViewWithCells(InvoiceDetailsRowView i,TableCellCollection Cells )
    {
    TextBox date = (TextBox)Cells[2].FindControl("DateTextBox");
    TextBox Note = (TextBox)Cells[3].FindControl("NoteTextBox");
    TextBox amount = (TextBox)Cells[1].FindControl("AmountTextBox");
    DropDownList dd = (DropDownList)Cells[0].FindControl("ProfileDropDown");

    decimal am;
    assert.IsTrue(decimal.TryParse(amount.Text, out am), iam+" " +amount.Text);
    assert.IsTrue(am > 0, iam + " " + amount.Text);
    i.NoteText = Note.Text;
    i.dAmount = am;
    i.TXNDate = date.Text;
    i.ProfileID = int.Parse(dd.SelectedValue);

    }



    public void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
    {

    RunSafe(Process_Command,new object[]{e});
    }

    public void Process_Command(params object[] p)
    {
    DataGridCommandEventArgs e =(DataGridCommandEventArgs) p[0];

    switch (e.CommandName)
    {
    case "Delete":
    SaveScheduledPaymentAdjustmentDataGridChanges();
    DeleteSP((string)ScheduledPaymentAdjustmentDataGrid.DataKeys[e.Item.ItemIndex]);
    break;

    case "new":
    SaveScheduledPaymentAdjustmentDataGridChanges();

    InvoiceDetailsRowView i= new InvoiceDetailsRowView();
    UpdateInvoiceDetailsRowViewWithCells(i, ((System.Web.UI.WebControls.TableRow) (e.Item)).Cells);
    i.status = EnumRecordStatus.added;
    i.sID = Guid.NewGuid().ToString();
    List<InvoiceDetailsRowView> lst = ((List<InvoiceDetailsRowView>)ScheduledPaymentAdjustmentDataGridSource);
    lst.Add(i);
    ScheduledPaymentAdjustmentDataGridSource = lst;
    ScheduledPaymentAdjustmentDataGridBind();
    break;
    }
    GetTotalInBills();
    }


    more...

    Wednesday

    sql:select one row on join

            

    SELECT *
    FROM AccountTransactions AS inv
    INNER JOIN [Accounts basic] a2 ON inv.AccountId = a2.ID
    JOIN ( SELECT *
    FROM ( SELECT *,
    ROW_NUMBER() OVER ( PARTITION BY AccountTransactionId ORDER BY ProcessDate ) AS RowId
    FROM dbo.BillingTransactions
    ) Tmp
    WHERE RowId = 1
    ) b ON inv.TransactionId = b.AccountTransactionId

    more...

    Tuesday

    Select into another table update from another table

    insert into table from select.

    SELECT *
    INTO new_table_name [IN externaldatabase]
    FROM old_tablename


    Update from one table into another

    UPDATE
    Sales_Import
    SET
    AccountNumber = RAN.AccountNumber
    FROM
    Sales_Import SI
    INNER JOIN
    RetrieveAccountNumber RAN
    ON
    SI.LeadID = RAN.LeadID

    more...

    Friday

    asp.net dropdownlist selectedvalue


    <script language='javascript'>
    function getDropdownSelectedValue()
    {
    var e = document.getElementById("<%=MyDropDown.ClientID%>");
    var chain= e.options[e.selectedIndex].value;

    return chain;
    }
    </script>

    more...

    sql today

    to get today's records from table :

    select * from mytable where
    CONVERT(varchar(8), mydatefield, 112)=CONVERT(varchar(8), GETDATE(), 112)

    more...

    Monday

    outlook keyboard shortcuts







































    Switch to Inbox. CTRL+SHIFT+I
    Switch to Outbox. CTRL+SHIFT+O
    Choose the account from which to send a message. CTRL+TAB (with focus on the To box) and then TAB to the Accounts button
    Check names. CTRL+K
    Send. ALT+S
    Reply to a message. CTRL+R
    Reply all to a message. CTRL+SHIFT+R
    Forward a message. CTRL+F
    Mark a message as not junk. CTRL+ ALT+J
    Display blocked external content (in a message). CTRL+SHIFT+I
    Post to a folder. CTRL+ SHIFT+S
    Apply Normal style. CTRL+SHIFT+N
    Check for new messages. CTRL+M or F9
    Go to the previous message. UP ARROW
    Go to the next message. DOWN ARROW
    Create a new message (when in Mail). CTRL+N
    Create a new message (from any Outlook view). CTRL+SHIFT+M
    Open a received message. CTRL+O
    Open the Address Book. CTRL+SHIFT+B
    Convert an HTML or RTF message to plain text. CTRL+SHIFT+O
    Add a Quick Flag to an unopened message. INSERT
    Display the Flag for Follow Up dialog box. CTRL+SHIFT+G
    Mark as read. CTRL+Q
    Mark as unread. CTRL+U
    Show the menu to download pictures, change automatic download settings, or add a sender to the Safe Senders List. CTRL+SHIFT+W
    Find or replace. F4
    Find next. SHIFT+F4
    Send. CTRL+ENTER
    Print. CTRL+P
    Forward. CTRL+F
    Forward as attachment. CTRL+ALT+F
    Show the properties for the selected item. ALT+ENTER
    Mark for Download. CTRL+ALT+M
    Clear Mark for Download. CTRL+ALT+U
    Display Send/Receive progress. CTRL+B (when a Send/Receive is in progress)

    Tuesday

    sql connection string port

    If you want to connect to specific instance sometimes you have to specify port on which this instance running.
    Port is specifying by comma in connection string like this(1362):


    <add key="ConnectionString" value="server=sql-server1\qa,1362;database=db1;user id=u1;password=MyPassword;Trusted_Connection=no"/>

    Wednesday

    base page asp.net error handling

    basepage class:
     
    public delegate void UnSafeProcedure();
    public class BasePage : System.Web.UI.Page
    {
    public CAssertions assert= new CAssertions(); // my own assertor, produce AssertionException
    public void RunSafe(UnSafeProcedure s)
    {
    try
    {
    s();
    }
    catch (Exception e1)
    {
    if (e1.GetType().FullName == "AssertionException")
    {

    ShowMessage(e1.Message);

    }
    else
    {
    ShowMessage("Unhandled Exception");
    Debug.Write(e1.ToString());
    }
    }

    }
    // will be overwrited on actual page:
    public virtual void ShowMessage(string s) { Debug.Write(s); }
    }



    This is how actual page would look like:
      
    public partial class NewEft : BasePage {
    protected void SubmitButtonClick(object sender, EventArgs e) {
    RunSafe(Submit);
    }

    private void Submit() {

    AUtyl butyl = new AUtyl();
    assert.IsTrue(butyl.CheckRoutingNumberByRouting(txtRoutingNumber.Text), "Routing Number is invalid");
    }

    public override void ShowMessage (string s ) { lblMessage.Text = s; }
    }




    more...

    get source from github (windows)

    1.download and install git from
    googlecode

    Bash installation is good enough
    2.click on "Git Bash" on desktop, you can change folder
    with "cd" command like cd c:\temp\


    3.run git clone command to get sources:
    git clone [link from github]

    for example:
    git clone http://github.com/twilio/stashboard.git
    more...

    Tuesday

    c# parse string into enum


    public enum enmode
    {
    fee , scheduledpayment , adjustment , new1 , del , cancel , freeze
    }


    Propery convering string from Request["mode"] into enum:

    public enmode Mode
    {
    get { return (enmode) Enum.Parse(typeof (enmode), Request["m"].ToLower()); }
    }

    more...

    open popup in center of screen ( popup window javascript )

          
    function openPopUpInCenter() {
    var w1 = 400;
    var h1 = 450;
    var left = (screen.width / 2) - (w1 / 2);
    var top = (screen.height / 2) - (h1 / 2);
    window.open('AddPopup.aspx', 'add', 'top=' + top + ',left=' + left + ',width=' + w1 + ',height=' + h1 + ',location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no');
    }

    more...

    Thursday

    iis7 enable asp and asp.net


    You need to install ASP/ASP.NET through the Windows setup interface available from the Control Panel \ Programs applet:

    Tuesday

    close popup window c#


    string clientScript = @"<script language='javascript'>
    window.opener.location.reload();
    window.close();
    </script>";

    this.Page.ClientScript.RegisterStartupScript(clientScript.GetType(),"_reload",clientScript);


    more...

    opener reload javascript

    to close popup and reload main window:

    <script language='javascript'>
    window.opener.location.reload();
    window.close();
    </script>

    register javascript asp.net c#

         
    string clientScript = @"<script language='javascript'>
    alert("hello");
    </script>";


    this.Page.ClientScript.RegisterStartupScript(clientScript.GetType(),"hello",clientScript);

    remove space above table in Blogger.com

    when you publishing table on Blogger.com you will have a bunch of space above table.
    Because Blogger.com adds a
    <br />

    tag for each new line
    To avoid this, add this before HTML for your table:

    <style type="text/css">.nobrtable br { display: none }</style>
    <div class="nobrtable">

    credit card type based on number

    first numbers identifying card issuer:





























    IssuerIdentifierCard Number Length
    Diner's Club/Carte Blanche300xxx-305xxx,
    36xxxx, 38xxxx
    14
    American Express34xxxx, 37xxxx15
    VISA4xxxxx13, 16
    MasterCard51xxxx-55xxxx16
    Discover6011xx16















    first digitIssuer Category
    0ISO/TC 68 and other industry assignments
    1Airlines
    2Airlines and other industry assignments
    3Travel and entertainment
    4Banking and financial
    5Banking and financial
    6Merchandizing and banking
    7Petroleum
    8Telecommunications and other industry assignments
    9National assignment


    jquery iframe contents

    JQuery allows to open regular popup in nice dialog window by using iframe,
    here is code how to do that:
            
    <html>
    <head>
    <link rel="stylesheet" href="./styles/smoothness/jquery-ui-1.7.2.custom.css" type="text/css" media="screen" />
    <script type="text/javascript" src="./scripts/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="./scripts/jquery-ui-1.7.2.custom.min.js"></script>
    <script type="text/javascript">
    $(function() {
    $(' .diag').click(function(e) {
    e.preventDefault();
    var $this = $(this);
    var horizontalPadding = 30;
    var verticalPadding = 30;
    $('<iframe id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({
    title: ($this.attr('title')) ? $this.attr('title') : 'External Site',
    autoOpen: true,
    width: 800,
    height: 500,
    modal: true,
    resizable: true,
    autoResize: true,
    overlay: {
    opacity: 0.5,
    background: "black"
    }
    }).width(800 - horizontalPadding).height(500 - verticalPadding);
    });
    });
    </script>
    </head>
    <body>
    <ul>
    <li><a href="http://www.google.com" class ='diag' title="Google Dialog">Google</a></li>
    </ul>
    </body>
    </html>

    more...

    Sunday

    show hide javascript

    Here is sample how to show hide, control in asp.net/javascript
    let say we have ddBerechnung control and we have to hide controls when this dropdown has value 'identisch'

    server side will have this :
             
    protected override void OnPreRender(EventArgs e)
    {
    ddBerechnung.Attributes.Add("onChange", "ShowHidePercentField(this)");
    }


    and aspx will have this javascript:
             
    function ShowHidePercentField(cb){
    var selIdx = cb.selectedIndex;
    var newSel = cb.options[selIdx].text;
    var textBox=document.getElementById('<%=txtBerechnung.ClientID%>');
    var Runden= document.getElementById('<%=ddRunden.ClientID%>');
    var RundenSpan= document.getElementById('RundenSpan');


    if (trim(newSel)=='identisch'){ ///
    textBox.style.display="none";
    Runden.style.display="none";
    RundenSpan.style.display="none";

    }else{
    textBox.style.display="";
    Runden.style.display="";
    RundenSpan.style.display="";

    }

    }

    ///.... at the end of control
    <script language='javascript'>
    var elem=document.getElementById('<%=ddBerechnung.ClientID%>')
    ShowHidePercentField(elem);
    </script>

    more...

    tsql ceiling round not working for percent calculation because

    it's required to put additional zero after 100.0, check this out:

    select CEILING(50/100.0) , CEILING(50/100)
    ----
    1,0





    more...

    Saturday

    Controls.add c#/asp.net adding controls table/rows/labels

    ASPX page must have placeholder

    <asp:PlaceHolder ID="DynamicPlaceHolder" runat="server"></asp:PlaceHolder>


    codebehind

    protected override void OnPreRender(EventArgs e)
    {
    HtmlTable mainHtmlTable = new HtmlTable();
    HtmlTableRow helpTableRow = AddLabelRow(mainHtmlTableRow.Cells.Count, "Hello World",true);
    mainHtmlTable.Rows.Add(helpTableRow);
    DynamicPlaceHolder.Controls.Add(mainHtmlTable);
    }

    public HtmlTableRow AddLabelRow(int cellCount, string text,bool applySkin)
    {
    HtmlTableRow helpTableRow = new HtmlTableRow();
    HtmlTableCell helpTableCell = new HtmlTableCell();
    //helpTableCell.Attributes.Add("style", "border: solid 2px; border-color: Blue;");
    helpTableCell.ColSpan = cellCount;

    Label helpLabel = new Label();
    if (applySkin) helpLabel.SkinID = "labelBoldSkin";
    helpLabel.Text = "<br>"+text;

    helpTableCell.Controls.Add(helpLabel);
    helpTableRow.Cells.Add(helpTableCell);
    return helpTableRow;
    }

    more...

    Attributes.Add style


    change font weight:
             
    helpLabel.Attributes.Add("style", "font-weight:bold");


    change color
             
    helpTableRow.Attributes.Add("style", "color:red;");


    more...

    Thursday

    start of the week C#

         
    public static class DateTimeExtensions
    {
    public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
    {
    int diff = dt.DayOfWeek - startOfWeek;
    if (diff < 0)
    {
    diff += 7;
    }

    return dt.AddDays(-1 * diff).Date;
    }
    }

    Usage:
         
    dateFrom.Value = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);

    what day is the start of the week

    Sunday :)
    more...

    datatable copy c#

    here is procedure for copying data b/w different fields in two tables
             
    public DataTable CopyData(DataTable indata, Hashtable fields)
    {
    DataTable ret = new DataTable();
    foreach (string k in fields.Keys)
    {
    ret.Columns.Add((string)fields[k], indata.Columns[k].DataType);
    }
    foreach (DataRow row in indata.Rows)
    {
    DataRow dr = ret.NewRow();
    foreach (string k in fields.Keys)
    {
    dr[(string)fields[k]] = String.Format("{0}", row[k]);
    }
    ret.Rows.Add(dr);
    }
    return ret;
    }

    create mapping b/w fields in original table and result table and call procedure
             
    Hashtable fieldsMap= new Hashtable()
    {
    {"[Measures].[Week]","Week"},
    {"[Measures].[Month]","Month"},
    {"[Measures].[Quarter]","Quarter"},
    {"[Measures].[Year]","Year"},
    };

    // call copy data procedure
    DataTable result = CopyData(OriginaldataTable, fieldsMap);



    more...

    datatable.columns.add

             
    DataTable table = new DataTable("MyTable");
    Type str = System.Type.GetType("System.String");
    table.Columns.Add("Checbox", System.Type.GetType("System.Boolean"));
    table.Columns.Add("String1", str);
    table.Columns.Add("String2",str);
    table.Columns.Add("Decimal", 0.0.GetType());

    create datatable on the fly

    // here is procedure for creating table on the fly
       
    private DataTable CreateTable()
    {
    DataTable table = new DataTable("Report");
    Type str = System.Type.GetType("System.String");
    table.Columns.Add("chk1", System.Type.GetType("System.Boolean"));
    table.Columns.Add("From", str);
    table.Columns.Add("To",str);
    table.Columns.Add("Hours", 0.0.GetType());
    table.Columns.Add("Desc", str);
    return table;
    }

    // below is procedure for filling table with data
    private void ProcessReport()
    {
    xreport = XDocument.Load(ReportFile.Text);
    var header = (from head in xreport.Elements("Journal").Elements("Header")
    select head).First();

    Rate.Text= header.Attribute("Rate").Value;

    var entries = from entri in xreport.Elements("Journal").Elements("Entry")
    select entri;
    DataTable dataTable = CreateTable();
    foreach (var element in entries)
    {
    DataRow dr = dataTable.NewRow();
    dr["From"] = element.Attribute("StartTimeStamp").Value;
    dr["To"] = element.Attribute("EndTimeStamp").Value;
    dataTable.Rows.Add(dr);
    }
    Grid.DataSource = dataTable;
    }

    more...

    Friday

    C# csharp read from file write into file


    public static string ReadFile(string f){
    System.IO.StreamReader file = new System.IO.StreamReader(f);
    string testxmldata = file.ReadToEnd(); file.Close();
    return testxmldata;
    }
    public void WriteIntoFile(string path,string m) {
    if (!File.Exists(path)) {
    // Create a file to write to.
    using (StreamWriter sw = File.CreateText(path)) {
    sw.WriteLine(m);
    }
    }
    else {
    // This text is always added, making the file longer over time
    // if it is not deleted.
    using (StreamWriter sw = File.AppendText(path)) {
    sw.WriteLine(m);
    }
    }
    }

    more...

    Thursday

    remove bing from internet explorer

    Go to this page and setup different provider (google for example):
    http://www.ieaddons.com/en/searchproviders

    In internet explorer menu open Tools/Manage addons /Search providers
    Right click on Bing, then select remove from popup menu.

    more...

    Tuesday

    Passing NULL values to SqlCommand.Parameters.AddWithValue

    this code might help
           
    SqlCommand sqlCmd = new SqlCommand(sqlStatment, dbConn);
    sqlCmd.Parameters.AddWithValue("@Name", name);
    sqlCmd.Parameters.AddWithValue("@Surname", surname);
    foreach (SqlParameter Parameter in sqlCmd.Parameters)
    {
    if (Parameter.Value == null)
    {
    Parameter.Value = DBNull.Value;
    }
    }

    more...

    Friday

    The wave header is corrupt fix Or how to play wav file with System.Media.SoundPlayer in dot.Net C#

    1.add this MediaPlayer class
    class MediaPlayer
    {
    System.Media.SoundPlayer soundPlayer;
    public MediaPlayer(byte[] buffer)
    {
    MemoryStream memoryStream = new MemoryStream(buffer, true);
    soundPlayer = new System.Media.SoundPlayer(memoryStream);
    }
    public void Play() {soundPlayer.Play();}
    public void Play(byte[] buffer)
    {
    soundPlayer.Stream.Seek(0, SeekOrigin.Begin);
    soundPlayer.Stream.Write(buffer, 0, buffer.Length);
    soundPlayer.Play();
    }
    }

    2. Then file playing procedure will be looking like this:
    private void PlayMyFile()
    {
    string file1 = @"c:\sample.wav";
    List<byte> soundBytes = new List<byte>(File.ReadAllBytes(file1));
    //create media player loading the first half of the sound file
    MediaPlayer mPlayer = new MediaPlayer(soundBytes.ToArray());
    //begin playing the file
    mPlayer.Play();
    }

    more...

    Thursday

    C# generic list copy with constructor

         
    using System;
    using System.Collections;
    using System.Collections.Generic;
    namespace Business.Web.Models {
    public class DtoMapper {
    // this is generic method replacing non-generic metod
    // InvoiceDto_OLD provided in source below
    public List<T2> Transform<T1,T2>(List<T1> i, Func<T1,T2> del)
    {
    List<T2> ret = new List<T2>();

    foreach (T1 val in i) {
    ret.Add(del(val));
    }
    return ret;
    }

    // generic method can be called as follows:
    public List<InvoiceDto> InvoiceDto(List<Invoice> i) {
    return Transform<Invoice,InvoiceDto> (i.ToList(),l=>new InvoiceDto(l));
    }

    // this is sample of old non-generic method
    public List<InvoiceDto> InvoiceDto_OLD(List<Invoice> i) {
    List<InvoiceDto> ret = new List<InvoiceDto>();

    foreach (Invoice invoice in i) {
    ret.Add(new InvoiceDto(invoice) );
    }
    return ret;
    }
    }
    }

    more...

    Tuesday

    view GAC, add dll to GAC


    to view registred dlls in GAC open this folder in explorer:
    C:\WINDOWS\assembly

    To Register GAC , use following command:
    c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe /i [mydll]
    more...

    Saturday

    To analyze website with FxCop

    Open FxCop click newProject/AddTargets and find your website compiled here:
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\[yourwebsitename]
    Press Ctrl+A and add all dlls.

    more...

    open web page in android application:

    don't forget to set permission


    package com.test2;
    import android.app.Activity;
    import android.os.Bundle;
    public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    }
    @Override
    protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    android.webkit.WebView wv =
    (android.webkit.WebView)this.findViewById(R.id.WebView01);
    wv.loadUrl("http://sourcefield.blogspot.com");
    }
    }

    Could not load file or assembly Microsoft.ReportViewer.WebForms:

    usually it's located into c:\Program Files\Microsoft Visual Studio 9.0\ReportViewer\

    For visual Studio 2005 run this installer to add this to GAC:
    C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ReportViewer\ReportViewer.exe
    more...

    Thursday

    fix:android.webkit.WebView

    In order to allow WebView to display pages,android.permission.INTERNET permission has to be added :

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>


    Can also be edited graphically in Eclipse plugin through permissions tab.

    Monday

    AutoHotkey autoplayer for Online games

    Here is auto-click script for 'point and click' games , you will need AutoHotkey and save this as .ahk file .

    SetKeyDelay, 75, 75
    ;Exits AutoHotKey application.
    $^CapsLock::
    ExitApp
    return
    ;Pauses AutoHotKey Script.
    F6::Pause, Toggle, 1
    $x::
    Loop {
    MouseClick
    sleep 10
    }

    more...

    C# source to find XML tag recursively


     [TestFixture]
    public class test
    {
    [Test]
    public void XPathTest()
    XmlDocument doc = new XmlDocument();
    doc.Load(@"c:\LinqObjects.xsd");

    foreach (XmlNode node in doc.DocumentElement.ChildNodes)
    {
    ProcesNode(node, doc.DocumentElement.Name);
    }
    }



    private void ProcesNode(XmlNode node, string parentPath)
    {
    if (!node.HasChildNodes || ((node.ChildNodes.Count == 1) && (node.FirstChild is System.Xml.XmlText)))
    {
    if (node.Name == "Parameter")
    {
    //System.Diagnostics.Debug.WriteLine(parentPath + "/" + node.Name);
    }
    }
    else
    {
    foreach (XmlNode child in node.ChildNodes)
    {
    ProcesNode(child, parentPath + "/" + node.Name);
    }
    }
    }
    }

    more...

    Thursday

    Royalty Free Icons Clipart Stock Images

    good- http://iconza.ru/
    better: http://icons.mysitemyway.com/

    event categorized:
    http://icons.mysitemyway.com/magic-marker-icons-sports-hobbies/
    http://icons.mysitemyway.com/amber-glossy-chrome-icons-sports-hobbies

    another one - http://www.iconspedia.com/
    for svg lovers: http://www.openclipart.org/"

    free textures: http://www.texturelovers.com/
    http://www.spiralgraphics.biz/packs/terrain_desert_barren/index.htm

    to search for.ex.hourglass:
    bad - http://browse.deviantart.com/?qh=&section=&q=hourglass"
    better - http://www.iconspedia.com/search/hourglass/
    best http://www.openclipart.org/search/?query=hourglass

    Sunday

    source code

    you can find open-source and free projects (including asp.net/.net/mvc) here

    There are others source code search engines and repositories:


    codefetch{ - www.codefetch.com/
    Snipplr - Code 2.0 - snipplr.com/
    Google Code Search - www.google.com/codesearch
    Codase - Source Code Search Engine - www.codase.com/
    Home | byteMyCode - www.bytemycode.com/
    DZone Snippets: Store, sort and share source code, with tag goodness - snippets.dzone.com/
    Krugle - Find code. Find answers. - www.krugle.com/
    Wiki Engines - c2.com/cgi/wiki?WikiEngines
    merobase ? Software Component Finder - www.merobase.com/
    Code Snippets - Source Code | DreamInCode.net - www.dreamincode.net/code/browse.php?cid=0
    Open Source Code Search Engine - Koders - www.koders.com/
    Code Search - O'Reilly Labs - labs.oreilly.com/code/

    Thursday

    H1B to COS B1/B2

    Q


    1. On H1B I797 & I-94 both valid till July 31,2009. Used 3 years of H1.
    2. Last day on job May 22. Last pay I will get on 06/06/2009
    3. Company said it will not file for H1 extension and will not revoke ( few weeks only).
    My questions now-
    1. Can I apply for COS to B1/B2 Efile now since I have car to sell and other stuff?
    2. If I get a job before B1/B2 approval, how do I continue on H1 ?I assume my employer files for H1 extension.
    3. If I get a job AFTER B1/B2 approval and also after expiry of H1 ( July 31), how do I get back onto H1?
    4. If I go back to India,after expiry of my current H1, how can I revive this H1 with the current employer or New Employer?
    5. If I apply for 2010 quota, can I be counted against old H1? or do I get new H1?( meaning 6 years?)

    User's Location: Tampa, Florida, United States of America
    Category: H1B Visa (Work Visa)
    Posted on 27 May 2009

    A.


    1. Can I apply for COS to B1/B2 Efile now since I have car to sell and other stuff?

    You can apply for a COS from H-1B to B-2 using the I-539. You will want to do so before your the date on your last pay stub. You will want to include proof of your financial ability to take care of yourself and a separate letter explaining the reason you need to take care of things.

    2. If I get a job before B1/B2 approval, how do I continue on H1 ?I assume my employer files for H1 extension.

    Your new employer would need to file for a new H-1B extension for you. You can include evidence of your pending B-2 COS with that new H-1B filing. You may want to consider requesting premium processing so the new H-1B could be approved before the chance that your COS to B-2 could be denied.

    3. If I get a job AFTER B1/B2 approval and also after expiry of H1 ( July 31), how do I get back onto H1?

    If you have H-1B time remaining, you simply file COS paperwork on I-129 for new H-1B and COS from B-2 to H-1B. You should be fine for an H-1B extension as long as you have H-1B time remaining and your COS should work so long as you have B-2 time remaining.

    4. If I go back to India,after expiry of my current H1, how can I revive this H1 with the current employer or New Employer?

    You would have to file new H-1B paperwork and recieve a new H-1B approval. This H-1B paperwork should not be counted against the H-1B cap.

    5. If I apply for 2010 quota, can I be counted against old H1? or do I get new H1?( meaning 6 years?)

    If you are outside of the U.S. for one year, you can either file for remaining H-1B time (3 years?) or file for new H-1B under new H-1B cap.


    question:what all documents I should send to support my application?


    Posted on 01 Jun 2009

    A.

    In order to file for a COS from H-1B to B-2, you should include:

    (1) Copy of your H-1B approval notice;

    (2) Copy of your H-1B visa and I-94;

    (3) Copy of the face page of your passport;

    (4) Copy of 3-4 most recent pay stubs;

    (5) Copy of recent bank statement(s);

    (6) Letter explaining reasons why you need to stay in the U.S. as a visitor (i.e. apt./home, car, financial issues to resolve, commitments etc.)

    Tuesday

    Running PowerShell script from C#



    private void testRunToolStripMenuItem_Click(object sender, EventArgs e)
    {
    List<string> ls = new List<string>();
    RunPowershellScript(@"c:\Program Files\Microsoft Transporter Tools\PassCh.ps1",ls);
    //log("script complete");

    }

    private static void RunPowershellScript(string scriptFile, List<string> parameters)
    {
    // Validate parameters
    if (string.IsNullOrEmpty(scriptFile)) { throw new ArgumentNullException("scriptFile"); }
    if (parameters == null) { throw new ArgumentNullException("parameters"); }

    RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
    PSSnapInException ex;
    runspaceConfiguration.AddPSSnapIn("Microsoft.Exchange.Transporter",out ex);

    using (Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration))
    {
    runspace.Open();
    RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
    scriptInvoker.Invoke("Set-ExecutionPolicy Unrestricted");
    Pipeline pipeline = runspace.CreatePipeline();
    Command scriptCommand = new Command(scriptFile);
    Collection<CommandParameter> commandParameters = new Collection<CommandParameter>();
    foreach (string scriptParameter in parameters)
    {
    CommandParameter commandParm = new CommandParameter(null, scriptParameter);
    commandParameters.Add(commandParm);
    scriptCommand.Parameters.Add(commandParm);
    }
    pipeline.Commands.Add(scriptCommand);
    Collection<PSObject> psObjects;
    psObjects = pipeline.Invoke();
    }
    }

    more...

    Monday

    vba code samples for outlook



    Sub AssignCategoryAndMoveBasedOnSubject(Item As Outlook.MailItem)
    If InStr(1, Item.Subject, "error") > 0 Then
    Item.Categories = "Error"
    Item.Subject = "Error:" + Item.Subject
    Item.Save

    Set myNameSpace = GetNamespace("MAPI")
    Set myInBox = myNameSpace.GetDefaultFolder(olFolderInbox)
    Set mydestFolder = FindOrCreateFolder(myInBox, "Text")
    Item.Move mydestFolder
    End If
    End Sub


    Function FindOrCreateFolder(inputFolder As Variant, folderName As String) As Outlook.MAPIFolder
    Dim curFolder As Outlook.MAPIFolder
    For Each curFolder In inputFolder.Folders
    If folderName = curFolder.Name Then
    Set FindOrCreateFolder = curFolder
    Exit Function
    End If
    Next curFolder
    Set FindOrCreateFolder = inputFolder.Folders.Add(folderName)
    End Function

    more...

    vba code : access sql server from outlook



    'Access SQL server from oputlook
    Sub AccessSQLServer(Item As Outlook.MailItem)
    Set con = CreateObject("ADODB.Connection")
    con.Open "driver={SQL Server};Uid=sa;server=myserv;pwd=mypass;database=mydb;"
    Set rs = CreateObject("ADODB.Recordset")
    rs.ActiveConnection = con
    rs.Open "SELECT * FROM MyTable"
    Do While Not rs.EOF
    MsgBox rs("id")
    rs.MoveNext
    Loop
    End Sub


    more...

    Friday

    C#(csharp) how to resize array (shrink) by Array.Copy

     

    /// <summary>
    /// Emails addresses creating.
    /// </summary>
    /// <param name="incom">The incoming array</param>
    /// <returns></returns>
    private EmailAddressType[] EmailAddressCreate(string[] incom) {
    if (incom == null) return null;
    EmailAddressType[] ret = new EmailAddressType[incom.Length];
    EmailAddressType[] rt;
    int i = 0;
    foreach (string s in incom) {
    if (!string.IsNullOrEmpty(s))
    {
    ret[i] = new EmailAddressType();
    ret[i].EmailAddress = s;
    i++;
    }
    }
    // change size of array
    if (i < incom.Length)
    {
    rt = new EmailAddressType[incom.Length];
    Array.Copy(rt, ret, i);
    }else
    {
    rt=ret;
    }

    return rt;
    }

    more...

    Sunday

    ASP.NET uploading files directly to a SQL database in C#

    asp-page-source
     <form id="form1" runat="server">
    Please upload file:<br />
    <asp:Literal ID="lit_Status" runat="server" /><br />
    <b>Name:</b>
    <asp:TextBox ID="FileName" runat="server" />
    <br />
    <b>File:</b>
    <asp:FileUpload ID="FileToUpload" runat="server" />
    <br />
    <asp:Button ID="btn_Upload" runat="server" Text="Upload" onclick="btn_Upload_Click" />
    </form>


    Code-behind source
     using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using System.Data.SqlClient;
    using System.Configuration;

    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btn_Upload_Click(object sender, EventArgs e)
    {
    if (FileToUpload.PostedFile == null || String.IsNullOrEmpty(FileToUpload.PostedFile.FileName) || FileToUpload.PostedFile.InputStream == null)
    {
    lit_Status.Text = "
    Error - unable to upload file. Please try again.
    ";
    }
    else
    {
    using (SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
    {
    try
    {
    const string SQL = "INSERT INTO [BinaryTable] ([FileName], [DateTimeUploaded], [MIME], [BinaryData]) VALUES (@FileName, @DateTimeUploaded, @MIME, @BinaryData)";
    SqlCommand cmd = new SqlCommand(SQL, Conn);
    cmd.Parameters.AddWithValue("@FileName", FileName.Text.Trim());
    cmd.Parameters.AddWithValue("@MIME", FileToUpload.PostedFile.ContentType);

    byte[] imageBytes = new byte[FileToUpload.PostedFile.InputStream.Length + 1];
    FileToUpload.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length);
    cmd.Parameters.AddWithValue("@BinaryData", imageBytes);
    cmd.Parameters.AddWithValue("@DateTimeUploaded", DateTime.Now);

    Conn.Open();
    cmd.ExecuteNonQuery();
    lit_Status.Text = "
    File successfully uploaded - thank you.
    ";
    Conn.Close();
    }
    catch
    {
    Conn.Close();
    }
    }
    }
    }
    }



    more...

    make ubuntu business casual

    to make ubuntu business casual - make it black remove background: gsettings set org.gnome.desktop.background picture-options ...