Skip to content

Commit

Permalink
improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
hatami57 committed Sep 28, 2019
1 parent 7626052 commit 54bb977
Show file tree
Hide file tree
Showing 11 changed files with 713 additions and 20 deletions.
9 changes: 8 additions & 1 deletion DDDCommon.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Company>Meteor</Company>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<LangVersion>latest</LangVersion>
<PackageVersion>1.0.8</PackageVersion>
<PackageVersion>1.2.0</PackageVersion>
</PropertyGroup>

<ItemGroup>
Expand All @@ -15,6 +15,7 @@
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="NHibernate" Version="5.2.5" />
<PackageReference Include="NHibernate.Logging.Serilog" Version="5.1.3" />
<PackageReference Include="NHibernate.Spatial" Version="5.2.0" />
<PackageReference Include="NHibernate.Spatial.PostGis" Version="5.2.0" />
<PackageReference Include="Npgsql" Version="4.0.7" />
Expand All @@ -24,6 +25,12 @@
<PackageReference Include="Npgsql.NetTopologySuite" Version="4.0.7" />
<PackageReference Include="Npgsql.NodaTime" Version="4.0.7" />
<PackageReference Include="Npgsql.RawPostgis" Version="4.0.7" />
<PackageReference Include="Serilog" Version="2.8.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.PostgreSQL" Version="2.1.0" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion Domain/Types/ValueObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public abstract class ValueObject : IEquatable<ValueObject>
return !(obj1 == obj2);
}

