Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
 // 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));
 }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        // 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);
        }