private void PerformTask(InsideModel.Models.Task taskToPerform) { if (taskToPerform.Type == TaskType.CreateTaskForUsersToSendNewContactEmailNotification) { _notificationEmailSender.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.SendNewContactPhoneNotification) { phoneNotificationTaskPerformer.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.AddProductAnalyticData) { addAnalyticProductDataForClient.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.CreateAnalyticDataTasksForClients) { createAnalyticDataTasksForClients.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.ImportCustomEvents) { customEventsImporter.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.ImportSeoData) { seoDataImporter.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.SendNewContactEmailNotificationToUser) { userEmailSender.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.ImportCustomEventsTaskCreator) { importCustomEventsTaskCreator.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.RemoveExpiredTokens) { removeExpiredTokens.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.CreateUpdatePhonecallsTasksForClients) { updatePhonecallsTaskCreator.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.UpdatePhonecalls) { updatePhonecalls.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.CreateTaskForUsersToSendNewContactSmsNotification) { smsNotificationTaskCreator.PerformTask(taskToPerform); } else if (taskToPerform.Type == TaskType.SendNewContactSmsNotificationToUser) { userSmsNotificationTaskPerformer.PerformTask(taskToPerform); } else { throw new Exception("Unknown task type: " + taskToPerform.Type); } }