Esempio n. 1
0
        private async Task OpenDocument(IDocument doc)
        {
            _openDocuments.Add(doc);
            await Oy.Publish("Document:Opened", doc);

            await ActivateDocument(doc);
        }
        /// <summary>
        /// этот метод вызовет программа обновления службы, сообщив свою
        /// локальную директорию и статус обновления
        /// </summary>
        public void UpdateServiceFilesStates(string serviceFolder, int filesUpdated, int filesLeft, bool updateFinished)
        {
            // найти сервис по директории
            var map = ServiceMap.LoadSettings();

            if (map.Items.Count == 0)
            {
                return;
            }
            var srv = map.Items.FirstOrDefault(m => m.Folder == serviceFolder);

            if (srv == null)
            {
                Logger.DebugFormat("Информация по сервису в каталоге [{0}] - сервис не найден",
                                   serviceFolder);
                return;
            }

            if (updateFinished)
            {
                serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
                return;
            }

            var srvStatus = new ServiceUpdateStatus
            {
                FilesLeft    = filesLeft,
                FilesUpdated = filesUpdated,
                ServiceName  = srv.ServiceName
            };

            serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
            serviceStatus.Add(srvStatus, 2000);
        }
Esempio n. 3
0
 /// <summary>
 ///     Add URL to the listing record
 /// </summary>
 /// <param name="url"></param>
 public void AddFileListingTest(string url)
 {
     if (!ListingFilesTest.Contains(url))
     {
         ListingFilesTest.Add(url);
     }
 }
Esempio n. 4
0
File: Data.cs Progetto: timfplab/fp
 public void AddLimit(Limits limit)
 {
     if (!lstLimits.Any(t => t.Range == limit.Range))
     {
         lstLimits.Add(limit);
     }
 }
Esempio n. 5
0
 public void Setup()
 {
     list = new ThreadSafeList <string>();
     for (int i = 0; i < 10; i++)
     {
         list.Add($"test {i}");
     }
 }
Esempio n. 6
0
        /// <summary>
        ///     Extract existing folders from a given list of URLs
        /// </summary>
        /// <param name="lsturls"></param>
        /// <returns></returns>
        private static ThreadSafeList <string> _ExtractFoldersRuntime(IEnumerable <string> lsturls)
        {
            var folders        = new ThreadSafeList <string>();
            var foldersBackups = new ThreadSafeList <string>();

            foreach (var url in lsturls)
            {
                var u = new Uri(url);
                if (u.ToString().EndsWith("//"))
                {
                    var auxSingleUrl = new ThreadSafeList <string> {
                        u.ToString().Remove(u.ToString().Length - 1, 1)
                    };
                    return(_ExtractFoldersRuntime(auxSingleUrl));
                }

                var offSetProtocol = url.IndexOf("://", StringComparison.Ordinal);
                var protocol       = url.Substring(0, offSetProtocol);

                var foldersSplit = u.AbsolutePath.Split('/');
                var path         = string.Empty;

                for (var i = 0; i < foldersSplit.Length; i++)
                {
                    if (i + 1 != foldersSplit.Length)
                    {
                        path += foldersSplit[i] + "/";
                    }
                    if (folders.Contains(protocol + "://" + u.Host + path) || path.Contains("."))
                    {
                        continue;
                    }
                    folders.Add(protocol + "://" + u.Host + path);

                    // ToDo use a list provided by the user
                    string[] compressExt = { ".zip", ".rar", ".tar", ".gz", ".tar.gz" };
                    var      path1       = path;
                    foreach (
                        var extension in
                        compressExt.Where(
                            extension =>
                            protocol + "://" + u.Host + path1.Substring(0, path1.Length - 1) !=
                            protocol + "://" + u.Host)
                        .Where(
                            extension =>
                            !foldersBackups.Contains(protocol + "://" + u.Host +
                                                     path1.Substring(0, path1.Length - 1) +
                                                     extension)))
                    {
                        foldersBackups.Add(protocol + "://" + u.Host + path.Substring(0, path.Length - 1) +
                                           extension);
                    }
                }
            }

            return(foldersBackups);
        }
Esempio n. 7
0
    public PanelInformationOptionsSerializableClass()
    {
        int nExtensions = 22;

        for (int i = 0; i < nExtensions; i++)
        {
            files_Extensions.Add(true);
        }
    }
