public FilteredJournalViewModel(JournalFilter journalFilter)
        {
            ServiceFactory.Events.GetEvent<NewJournalRecordEvent>().Unsubscribe(OnNewJournalRecord);
            ServiceFactory.Events.GetEvent<NewJournalRecordEvent>().Subscribe(OnNewJournalRecord);

            if (journalFilter != null)
            {
                JournalFilter = journalFilter;
                Initialize();
            }
        }
        public FilterDetailsViewModel(JournalFilter journalFilter)
        {
            Title = "Редактировать фильтр";

            JournalFilter = new JournalFilter()
            {
                Name = journalFilter.Name,
                LastRecordsCount = journalFilter.LastRecordsCount,
                LastDaysCount = journalFilter.LastDaysCount,
                IsLastDaysCountActive = journalFilter.IsLastDaysCountActive
            };

            Initialize();

            StateTypes.Where(
                eventViewModel => journalFilter.StateTypes.Any(
                    x => x == eventViewModel.StateType)).All(x => x.IsChecked = true);

            Categories.Where(
                categoryViewModel => journalFilter.Categories.Any(
                    x => x == categoryViewModel.DeviceCategoryType)).All(x => x.IsChecked = true);
        }
		public OperationResult<List<JournalRecord>> GetFilteredJournal(JournalFilter journalFilter)
		{
			return FiresecDB.DatabaseHelper.GetFilteredJournal(journalFilter);
		}
		public static List<FS2JournalItem> GetFilteredJournal(JournalFilter journalFilter)
		{
			var result = new List<FS2JournalItem>();
			try
			{
				bool hasWhere = false;
				string query = "";
				if (journalFilter.IsLastDaysCountActive)
				{
					query = "SELECT * FROM Journal WHERE " +
					"\n SystemTime > '" + DateTime.Now.AddDays(-journalFilter.LastDaysCount).ToString("yyyy-MM-dd HH:mm:ss") + "'";
					hasWhere = true;
				}
				else
				{
					query = "SELECT TOP (" + journalFilter.LastRecordsCount + ") * FROM Journal ";
				}

				if (journalFilter.StateTypes.Count > 0)
				{
					if (hasWhere == false)
					{
						query += " WHERE ";
						hasWhere = true;
					}
					else
					{
						query += "\n AND ";
					}
					query += " (";
					for (int i = 0; i < journalFilter.StateTypes.Count; i++)
					{
						if (i > 0)
							query += "\n OR ";
						var stateType = journalFilter.StateTypes[i];
						query += " StateType = " + ((int)stateType).ToString();
					}
					query += ")";
				}

				if (journalFilter.Categories.Count > 0)
				{
					if (hasWhere == false)
					{
						query += " WHERE ";
						hasWhere = true;
					}
					else
					{
						query += "\n AND ";
					}
					query += " (";
					for (int i = 0; i < journalFilter.Categories.Count; i++)
					{
						if (i > 0)
							query += "\n OR ";
						var category = journalFilter.Categories[i];
						query += " DeviceCategory = " + ((int)category).ToString();
					}
					query += ")";
				}

				query += "\n ORDER BY SystemTime DESC";

				using (var sqlCeConnection = new SqlCeConnection(ConnectionString))
				{
					sqlCeConnection.ConnectionString = ConnectionString;
					var sqlCeCommand = new SqlCeCommand(query, sqlCeConnection);
					sqlCeConnection.Open();
					var reader = sqlCeCommand.ExecuteReader();
					while (reader.Read())
					{
						var journalItem = ReadOneJournalItem(reader);
						result.Add(journalItem);
					}
					sqlCeConnection.Close();
				}
			}
			catch (Exception e)
			{
				Logger.Error(e, "Исключение при вызове FiresecService.GetFilteredJournal");
				throw new FS2Exception(e.Message);
			}
			return result;
		}
 public FilterDetailsViewModel()
 {
     Title = "Добавить фильтр";
     JournalFilter = new JournalFilter();
     Initialize();
 }
		public OperationResult<List<FS2JournalItem>> GetFilteredJournal(JournalFilter journalFilter)
		{
			return SafeOperationCall(() => { return FS2Contract.GetFilteredJournal(journalFilter); }, "GetFilteredJournal");
		}
 public OperationResult<List<JournalRecord>> GetFilteredJournal(JournalFilter journalFilter)
 {
     return SafeOperationCall(() => { return FiresecService.GetFilteredJournal(journalFilter); });
 }
		public static List<FS2JournalItem> GetFilteredJournal(JournalFilter journalFilter)
		{
			return ServerFS2Database.GetFilteredJournal(journalFilter);
		}
Beispiel #9
0
 public FilterViewModel(JournalFilter journalFilter)
 {
     JournalFilter = journalFilter;
 }