Skip to content

Commit

Permalink
Formatted all files
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuck committed Apr 12, 2022
1 parent 7d0ef3e commit c4b493e
Show file tree
Hide file tree
Showing 22 changed files with 346 additions and 368 deletions.
17 changes: 8 additions & 9 deletions src/YuckQi.Domain.Services/Abstract/ITypeEntityService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@
using YuckQi.Domain.Validation;
using YuckQi.Domain.ValueObjects.Abstract;

namespace YuckQi.Domain.Services.Abstract
namespace YuckQi.Domain.Services.Abstract;

public interface ITypeEntityService<TTypeEntity, in TKey> where TTypeEntity : IEntity<TKey>, IType where TKey : struct
{
public interface ITypeEntityService<TTypeEntity, in TKey> where TTypeEntity : IEntity<TKey>, IType where TKey : struct
{
Task<Result<TTypeEntity>> CreateAsync(TTypeEntity entity);
Task<Result<TTypeEntity>> GetAsync(Guid identifier);
Task<Result<TTypeEntity>> GetAsync(TKey key);
Task<Result<TTypeEntity>> ModifyAsync(TTypeEntity entity);
Task<Result<IPage<TTypeEntity>>> SearchAsync(TypeSearchCriteria criteria = null);
}
Task<Result<TTypeEntity>> CreateAsync(TTypeEntity entity);
Task<Result<TTypeEntity>> GetAsync(Guid identifier);
Task<Result<TTypeEntity>> GetAsync(TKey key);
Task<Result<TTypeEntity>> ModifyAsync(TTypeEntity entity);
Task<Result<IPage<TTypeEntity>>> SearchAsync(TypeSearchCriteria criteria = null);
}
13 changes: 6 additions & 7 deletions src/YuckQi.Domain.Services/Models/TypeSearchCriteria.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using System;
using YuckQi.Domain.ValueObjects.Abstract;

namespace YuckQi.Domain.Services.Models
namespace YuckQi.Domain.Services.Models;

