public async Task<IActionResult> Execute(JObject jObj, string subject, string commonId, HttpRequest request)
        {
            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var command = _requestBuilder.GetAddService(jObj);
            var validationResult = await _addServiceValidator.Validate(command, subject);
            if (!validationResult.IsValid)
            {
                var error = _responseBuilder.GetError(ErrorCodes.Request, validationResult.Message);
                return _controllerHelper.BuildResponse(HttpStatusCode.BadRequest, error);
            }

            var images = new List<string>();
            if (command.Images != null)
            {
                foreach (var image in command.Images)
                {
                    string path;
                    if (!AddImage(image, request, out path))
                    {
                        continue;
                    }

                    images.Add(path);
                }
            }

            command.Id = Guid.NewGuid().ToString();
            command.CreateDateTime = DateTime.UtcNow;
            command.UpdateDateTime = DateTime.UtcNow;
            command.CommonId = commonId;
            command.Images = images;

            _commandSender.Send(command);
            var obj = new { id = command.Id };
            return new OkObjectResult(obj);
        }