FileHelper pour Winrt - Windows Phone et Windows 8.1

 01/01/2019 |   Admin |  Xamarin


Il existe des API du Framework .NET qui n'existent pas dans les API .NET des Windows Store Apps.

Par exemple Sytem.IO, dans l'API .Net pour les Windows Apps ne contient pas System.IO.IsolatedStorage mais Windows.Storage.

Cette API fournit un comportement similaire mais son utiliastion est très différente. 

Après le développement de plusieurs applications Windows Store, j'ai remarqué que le développement d'une classe FileHelper serait utile.

En effet, des méthodes comme FileExists() ou FolderExists() ne sont pas proposés par Windows.Storage alors que leur utilisation est quasiment inévitable.

J'ai donc décidé de mettre ce code sur GitHub pour qu'il puisse être réutilisé et amélioré. Le code source ainsi que le sample d'une Universal Apps sont disponibles.

Voici la liste des fonctions majeures proposées :

FileHelper :

FileExistsAsync()

FolderExistsAsync()

GetFileStreamAsync()

GetContentFromFileAsync()

GetFileBytesAsync()

WriteToFileAsync()

ConvertStorageFileToBase64StringAsync()

EnumerateFilesAsync()

GetSubFoldersAsync()

DeserialiseXml<T>()

ZipHelper :

ZipFileAsync()

UnZipFileAsync()

Vous pouvez retrouver ce projet sur GitHub et le package nuget correspondant : Ph.WinRtFileHelper

Lire >>

Transformer un label "DateTime" dans une GridView dans un format désiré

 01/01/2019 |   Admin |  C#


A placer après le DataBind() de la GridView

// Transformation du format de la date
for (int i = 0; i < gvLigne.Rows.Count; i++)
{
Label lblGvDate = gvLigne.Rows[i].FindControl("lblGvDate") as Label;
DateTime theDate = Convert.ToDateTime(lblGvDate.Text);
lblGvDate.Text = theDate.Day.ToString() + " " + this.GetMonthString(theDate.Month) + " " + theDate.Year.ToString();
 

}

 

