public void Get(BaseModel <List <DialogueRecordResponse> > model, DialogueRecordRequest request)
        {
            if (onlineCustomerServiceContext == null)
            {
                return;
            }

            IQueryable <DialogueRecord> queryable = onlineCustomerServiceContext.DialogueRecord.Where(
                record =>
                (request.AdminId < 1 || record.AdminId == request.AdminId) &&
                (request.UserId < 1 || record.UserId == request.UserId)
                ).Select(column => new DialogueRecord()
            {
                Id = column.Id, UserId = column.UserId, UserName = column.UserName, Question = column.Question, CreateTime = column.CreateTime
            });

            Int32 pageCount = queryable.Count();
            List <DialogueRecordResponse> result = new List <DialogueRecordResponse>();

            foreach (DialogueRecord record in queryable.Pagination(model.PageIndex, model.PageSize))
            {
                result.Add(Mapper(record));
            }

            model.Success   = true;
            model.PageCount = pageCount;
            model.Result    = result;
        }
Esempio n. 2
0
        private void SaveDialogue()
        {
            if (!work)
            {
                return;
            }

            /* 取出快取對話紀錄 */
            BaseModel <List <String> > model = new BaseModel <List <String> >();

            DialogueRecordCacheRequest request = new DialogueRecordCacheRequest();

            request.Id = WebSocketClientId;

            dialogueRecordCacheDAO.Get(model, request);

            if (!model.Success)
            {
                return;
            }

            /* 保存對話至資料庫 */
            BaseModel <String> model2 = new BaseModel <String>();

            DialogueRecordRequest request2 = new DialogueRecordRequest();

            request2.AdminId  = AdminId;
            request2.UserName = clientName;
            request2.Mail     = clientMail;
            request2.Phone    = clientPhone;
            request2.Question = clientQuestion;
            request2.Record   = JsonConvert.SerializeObject(model.Result);

            dialogueRecordDAO.Add(model2, request2);

            if (!model2.Success)
            {
                return;
            }

            /* 刪除快取對話紀錄 */
            BaseModel <String> model3 = new BaseModel <String>();

            dialogueRecordCacheDAO.Delete(model3, request);

            if (!model3.Success)
            {
                return;
            }
        }
        public void Add(BaseModel <String> model, DialogueRecordRequest request)
        {
            if (onlineCustomerServiceContext == null)
            {
                return;
            }

            DialogueRecord dialogueRecord = Mapper(request);

            onlineCustomerServiceContext.DialogueRecord.Add(dialogueRecord);
            onlineCustomerServiceContext.SaveChanges();

            model.Success = true;
            model.Result  = Convert.ToString(dialogueRecord.Id);
        }
        private DialogueRecord Mapper(DialogueRecordRequest request)
        {
            DialogueRecord model = new DialogueRecord();

            model.Id       = request.Id;
            model.AdminId  = request.AdminId;
            model.UserId   = request.UserId;
            model.UserName = request.UserName;
            model.Mail     = request.Mail;
            model.Phone    = request.Phone;
            model.Question = request.Question;
            model.Record   = request.Record;

            return(model);
        }
        public void Detail(BaseModel <DialogueRecordResponse> model, DialogueRecordRequest request)
        {
            if (onlineCustomerServiceContext == null)
            {
                return;
            }

            if (request.Id < 1)
            {
                return;
            }

            IQueryable <DialogueRecord> queryable = onlineCustomerServiceContext.DialogueRecord.Where(record => record.Id == request.Id);

            model.Success = true;
            model.Result  = Mapper(queryable.First());
        }