Пример #1
0
        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();
                    }
                }
            }
        }
Пример #2
0
        //Функции для работы с пользователями
        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, "");
        }