public ActionResult Create(FormCollection collection, GroupWord model)
        {
            try
            {
                model.Id        = Public.GetID2();
                model.Word      = collection["Word"];
                model.C1        = 0;
                model.C2        = 0;
                model.C3        = 0;
                model.C4        = 0;
                model.C5        = 0;
                model.ProductId = collection["ProductId"];


                db.GroupWords.Add(model);
                db.SaveChanges();
                TempData["success"] = "Thêm thành công.";

                return(RedirectToAction("List", new { id = model.ProductId }));
            }
            catch
            {
                TempData["error"] = "Thêm lỗi.";
                return(RedirectToAction("List"));
            }
        }
示例#2
0
        /// <summary>
        /// Создает слова для группы
        /// </summary>
        /// <param name="groupForUser">группа, к которой нужно добавить слово</param>
        /// <param name="source">слово</param>
        /// <param name="translation">перевод</param>
        /// <param name="image">изображение для слова</param>
        /// <param name="rating">рейтинг</param>
        /// <returns>созданные слова для группы, или ничего</returns>
        public SourceWithTranslation GetOrCreate(GroupForUser groupForUser,
                                                 PronunciationForUser source,
                                                 PronunciationForUser translation,
                                                 byte[] image,
                                                 int?rating)
        {
            var wordsQuery = new WordsQuery();
            WordWithTranslation wordWithTranslation = wordsQuery.GetOrCreate(source, translation, image,
                                                                             WordType.Default, null);

            if (wordWithTranslation == null)
            {
                return(null);
            }
            SourceWithTranslation result = Adapter.ReadByContext(c => {
                var wordsWithTranslationsQuery = (from w1 in c.Word
                                                  join wt in c.WordTranslation on w1.Id equals wt.WordId1
                                                  join gw in c.GroupWord on wt.Id equals gw.WordTranslationId
                                                  join w2 in c.Word on wt.WordId2 equals w2.Id
                                                  where gw.GroupId == groupForUser.Id && wt.Id == wordWithTranslation.Id
                                                  select new { gw, wt, w1, w2 });
                var firstRecord = wordsWithTranslationsQuery.AsEnumerable().FirstOrDefault();
                if (firstRecord == null)
                {
                    return(null);
                }
                //сохранить возможно изменившийся рейтинг
                GroupWord groupWord = firstRecord.gw;
                groupWord.Rating    = rating;
                c.SaveChanges();

                SourceWithTranslation innerResult = ConverterEntities.ConvertToSourceWithTranslation(firstRecord.wt.Id,
                                                                                                     firstRecord.wt.
                                                                                                     Image,
                                                                                                     wordWithTranslation
                                                                                                     .Source.
                                                                                                     LanguageId,
                                                                                                     firstRecord.w1,
                                                                                                     firstRecord.w2);
                return(innerResult);
            });

            if (result == null)
            {
                result = Create(groupForUser, wordWithTranslation, rating);
            }
            return(result);
        }
示例#3
0
        private SourceWithTranslation Create(GroupForUser groupForUser,
                                             WordWithTranslation wordWithTranslation,
                                             int?rating)
        {
            SourceWithTranslation result = null;

            Adapter.ActionByContext(context => {
                var groupWord = new GroupWord
                {
                    WordTranslationId = wordWithTranslation.Id, GroupId = groupForUser.Id, Rating = rating
                };
                context.GroupWord.Add(groupWord);
                context.SaveChanges();
                if (IdValidator.IsValid(groupWord.Id))
                {
                    result = new SourceWithTranslation();
                    result.Set(groupWord.Id, wordWithTranslation.Source, wordWithTranslation.Translations[0]);
                }
            });
            return(result);
        }
示例#4
0
        private Tuple <UserKnowledge, UserRepetitionInterval> ConvertRow(GroupWord groupWord,
                                                                         UserRepetitionInterval userRepetitionInterval)
        {
            DateTime minDateTime   = new DateTime().GetDbDateTime();
            var      userKnowledge = new UserKnowledge {
                Id           = groupWord.Id,
                DataId       = groupWord.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));
        }