/// <summary> /// Performs input validation and gets activities by searching with some params /// </summary> /// <param name="request">Request that specifies the search parameters</param> /// <returns>Response that contains a list of activities.</returns> public static ActivitySearchReplyDC SearchActivities(ActivitySearchRequestDC request) { var reply = new ActivitySearchReplyDC(); try { // Validates the input and throws ValidationException for any issues found. request.ValidateRequest(); reply = ActivityRepositoryService.SearchActivities(request); } catch (ValidationException e) { e.HandleException(); } catch (DataAccessException e) { e.HandleException(); } return reply; }
/// <summary> /// Search the activities for a criteria and do paging to return only a certain amount of /// results. /// </summary> /// <param name="request">ActivitySearchRequestDC</param> /// <returns>List of activities.</returns> public static ActivitySearchReplyDC SearchActivities(ActivitySearchRequestDC request) { ActivitySearchReplyDC result = new ActivitySearchReplyDC(); var resultCollection = new List<StoreActivitiesDC>(); Database database = null; DbCommand command = null; StoreActivitiesDC sab = null; try { database = DatabaseFactory.CreateDatabase(); command = database.GetStoredProcCommand(StoredProcNames.ActivitySearch); database.AddParameter(command, "@SearchText", DbType.String, ParameterDirection.Input, null, DataRowVersion.Default, request.SearchText); database.AddParameter(command, "@SortColumn", DbType.String, ParameterDirection.Input, null, DataRowVersion.Default, request.SortColumn); database.AddParameter(command, "@SortAscending", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.SortAscending); database.AddParameter(command, "@PageSize", DbType.Int32, ParameterDirection.Input, null, DataRowVersion.Default, request.PageSize); database.AddParameter(command, "@PageNumber", DbType.Int32, ParameterDirection.Input, null, DataRowVersion.Default, request.PageNumber); database.AddParameter(command, "@FilterOlder", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterOlder); database.AddParameter(command, "@FilterByName", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByName); database.AddParameter(command, "@FilterByDescription", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByDescription); database.AddParameter(command, "@FilterByTags", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByTags); database.AddParameter(command, "@FilterByType", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByType); database.AddParameter(command, "@FilterByVersion", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByVersion); database.AddParameter(command, "@FilterByCreator", DbType.Boolean, ParameterDirection.Input, null, DataRowVersion.Default, request.FilterByCreator); using (IDataReader reader = database.ExecuteReader(command)) { while (reader.Read()) { sab = new StoreActivitiesDC(); sab.Name = Convert.ToString(reader["Name"]); sab.Description = Convert.ToString(reader["Description"]); sab.Id = Convert.ToInt32(reader["Id"]); sab.InsertedByUserAlias = Convert.ToString(reader["InsertedByUserAlias"]); sab.MetaTags = Convert.ToString(reader["MetaTags"]); sab.Guid = new Guid(Convert.ToString(reader["Guid"])); sab.Version = Convert.ToString(reader["Version"]); sab.WorkflowTypeName = Convert.ToString(reader["WorkFlowTypeName"]); if (reader["InsertedDateTime"] != DBNull.Value) { sab.InsertedDateTime = Convert.ToDateTime(reader["InsertedDateTime"]); } resultCollection.Add(sab); } result.SearchResults = resultCollection; reader.NextResult(); if (reader.Read()) { result.ServerResultsLength = Convert.ToInt32(reader["Total"]); } } } catch (SqlException ex) { ex.HandleException(); } return result; }