using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Web.Configuration;

namespace MvcApplication2.Controllers
{
    public class HomeController : Controller
    {
            public ActionResult Index()
            {
                return View();
            }
            //[ValidateInput(true)]
            [ValidateInput(false)]
            [HttpPost]
            public string DodajKomentarz(FormCollection formCollection)
            {
                return
                    "<br /><b> " + Server.HtmlEncode(formCollection[0])
                    + "</b><br />" + Server.HtmlEncode(formCollection[1])
                    + "<br />";
            }
            

            public ActionResult SzyfrowaniePlikuKonfiguracyjnego()
            {
                return View();
            }
            public ActionResult SzyfrujPlikKonfiguracyjny()
            {
                Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~/");
                ConfigurationSection configSection = webConfig.ConnectionStrings;

                string komunikat = "Podczas próby zaszyfrowania pliku konfiguracyjnego wystąpił błąd";
                if(configSection != null)
                {
                    if(configSection.SectionInformation.IsProtected)
                    {
                        komunikat = "Plik konfiguracyjny jest już zaszyfowany";
                    }
                    else
                    {
                        configSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                        webConfig.Save();
                        komunikat = "Plik konfiguracyjny został zaszyfrowany";
                    }
                }
                ViewBag.Komunikat = komunikat;
                return View("SzyfrowaniePlikuKonfiguracyjnego");
            }
            public ActionResult DeszyfrujPlikKonfiguracyjny()
            {
                Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~/");
                ConfigurationSection configSection = webConfig.ConnectionStrings;

                string komunikat = "Podczas próby zdeszyfrowania pliku konfiguracyjnego wystąpił błąd";
                if (configSection != null)
                {
                    if (configSection.SectionInformation.IsProtected)
                    {
                        komunikat = "Plik konfiguracyjny jest już zaszyfowany";
                    }
                    else
                    {
                        configSection.SectionInformation.UnprotectSection();
                        webConfig.Save();
                        komunikat = "Plik konfiguracyjny został zdeszyfrowany";
                    }
                }
                ViewBag.Komunikat = komunikat;
                return View("SzyfrowaniePlikuKonfiguracyjnego");

            }

            public ActionResult WyswietlPlikKonfiguracyjny()
            {
                return File(Server.MapPath("~/Web.config"),"text/plain");
            }
            
            public ActionResult WyswietlMojePolaczenie()
            {
                ViewBag.Komunikat = WebConfigurationManager.ConnectionStrings["MojePolaczenie"].ConnectionString;

                return View("SzyfrowaniePlikuKonfiguracyjnego");
            }
    }
}
