public static ResultResponseMessage ToResultResponseMessage <TRequestMessage>(this IModelResult modelResult, TRequestMessage requestMessage)
            where TRequestMessage : RequestMessage
        {
            var result = new ResultResponseMessage(requestMessage);

            if (!modelResult.IsModelResultValid())
            {
                result.MapResultResponseMessage((HttpStatusCode)modelResult.ModelStatusCode, modelResult.Message);
            }

            return(result);
        }
        public async Task New(string name, bool isValid, int code, string message, bool model)
        {
            //Arrange

            //Act
            IModelResult <FooSample> fooSampleResult = FooSample.New(name);

            //Assert
            Assert.That(fooSampleResult.IsModelResultValid(), Is.EqualTo(isValid));
            Assert.That(fooSampleResult.Message, Is.EqualTo(message));
            Assert.That(fooSampleResult.ModelStatusCode, Is.EqualTo(code));
            Assert.That(fooSampleResult.Model == null, Is.EqualTo(model));

            await Task.CompletedTask;
        }
        public static ResultResponseMessage ToResultResponseMessage <TRequestMessage, TModel>(this IModelResult <TModel> modelResult, TRequestMessage requestMessage)
            where TRequestMessage : RequestMessage
            where TModel : IModel
        {
            var result = new ResultResponseMessage(requestMessage);

            if (!modelResult.IsModelResultValid())
            {
                if (modelResult.Validations != null)
                {
                    foreach (var validation in modelResult.Validations)
                    {
                        result.AddValidation(validation.Attribute, validation.Message);
                    }
                }

                result.MapResultResponseMessage((HttpStatusCode)modelResult.ModelStatusCode, modelResult.Message);
            }

            return(result);
        }