first things
This commit is contained in:
147
Repositories/FwMariaLookupRepo.cs
Normal file
147
Repositories/FwMariaLookupRepo.cs
Normal file
@@ -0,0 +1,147 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Datamodels.BusinessModels;
|
||||
using Datamodels.Lookups;
|
||||
using Repositories.Interfaces;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Repositories
|
||||
{
|
||||
public class FwMariaLookupRepo: IFwMariaLookupRepo
|
||||
{
|
||||
|
||||
private readonly FwDbContext _dbContext = new FwDbContext();
|
||||
private readonly ILogger<FwMariaLookupRepo> _logger;
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public FwMariaLookupRepo(ILogger<FwMariaLookupRepo> logger, IConfiguration configuration)
|
||||
{
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
try
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development")
|
||||
{
|
||||
_dbContext._connectionString = "SERVER=127.0.0.1;DATABASE=testdb;PORT=3306;USER=root;PASSWORD=example";
|
||||
}
|
||||
else
|
||||
{
|
||||
string usedDb = configuration.GetSection("GeneralSettings").GetSection("DbToUse").Get<string>();
|
||||
string connectionString = configuration.GetConnectionString(usedDb);
|
||||
_dbContext._connectionString = connectionString;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Database Connection Configuration not valid");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<DataResult<List<LookupCategory>>> GetAllLookups()
|
||||
{
|
||||
var result = await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var newList = _dbContext.LookupCategories.Include(vals => vals.LookupValues).OrderBy(o => o.CategoryName).ToList();
|
||||
return new DataResult<List<LookupCategory>> { Data = newList };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error reading Lookup Data");
|
||||
return new DataResult<List<LookupCategory>>
|
||||
{
|
||||
UserMessage = "Daten f<>r Lookups konnten nicht gelesen werden.",
|
||||
ServerMessage = ex.Message,
|
||||
GeneralResult = GeneralResults.DatabaseError,
|
||||
StackTrace = ex.StackTrace
|
||||
};
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<DataResult<LookupCategory>> GetLookupCategoryById(long id)
|
||||
{
|
||||
var result = await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var cat = _dbContext.LookupCategories.Where(x => x.Id == id).Include(vals => vals.LookupValues).FirstOrDefault();
|
||||
return new DataResult<LookupCategory> { Data = cat };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Error reading Lookup Category with Id: {id}");
|
||||
return new DataResult<LookupCategory>
|
||||
{
|
||||
UserMessage = $"Daten f<>r Lookup Kategorie mit Id {id} konnten nicht gelesen werden.",
|
||||
ServerMessage = ex.Message,
|
||||
GeneralResult = GeneralResults.DatabaseError,
|
||||
StackTrace = ex.StackTrace
|
||||
};
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<DataResult<List<LookupCategory>>> GetLookupCategoryByName(string categoryName)
|
||||
{
|
||||
var result = await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var cat = _dbContext.LookupCategories.Where(x => x.CategoryName.ToUpper().Contains(categoryName.ToUpper())).Include(vals => vals.LookupValues).ToList();
|
||||
return new DataResult<List<LookupCategory>> { Data = cat };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Error reading Lookup Category with Name: {categoryName}");
|
||||
return new DataResult<List<LookupCategory>>
|
||||
{
|
||||
UserMessage = $"Daten f<>r Lookup Kategorie mit Namen {categoryName} konnten nicht gelesen werden.",
|
||||
ServerMessage = ex.Message,
|
||||
GeneralResult = GeneralResults.DatabaseError,
|
||||
StackTrace = ex.StackTrace
|
||||
};
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<DataResult<List<LookupCategory>>> GetActiveLookupCategories()
|
||||
{
|
||||
var result = await Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var catList = _dbContext.LookupCategories.Where(x => x.IsActive).Include(vals => vals.LookupValues).OrderBy(o => o.CategoryName).ToList();
|
||||
return new DataResult<List<LookupCategory>> { Data = catList };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error reading active Lookup Data");
|
||||
return new DataResult<List<LookupCategory>>
|
||||
{
|
||||
UserMessage = "Daten f<>r aktive Lookups konnten nicht gelesen werden.",
|
||||
ServerMessage = ex.Message,
|
||||
GeneralResult = GeneralResults.DatabaseError,
|
||||
StackTrace = ex.StackTrace
|
||||
};
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public void DeleteAllCategories()
|
||||
{
|
||||
_dbContext.Database.ExecuteSqlRaw("delete from LookupValues");
|
||||
_dbContext.Database.ExecuteSqlRaw("delete from LookupCategories");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user