public object Post(object modelParam)
        {
            try
            {
                var model = JsonConvert.DeserializeObject <QuizzmateMsgModel>(modelParam.ToString());
                if (model == null)
                {
                    return(null);
                }

                QuizzmateMsg1 entity = null;
                model.MapToNew(out entity);

                _uow.QuizzmateMsg1s.Add(entity);
                _uow.SaveChanges();

                model = MappingUtil.Map <QuizzmateMsg1, QuizzmateMsgModel>(entity);

                return(model);
            }
            catch (Exception ex)
            {
                _svcContainer.LoggingSvc.Log(ex);
                return(null);
            }
        }
示例#2
0
        private void SaveQuizzmateMessage(int qmThreadId, int userId, string message)
        {
            try
            {
                var msgEntity = new QuizzmateMsg1
                {
                    Message              = message,
                    PostedDate           = DateTime.UtcNow,
                    QuizzmateMsgThreadId = qmThreadId,
                    AuthorId             = userId
                };
                _uow.QuizzmateMsg1s.Add(msgEntity);

                var thread = _uow.QuizzmateMsgThreads.GetAll()
                             .Where(qm => qm.Id == qmThreadId)
                             .Include(qm => qm.MsgThreadMembers)
                             .FirstOrDefault();

                foreach (var item in thread.MsgThreadMembers)
                {
                    if (item.UserId != userId)
                    {
                        SendLayoutMsg(item.UserId, LayoutHubNotificationTypeEnum.QuizzmateMsg, qmThreadId);

                        var aqmThreadMember = activeQmThreadMembers
                                              .Where(q => q.UserId == item.UserId && q.QuizzmateMsgThreadId == qmThreadId)
                                              .FirstOrDefault();
                        if (aqmThreadMember == null)
                        {
                            item.HasNew = true;
                            item.NewCount++;
                            item.UpdatedDate = DateTime.UtcNow;
                            _uow.QuizzmateMsgThreadMembers.Update(item);
                        }
                    }
                }

                _uow.SaveChanges();
            }
            catch (Exception ex)
            {
                Log(ex);
                return;
            }
        }