public static DataTable GetEventsTable(GetEventsParameter param) { if (param.get_NetObjectType().Equals("N", StringComparison.OrdinalIgnoreCase)) { param.set_NodeId(param.get_NetObjectId()); param.set_NetObjectId(-1); param.set_NetObjectType(string.Empty); return(EventsWebDAL.GetEvents(param)); } param.set_NodeId(-1); return(EventsWebDAL.GetEvents(param)); }
// Token: 0x0600078C RID: 1932 RVA: 0x000342BC File Offset: 0x000324BC public static DataTable GetEventsTable(GetEventsParameter param) { if (param.NetObjectType.Equals("N", StringComparison.OrdinalIgnoreCase)) { param.NodeId = param.NetObjectId; param.NetObjectId = -1; param.NetObjectType = string.Empty; return(EventsWebDAL.GetEvents(param)); } param.NodeId = -1; return(EventsWebDAL.GetEvents(param)); }
public async Task <IActionResult> GetEvents(GetEventsParameter data) { var result = new GetEventsResult(); // TODO: get GlobalVerification & GlobalPayment from settings bool globalVerification = false; // Events should verified first by admin bool globalPayment = false; // Events should pay specified fee var q = context.Events.Where(a => a.Visible && (!globalVerification || a.Verified) && (!globalPayment || a.Payed)); // TODO: Move query to repository if (data.From.HasValue) { q = q.Where(a => a.HoldingDate >= data.From.Value.ToLocalTime()); } else if (data.To.HasValue) { var to = data.To.Value.ToLocalTime().AddDays(1); q = q.Where(a => a.HoldingDate <= to); } else { // Do not return past events at first q = q.Where(a => a.HoldingDate >= DateTime.Now); } if (!string.IsNullOrEmpty(data.Str)) { q = q.Where(a => a.Title.Contains(data.Str)); } if (data.Tags.Count > 0) { // TODO: Check generated query and execution plan q = q.Where(a => a.EventTags.Any(b => data.Tags.Contains(b.TagId))); } if (!string.IsNullOrEmpty(data.UserId)) { q = q.Where(a => a.UserId == data.UserId); } const int distance = 10000; if (data.Latitude.HasValue && data.Longitude.HasValue) { q = q.Where(a => DataContext.GetDistance(data.Latitude.Value, data.Longitude.Value, a.Latitude, a.Longitude) <= distance); } switch (data.Sort) { case GetEventsSort.Latest: q = q.OrderBy(a => a.HoldingDate); break; case GetEventsSort.Popular: q = q.OrderByDescending(a => a.Activities.Count); break; case GetEventsSort.Nearest: // TODO: create a database function which take a geo location as input and sort the events by distance break; default: break; } var count = q.Count(); var events = await q.Skip(data.Count *data.Page).Take(data.Count) .Select(a => new EventSummury() { Capacity = a.Capacity, HoldingDate = a.HoldingDate, Id = a.Id, Joined = a.Joined, Tags = a.EventTags.Select(b => b.TagId), Photo = a.Photos.DefaultIfEmpty().First().FileName, Title = a.Title, Latitude = a.Latitude, Longitude = a.Longitude }).ToListAsync(); result.Events = events; result.TotalCount = count; return(Ok(result)); }
public static DataTable GetEvents(GetEventsParameter param) { if (param == null) { throw new ArgumentNullException(nameof(param)); } DataTable dataTable = (DataTable)null; StringBuilder stringBuilder = new StringBuilder(); using (SqlCommand textCommand = SqlHelper.GetTextCommand(string.Empty)) { stringBuilder.Append("SELECT TOP (@maxRecords) NetObjectType, NetObjectID, NetObjectID2, NetObjectValue, EventID, Acknowledged, EventTime, \r\n Events.EventType as EventType, Message, ISNULL(EventTypes.BackColor, 0) as BackColor, NodesData.NodeID as LinkNodeID\r\n FROM Events WITH(NOLOCK)\r\n LEFT JOIN NodesData WITH(NOLOCK) ON Events.NetworkNode = NodesData.NodeID\r\n LEFT JOIN NodesCustomProperties WITH(NOLOCK) ON Events.NetworkNode = NodesCustomProperties.NodeID\r\n LEFT JOIN EventTypes ON Events.EventType = EventTypes.EventType"); textCommand.Parameters.Add(new SqlParameter("@maxRecords", (object)param.get_MaxRecords())); List <string> stringList = new List <string>(); if (!param.get_IncludeAcknowledged()) { stringList.Add("Acknowledged='false'"); } if (param.get_NodeId() >= 0) { stringList.Add(" Events.NetworkNode=@nodeID"); textCommand.Parameters.Add(new SqlParameter("@nodeID", (object)param.get_NodeId())); } if (param.get_NetObjectId() >= 0) { stringList.Add(" Events.NetObjectID=@netObjectID"); textCommand.Parameters.Add(new SqlParameter("@netObjectID", (object)param.get_NetObjectId())); } if (!string.IsNullOrEmpty(param.get_NetObjectType())) { stringList.Add(" Events.NetObjectType Like @netObjectType"); SqlParameterCollection parameters = textCommand.Parameters; SqlParameter sqlParameter = new SqlParameter("@netObjectType", SqlDbType.VarChar, 10); sqlParameter.Value = (object)param.get_NetObjectType(); parameters.Add(sqlParameter); } if (!string.IsNullOrEmpty(param.get_DeviceType())) { stringList.Add(" (NodesData.MachineType Like @deviceType)"); textCommand.Parameters.Add(new SqlParameter("@deviceType", (object)param.get_DeviceType())); } if (param.get_EventType() > 0) { stringList.Add(" Events.EventType=@eventType"); textCommand.Parameters.Add(new SqlParameter("@eventType", (object)param.get_EventType().ToString())); } if (param.get_FromDate().HasValue&& param.get_ToDate().HasValue) { stringList.Add(" EventTime >= @fromDate AND EventTime <= @toDate"); textCommand.Parameters.Add(new SqlParameter("@fromDate", (object)param.get_FromDate())); textCommand.Parameters.Add(new SqlParameter("@toDate", (object)param.get_ToDate())); } if (stringList.Count > 0) { stringBuilder.Append(" WHERE"); if (stringList.Count == 1) { stringBuilder.AppendFormat(" {0}", (object)stringList[0]); } else { stringBuilder.AppendFormat(" {0}", (object)stringList[0]); for (int index = 1; index < stringList.Count; ++index) { stringBuilder.AppendFormat(" AND {0}", (object)stringList[index]); } } } stringBuilder.Append(" ORDER BY EventID DESC"); textCommand.CommandText = Limitation.LimitSQL(stringBuilder.ToString(), (IEnumerable <int>)param.get_LimitationIDs()); dataTable = SqlHelper.ExecuteDataTable(textCommand); } dataTable.TableName = "EventsTable"; return(dataTable); }
// Token: 0x0600078B RID: 1931 RVA: 0x00033FF4 File Offset: 0x000321F4 public static DataTable GetEvents(GetEventsParameter param) { if (param == null) { throw new ArgumentNullException("param"); } DataTable dataTable = null; StringBuilder stringBuilder = new StringBuilder(); using (SqlCommand textCommand = SqlHelper.GetTextCommand(string.Empty)) { stringBuilder.Append("SELECT TOP (@maxRecords) NetObjectType, NetObjectID, NetObjectID2, NetObjectValue, EventID, Acknowledged, EventTime, \r\n Events.EventType as EventType, Message, ISNULL(EventTypes.BackColor, 0) as BackColor, NodesData.NodeID as LinkNodeID\r\n FROM Events WITH(NOLOCK)\r\n LEFT JOIN NodesData WITH(NOLOCK) ON Events.NetworkNode = NodesData.NodeID\r\n LEFT JOIN NodesCustomProperties WITH(NOLOCK) ON Events.NetworkNode = NodesCustomProperties.NodeID\r\n LEFT JOIN EventTypes ON Events.EventType = EventTypes.EventType"); textCommand.Parameters.Add(new SqlParameter("@maxRecords", param.MaxRecords)); List <string> list = new List <string>(); if (!param.IncludeAcknowledged) { list.Add("Acknowledged='false'"); } if (param.NodeId >= 0) { list.Add(" Events.NetworkNode=@nodeID"); textCommand.Parameters.Add(new SqlParameter("@nodeID", param.NodeId)); } if (param.NetObjectId >= 0) { list.Add(" Events.NetObjectID=@netObjectID"); textCommand.Parameters.Add(new SqlParameter("@netObjectID", param.NetObjectId)); } if (!string.IsNullOrEmpty(param.NetObjectType)) { list.Add(" Events.NetObjectType Like @netObjectType"); textCommand.Parameters.Add(new SqlParameter("@netObjectType", SqlDbType.VarChar, 10) { Value = param.NetObjectType }); } if (!string.IsNullOrEmpty(param.DeviceType)) { list.Add(" (NodesData.MachineType Like @deviceType)"); textCommand.Parameters.Add(new SqlParameter("@deviceType", param.DeviceType)); } if (param.EventType > 0) { list.Add(" Events.EventType=@eventType"); textCommand.Parameters.Add(new SqlParameter("@eventType", param.EventType.ToString())); } if (param.FromDate != null && param.ToDate != null) { list.Add(" EventTime >= @fromDate AND EventTime <= @toDate"); textCommand.Parameters.Add(new SqlParameter("@fromDate", param.FromDate)); textCommand.Parameters.Add(new SqlParameter("@toDate", param.ToDate)); } if (list.Count > 0) { stringBuilder.Append(" WHERE"); if (list.Count == 1) { stringBuilder.AppendFormat(" {0}", list[0]); } else { stringBuilder.AppendFormat(" {0}", list[0]); for (int i = 1; i < list.Count; i++) { stringBuilder.AppendFormat(" AND {0}", list[i]); } } } stringBuilder.Append(" ORDER BY EventID DESC"); textCommand.CommandText = Limitation.LimitSQL(stringBuilder.ToString(), param.LimitationIDs); dataTable = SqlHelper.ExecuteDataTable(textCommand); } dataTable.TableName = "EventsTable"; return(dataTable); }