public async Task <Result <AddFigureResponseData> > Handle(AddFigureRequest request, CancellationToken cancellationToken)
        {
            if (String.IsNullOrWhiteSpace(request.FigureType) || request.FigureDescription == null)
            {
                return(Result <AddFigureResponseData> .MakeFailMessage("error figure"));
            }

            IFigureDescription description = request.FigureDescription;

            Result <Empty> result = _validator.Validate(description);

            if (result.Fail)
            {
                return(Result <AddFigureResponseData> .MakeFail(result.Errors));
            }

            long figureId = await _queryFactory.SaveFigure(new Figure
            {
                Description = JsonConvert.SerializeObject(request.FigureDescription),
                Type        = request.FigureType
            });

            var responseData = new AddFigureResponseData {
                FigureId = figureId
            };

            return(Result <AddFigureResponseData> .MakeSucces(responseData));
        }