Example #1
0
        private static Developer CreateAnonymousDeveloper(IDeveloperCollection developerCollection)
        {
            var anonymousDeveloper = new Developer();

            developerCollection.Insert(anonymousDeveloper);
            return(anonymousDeveloper);
        }
Example #2
0
        private static Developer FindOrCreateCurrentDeveloper(string ideSessionUUID,
                                                              IDeveloperCollection developerCollection)
        {
            if (ideSessionUUID == null)
            {
                return(CreateAnonymousDeveloper(developerCollection));
            }
            var candidates = developerCollection.FindBySessionId(ideSessionUUID);

            switch (candidates.Count)
            {
            case 0:
                var newDeveloper = new Developer();
                newDeveloper.SessionIds.Add(ideSessionUUID);
                developerCollection.Insert(newDeveloper);
                return(newDeveloper);

            case 1:
                return(candidates.First());

            default:
                _logger.Error("More than one developer with the same session id encountered:");
                _logger.Error(" - Session Id: {0}", ideSessionUUID);
                _logger.Error(" - {0} developers with same id:", candidates.Count);
                foreach (var developer in candidates)
                {
                    _logger.Error("   - Developer: {0}", developer.Id);
                }
                throw new Exception("More than one developer with the same session id encountered");
            }
        }