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); }
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))); }
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); }
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); }