public Task OnQueueUpdate(QueueUpdate update) { if (update.Item == null) { // ディレクトリに対する操作 if (update.Type == UpdateType.Add) { QueueItems.Add(new DisplayQueueDirectory(update.Directory)); } else { var dir = QueueItems.FirstOrDefault(d => d.Path == update.DirPath); if (dir != null) { if (update.Type == UpdateType.Remove) { QueueItems.Remove(dir); } else { QueueItems[QueueItems.IndexOf(dir)] = new DisplayQueueDirectory(update.Directory); } } } } else { // ファイルに対する操作 var dir = QueueItems.FirstOrDefault(d => d.Path == update.DirPath); if (dir != null) { if (update.Type == UpdateType.Add) { dir.Items.Add(update.Item); } else { var file = dir.Items.FirstOrDefault(f => f.Path == update.Item.Path); if (file != null) { if (update.Type == UpdateType.Remove) { dir.Items.Remove(file); } else // Update { dir.Items[dir.Items.IndexOf(file)] = update.Item; } } } } } return(Task.FromResult(0)); }
/// <summary> /// This allows you to change the properties of a queue including setting subscribers and the push type if you want it to be a push queue. /// </summary> /// <param name="retries"></param> /// <param name="retriesDelay"></param> /// <param name="pushType"></param> /// <param name="errorQueue"></param> /// <param name="subscriberUrls"></param> /// <returns></returns> public virtual QueueSettings Update(int retries = 3, int retriesDelay = 60, string pushType = "multicast", string errorQueue = null, string[] subscriberUrls = null) { var request = new QueueUpdate { PushType = pushType, Retries = retries, RetriesDelay = retriesDelay, ErrorQueue = errorQueue, Subscribers = (subscriberUrls ?? new string[0]).Select(x => new Subscriber(x)).ToArray() }; var body = JsonConvert.SerializeObject(request, ConfigurationWrapper.JsonSettings); var json = _client.Post(string.Format("queues/{0}", Name), body); return(JsonConvert.DeserializeObject <QueueSettings>(json, ConfigurationWrapper.JsonSettings)); }
public ActionResult UpdateQueue(int queueId, QueueUpdate queue) { if (!TryValidateModel(queue)) { return(ValidationProblem(ModelState)); } var queueFromRepo = _repo.GetQueueById(queueId); if (queueFromRepo == null) { return(NotFound()); } _mapper.Map(queue, queueFromRepo); //source -> destination _repo.UpdateQueue(queueFromRepo); _repo.SaveChanges(); return(NoContent()); }