///<summary>
/// Retourne la valeur du mois sous forme de chaine de caractere
///</summary>
///<param name="monthValue">Le numéro du mois</param>
///<returns>Le mois sous format chaine de caractère</returns>
public string GetMonthString(int monthValue)
{
switch (monthValue)
{
case 1:
return Resources.XX.Common_Janvier;
 
case 2:
return Resources.XX.Common_Fevrier;
 
case 3:
return Resources.XX.Common_Mars;
 
case 4:
return Resources.XX.Common_Avril;
 
case 5:
return Resources.XX.Common_Mai;
 
case 6:
return Resources.XX.Common_Juin;
 
case 7:
return Resources.XX.Common_Juillet;
 
case 8:
return Resources.XX.Common_Aout;
 
case 9:
return Resources.XX.Common_Septembre;
 
case 10:
return Resources.XX.Common_Octobre;
 
case 11:
return Resources.XX.Common_Novembre;
 
case 12:
return Resources.XX.Common_Decembre;
 
default:
return "erreur";
}

 

Lire >>

Déclencher un évènement depuis un popup

 01/01/2019 |   Admin |  C#


Dans le popup (.ascx.cs)

- Définition de l'évènement :(A placer entre les "using" et le nom de la classe)

public delegate void MyEventFormationHandler();

- Déclaration de l'évènement :

public event MyEventTotoHandler MyEventToto;

- Déclencher l'évènement :

if (MyEventToto != null)
{
MyEventToto();
}

 

 

Dans la page (aspx.cs)

- Dans la méthode OnLoad :

LePopup.MyEventToto += new MyEventTotoHandler(popupToto_MyEventToto);

- Ajouter la méthode déclenchée lors de l'évènement :

void popupFormationAssociee_MyEventFormation()
{
…………………
…………………
}

Lire >>

Redimensionner une image

 01/01/2019 |   Admin |  C#


Redimensionner une image qui gardera ses proportions avec une hauteur de 100px :

 

private void redim(string path, string imgName, string pathToSave)

{

Bitmap origine = new Bitmap(path);

int x = origine.Size.Width ;

int y = origine.Size.Height;

int nY = 100;

int nX = (x * nY) / y;

Bitmap aRedim = new Bitmap(origine, new Size(nX,nY));

aRedim.Save(pathToSave + imgName);

}

Lire >>

Cookies, variables de sessions et QueryString

 01/01/2019 |   Admin |  C#

Tags: Cookie

Créer un cookie

HttpCookie cookie = new HttpCookie("UserSettings");

cookie["Color"] = "Red";

cookie.Expires = DateTime.Now.AddDays(2);

Response.Cookies.Add(cookie);

Ou

Request.Cookies["Colors"]["TextColor"] = "Red";


 

Lire un cookie

if (Request.Cookies["Colors"][" TextColor"] != null)

{

string color = Request.Cookies["Colors"]["TextColor"];

}

Créer une variable de session

Session["color"] = Color.Red;

 

Lire une variable de session

string sess = Session["color"].ToString();

 

Récupérer une QueryString depuis l'URL du navigateur

Request.QueryString["name"].ToString();

Lire >>

Remplir une DropDownList à partir d'un fichier XML

 01/01/2019 |   Admin |  C#


protected void populateDdlAlbum()

{

DataSet ds = new DataSet();

ds.ReadXml(FichierXml);

ddlAlbum.DataSource = ds.Tables["RootAlbum"];

ddlAlbum.DataTextField = ds.Tables["RootAlbum"].Columns["name"].ToString();

ddlAlbum.DataValueField = ds.Tables["RootAlbum"].Columns["id"].ToString();

ddlAlbum.DataBind();

}

Lire >>

Simple ajax loader en javascript

 01/01/2019 |   Admin |  Javascript


Code Javascript

<script language="javascript" type="text/javascript">
function displayProgress()
{
    var hdn = document.getElementById('<%=hdnStatus.ClientID%>');
    var div = document.getElementById('<%=pnlBackGround.ClientID %>');
    if (div !=null)
    {
        var feedback = document.getElementById('<%=divFeedback.ClientID%>');
        if (hdn.value!=1)
        {
            feedback.innerHTML = "<img src='../Images/ajax-loader.gif'>Please wait...<br />";
            div.style.display = "block";
            setTimeout("displayProgress()", 1000);
            return true;
        }
        else
        {
            div.style.display = "none";
            return true;
        }
    }
    else
    {
        return true;
    }
}
</script>

Style Css

.popup-div-background
{
    position:absolute;
    top: 0;
    left: 0;
    background-color:#ccc;
    filter:alpha(opacity=90);
    opacity:0.9;  
    height: 100%;
    width: 100%;
    min-height: 100%;
    min-width: 100%
}
.popup-div-front
{
    background-color: #ffffff;
    color: black;
    width: 70%;
    text-align: left;
    vertical-align: middle;
    position: absolute;
    top: 5%;
    left: 15%;
    bottom:5%;
    font-weight:bold;
    padding: 10px 5px 5px
...

Lire >>

Remplir un menu depuis une base de données

 01/01/2019 |   Admin |  Sql Server


protected void makeMenu()

    {

        DataSet ds = GetDataSetForMenu();

 

        foreach (DataRow parentItem in ds.Tables["Categories"].Rows)

        {

            MenuItem categoryItem = new MenuItem((string)parentItem["CategoryName"]);

            menuAsp.Items.Add(categoryItem);

 

            foreach (DataRow childItem in parentItem.GetChildRows("Children"))

            {

                MenuItem childrenItem = new MenuItem((string)childItem["ProductName"]);

                categoryItem.ChildItems.Add(childrenItem);

            }

        }

    }

 

 

    private DataSet GetDataSetForMenu()

    {

        string connec = La ConnectionString;

 

        SqlConnection myConnection = new SqlConnection(connec);

        SqlDataAdapter adCat = new SqlDataAdapter("SELECT * FROM Categories", myConnection);

        SqlDataAdapter adProd = new SqlDataAdapter("SELECT * FROM Products", myConnection);

 

        DataSet ds = new DataSet();

        adCat.Fill(ds, "Categories");

        adProd.Fill(ds, "Products");

 

        ds.Relations.Add("Children", ds.Tables["Categories"].Columns["CategoryID"], ds.Tables["Products"].Columns["CategoryID"]);

        return ds;

 

    }   

 

Lire >>