Esempio n. 8
0
        /// <summary>
        /// Create the grid
        /// </summary>
        private void DrawGrid()
        {
            HelixGrid = null;

            var newLines = new ThreadSafeList <Point3D>();

            for (int x = -10; x <= 10; x++)
            {
                newLines.Add(new Point3D(x, -10, -.001));
                newLines.Add(new Point3D(x, 10, -.001));
            }

            for (int y = -10; y <= 10; y++)
            {
                newLines.Add(new Point3D(-10, y, -.001));
                newLines.Add(new Point3D(10, y, -.001));
            }

            HelixGrid = newLines;
        }
        public static ThreadSafeList <T> ToThreadSafeList <T>(this IEnumerable <T> collection)
        {
            ThreadSafeList <T> tsList = new ThreadSafeList <T>(collection.Count());

            foreach (T item in collection)
            {
                tsList.Add(item);
            }

            return(tsList);
        }
Esempio n. 10
0
 public void AddConnector(bool isInput, ConnectorObject connector)
 {
     if (isInput)
     {
         inputConveyors.Add(connector);
     }
     else
     {
         outputConveyors.Add(connector);
     }
     UpdateElectricityCost();
 }
Esempio n. 11
0
        public void CreateRoomInternal(Room room)
        {
            room.Id = freeRoomId++;
            // устанавливаем время, когда комната будет удалена из-за неактивности
            if (!room.IsBound && !room.ExpireTime.HasValue)
            {
                room.ExpireTime = DateTime.Now + roomExpireTime;
            }
            var newRoom = new Room(room);

            rooms.Add(newRoom, lockTimeout);
        }
Esempio n. 12
0
        /// <summary>
        ///     Returns a URLs list for the ackups search action
        /// </summary>
        /// <param name="urls"></param>
        /// <returns></returns>
        public static ThreadSafeList <string> MutexFileRuntime(ThreadSafeList <string> urls)
        {
            var allUrls = new ThreadSafeList <string>();

            var mutexfolders = _ExtractFoldersRuntime(urls);

            foreach (var url in urls)
            {
                var uri           = new Uri(url);
                var file          = Path.GetFileName(uri.LocalPath);
                var fileName      = Path.GetFileNameWithoutExtension(file);
                var fileExtension = Path.GetExtension(file);
                var path          = uri.AbsoluteUri;

                if (uri.AbsoluteUri.IndexOf(file, StringComparison.Ordinal) > 0)
                {
                    path = path.Remove(uri.AbsoluteUri.IndexOf(file, StringComparison.Ordinal));
                }

                var mutex = _MutexFileRuntime(path, HttpUtility.UrlEncode(fileName),
                                              HttpUtility.UrlEncode(fileExtension));

                if (mutex == null)
                {
                    return(allUrls);
                }

                foreach (var mutexUrl in mutex)
                {
                    allUrls.Add(mutexUrl);
                }
            }

            foreach (var folderMuteado in mutexfolders)
            {
                allUrls.Add(folderMuteado);
            }

            return(allUrls);
        }
Esempio n. 13
0
 public void AddConveyor(TransportPipeInfo info)
 {
     if (info.type == PIPETYPE.Wooden)
     {
         if (linkerPipeType != PIPETYPE.Wooden)
         {
             linkerPipeType = PIPETYPE.Wooden;
             UpdateElectricityType();
         }
     }
     conveyors.Add(info);
     UpdateElectricityCost();
 }
Esempio n. 14
0
        void counterHandler(object sender, Image <Gray, byte> e)
        {
            mainRecognizer.TrainingImages = InsidePeoples.ToList();
            mainRecognizer.SetImageLabels();
            int index = mainRecognizer.RecogniseReturnLabel(e, 2000);

            if (index == -1)
            {
                InsidePeoples.Add(e);
                In = In + 1;
                Debug.WriteLine("Person Entered");
            }
        }
Esempio n. 15
0
 void OnGUI()
 {
     if (spokenCommandFieldVisible)
     {
         spokenCommand = GUI.TextField(new Rect(0, 0, 200, 20), spokenCommand, 200);
         if (Event.current.Equals(Event.KeyboardEvent("None")))
         {
             //Debug.Log("Pressed Enter");
             //DoneTyping();
             outgoingMessages.Add("SC," + spokenCommand + "\n");
             spokenCommand = "";
         }
     }
 }
