Пример #1
0
        public void get_Todo_should_call_GetTodoItem_from_dataAccess_with_correct_params()
        {
            var mockTodoItemsDataAccess = MockRepository.Create <IListDataAccess>();

            mockTodoItemsDataAccess.SetupAllProperties();

            var mockDocumentSession = MockRepository.Create <IDocumentSession>();

            mockDocumentSession.SetupAllProperties();

            var todoGetReqeust = new TodoGetRequest {
                Id = "item1"
            };

            var endpoint = new TodoItemEndpoint(mockTodoItemsDataAccess.Object,
                                                mockDocumentSession.Object);

            endpoint.get_Todo(todoGetReqeust);

            mockTodoItemsDataAccess.Verify(
                todoItemDataAccess => todoItemDataAccess.GetItem(todoGetReqeust.Id));
        }
        public ResponseResult <TodoViewModel> GetTodo([FromBody] TodoGetRequest model)
        {
            try
            {
                //换取OpenId
                var result = getOpenId(model);
                if (result.ErrCode != 0)
                {
                    logger.Error(result.ErrMsg);
                    return(new ResponseResult <TodoViewModel>()
                    {
                        ErrCode = 1002,
                        ErrMsg = result.ErrMsg,
                        Data = null
                    });
                }
                //通过OpenId获取UserId
                Guid userId = getUserId(result.Data);

                //权限判定
                if (!hasAuthority(userId, model.TodoId))
                {
                    return(new ResponseResult <TodoViewModel>()
                    {
                        ErrCode = 1004,
                        ErrMsg = "没有权限获取该Todo",
                        Data = null
                    });
                }

                //查询Todo
                var todo = (from t in _todoContext.Todos
                            where t.TodoId == model.TodoId
                            select t).FirstOrDefault();
                if (todo == null)
                {
                    return(new ResponseResult <TodoViewModel>()
                    {
                        ErrCode = 1005,
                        ErrMsg = "Todo不存在",
                        Data = null
                    });
                }

                return(new ResponseResult <TodoViewModel>()
                {
                    ErrCode = 0,
                    ErrMsg = "success",
                    Data = new TodoViewModel()
                    {
                        TodoId = todo.TodoId,
                        AlertBeforeMinutes = todo.AlertBeforeMinutes,
                        AlertTime = todo.AlertTime,
                        Content = todo.Content,
                        CreateTime = todo.CreateTime,
                        Title = todo.Title,
                        UpdateTime = todo.UpdateTime,
                        UseAlert = todo.UseAlert
                    }
                });
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                return(new ResponseResult <TodoViewModel>()
                {
                    ErrCode = 1001,
                    ErrMsg = ex.Message,
                    Data = null
                });
            }
        }