2022-01-22 17:13:38 +03:00
|
|
|
using System;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
namespace Kruzya.TelegramBot.Core.Extensions;
|
|
|
|
|
|
|
|
|
|
public static class DbContextExtension
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Marks the entity as created.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
|
/// <param name="entity">Entity for marking as created.</param>
|
2022-01-22 18:44:40 +03:00
|
|
|
[Obsolete("DbContextExtension.MarkAsCreated is obsolete, use DbContext.Add instead")]
|
2022-01-22 17:13:38 +03:00
|
|
|
public static void MarkAsCreated(this DbContext dbContext, object entity) =>
|
|
|
|
|
dbContext.Entry(entity).State = EntityState.Added;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Marks the entity as deleted.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
|
/// <param name="entity">Entity for marking as deleted.</param>
|
2022-01-22 18:44:40 +03:00
|
|
|
[Obsolete("DbContextExtension.MarkAsDeleted is obsolete, use DbContext.Remove instead")]
|
2022-01-22 17:13:38 +03:00
|
|
|
public static void MarkAsDeleted(this DbContext dbContext, object entity) =>
|
|
|
|
|
dbContext.Entry(entity).State = EntityState.Deleted;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Marks the entity as modified.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dbContext"></param>
|
|
|
|
|
/// <param name="entity">Entity for marking as modified.</param>
|
|
|
|
|
[Obsolete("DbContextExtension.MarkAsModified is obsolete, use DbContext.Update instead")]
|
|
|
|
|
public static void MarkAsModified(this DbContext dbContext, object entity)
|
|
|
|
|
{
|
|
|
|
|
var entry = dbContext.Entry(entity);
|
|
|
|
|
if (entry.State == EntityState.Added)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
entry.State = EntityState.Modified;
|
|
|
|
|
}
|
2022-01-25 23:34:37 +03:00
|
|
|
|
|
|
|
|
public static void AddOrUpdate(this DbContext dbContext, object entity)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dbContext.Update(entity);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
2022-02-14 00:18:53 +02:00
|
|
|
catch (DbUpdateConcurrencyException)
|
2022-01-25 23:34:37 +03:00
|
|
|
{
|
|
|
|
|
dbContext.Add(entity);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-01-22 17:13:38 +03:00
|
|
|
}
|