Exemple #1
0
        public async Task <int> CreateAsync(DialogForAddDto dialogMessage)
        {
            foreach (var entity in dialogMessage.Messages
                     .Select(message => message.ToEntity(dialogMessage.UserId, dialogMessage.TaskId)))
            {
                await Create(entity);
            }

            return(await SaveChanges());
        }
Exemple #2
0
        public async Task <IActionResult> UpdateDialog([FromBody] DialogForAddDto dialogMessage)
        {
            if (dialogMessage.Messages == null || !dialogMessage.Messages.Any())
            {
                return(BadRequest("Messages is empty"));
            }

            var user = await _repository.UserRepository.GetByIdAsync(dialogMessage.UserId);

            if (user.Id == 0)
            {
                return(BadRequest("User not found"));
            }

            var task = await _repository.TaskRepository.GetByIdAsync(dialogMessage.TaskId);

            if (task.Id == 0)
            {
                return(BadRequest("Task not found"));
            }

            try
            {
                var createdMessages = await _repository.DialogRepository.CreateAsync(dialogMessage);

                if (createdMessages == 0)
                {
                    return(BadRequest("Something went wrong"));
                }

                var result =
                    await _repository.DialogRepository.GetDialogResultAsync(dialogMessage.UserId, dialogMessage.TaskId);

                return(Created(string.Empty, result));
            }
            catch (Exception e)
            {
                _logger.LogError($"Something went wrong in the {nameof(UpdateDialog)} action {e}");
                return(StatusCode(500, "Internal server error"));
            }
        }