private void TimerTick(object sender, EventArgs e) { Requests = _request_repository.GetAll(); Users = _user_repository.GetAll(); UpdateUsers?.Invoke(); UpdateRequests?.Invoke(); _amountOfTimerTicks++; if (_amountOfTimerTicks % 10 == 0) { if ((_currentHour + 1) == 24) { _currentHour = 0; } else { _currentHour++; } foreach (var user in _user_repository.GetAll()) { foreach (var feeder in user.Feeders) { if (feeder.TimeTable.TimeValue.Any(kv => kv.Item1 == _currentHour)) { feeder.Amount_of_food = feeder.TimeTable.TimeValue. Where(kv => kv.Item1 == _currentHour).Select(kv => kv.Item2).FirstOrDefault(); } } } } if (_amountOfTimerTicks % (new Random().Next(9) + 1) == 0) { foreach (var user in _user_repository.GetAll()) { foreach (var feeder in user.Feeders) { feeder.Amount_of_food = feeder.Amount_of_food - new Random().NextDouble(); } } } }
//Функции для работы с пользователями private void UsersListHandler(string InputMessage) { if (DataStorage.Instance.UserList.Count == 0) { DataStorage.Instance.UserList.Clear(); DataStorage.Instance.UserList = JsonConvert.DeserializeObject <ResponseUsersClass>(InputMessage).Items; } else { foreach (ResponseUserClass user in JsonConvert.DeserializeObject <ResponseUsersClass>(InputMessage).Items) { if (user.Command == ServerLib.JTypes.Enums.ItemCommands.add) { var usertmp = DataStorage.Instance.UserList.FirstOrDefault(x => x.ID == user.ID); if (usertmp == null) { DataStorage.Instance.UserList.Add(user); } else { usertmp.Builder.From(user).Update(); } } if (user.Command == ServerLib.JTypes.Enums.ItemCommands.delete) { DataStorage.Instance.UserList.Remove(user); } if (user.Command == ServerLib.JTypes.Enums.ItemCommands.edit) { ResponseUserClass usertmp = DataStorage.Instance.UserList.FirstOrDefault(x => x.ID == user.ID); usertmp.Builder.From(user).Update(); } } } UpdateUsers?.Invoke(this, ""); }