using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using WebApplication1.Models;

namespace WebApplication1 {
	public class MvcApplication : System.Web.HttpApplication {
		protected void Application_Start() {
			AreaRegistration.RegisterAllAreas();
			FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
			System.Web.Http.GlobalConfiguration.Configure( WebApiConfig.Register );
			RouteConfig.RegisterRoutes( RouteTable.Routes );
			BundleConfig.RegisterBundles( BundleTable.Bundles );

			if( File.Exists( ModeleCompteurs.CheminFichierNbDeVisiteurs ) ) {
				using( var f = new StreamReader( ModeleCompteurs.CheminFichierNbDeVisiteurs ) ) {
					ModeleCompteurs.NbDeVisiteurs = int.Parse( f.ReadLine() );
				}
			}
			else {
				ModeleCompteurs.NbDeVisiteurs = 0;
			}

		}
		protected void Session_Start() {
			Session["N"] = 100;
			HttpContext.Current.Application.Lock();
			ModeleCompteurs.NbDeVisitesDeLUtilisateurSurLeSite++;
			ModeleCompteurs.NbDeVisiteurs++;
			HttpContext.Current.Application.UnLock();
		}
		protected void Session_End() {
			var fichierCaddie = $"{HttpRuntime.AppDomainAppPath}Repositories/ArticleCommerceRepository/Caddie_{Session.SessionID}.tsv";
			if( File.Exists( fichierCaddie ) )
				File.Delete( fichierCaddie );
		}
	}
}
