using CarParkValidationAPI.Datas; using CarParkValidationAPI.Entities; using CarParkValidationAPI.Interface; using CarParkValidationAPI.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace CarParkValidationAPI.Repository { public class ValidationPointFakeRepository : IValidationPoint { private DataContext _context; private readonly AppSettings _appSettings; private string _currentUser = ""; private List _list = new List(); public ValidationPointFakeRepository( DataContext context, IOptions appSettings) { _context = context; _appSettings = appSettings.Value; } public void SetCurrentUser(string username) { _currentUser = username; } private ValidationPointDto FillValidationDto(ValidationPoint item) { ValidationPointDto dto = new ValidationPointDto(); dto.Active = item.Active; dto.Description = item.Description; dto.Display = item.DisplayName; dto.Id = item.ValidationPointID; return dto; } private ValidationPoint FillValidationModel(ValidationPointDto item, ValidationPoint model) { model.Active = item.Active; model.Description = item.Description; model.DisplayName = item.Display; model.ValidationPointID = item.Id; return model; } public async Task>> LoadValidationPointAsync(bool onlyActive) { try { /* var it = await _context.Validations.AsQueryable().ToListAsync(); */ ValidationPointDto dto; ValidationPoint val; for (int i = 0; i < 10; i++) { val = new ValidationPoint() { ValidationPointID = i, Description = $"Validation {i}", DisplayName = $"Display {i}", Active = true, }; dto = FillValidationDto(val); _list.Add(dto); } //var it = await Task.Run(() => _list); return new ResultModel>() { Data = _list, StatusCode = 1 }; } catch (Exception ex) { throw ex; } } public async Task> LoadValidationPointByIdAsync(int id) { ValidationPoint result = null; try { ValidationPointDto dto; result = await _context.Validations.FindAsync(id); dto = FillValidationDto(result); //result = _list.Find(x => x.Id == id); //var dto = await Task.Run(() => result); return new ResultModel() { Data = dto, StatusCode = 1 }; } catch (Exception ex) { throw ex; } } public async Task> SaveValidationPointAsync(ValidationPointDto item) { int result = default(int); try { ValidationPoint model; if (item.Id > 0) { model = await _context.Validations.FindAsync(item.Id); model = FillValidationModel(item, model); await _context.SaveChangesAsync(); result = item.Id; } else //new record { model = new ValidationPoint(); model = FillValidationModel(item, model); _context.Validations.Add(model); var id = await _context.SaveChangesAsync(); result = id; item.Id = id; } //var dto = await Task.Run(() => result); return new ResultModel() { Data = result, StatusCode = 1 }; } catch (Exception ex) { throw ex; } /* ConcessionTypeDA dataAccess = new ConcessionTypeDA(); try { result = await dataAccess.InsertConcessionTypeAsync(item); } catch (Exception ex) { throw ex; } */ } public async Task> DeleteValidationPointAsync(int id) { bool result = true; try { ValidationPoint model; if (id > 0) { model = await _context.Validations.FindAsync(id); model.Active = false; //_context.Validations.Remove(model); await _context.SaveChangesAsync(); } //var dto = await Task.Run(() => result); return new ResultModel() { Data = result, StatusCode = 1 }; } catch (Exception ex) { throw; } } } }