예제 #1
0
 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));
 }
예제 #2
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());
        }