Example #1
0
        private List <UserRepetitionIntervalItem> ConvertToItems(long sourceLanguageId,
                                                                 long translationLanguageId,
                                                                 IEnumerable
                                                                 <Tuple <UserKnowledge, UserRepetitionInterval> >
                                                                 joinedData,
                                                                 DateTime unknownNextTimeToShow)
        {
            var userKnowledges       = new List <UserKnowledge>();
            var repetitionsByItemIds = new Dictionary <long, UserRepetitionInterval>();

            foreach (var joinedRow in joinedData)
            {
                UserKnowledge          uk  = joinedRow.Item1;
                UserRepetitionInterval uri = joinedRow.Item2;
                userKnowledges.Add(uk);
                repetitionsByItemIds.Add(uk.Id, uri);
            }

            List <UserKnowledgeItem> items = _userKnowledgeQuery.ConvertEntitiesToItems(sourceLanguageId,
                                                                                        translationLanguageId,
                                                                                        userKnowledges);
            var innerResult = new List <UserRepetitionIntervalItem>();

            foreach (UserKnowledgeItem userKnowledgeItem in items)
            {
                long id = userKnowledgeItem.Id;
                UserRepetitionInterval repetitionItem = repetitionsByItemIds[id];
                var item = new UserRepetitionIntervalItem(repetitionItem, userKnowledgeItem, unknownNextTimeToShow);
                innerResult.Add(item);
            }

            return(innerResult);
        }
Example #2
0
        private Tuple <KnowledgeAddStatus, UserKnowledge> ConvertItemToEntity(string hash,
                                                                              UserKnowledgeItem knowledgeItem,
                                                                              StudyLanguageContext c)
        {
            if (IsInvalid(knowledgeItem))
            {
                LoggerWrapper.LogTo(LoggerName.Errors).ErrorFormat(
                    "UserKnowledgeQuery.Add переданы некорректные данные пользователю. Идентификатор пользователя {0}, идентификатор языка {1}, новый пункт знаний {2}",
                    _userId, _languageId, KnowledgeToLogString(knowledgeItem));
                return(new Tuple <KnowledgeAddStatus, UserKnowledge>(KnowledgeAddStatus.Error, null));
            }

            UserKnowledge userKnowledge = c.UserKnowledge.FirstOrDefault(e => e.Hash == hash);

            if (userKnowledge != null)
            {
                if (GetDefaultDeletedDate() == userKnowledge.DeletedDate)
                {
                    return(new Tuple <KnowledgeAddStatus, UserKnowledge>(KnowledgeAddStatus.AlreadyExists, userKnowledge));
                }
                userKnowledge.CreationDate = DateTime.Now;
                userKnowledge.DeletedDate  = GetDefaultDeletedDate();
            }
            else
            {
                userKnowledge = AddKnowledge(knowledgeItem, c);
            }

            return(new Tuple <KnowledgeAddStatus, UserKnowledge>(KnowledgeAddStatus.Ok, userKnowledge));
        }
Example #3
0
 internal UserKnowledgeItem(UserKnowledge userKnowledge)
 {
     Id           = userKnowledge.Id;
     DataId       = userKnowledge.DataId.HasValue ? userKnowledge.DataId.Value : IdValidator.INVALID_ID;
     DataType     = (KnowledgeDataType)userKnowledge.DataType;
     Data         = userKnowledge.Data;
     Tip          = userKnowledge.Tip;
     CreationDate = userKnowledge.CreationDate;
 }
Example #4
0
        private UserKnowledge AddKnowledge(UserKnowledgeItem knowledgeItem, StudyLanguageContext c)
        {
            var userKnowledge = new UserKnowledge {
                UserId       = _userId,
                LanguageId   = _languageId,
                Data         = knowledgeItem.Data,
                DataId       = knowledgeItem.DataId,
                DataType     = (int)knowledgeItem.DataType,
                Tip          = knowledgeItem.Tip,
                Status       = (byte)KnowledgeStatus.New,
                CreationDate = DateTime.Now,
                DeletedDate  = GetDefaultDeletedDate(),
                SystemData   = knowledgeItem.SystemData,
                Hash         = GetUniqueHash(knowledgeItem)
            };

            c.UserKnowledge.Add(userKnowledge);
            return(userKnowledge);
        }
        private Tuple <UserKnowledge, UserRepetitionInterval> ConvertRow(RepresentationArea area,
                                                                         UserRepetitionInterval userRepetitionInterval)
        {
            DateTime minDateTime   = new DateTime().GetDbDateTime();
            var      userKnowledge = new UserKnowledge {
                Id           = area.Id,
                DataId       = area.WordTranslationId,
                DataType     = _dataType,
                Data         = null,
                UserId       = _userId,
                LanguageId   = _languageId,
                CreationDate = minDateTime,
                DeletedDate  = minDateTime,
                Hash         = null,
                Tip          = null,
                SystemData   = null,
                Status       = (int)KnowledgeStatus.Unknown
            };

            return(new Tuple <UserKnowledge, UserRepetitionInterval>(userKnowledge, userRepetitionInterval));
        }