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