/// <summary>
    /// Checks all conditions from Settings Window and determines it they are met or not
    /// </summary>
    /// <returns></returns>
    private bool CanShowRate()
    {
        bool sessionCountReached;
        bool customEventsReached;
        bool timeSinceStartReached;
        bool timeSinceOpenReached;
        int  fisrtShow = SaveValues.IsFirstShow();

        if (fisrtShow > 1)
        {
            return(false);
        }

        if (fisrtShow == 0)
        {
            sessionCountReached   = IsSessionCountReached(RateGameSettings.firstShowSettings);
            customEventsReached   = IsCustomEventReached(RateGameSettings.firstShowSettings);
            timeSinceStartReached = IsTimeSinceStartReached(RateGameSettings.firstShowSettings);
            timeSinceOpenReached  = IsTimeSinceOpenReached(RateGameSettings.firstShowSettings);
        }
        else
        {
            sessionCountReached   = IsSessionCountReached(RateGameSettings.postponeSettings);
            customEventsReached   = IsCustomEventReached(RateGameSettings.postponeSettings);
            timeSinceStartReached = IsTimeSinceStartReached(RateGameSettings.postponeSettings);
            timeSinceOpenReached  = IsTimeSinceOpenReached(RateGameSettings.postponeSettings);
        }

        if (sessionCountReached && customEventsReached && timeSinceStartReached && timeSinceOpenReached)
        {
            return(true);
        }

        return(false);
    }