public async Task Update(string code, decimal value, DateTime data) { var sales = await salesRepo.FindByCode(code); if (sales == null) { throw new Exception("Sales not found"); } if (sales.Status != SalesStatus.VALIDATING) { throw new Exception("Sales cannot be edit"); } sales.Data = data; sales.Value = value; strategy.Apply(sales); await salesRepo.Update(sales); }