public bool Equals(ValueObject obj)
public virtual bool Equals(ValueObject obj)
{
return Equals(obj as object);
}
Expand Down
6 changes: 4 additions & 2 deletions Infrastructure/Types/NHibernate/PostgreSqlNHibernateHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using FluentNHibernate.Conventions.Helpers;
using NHibernate;
using NHibernate.Dialect;
using NHibernate.Logging.Serilog;
using NHibernate.Spatial.Mapping;
using NHibernate.Spatial.Metadata;
using NHibernate.Tool.hbm2ddl;
Expand All @@ -16,15 +17,16 @@ public static class PostgreSqlSessionFactoryHelper
{
public static ISessionFactory Create(DbConfigurations dbConfigurations)
{
NHibernateLogger.SetLoggersFactory(new SerilogLoggerFactory());

if (dbConfigurations.UseNodaTime) NpgsqlConnection.GlobalTypeMapper.UseNodaTime();

var dbConfigurations1 = dbConfigurations;
var persistenceCfg = PostgreSQLConfiguration.Standard
.Provider<global::NHibernate.Connection.DriverConnectionProvider>()
.Dialect<PostgreSQL83Dialect>()
.Driver<NpgsqlDriverExtended>()
.ConnectionString(dbConfigurations1.ConnectionString)
.ShowSql();
.ConnectionString(dbConfigurations1.ConnectionString);
if (dbConfigurations.UseNetTopologySuite)
{
NpgsqlConnection.GlobalTypeMapper.UseRawPostgis();
Expand Down
5 changes: 3 additions & 2 deletions Utils/ErrorJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
var o = new JObject
{
{ "code", error.Code },
{ "text", error.Text },
{ "details", error.Details }
{ "message", error.Message }
};
if (error.Details != null)
o.Add("details", JToken.FromObject(error.Details));
o.WriteTo(writer);
}
}
Expand Down
26 changes: 14 additions & 12 deletions Utils/Errors.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,19 @@ namespace DDDCommon.Utils
{
public static class Errors
{
public static Error InternalError(string details = null) =>
new Error { Code = 1, Text = "internal_error", Details = details };
public static Error NotFound(string details = null) =>
new Error { Code = 2, Text = "not_found", Details = details };
public static Error AlreadyDone(string details = null) =>
new Error { Code = 3, Text = "already_done", Details = details };
public static Error InvalidOperation(string details = null) =>
new Error { Code = 4, Text = "invalid_operation", Details = details };
public static Error DatabaseError(string details = null) =>
new Error { Code = 5, Text = "database_error", Details = details };
public static Error DuplicateKey(string details = null) =>
new Error { Code = 6, Text = "duplicate_key", Details = details };
public static Error InternalError(object details = null) =>
new Error(1, "internal_error", details);
public static Error NotFound(object details = null) =>
new Error(2, "not_found", details);
public static Error AlreadyDone(object details = null) =>
new Error(3, "already_done", details);
public static Error InvalidOperation(object details = null) =>
new Error(4, "invalid_operation", details);
public static Error DatabaseError(object details = null) =>
new Error(5, "database_error", details);
public static Error DuplicateKey(object details = null) =>
new Error(6, "duplicate_key", details);
public static Error AccessDenied(object details = null) =>
new Error(7, "access_denied", details);
}
}
15 changes: 13 additions & 2 deletions Utils/OperationResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Serilog;

namespace DDDCommon.Utils
{
Expand Down Expand Up @@ -31,6 +32,7 @@ public static async Task<OperationResult> Try(Func<Task> func)
}
catch (Exception e)
{
Log.Error(e, "OperationResult");
return new OperationResult(false,
e as Error ?? Errors.InternalError(e.Message));
}
Expand All @@ -44,6 +46,7 @@ public static async Task<OperationResult> Try(Func<Task<OperationResult>> func)
}
catch (Exception e)
{
Log.Error(e, "OperationResult");
return new OperationResult(false,
e as Error ?? Errors.InternalError(e.Message));
}
Expand Down Expand Up @@ -73,6 +76,7 @@ public static async Task<OperationResult<T>> Try(Func<Task<T>> func)
}
catch (Exception e)
{
Log.Error(e, "OperationResult<{T}>", typeof(T).FullName);
return new OperationResult<T>(false, default,
e as Error ?? Errors.InternalError(e.Message));
}
Expand All @@ -86,6 +90,7 @@ public static async Task<OperationResult<T>> Try(Func<Task<OperationResult<T>>>
}
catch (Exception e)
{
Log.Error(e, "OperationResult<{T}>", typeof(T).FullName);
return new OperationResult<T>(false, default,
e as Error ?? Errors.InternalError(e.Message));
}
Expand All @@ -96,7 +101,13 @@ public static async Task<OperationResult<T>> Try(Func<Task<OperationResult<T>>>
public class Error : Exception
{
public int Code { get; set; }
public string Text { get; set; }
public string Details { get; set; }
public object Details { get; set; }

public Error(int code, string message, object details = null, Exception innerException = null)
: base(message, innerException)
{
Code = code;
Details = details;
}
}
}
27 changes: 27 additions & 0 deletions Utils/SerilogPostgreSqlSink/ColumnOptions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System.Collections.Generic;

namespace Serilog.Sinks.PostgreSql
{
public class ColumnOptions
{
public static IDictionary<string, ColumnWriterBase> Default => new Dictionary<string, ColumnWriterBase>
{
{DefaultColumnNames.RenderedMesssage, new RenderedMessageColumnWriter()},
{DefaultColumnNames.MessageTemplate, new MessageTemplateColumnWriter()},
{DefaultColumnNames.Level, new LevelColumnWriter()},
{DefaultColumnNames.Exception, new ExceptionColumnWriter()},
{DefaultColumnNames.Properties, new PropertiesColumnWriter()},
{DefaultColumnNames.CreatedAt, new TimestampColumnWriter()}
};
}

public static class DefaultColumnNames
{
public const string RenderedMesssage = "message";
public const string MessageTemplate = "message_template";
public const string Level = "level";
public const string Exception = "exception";
public const string Properties = "properties";
public const string CreatedAt = "created_at";
}
}
Loading

0 comments on commit 54bb977

Please sign in to comment.