using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Properties;

namespace WebApplication1.Controllers {
  public class UploadController : Controller {
    public ActionResult Index() {
      if( ViewBag.Message == null )
        ViewBag.Message = "Envoyez un fichier";
      ViewBag.Fichiers = Directory.GetFiles( Server.MapPath( Settings.Default.DossierFichiersUtilisateur ) ).Select( f => Path.GetFileName( f ) );
      return View("Index");
    }
    private string FormaterFichierIndex( string f, int i ) {
      return string.Format( "{0}/{1}{2}{3}",
        Server.MapPath( Settings.Default.DossierFichiersUtilisateur ),
        Path.GetFileNameWithoutExtension( f ),
        i > 0 ? " (" + i + ")" : string.Empty,
        Path.GetExtension( f ) );
    }
    [HttpPost, ActionName( "Index" )]
    public ActionResult Enregistrer( HttpPostedFileBase fichier ) {
      string f;
			{
				ControllerContext.HttpContext.Application.Lock();
				for( int i = 0; System.IO.File.Exists( f = FormaterFichierIndex( fichier.FileName, i ) ); i++ ) ;
				fichier.SaveAs( f );
				ControllerContext.HttpContext.Application.UnLock();
			}
			ViewBag.Message = "Sauvé sous le nom " + Path.GetFileName( f ) + ", envoyez un autre fichier";
      return Index();
    }
  }
}