using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.IsolatedStorage;

namespace co_zpracování
{
    internal static class IsolatedStorage
    {
        /// <summary>
        /// Zapisuje do IsolatedStorage
        /// </summary>
        /// <param name="Nazev">Název souboru</param>
        /// <param name="text">Text souboru</param>
        internal static void ZapisSoubor(string Nazev, string text)
        {
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

            string[] fileNames = isoStore.GetFileNames(Nazev);

            if (fileNames.Length > 0)
                isoStore.DeleteFile(Nazev);

            using(System.IO.StreamWriter writer = new System.IO.StreamWriter(new IsolatedStorageFileStream(Nazev, System.IO.FileMode.CreateNew, isoStore)))
            {
                writer.Write(text);
                writer.Close();
            }
        }
        /// <summary>
        /// Čte soubor z IsolatedStorage
        /// </summary>
        /// <param name="soubor">Název souboru</param>
        /// <returns></returns>
        internal static string CtiSoubor(string soubor)
        {
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

            string[] fileNames = isoStore.GetFileNames(soubor);

            if(fileNames.Length == 1)
            {
                string textSouboru;
                using(System.IO.StreamReader reader = new System.IO.StreamReader(new IsolatedStorageFileStream(soubor, System.IO.FileMode.Open, isoStore)))
                {
                    textSouboru = reader.ReadToEnd();
                    reader.Close();
                }
                return textSouboru;
            }
            else
            {
                throw new System.IO.FileNotFoundException("Soubor" + soubor + "nebyl nalezen.");
            }
        }
        /// <summary>
        /// Existuje hledaný soubor?
        /// </summary>
        /// <param name="nazev"></param>
        /// <returns></returns>
        internal static bool ExistujeSoubor(string nazev)
        {
            using (var slozka = IsolatedStorageFile.GetUserStoreForAssembly())
            {
                return slozka.FileExists(nazev);
            } 
        }
    }
}
