public static void Seed() { using var _ctx = new Context(); _ctx.Database.EnsureDeleted(); _ctx.Database.EnsureCreated(); var comp1 = new Company("pingo ácido", 123456789); var reg1 = new Region("Covilhã"); var est1 = new Establishment("rua das papoilas", "09h00", "20h00", "sundays and holidays", reg1.Id, comp1.Id); var reQ1 = new ReservedQueue(est1.Id); var stQ1 = new StoreQueue(12, est1.Id); var cat1 = new Category("Non-Alcoholic Beverages"); var bra1 = new Brand("Luso"); var eg1 = new EssentialGood("Água", false, "560-3187-922", 0.39, 0.5); var spb1 = new ShoppingBasket(est1.Id); _ctx.Companies.AddRange(comp1); _ctx.Regions.AddRange(reg1); _ctx.Establishments.AddRange(est1); _ctx.ReservedQueues.AddRange(reQ1); _ctx.StoreQueues.AddRange(stQ1); _ctx.ShoppingBaskets.AddRange(spb1); _ctx.SaveChanges(); }
public async Task <OperationResult <bool> > CreateAsync(ReservedQueue item) { try { var reserveList = await _dao.ListAsync(); var reserveCountToday = reserveList.Count(x => x.ProfileId == item.ProfileId && x.CreatedAt.Day == DateTime.UtcNow.Day && !x.IsDeleted && x.CreatedAt.AddHours(2) > DateTime.UtcNow); var reserveCancelledList = await _dao.ListAsync(); var reserveCancelationCountToday = reserveCancelledList.Count(x => x.ProfileId == item.ProfileId && x.CreatedAt.Day == DateTime.UtcNow.Day && x.IsDeleted); if (reserveCountToday > 0 || reserveCancelationCountToday == 2) { return new OperationResult <bool>() { Success = true, Result = false, Message = "Daily limit reached" } } ; await _dao.CreateAsync(item); return(new OperationResult <bool>() { Success = true, Result = true }); } catch (Exception e) { return(new OperationResult <bool>() { Success = false, Exception = e }); } }
public static void Seed() { using var _ctx = new Context(); _ctx.Database.EnsureDeleted(); _ctx.Database.EnsureCreated(); var reg1 = new Region("Covilhã"); var comp1 = new Company("pingo ácido", 123456789); var est1 = new Establishment("Avenida da liberdade, numero 1029, Lisboa", "09:00", "20:00", "Domingo", reg1.Id, comp1.Id); var cat1 = new Category("Non-Alcoholic Beverages"); var bra1 = new Brand("Dona Edite"); var prof1 = new Profile(123456789, "Paulo", "Macabres", 919191919, DateTime.UtcNow); var sb1 = new ShoppingBasket(prof1.Id); var mod1 = new ProductModel("Vinho Tinto da Barraca do Tejo", "506-1237-424", "oklmwelkmcwekmowmcklm", 3.99, 0.75, Measure.Kg, bra1.Id, cat1.Id); var stoQ1 = new StoreQueue(42, est1.Id); var resQ1 = new ReservedQueue(est1.Id, prof1.Id); var unit1 = new ProductUnit("lolada69420", false, mod1.Id, est1.Id, sb1.Id); _ctx.Regions.AddRange(reg1); _ctx.Companies.AddRange(comp1); _ctx.Establishments.AddRange(est1); _ctx.Categories.AddRange(cat1); _ctx.Brands.AddRange(bra1); _ctx.Profiles.AddRange(prof1); _ctx.ShoppingBaskets.AddRange(sb1); _ctx.ProductModels.AddRange(mod1); _ctx.StoreQueues.AddRange(stoQ1); _ctx.ReservedQueues.AddRange(resQ1); _ctx.ProductUnits.AddRange(unit1); _ctx.SaveChanges(); }
public static ReservedQueueViewModel Parse(ReservedQueue reservedQueue) { return(new ReservedQueueViewModel() { Id = reservedQueue.Id, ProfileId = reservedQueue.ProfileId, EstablishmentId = reservedQueue.EstablishmentId, ExpirationDate = reservedQueue.CreatedAt.AddHours(2).ToString("dd-MM-yyyy HH:mm:ss"), }); }
public void TestCreateAndReadReservedQueueAsync() { ContextSeeder.Seed(); var bo = new ReservedQueueBusinessObject(); var resList = bo.List(); var item = resList.Result.FirstOrDefault(); var reg = new ReservedQueue(item.EstablishmentId); var resCreate = bo.CreateAsync(reg).Result; var resGet = bo.ReadAsync(reg.Id).Result; Assert.IsTrue(resCreate.Success && resGet.Success && resGet.Result != null); }
public void TestHourLimitAsync() { ContextSeeder.Seed(); var boProf = new ProfileBusinessObject(); var profList = boProf.List().Result.First(); var boEst = new EstablishmentBusinessObject(); var estList = boEst.List().Result.First(); var bo = new ReservedQueueBusinessObject(); var res = new ReservedQueue(Guid.NewGuid(), DateTime.UtcNow.AddHours(-3), DateTime.UtcNow, false, estList.Id, profList.Id); var resCreate = bo.CreateAsync(res); var limit = bo.TwoHourLimitReserveAsync(res.Id); Assert.IsTrue(res.IsDeleted && limit.Result.Success && !limit.Result.Result); }
public void TestCreateAndReadReservedQueueAsync() { ContextSeeder.Seed(); var boProf = new ProfileBusinessObject(); var profList = boProf.List().Result.First(); var boEst = new EstablishmentBusinessObject(); var estList = boEst.List().Result.First(); var bo = new ReservedQueueBusinessObject(); var res = new ReservedQueue(estList.Id, profList.Id); var resCreate = bo.CreateAsync(res).Result; var resGet = bo.ReadAsync(res.Id).Result; Assert.IsTrue(resCreate.Success && resGet.Success && resGet.Result != null); }
public OperationResult Create(ReservedQueue item) { try { _dao.Create(item); return(new OperationResult() { Success = true }); } catch (Exception e) { return(new OperationResult() { Success = false, Exception = e }); } }
public async Task <OperationResult> CreateAsync(ReservedQueue item) { try { await _dao.CreateAsync(item); return(new OperationResult() { Success = true }); } catch (Exception e) { return(new OperationResult() { Success = false, Exception = e }); } }
public void Create(ReservedQueue queue) { _context.ReservedQueues.Add(queue); _context.SaveChanges(); }
public async Task DeleteAsync(ReservedQueue queue) { queue.IsDeleted = true; await UpdateAsync(queue); }
public void Delete(ReservedQueue queue) { queue.IsDeleted = true; Update(queue); }
public async Task UpdateAsync(ReservedQueue queue) { _context.Entry(queue).State = EntityState.Modified; await _context.SaveChangesAsync(); }
public void Update(ReservedQueue queue) { _context.Entry(queue).State = EntityState.Modified; _context.SaveChanges(); }
public async Task CreateAsync(ReservedQueue queue) { await _context.ReservedQueues.AddAsync(queue); await _context.SaveChangesAsync(); }
public bool CompareToModel(ReservedQueue model) { return(EstablishmentId == model.EstablishmentId && ProfileId == model.ProfileId); }
public ReservedQueue ToModel(ReservedQueue model) { model.EstablishmentId = EstablishmentId; model.ProfileId = ProfileId; return(model); }