protected override void Handle(AssignMechanicCommand request) { var activity = _dbContext.Activities.FirstOrDefault(x => x.Id == request.ActivityId); if (activity != null) { var mechanic = _dbContext.Employees.Include(e => e.Identity). FirstOrDefault(m => m.Id == request.MechanicId); if (mechanic != null) { activity.AssignMechanic(mechanic); } else { throw new Exception("cannot find mechanic"); } } else { throw new Exception("cannot find activity"); } if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not assign mechanic"); } }
protected override void Handle(UpdateEmployeeCommand request) { var employee = _dbContext.Employees .Include(e => e.Identity) .FirstOrDefault(e => e.Id.ToString() == request.Id); employee.Update(request.FirstName, request.LastName, request.EmployeeRole, request.UserName); _dbContext.SaveChanges(); }
protected override void Handle(FinishRepairCommand request) { var repair = _dbContext.Repairs.FirstOrDefault(r => r.Id.ToString() == request.Id); repair.Finish(request.Result); if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not finish repair"); } }
public static void PopulateTestData(KOServiceDbContext dbContext) { dbContext.Activities.Add(new Domain.Entities.Activity(new Guid("d2157b7a-c81e-47dc-9d5f-a4a33f5d5587"), new Guid("f87cfd0f-1e90-4803-91fe-8269d4c69153"), "wymiana silnika", 0)); dbContext.Repairs.Add(new Domain.Entities.Repair(new Guid("3297fa03-afa0-495c-965e-c9b3b712358f"), "naprawa bwm e39", Guid.NewGuid(), Guid.NewGuid())); dbContext.Employees.Add(new Domain.Entities.Employee(new Guid("4cd4ac80-867c-468c-9149-8de382edef44"), "Janusz", "Mechank", Domain.Authentication.EmployeeRole.Mechanic)); if (dbContext.SaveChanges() == 0) { throw new Exception("cannot seed data!"); } }
protected override void Handle(RegisterCommand request) { var employee = new Domain.Entities.Employee(Guid.NewGuid(), request.FirstName, request.LastName, request.IdentityId); _dbContext.Employees.Add(employee); if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not register new user"); } }
protected override void Handle(CreateRepairCommand request) { var client = _dbContext.Clients.Include(c => c.Address) .Include(c => c.Vehicles) .ThenInclude(v => v.Repairs) .FirstOrDefault(c => c.Id == request.Client.Id); var manager = _dbContext.Employees.Include(e => e.Identity) .Include(m => m.Repairs) .FirstOrDefault(e => e.Id == request.ManagerId); var vehicle = _dbContext.Vehicles.Include(v => v.Type) .Include(v => v.Repairs) .FirstOrDefault(v => v.Id == request.Vehicle.Id); if (client == null) { client = new Client(request.Client.Id, request.Client.FirstName, request.Client.LastName, request.Client.PhoneNumber, request.Client.Email, request.Client.Street, request.Client.City, request.Client.Code); _dbContext.Clients.Add(client); } else { client.UpdateAddress(request.Client.Street, request.Client.City, request.Client.Code); client.UpdateContactDetails(request.Client.PhoneNumber, request.Client.Email); } if (vehicle == null) { if (_dbContext.VehicleTypes.Any(vt => vt.Id == request.Vehicle.TypeId)) { vehicle = new Domain.Entities.Vehicle(request.Vehicle.Id, request.Vehicle.RegistrationNumbers, client.Id, request.Vehicle.TypeId); } else { vehicle = new Domain.Entities.Vehicle(request.Vehicle.Id, client.Id, request.Vehicle.RegistrationNumbers, request.Vehicle.Brand, request.Vehicle.Model); } } var repair = new Domain.Entities.Repair(request.Repair.Id, request.Repair.Description, manager.Id, vehicle.Id); client.AddRepair(repair, vehicle); if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not create new repair"); } }
protected override void Handle(TerminateEmployeeCommand request) { var employee = _dbContext.Employees.FirstOrDefault(e => e.Id.ToString() == request.Id); if (employee != null) { employee.Terminate(); } if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not terminate employee"); } }
protected override void Handle(RejectPricingCommand request) { var repair = _dbContext.Repairs.Include(r => r.Pricing) .FirstOrDefault(r => r.Pricing.ClientRepairNumber == request.RepairNumber); if (repair != null) { repair.PricingRejected(); } if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not accept pricing"); } }
protected override void Handle(ChangeToInProgressActivityCommand request) { var activity = _dbContext.Activities.FirstOrDefault(a => a.Id == request.ActivityId); if (activity != null) { activity.ChangeToInProgress(); } else { throw new Exception("Connot find activity"); } if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not open activity"); } }
protected override void Handle(FinishActivityCommand request) { var activity = _dbContext.Activities.FirstOrDefault(a => a.Id == request.ActivityId); if (activity != null) { activity.Finish(request.Comment); } else { throw new Exception("Connot find activity"); } if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not finish activity"); } }
protected override void Handle(CreateActivityCommand request) { var repair = _dbContext.Repairs.FirstOrDefault(rep => rep.Id == request.RepairId); if (repair == null) { throw new Exception("Could not create activity for unknown repair"); } else { var activity = new Domain.Entities.Activity(Guid.NewGuid(), request.RepairId, request.Description, request.SequenceNumber); repair.AssignActivity(activity); if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not create activity"); } } }
protected override void Handle(CreatePricingCommand request) { var repair = _dbContext.Repairs.FirstOrDefault(rep => rep.Id == request.RepairId); if (repair == null) { throw new Exception("Could not create pricing for unknown repair"); } else { Domain.Entities.Pricing pricing = new Domain.Entities.Pricing(new Guid(), request.RepairId, request.Labour); List <Part> parts = new List <Part>(); foreach (var item in request.Parts) { Part part = new Part(new Guid(), item.Name, item.Manufacturer, item.ManufacturerId, item.Price); parts.Add(part); } pricing.AddParts(parts); _dbContext.Pricings.Add(pricing); string clientRepairNumber; Domain.Entities.Repair repairWithSameNumber; do { clientRepairNumber = repair.GenerateClientRepairNumber(); repairWithSameNumber = _dbContext.Repairs.Include(rep => rep.Pricing) .FirstOrDefault(rep => rep.Pricing.ClientRepairNumber == clientRepairNumber); }while (repairWithSameNumber != null); repair.Priced(clientRepairNumber); if (_dbContext.SaveChanges() == 0) { throw new Exception("Could not create pricing"); } } }