Example #1
0
        public async Task <int> Create(RequestItemRequest request, int userId)
        {
            var newItem = new Request
            {
                Status       = RequestStatus.New,
                ExpectedDate = request.ExpectedDate,
                UserId       = userId,
                CreatedAt    = DateTime.Now
            };

            using (var transaction = _dbContext.Database.BeginTransaction())
            {
                try
                {
                    _dbContext.Request.Add(newItem);
                    await _dbContext.SaveChangesAsync();

                    MessageItemRequest item = new MessageItemRequest()
                    {
                        Text      = request.Message,
                        RequestId = newItem.Id,
                    };

                    await this._messagesRepository.Create(item, userId);

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
            }
            return(newItem.Id);
        }
Example #2
0
        public async Task <IActionResult> Create([FromBody] MessageItemRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userIdClaim = ((ClaimsIdentity)User.Identity).FindFirst(ClaimTypes.NameIdentifier);
            var userId      = int.Parse(userIdClaim.Value);

            int id = await _requestRepository.AddMessage(request, userId);

            return(Ok(await _messageRepository.GetById(id)));
        }
Example #3
0
        public async Task <int> Create(MessageItemRequest message, int userId)
        {
            var newItem = new Message
            {
                Text      = message.Text,
                UserId    = userId,
                CreatedAt = DateTime.Now,
                RequestId = message.RequestId
            };

            _dbContext.Message.Add(newItem);

            await _dbContext.SaveChangesAsync();

            return(newItem.Id);
        }
Example #4
0
        public async Task <int> AddMessage(MessageItemRequest message, int userId)
        {
            var request = await _dbContext.Request.
                          FirstOrDefaultAsync(x => x.Id == message.RequestId);

            if (request.Status == RequestStatus.New)
            {
                request.Status = RequestStatus.Pending;
            }

            int messageId = await _messagesRepository.Create(message, userId);

            _dbContext.SaveChanges();

            return(messageId);
        }