public class TypeSearchCriteria : IPage
{
public class TypeSearchCriteria : IPage
{
public String Name { get; set; }
public Int32 PageNumber { get; set; }
public Int32 PageSize { get; set; }
}
public String Name { get; set; }
public Int32 PageNumber { get; set; }
public Int32 PageSize { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,48 +1,47 @@
using System;
using System.Linq;

namespace YuckQi.Domain.Validation.Exceptions
{
public class DomainValidationException : ApplicationException
{
#region Constants
namespace YuckQi.Domain.Validation.Exceptions;

private const String DefaultErrorMessage = "Something went wrong.";
public class DomainValidationException : ApplicationException
{
#region Constants

#endregion
private const String DefaultErrorMessage = "Something went wrong.";

#endregion

#region Properties

public Result Result { get; }
#region Properties

#endregion
public Result Result { get; }

#endregion

#region Constructors

public DomainValidationException(Result result) : base(GetErrorMessage(result))
{
Result = result;
}
#region Constructors

#endregion
public DomainValidationException(Result result) : base(GetErrorMessage(result))
{
Result = result;
}

#endregion

#region Supporting Methods

private static String GetErrorMessage(Result result)
{
if (result == null)
return DefaultErrorMessage;
#region Supporting Methods

var count = result.Detail.Count(t => t.Type == ResultType.Error);
var noun = count == 1 ? "error" : "errors";
var message = $"Domain model has {count} {noun} after validation.";
private static String GetErrorMessage(Result result)
{
if (result == null)
return DefaultErrorMessage;

return message;
}
var count = result.Detail.Count(t => t.Type == ResultType.Error);
var noun = count == 1 ? "error" : "errors";
var message = $"Domain model has {count} {noun} after validation.";

#endregion
return message;
}

#endregion
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,24 @@
using FluentValidation;
using FluentValidation.Results;

namespace YuckQi.Domain.Validation.Extensions
namespace YuckQi.Domain.Validation.Extensions;

public static class AbstractValidatorExtensions
{
public static class AbstractValidatorExtensions
public static Result<T> GetResult<T>(this AbstractValidator<T> validator, T item, String failedValidationMessageId)
{
public static Result<T> GetResult<T>(this AbstractValidator<T> validator, T item, String failedValidationMessageId)
{
var result = validator.Validate(item);
if (result == null)
throw new ArgumentNullException(nameof(result));
var result = validator.Validate(item);
if (result == null)
throw new ArgumentNullException(nameof(result));

if (result.IsValid)
return new Result<T>(item);
if (result.IsValid)
return new Result<T>(item);

return new Result<T>(default, GetResultDetail(result, failedValidationMessageId));
}
return new Result<T>(default, GetResultDetail(result, failedValidationMessageId));
}

private static IReadOnlyCollection<ResultDetail> GetResultDetail(ValidationResult result, String failedValidationMessageId)
{
return result?.Errors.Select(t => new ResultDetail(ResultCode.InvalidRequestDetail, new ResultMessage(failedValidationMessageId, t.ErrorMessage), t.PropertyName)).ToList();
}
private static IReadOnlyCollection<ResultDetail> GetResultDetail(ValidationResult result, String failedValidationMessageId)
{
return result?.Errors.Select(t => new ResultDetail(ResultCode.InvalidRequestDetail, new ResultMessage(failedValidationMessageId, t.ErrorMessage), t.PropertyName)).ToList();
}
}
65 changes: 32 additions & 33 deletions src/YuckQi.Domain.Validation/Result.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,59 @@
using System.Collections.Generic;
using System.Linq;

namespace YuckQi.Domain.Validation
{
public class Result
{
#region Properties
namespace YuckQi.Domain.Validation;

public IReadOnlyCollection<ResultDetail> Detail { get; }
public class Result
{
#region Properties

public Boolean IsValid => Detail.All(t => t.Type != ResultType.Error);
public IReadOnlyCollection<ResultDetail> Detail { get; }

#endregion
public Boolean IsValid => Detail.All(t => t.Type != ResultType.Error);

#endregion

#region Constructors

public Result(IReadOnlyCollection<ResultDetail> detail)
{
Detail = detail ?? Array.Empty<ResultDetail>();
}
#region Constructors

#endregion
public Result(IReadOnlyCollection<ResultDetail> detail)
{
Detail = detail ?? Array.Empty<ResultDetail>();
}

public class Result<T> : Result
{
#region Properties
#endregion
}

public T Payload { get; }
public class Result<T> : Result
{
#region Properties

#endregion
public T Payload { get; }

#endregion

#region Constructors

public Result(ResultDetail detail) : this(new List<ResultDetail> { detail }) { }
#region Constructors

public Result(IReadOnlyCollection<ResultDetail> detail) : base(detail) { }
public Result(ResultDetail detail) : this(new List<ResultDetail> { detail }) { }

public Result(T payload, IReadOnlyCollection<ResultDetail> detail = null) : base(detail)
{
Payload = payload;
}
public Result(IReadOnlyCollection<ResultDetail> detail) : base(detail) { }

#endregion
public Result(T payload, IReadOnlyCollection<ResultDetail> detail = null) : base(detail)
{
Payload = payload;
}

#endregion

#region Public Methods

public static Result<T> ConstraintViolation<TKey>(TKey key, String message = null) where TKey : struct => new Result<T>(ResultDetail.ConstraintViolation<T, TKey>(key, message));
#region Public Methods

public Boolean HasResultCode(ResultCode resultCode) => Detail.Any(t => t.Code == resultCode);
public static Result<T> ConstraintViolation<TKey>(TKey key, String message = null) where TKey : struct => new(ResultDetail.ConstraintViolation<T, TKey>(key, message));

public static Result<T> NotFound<TKey>(TKey key, String message = null) where TKey : struct => new Result<T>(ResultDetail.NotFound<T, TKey>(key, message));
public Boolean HasResultCode(ResultCode resultCode) => Detail.Any(t => t.Code == resultCode);

#endregion
}
public static Result<T> NotFound<TKey>(TKey key, String message = null) where TKey : struct => new(ResultDetail.NotFound<T, TKey>(key, message));

#endregion
}
51 changes: 25 additions & 26 deletions src/YuckQi.Domain.Validation/ResultCode.cs
Original file line number Diff line number Diff line change
@@ -1,50 +1,49 @@
using System;

namespace YuckQi.Domain.Validation
namespace YuckQi.Domain.Validation;

public readonly struct ResultCode
{
public readonly struct ResultCode
{
#region Private Members
#region Private Members

private readonly String _code;
private readonly String _code;

#endregion
#endregion


#region Implicit Operators
#region Implicit Operators

public static implicit operator String(ResultCode resultCode) => resultCode._code;
public static implicit operator String(ResultCode resultCode) => resultCode._code;

#endregion
#endregion


#region Constants
#region Constants

public static readonly ResultCode ConstraintViolation = new ResultCode(nameof(ConstraintViolation));
public static readonly ResultCode InvalidRequestDetail = new ResultCode(nameof(InvalidRequestDetail));
public static readonly ResultCode NotFound = new ResultCode(nameof(NotFound));
public static readonly ResultCode ConstraintViolation = new(nameof(ConstraintViolation));
public static readonly ResultCode InvalidRequestDetail = new(nameof(InvalidRequestDetail));
public static readonly ResultCode NotFound = new(nameof(NotFound));

#endregion
#endregion


#region Constructors
#region Constructors

public ResultCode(String code)
{
_code = code;
}
public ResultCode(String code)
{
_code = code;
}

#endregion
#endregion


#region Public Methods
#region Public Methods

public override Boolean Equals(Object obj) => obj != null && String.Equals(this, (ResultCode) obj);
public override Boolean Equals(Object obj) => obj != null && String.Equals(this, (ResultCode) obj);

public override Int32 GetHashCode() => _code.GetHashCode();
public override Int32 GetHashCode() => _code.GetHashCode();

public override String ToString() => _code;
public override String ToString() => _code;

#endregion
}
#endregion
}
51 changes: 25 additions & 26 deletions src/YuckQi.Domain.Validation/ResultDetail.cs
Original file line number Diff line number Diff line change
@@ -1,46 +1,45 @@
using System;

namespace YuckQi.Domain.Validation
{
public class ResultDetail
{
#region Private Members
namespace YuckQi.Domain.Validation;

private readonly ResultCode _code;
public class ResultDetail
{
#region Private Members

#endregion
private readonly ResultCode _code;

#endregion

#region Constants

public static ResultDetail ConstraintViolation<T, TKey>(TKey key, String message = null) where TKey : struct => new ResultDetail(ResultCode.ConstraintViolation, ResultMessage.ConstraintConflict<T, TKey>(key, message));
public static ResultDetail NotFound<T, TKey>(TKey key, String message = null) where TKey : struct => new ResultDetail(ResultCode.NotFound, ResultMessage.NotFound<T, TKey>(key, message));
#region Constants

#endregion
public static ResultDetail ConstraintViolation<T, TKey>(TKey key, String message = null) where TKey : struct => new(ResultCode.ConstraintViolation, ResultMessage.ConstraintConflict<T, TKey>(key, message));
public static ResultDetail NotFound<T, TKey>(TKey key, String message = null) where TKey : struct => new(ResultCode.NotFound, ResultMessage.NotFound<T, TKey>(key, message));

#endregion

#region Properties

public ResultMessage Message { get; }
public String Property { get; }
public ResultType Type { get; }
#region Properties

public String Code => _code;
public ResultMessage Message { get; }
public String Property { get; }
public ResultType Type { get; }

#endregion
public String Code => _code;

#endregion

#region Constructors

public ResultDetail(ResultCode code, ResultMessage message, String property = null, ResultType type = ResultType.Error)
{
_code = code;
#region Constructors

Message = message;
Property = property;
Type = type;
}
public ResultDetail(ResultCode code, ResultMessage message, String property = null, ResultType type = ResultType.Error)
{
_code = code;

#endregion
Message = message;
Property = property;
Type = type;
}

#endregion
}
Loading

0 comments on commit c4b493e

Please sign in to comment.