/// <summary>
        /// Funkcja dodająca do kolejki nowe zwolnienie
        /// </summary>
        /// <param name="sickLeave">Zwolnieniem, które nie zostało poprawnie wysłane i ma być dodane do kolejki</param>
        public static void AddToResend(SickLeave sickLeave)
        {
            SickLeaveResender tmp = SickLeaveResender.Load();

            tmp.toResend.Enqueue(sickLeave);
            tmp.Save();
        }
        public SickLeave(string JSONString)
        {
            var       serializer = new JavaScriptSerializer();
            SickLeave sickLeave  = serializer.Deserialize <SickLeave>(JSONString);

            Patient       = sickLeave.Patient;
            SickLeaveType = sickLeave.SickLeaveType;
            StartDate     = sickLeave.StartDate;
            EndDate       = sickLeave.EndDate;
            Symptoms      = sickLeave.Symptoms;
        }
        /// <summary>
        /// Funkcja wykonująca próbę wysłania dla każdego zwolnienia w kolejce
        /// </summary>
        public void TrySending()
        {
            int numberToTry = toResend.Count;

            for (int i = 0; i < numberToTry; i++)
            {
                SickLeave toSend           = toResend.Dequeue();
                string    connectionString = FirmLocalDataBase.Initialize().FindFirmConnectionByNIP(toSend.Patient._NIP.ToString());

                bool outcome = SickLeaveSender.SendToSQLServer(toSend, connectionString);
                if (!outcome)
                {
                    toResend.Enqueue(toSend);
                }

                Reporter.RaportSickLeaveResending(outcome);
            }

            Save();
        }