示例#1
0
        public List <UnitStatusResult> GetUnitStatusesForLink(int linkId)
        {
            var results = new List <UnitStatusResult>();

            var link = _departmentLinksService.GetLinkById(linkId);

            if (link.DepartmentId != DepartmentId && link.LinkedDepartmentId != DepartmentId)
            {
                return(new List <UnitStatusResult>());
            }

            var units      = _unitsService.GetAllLatestStatusForUnitsByDepartmentId(link.DepartmentId);
            var department = _departmentsService.GetDepartmentById(link.DepartmentId, false);

            foreach (var u in units)
            {
                var unitStatus = new UnitStatusResult();
                unitStatus.Uid = u.UnitId;
                unitStatus.Typ = u.State;
                unitStatus.Tmp = u.Timestamp.TimeConverter(department);

                if (u.DestinationId.HasValue)
                {
                    unitStatus.Did = u.DestinationId.Value;
                }

                results.Add(unitStatus);
            }

            return(results);
        }
示例#2
0
        public async Task <ActionResult <List <UnitStatusResult> > > GetUnitStatuses(string activeFilter)
        {
            var results = new List <UnitStatusResult>();

            string filter = null;

            string[] activeFilters = null;
            if (!String.IsNullOrWhiteSpace(activeFilter))
            {
                filter        = HttpUtility.UrlDecode(activeFilter);
                activeFilters = filter.Split(char.Parse("|"));
            }
            var filters = await GetFilterOptions();

            var units = await _unitsService.GetAllLatestStatusForUnitsByDepartmentIdAsync(DepartmentId);

            var department = await _departmentsService.GetDepartmentByIdAsync(DepartmentId, false);

            foreach (var u in units)
            {
                var unitStatus = new UnitStatusResult();
                unitStatus.Uid = u.UnitId;
                unitStatus.Typ = u.State;
                unitStatus.Tmp = u.Timestamp.TimeConverter(department);

                if (u.DestinationId.HasValue)
                {
                    unitStatus.Did = u.DestinationId.Value;
                }

                if (activeFilters != null)
                {
                    foreach (var afilter in activeFilters)
                    {
                        var text = GetTextValue(afilter, filters);

                        if (afilter.Substring(0, 2) == "G:")
                        {
                            if (u.Unit != null && u.Unit.StationGroup != null && text == u.Unit.StationGroup.Name)
                            {
                                results.Add(unitStatus);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    results.Add(unitStatus);
                }
            }

            return(Ok(results));
        }
示例#3
0
        public List <UnitStatusResult> GetUnitStatuses()
        {
            var results = new List <UnitStatusResult>();

            var units      = _unitsService.GetAllLatestStatusForUnitsByDepartmentId(DepartmentId);
            var department = _departmentsService.GetDepartmentById(DepartmentId, false);

            /*
             * Parallel.ForEach(units, u =>
             * {
             *      var unitStatus = new UnitStatusResult();
             *      unitStatus.Uid = u.UnitId;
             *      unitStatus.Typ = u.State;
             *      unitStatus.Tmp = u.Timestamp.TimeConverter(department);
             *
             *      if (u.DestinationId.HasValue)
             *              unitStatus.Did = u.DestinationId.Value;
             *
             *      results.Add(unitStatus);
             * });
             */

            foreach (var u in units)
            {
                var unitStatus = new UnitStatusResult();
                unitStatus.Uid = u.UnitId;
                unitStatus.Typ = u.State;
                unitStatus.Tmp = u.Timestamp.TimeConverter(department);

                if (u.DestinationId.HasValue)
                {
                    unitStatus.Did = u.DestinationId.Value;
                }

                results.Add(unitStatus);
            }

            return(results);
        }
示例#4
0
        public List <UnitStatusResult> GetUnitStatuses(string activeFilter)
        {
            var results       = new List <UnitStatusResult>();
            var filter        = HttpUtility.UrlDecode(activeFilter);
            var activeFilters = filter.Split(char.Parse("|"));
            var filters       = GetFilterOptions();

            var units      = _unitsService.GetAllLatestStatusForUnitsByDepartmentId(DepartmentId);
            var department = _departmentsService.GetDepartmentById(DepartmentId, false);

            Parallel.ForEach(units, u =>
            {
                var unitStatus = new UnitStatusResult();
                unitStatus.Uid = u.UnitId;
                unitStatus.Typ = u.State;
                unitStatus.Tmp = u.Timestamp.TimeConverter(department);

                if (u.DestinationId.HasValue)
                {
                    unitStatus.Did = u.DestinationId.Value;
                }

                foreach (var afilter in activeFilters)
                {
                    var text = GetTextValue(afilter, filters);

                    if (afilter.Substring(0, 2) == "G:")
                    {
                        if (u.Unit != null && u.Unit.StationGroup != null && text == u.Unit.StationGroup.Name)
                        {
                            results.Add(unitStatus);
                            break;
                        }
                    }
                }
            });

            /*
             * foreach (var u in units)
             * {
             * var unitStatus = new UnitStatusResult();
             * unitStatus.Uid = u.UnitId;
             * unitStatus.Typ = u.State;
             * unitStatus.Tmp = u.Timestamp.TimeConverter(Department);
             *
             * if (u.DestinationId.HasValue)
             *      unitStatus.Did = u.DestinationId.Value;
             *
             * foreach (var afilter in activeFilters)
             * {
             *      var text = GetTextValue(afilter, filters);
             *
             *      if (afilter.Substring(0, 2) == "G:")
             *      {
             *              if (u.Unit != null && u.Unit.StationGroup != null && text == u.Unit.StationGroup.Name)
             *              {
             *                      results.Add(unitStatus);
             *                      break;
             *              }
             *      }
             *
             * }
             * }
             * */

            return(results);
        }