Esempio n. 16
0
        public void AddLimit(Limits limit)
        {
            var found = false;

            foreach (var t in lstLimits.Where(t => t.Range == limit.Range))
            {
                found = true;
            }

            if (found == false)
            {
                lstLimits.Add(limit);
            }
        }
Esempio n. 17
0
 public void ScheduleTaskOnSynchronizationCompleted(WaitCallback callback, object ptr = null)
 {
     if (wasSynchrnoizedAtLeastOneTime)
     {
         ThreadPool.QueueUserWorkItem(callback, ptr);
     }
     else
     {
         tasksPerformedOnSynchIsCompleted.Add(new SynchCompletedTask
         {
             callback      = callback,
             callbackParam = ptr
         }, 2000);
     }
 }
 /// <summary>
 /// Adds the given transaction to the queue of transactions to send and wakes
 /// up the write thread of the associated connection
 /// </summary>
 /// <param name="transaction">transactionToSend</param>
 /// <param name="positionIndex">the position in which to add the transaction, if -1
 ///                             (UNIMPORTANT) just run an .add</param>
 private void AddTransactionToSend(Transaction transaction, int positionIndex)
 {
     lock (_transactionsToSendLock)
     {
         if (positionIndex != UNIMPORTANT)
         {
             _transactionsToSend.Insert(positionIndex, transaction);
         }
         else
         {
             _transactionsToSend.Add(transaction);
         }
     }
     Connection.NotifyWriteThread();
 }
Esempio n. 19
0
        public void AppendLogMessage(string msg)
        {
            logMessages.Add(DateTime.Now.ToString("HH:mm:ss") + " " + msg, 1000);
            // отрезать линюю историю
            if (logMessages.Count <= MaxMessagesInLog)
            {
                return;
            }
            bool timeout;
            var  subMsgList  = logMessages.ExtractAll(1000, out timeout);
            var  countTarget = MaxMessagesInLog - ClearLogBy;

            subMsgList = subMsgList.Skip(Math.Max(0, subMsgList.Count() - countTarget)).Take(countTarget).ToList();
            logMessages.AddRange(subMsgList, 1000);
        }
Esempio n. 20
0
        public ChatResultCode MoveToRoomWithNoAnswer(int userId, string roomName, string password, int requestId)
        {
            var user = users.Find(u => u.ID == userId, lockTimeout);

            if (user == null)
            {
                Logger.InfoFormat("[{0}]MoveToRoomWithNoAnswer: user not found, room={1}", requestId, roomName);
                return(ChatResultCode.UnknownUser);
            }
            var room = rooms.Find(r => r.Name == roomName, lockTimeout);

            if (room == null)
            {
                Logger.InfoFormat("[{0}]MoveToRoomWithNoAnswer: room {1} not found, user={2}", requestId, roomName, user);
                return(ChatResultCode.UnknownRoom);
            }
            bool timeoutFlag;
            var  userAndRoomExists = usersAndRooms.Contains(new Cortege2 <int, int> {
                a = userId, b = room.Id
            }, lockTimeout, out timeoutFlag);

            if (userAndRoomExists)
            {
                return(ChatResultCode.AlreadyEnteredRoom);
            }
            // проверяем пароль
            if (!string.IsNullOrEmpty(room.Password) && room.Password != password)
            {
                Logger.InfoFormat("[{0}]MoveToRoomWithNoAnswer: password not correct, user={1}, room={2}", requestId, user, roomName);
                return(ChatResultCode.Error);
            }
            usersAndRooms.Add(new Cortege2 <int, int>(userId, room.Id), lockTimeout);
            room.UserCount++;
            // сбрасываем время автоматического удаления комнаты
            room.ExpireTime = null;
            Logger.InfoFormat("[{0}]MoveToRoomWithNoAnswer: user {1} entered room {2}", requestId, user, roomName);
            var action = new UserAction
            {
                UserId     = userId,
                ActionType = UserActionType.RoomEnter,
                Room       = roomName,
                TimeStamp  = DateTime.Now
            };

            userActions.Add(action, lockTimeout);
            SendUserAction(action);
            return(ChatResultCode.Ok);
        }
