Exemple #1
0
        private ModificationBuilder createModificationBuilder(ModificationDto dto)
        {
            ModificationBuilder builder = ProcessEngine.RuntimeService.createModification(dto.ProcessDefinitionId);

            if (dto.Instructions != null && dto.Instructions.Count > 0)
            {
                dto.applyTo(builder, ProcessEngine, objectMapper);
            }

            IList <string> processInstanceIds = dto.ProcessInstanceIds;

            builder.processInstanceIds(processInstanceIds);

            ProcessInstanceQueryDto processInstanceQueryDto = dto.ProcessInstanceQuery;

            if (processInstanceQueryDto != null)
            {
                ProcessInstanceQuery processInstanceQuery = processInstanceQueryDto.toQuery(ProcessEngine);
                builder.processInstanceQuery(processInstanceQuery);
            }

            if (dto.SkipCustomListeners)
            {
                builder.skipCustomListeners();
            }

            if (dto.SkipIoMappings)
            {
                builder.skipIoMappings();
            }

            return(builder);
        }
Exemple #2
0
 public virtual void executeModification(ModificationDto modificationExecutionDto)
 {
     try
     {
         createModificationBuilder(modificationExecutionDto).execute();
     }
     catch (BadUserRequestException e)
     {
         throw new InvalidRequestException(Status.BAD_REQUEST, e.Message);
     }
 }
Exemple #3
0
        public virtual BatchDto executeModificationAsync(ModificationDto modificationExecutionDto)
        {
            Batch batch = null;

            try
            {
                batch = createModificationBuilder(modificationExecutionDto).executeAsync();
            }
            catch (BadUserRequestException e)
            {
                throw new InvalidRequestException(Status.BAD_REQUEST, e.Message);
            }
            return(BatchDto.fromBatch(batch));
        }
Exemple #4
0
        /// <summary>
        ///     Updates the Properties.Modifications by the NetHandle.
        ///     Adds also new modification combinations to the VehicleModifications table.
        /// </summary>
        public void UpdateVehicleModifications()
        {
            if (Properties.Modifications == null)
            {
                Properties.Modifications = new List <VehicleModificationDto>();
            }

            using (VehicleContext context = VehicleRepository.GetVehicleContext())
            {
                foreach (VehicleModType modification in Enum.GetValues(typeof(VehicleModType)))
                {
                    // Search for existing Modification
                    int value = API.shared.getVehicleMod(Vehicle, (int)modification);

                    ModificationDto modificationDto = context.Modifications
                                                      .FirstOrDefault(modDto => modDto.Slot == modification && modDto.Value == value);

                    // No existing modification found -> Create new
                    if (modificationDto == null)
                    {
                        modificationDto = context.Modifications.Add(new ModificationDto
                        {
                            Value = value,
                            Slot  = modification
                        });
                        context.SaveChanges();
                    }

                    // Check for existing modification mapping or create new
                    if (Properties.Modifications.Any(vmdto =>
                                                     vmdto.Modification != null && vmdto.Modification.Slot == modification))
                    {
                        Properties.Modifications.First(vmdto =>
                                                       vmdto.Modification != null && vmdto.Modification.Slot == modification)
                        .Modification = modificationDto;
                    }
                    else
                    {
                        Properties.Modifications.Add(new VehicleModificationDto
                        {
                            VehicleId      = Properties.VehicleId,
                            ModificationId = modificationDto.ModificationId
                        });
                    }
                }
            }

            Debug("Update - Vehicle Modifications updated.");
        }