using Core.Blueprint.DAL.Infrastructure.Contracts; using Core.Blueprint.DAL.Service.Contracts; using Core.Blueprint.Domain.Entities; using Serilog; namespace Core.Blueprint.DAL.Service { //[LoggingAttribute] public class SampleItemService : ISampleItemService { private readonly ILogger _logger; private readonly IRepositoryIdentityBase _repository; public SampleItemService(ISampleItemRepository repository, ILogger logger) { _repository = repository; _logger = logger; } //[LoggingAttribute] //Time of request, class name, class method... memory usage.... public virtual async ValueTask CreateAsync(SampleItem entity) { try { _logger.Information("Starting to create the Sample item"); var ret = await _repository.CreateAsync(entity); _logger.Information("Finishing to create the Sample item | Method: {method} | Class: {class}", nameof(CreateAsync), nameof(SampleItemService)); return ret; } catch (Exception ex) { _logger.Error(ex, "{error} | Method: {method} | Class: {class}", ex.Message, nameof(CreateAsync), nameof(SampleItemService)); return default; } } public virtual async ValueTask DeleteAsync(string id) { try { _logger.Information("Starting to delete the Sample item | Method: {method} | Class: {class}", nameof(DeleteAsync), nameof(SampleItemService)); var ret = await _repository.DeleteAsync(id); _logger.Information("Finishing to delete the Sample item | Method: {method} | Class: {class}", nameof(DeleteAsync), nameof(SampleItemService)); return ret; } catch (Exception ex) { _logger.Error(ex, "{error} | Method: {method} | Class: {class}", ex.Message, nameof(DeleteAsync), nameof(SampleItemService)); return default; } } public virtual async ValueTask> GetAllAsync() { try { _logger.Information("Starting to get all Sample item | Method: {method} | Class: {class}", nameof(GetAllAsync), nameof(SampleItemService)); var ret = await _repository.GetAllAsync(); _logger.Information("Finishing to get all Sample item | Method: {method} | Class: {class}", nameof(GetAllAsync), nameof(SampleItemService)); return ret; } catch (Exception ex) { _logger.Error(ex, "{error} | Method: {method} | Class: {class}", ex.Message, nameof(GetAllAsync), nameof(SampleItemService)); return default; } } public virtual async ValueTask GetByIdAsync(string id) { try { _logger.Information("Starting to get Sample item by id | Method: {method} | Class: {class}", nameof(GetByIdAsync), nameof(SampleItemService)); var ret = await _repository.GetByIdAsync(id); _logger.Information("Finishing to get all Sample item | Method: {method} | Class: {class}", nameof(GetByIdAsync), nameof(SampleItemService)); return ret; } catch (Exception ex) { _logger.Error(ex, "{error} | Method: {method} | Class: {class}", ex.Message, nameof(GetByIdAsync), nameof(SampleItemService)); return default; } } public virtual async Task UpdateAsync(string id, SampleItem entity) { try { _logger.Information("Starting to update Sample item | Method: {method} | Class: {class}", nameof(UpdateAsync), nameof(SampleItemService)); var ret = await _repository.UpdateAsync(id, entity); _logger.Information("Finishing to update Sample item | Method: {method} | Class: {class}", nameof(UpdateAsync), nameof(SampleItemService)); return ret; } catch (Exception ex) { _logger.Error(ex, "{error} | Method: {method} | Class: {class}", ex.Message, nameof(UpdateAsync), nameof(SampleItemService)); return default; } } } }