Esempio n. 21
0
            public void PutMessage(MessageCategory cat, string msg)
            {
                var upTime = messagePublished.ReceiveValue(cat);

                if (upTime.HasValue)
                {
                    var deltaSec = (DateTime.Now - upTime.Value).TotalSeconds;
                    if (deltaSec < minSecondsBetweenSameMessages)
                    {
                        return;
                    }
                }

                messages.Add(new Cortege2 <MessageCategory, string>(cat, msg), 1000);
                messagePublished.UpdateValues(cat, DateTime.Now);
            }
Esempio n. 22
0
        private void button1_Click(object sender, EventArgs e)
        {
            ThreadSafeList <string> list = new ThreadSafeList <string>();
            Random rnd = new Random(DateTime.Now.Millisecond);

            for (int i = 0; i < 10; i++)
            {
                list.Add(rnd.Next(1, 20).ToString());
            }
            string[] aa = { "A1", "B2", "C3", "D4" };
            list.AddRange(aa);
            MessageBox.Show("OK");
            list = new ThreadSafeList <string>(aa);
            list.RemoveAll(s => { int zz; return(!int.TryParse(s, out zz)); });
            ThreadSafeCollection <string> cl = new ThreadSafeCollection <string>();
        }
Esempio n. 23
0
        private void Process()
        {
            TaskFOCA task;

            while (true)
            {
                System.Threading.Thread.Sleep(50);

                for (int iTaskRunning = 0; iTaskRunning < lstRunningTasks.Count; iTaskRunning++)
                {
                    TaskFOCA taskRunning = lstRunningTasks[iTaskRunning];

                    if (!taskRunning.IsAlive())
                    {
                        lstRunningTasks.Remove(taskRunning);

                        if (OnTaskFinished != null)
                        {
                            OnTaskFinished(taskRunning, null);
                        }
                    }
                }

                if (lstRunningTasks.Count >= Program.cfgCurrent.NumberOfTasks)
                {
                    continue;
                }

                for (int iTask = lstRunningTasks.Count; iTask < Program.cfgCurrent.NumberOfTasks; iTask++)
                {
                    if (lstTasks.Count == 0)
                    {
                        continue;
                    }

                    task = lstTasks.First();
                    lstTasks.Remove(task);
                    lstRunningTasks.Add(task);
                    task.Start();

                    if (OnTaskStarting != null)
                    {
                        OnTaskStarting(task, null);
                    }
                }
            }
        }
Esempio n. 24
0
        private void UserEnteredInternal(UserAction action)
        {
            if (isStopping)
            {
                return;
            }
            // TODO: отвязать клиента от БД
            var userData = AllUsers.Instance.GetUser(action.UserId) ?? new User {
                ID = action.UserId, Login = action.UserId.ToString()
            };

            onlineUsers.Add(userData, LockTimeout);
            if (UserEntered != null)
            {
                UserEntered(action);
            }
        }
Esempio n. 25
0
 public void Subscribe(Type messageType, MessageBusHandler handler)
 {
     _container.Lock(value =>
     {
         ThreadSafeList <MessageBusHandler> handlers;
         if (value.TryGetValue(messageType, out handlers))
         {
             handlers.Add(handler);
         }
         else
         {
             handlers = new ThreadSafeList <MessageBusHandler>();
             value.Add(messageType, handlers);
             handlers.Add(handler);
         }
     });
 }
Esempio n. 26
0
        public void AddTask(TaskFOCA task)
        {
            lstTasks.Add(task);

            task.id = idCount;

            try
            {
                idCount++;
            }
            catch
            {
                idCount = 0;
            }

            if (OnTaskAdded != null)
            {
                OnTaskAdded(task, null);
            }
        }
Esempio n. 27
0
        public PlayerSlotCollection(int numSlots)
        {
            SlotList = new ThreadSafeList<PlayerSlot>(numSlots);

            PlayerSlot previous = null;
            PlayerSlot current = null;
            for (int i = 0; i < numSlots; i++)
            {
                current = new PlayerSlot(i, SyncLock);

                if (previous != null)
                    previous.FillNextSlot(current);

                SlotList.Add(current);

                previous = current;
            }

            //-- Link the last slot to the first.
            current.FillNextSlot(SlotList[0]);
        }
