public ActionResult CreatePopupClient(int id)
        {
            ClientViewModel clientViewModel = new ClientViewModel();

            var client = UtilisateurService.GetEntityById(id);
            clientViewModel = Mapper.Map<Client, ClientViewModel>(client.Valeur);

            return PartialView(clientViewModel);
        }
        public ActionResult Pseudo(ClientViewModel model)
        {
            var result = UtilisateurService.IsPseudoUnique(model.Pseudo);

            if (result.IsValid)
            {
                if (result.Valeur == true)
                    return null;
                else
                {
                    return Json(new
                    {
                        Success = true
                    });
                }
            }
            else
            {
                return null;
            }
        }
        public ActionResult Inscrire(HttpPostedFileBase file, ClientViewModel registerModel)
        {
            if (!ModelState.IsValid || (registerModel.Password != registerModel.ConfirmPassword))
            {
                return View(registerModel);

            }
            var createClientCommand = Mapper.Map<ClientViewModel, CreateClientCommand>(registerModel);

            byte[] doc;

            // On utilise l'utilisateur a uploader uniquement des jpeg et des png
            if (file != null)
            {
                if ((file.ContentType == "image/jpeg" || file.ContentType == "image/x-png") && file.FileName.Length < 100 && file.ContentLength < 2000000)
                {

                    // on récupère le fichier dans un format exploitable (tableau de byte) et on le tronque a la volé !
                    doc = ImageService.Resize(file, 80, 100, null);
                    file.InputStream.Read(doc, 0, file.ContentLength);
                }
                else
                {
                    doc = new byte[1];
                }
            }
            else
            {
                //Default Avatar mise en place dans le service, on drop l'envoi par le null et on lui balance l'image par default

                //string path = Url.Content("~/Content/themes/base/images/Content/Account/DefaultAvatar.jpg");
                //System.Drawing.Image defaultImage = System.Drawing.Image.FromStream();

                string path = Server.MapPath("////Content/themes/base/images/Content/Account/DefaultAvatar.jpg");
                System.Drawing.Image defaultImage = System.Drawing.Image.FromFile(path);

                doc = ImageService.Resize(null, 80, 100, defaultImage);
            }

            //On ajoute l'avatar a la commande
            createClientCommand.Avatar = doc;

            //On ajoute le Privilege a la commande, ici, toujours un CLIENT !
            createClientCommand.Role = Privilege.Client;

            var result = ClientService.CreateClient(createClientCommand);

            if (result.IsValid)
            {
                var resultat = UtilisateurService.ValidateEntity(result.Valeur.Pseudo, registerModel.Password);

                if (resultat.IsValid)
                {
                    TempData["Message"] = "Le client a ete cree avec succes !";
                    return RedirectToAction("Inscrire", "Client");
                }
                else
                {
                    //Pour les dev
                    foreach (var erreur in result.Erreurs)
                    {
                        ModelState.AddModelError(erreur.ExecutionException.Source, erreur.ExecutionException);
                    }

                    //Pour les gens (affiche la page error.cshtml
                    throw new Exception("Erreur inattendue dans l'application");
                }
            }
            else
            {
                //Pour les dev
                foreach (var erreur in result.Erreurs)
                {
                    ModelState.AddModelError(erreur.ExecutionException.Source, erreur.ExecutionException);
                }

                //Pour les gens (affiche la page error.cshtml
                throw new Exception("Erreur inattendue dans l'application");
            }
        }