Пример #1
0
        public FuncResult <Session> GetSessionSave(string sessionId)
        {
            if (settings.IsEnabledFileCache && inMemoryStorage.DoesSessionExist(sessionId))
            {
                return(inMemoryStorage.GetSessionSave(sessionId));
            }

            var resultFromFile = dataProvider.GetSessionSave(sessionId);

            if (resultFromFile.IsSuccessful)
            {
                inMemoryStorage.Add(resultFromFile.Value);
                return(resultFromFile);
            }

            if (settings.IsSessionAutoCreate)
            {
                var session = inMemoryStorage.CreateSession(sessionId);
                return(session.AsFuncResult());
            }

            return(FuncResult.Failed <Session>());
        }