Esempio n. 28
0
 public static void ReadInstalledMod()
 {
     foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
     {
         if (asm.FullName == "Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")
         {
             continue;
         }
         if (asm.FullName == "HarmonySharedState, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")
         {
             continue;
         }
         if (asm.Location.IsEmpty() && asm.FullName.Contains("Eco") == false && asm.FullName.Contains("System") == false && asm.FullName.Contains("Lidgren") == false &&
             asm.FullName.Contains("SharpNoise") == false && asm.FullName.Split(',').First() != "C5" && asm.FullName.Contains("NodeGraphControl") == false &&
             asm.FullName.Contains("Newtonsoft") == false && asm.FullName.Contains("Priority Queue") == false && asm.FullName.Contains("NLog") == false &&
             asm.FullName.Contains("Humanizer") == false && asm.FullName.Contains("LiteDB") == false && asm.FullName.Contains("LZ4") == false)
         {
             installedMod.Add(asm);
             Console.WriteLine("     - " + asm.FullName.Split(',').First() + " " + asm.FullName.Split(',')[1].Split('=').Last());
         }
     }
 }
Esempio n. 29
0
        /// <summary>
        /// Handle received connection on the socket object.
        /// </summary>
        void IServerHandler.ConnectionAccepted(Socket socket)
        {
            Console.WriteLine($"client {socket.RemoteEndPoint} connected");

            // create new chat member from received socket
            var client = new ChatMember(socket);

            // add the new connection to managed list
            _clients.Add(client);

            // register the client handler (process chat messages) to be managed in local class
            client.ClientHandler = this;

            // use the chat system serializer
            client.SerializationHandler = ChatMessageSerializer.Instance;

            // use the global pool for socket events
            client.EventHandler = Program.EventManager;

            // begin receving data from chat member, in a ChatMessage object that extends NetworkMessageHandler
            client.ReceiveAsync <ChatMessage>();
        }
Esempio n. 30
0
        /// <summary>
        /// Handle received connection on the socket object.
        /// </summary>
        async void IServerHandler.OnSocketAccepted(Socket socket)
        {
            Console.WriteLine($"client {socket.RemoteEndPoint} connected");

            // create new chat member from received socket
            using (var client = new ChatMember(socket)) {
                // add the new connection to managed list
                _clients.Add(client);

                // register the client handler (process chat messages) to be managed in local class
                client.ClientHandler = this;

                // use the chat system serializer
                client.SerializationHandler = ChatMessageSerializer.Instance;

                // begin receving data from chat member, in a ChatMessage object that extends NetworkMessageHandler
                await client.BeginReceiveAsync <ChatMessage>();

                // remove the member from managed connections
                _clients.Remove(client);
            }
        }
Esempio n. 31
0
        /// <summary>
        ///     Generate possible backup file names
        /// </summary>
        /// <param name="path"></param>
        /// <param name="fileName"></param>
        /// <param name="fileExtension"></param>
        /// <returns></returns>
        private static ThreadSafeList <string> _MutexFileRuntime(string path, string fileName, string fileExtension)
        {
            var lstFiles = new ThreadSafeList <string>();

            // ToDo use a list provided by the user
            string[] backupExt   = { "old", "bak", "back", "1", "2", "txt", "~", "save", "backup" };
            string[] oldVersions = { "1", "2", "_1", "_2", "_backup" };

            fileExtension = fileExtension.Trim('.');

            foreach (var newFile in (from newExt in backupExt.Concat(oldVersions)
                                     let aux = path.Split(new[] { "/" }, StringSplitOptions.None)
                                               let realPath = string.Join("/", aux.Take(aux.Count() - 1)) + "/"
                                                              select(string.Equals(newExt, "~"))
                                         ? realPath + fileName + "." + fileExtension + newExt
                                         : realPath + fileName + "." + fileExtension + "." + newExt).Where(
                         newFile => !lstFiles.Contains(newFile)))
            {
                lstFiles.Add(newFile);
            }

            return(lstFiles);
        }
Esempio n. 32
0
        /// <summary>
        /// Create the grid
        /// </summary>
        private void DrawGrid()
        {
            HelixGrid = null;

            var newLines = new ThreadSafeList<Point3D>();

            for (int x = -10; x <= 10; x++)
            {
                newLines.Add(new Point3D(x, -10, -.001));
                newLines.Add(new Point3D(x, 10, -.001));
            }

            for (int y = -10; y <= 10; y++)
            {
                newLines.Add(new Point3D(-10, y, -.001));
                newLines.Add(new Point3D(10, y, -.001));
            }

            HelixGrid = newLines;
        }