Ejemplo n.º 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
        }
Ejemplo n.º 2
0
        public async Task UpdateWithRelationship(Guid id, MachineType machineType)
        {
            ICollection <MachineTypeOperation> machineTypeOperations = await machineTypeOperationRepository.GetMachineTypeOperationsByMachineType(id);

            foreach (var machineTypeOperation in machineTypeOperations)
            {
                Console.WriteLine(machineTypeOperation);
                await machineTypeOperationRepository.Delete(machineTypeOperation.MachineTypeId, machineTypeOperation.OperationId);
            }
            await Update(id, machineType);
        }