コード例 #1
0
        public async Task DeleteWithRelationship(Guid operationId)
        {
            //Apagar Operation + MachineTypeOperation(join row) + MachineType
            Operation                      operation             = GetById(operationId).Result;
            MachineTypeRepository          machineTypeRepository = new MachineTypeRepository(_context);
            MachineTypeOperationRepository jointablerepo         = new MachineTypeOperationRepository(_context);
            List <MachineType>             machineTypes          = await jointablerepo.GetMachineTypesWithOperationId(operation.Id);

            foreach (MachineType machine in machineTypes)
            {
                List <MachineTypeOperation> joinsList = machine.MachineTypeOperations.ToList();
                foreach (MachineTypeOperation join in joinsList)
                {
                    if (join.Operation.Equals(operation))
                    {
                        machine.MachineTypeOperations.Remove(join);                       //apagar da lista
                        await jointablerepo.Delete(join.MachineTypeId, join.OperationId); //apagar

                        if (machine.MachineTypeOperations.Count == 0)
                        {
                            //0-* Se MachineType n tiver nenhum operation n existe e é apagada
                            await machineTypeRepository.Delete(machine.Id);
                        }
                    }
                }
            }
            await base.Delete(operationId); //apagar Operation
        }
コード例 #2
0
 public MachineTypeRepository(Context context) : base(context)
 {
     //context.MachineTypes.Include(m => m.MachineTypeOperations).ToListAsync();
     //context.MachineTypes.Include(m => m.Operations).ToListAsync();
     machineTypeOperationRepository = new MachineTypeOperationRepository(context);
 }