Exemplo n.º 1
0
        public async Task <LabelManageModel> AddAsync(string user, long group, LabelAddModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var groupModel = await _groupService.GetByIdAsync(group);

            if (groupModel == null)
            {
                throw new KeyNotFoundException(group.ToString());
            }
            if (!groupModel.Users.Any(u => u.Id.Equals(user)))
            {
                throw new ForbidException();
            }

            var objToAdd = _mapper.Map <LabelModel>(model);

            objToAdd.GroupId = group;

            _unitOfWork.BeginTransaction();
            var objAdded = await _repository.AddAsync(objToAdd);

            var result = await _unitOfWork.CommitAsync();

            return(result > 0 ? _mapper.Map <LabelManageModel>(objAdded) : null);
        }
Exemplo n.º 2
0
        public IHttpActionResult LabelAdd(LabelAddModel model)
        {
            ApiServerMsg result = new ApiServerMsg();

            try
            {
                if (XzyWebSocket._dicSockets.ContainsKey(model.uuid))
                {
                    var res = XzyWebSocket._dicSockets[model.uuid].weChatThread.Wx_EAddContactLabel(model.name);
                    result.Success = true;
                    result.Context = res;
                    return(Ok(result));
                }
                else
                {
                    result.Success = false;
                    result.Context = "不存在该websocket连接";
                    return(Ok(result));
                }
            }
            catch (Exception e)
            {
                result.Success    = false;
                result.ErrContext = e.Message;
                return(Ok(result));
            }
        }
Exemplo n.º 3
0
        public async Task Label_PostWithInvalid_ShouldReturnForbid()
        {
            var model = new LabelAddModel
            {
                Name = "New label"
            };
            var results = await _controller.Post(DefaultInvalidGroup, model);

            results.Should().BeOfType <BadRequestResult>();
        }
Exemplo n.º 4
0
        public async Task Label_PostWithInvalidUser_ShouldReturnForbid()
        {
            MockUser(_controller, DefaultInvalidUser);

            var model = new LabelAddModel
            {
                Name = "New label"
            };
            var results = await _controller.Post(DefaultGroup, model);

            results.Should().BeOfType <ForbidResult>();
        }
Exemplo n.º 5
0
        public async Task Label_Post_ShouldReturnData()
        {
            var model = new LabelAddModel
            {
                Name = "New label",
            };
            var results = await _controller.Post(DefaultGroup, model);

            results
            .Should().BeOfType <OkObjectResult>()
            .Which.Value.Should().BeAssignableTo <LabelManageModel>()
            .Which.Should().NotBeNull();
        }
Exemplo n.º 6
0
        public IHttpActionResult LabelAdd(LabelAddModel model)
        {
            ApiServerMsg apiServerMsg = new ApiServerMsg();

            try
            {
                if (XzyWebSocket._dicSockets.ContainsKey(model.uuid))
                {
                    string context = XzyWebSocket._dicSockets[model.uuid].weChatThread.Wx_EAddContactLabel(model.name);
                    apiServerMsg.Success = true;
                    apiServerMsg.Context = context;
                    return(Ok(apiServerMsg));
                }
                apiServerMsg.Success = false;
                apiServerMsg.Context = "不存在该websocket连接";
                return(Ok(apiServerMsg));
            }
            catch (Exception ex)
            {
                apiServerMsg.Success    = false;
                apiServerMsg.ErrContext = ex.Message;
                return(Ok(apiServerMsg));
            }
        }
        public async Task <IActionResult> Post(long group, [FromBody] LabelAddModel value)
        {
            var userId = _validateHelper.GetUserId(HttpContext);

            try
            {
                var model = await _labelService.AddAsync(userId, group, value);

                if (model == null)
                {
                    return(BadRequest());
                }

                return(Ok(model));
            }
            catch (ForbidException)
            {
                return(Forbid());
            }
            catch (KeyNotFoundException)
            {
                return(BadRequest());
            }
        }