Ejemplo n.º 1
0
        public static void DeserializeData(byte[] data)
        {
            var nm    = Singleton <NetManager> .instance;
            var nodes = nm.m_nodes;

            int i = 0;

            foreach (var hasLights in data.Select(Convert.ToBoolean))
            {
                var node = nodes.m_buffer[i];
                if (hasLights)
                {
                    //this if is utterly unnecessary...
                    if (!CitiesHelper.HasTrafficLights(node.m_flags))
                    {
                        node.m_flags |= NetNode.Flags.TrafficLights;
                    }
                }
                else //(!hasLights)
                {
                    //"
                    if (CitiesHelper.HasTrafficLights(node.m_flags))
                    {
                        node.m_flags &= ~NetNode.Flags.TrafficLights;
                    }
                }

                nodes.m_buffer[i] = node;

                i++;
            }
        }
Ejemplo n.º 2
0
        protected void UpdateCityData(int IdCountry, int IdState)
        {
            CitiesHelper ch = new CitiesHelper(IdCountry, IdState);

            cmbCities.DataSource    = ch.Data;
            cmbCities.ValueMember   = "Id";
            cmbCities.DisplayMember = "CityName";
        }
Ejemplo n.º 3
0
 public static IEnumerable <byte> SerializeData()
 {
     return(Singleton <NetManager> .instance.m_nodes.m_buffer
            .Select(n => CitiesHelper.HasTrafficLights(n.m_flags))
            .Select(Convert.ToByte));
 }
Ejemplo n.º 4
0
        public async Task <List <PublicEventListItem> > Handle(GetPublicEventsQuery request, CancellationToken cancellationToken)
        {
            IQueryable <PublicEvent> publicEvents;
            CitiesHelper             citiesHelper = new CitiesHelper();

            if (request.CategoryId != 0 && request.CategoryId != 10)
            {
                publicEvents = from p in _context.PublicEvents
                               .Where(p => p.Category.CategoryId == request.CategoryId || p.Category.ParentCategoryId == request.CategoryId)
                               .Where(e => e.Date.Date > DateTime.Now.AddDays(-2).Date)
                               select p;
            }
            else
            {
                publicEvents = from p in _context.PublicEvents
                               .Where(e => e.Date.Date > DateTime.Now.AddDays(-2).Date)
                               select p;
            }
            if (!String.IsNullOrEmpty(request.Date))
            {
                if (request.Date.Length >= 21)
                {
                    publicEvents = publicEvents.Where(e => e.Date.ToString("dd'.'MM'.'yyyy") == request.Date || (e.Date >= DateTime.Parse(request.Date.Substring(0, 10)) && e.Date <= DateTime.Parse(request.Date.Substring(13, 10))));
                }
                else
                {
                    publicEvents = publicEvents.Where(e => e.Date.ToString("dd'.'MM'.'yyyy") == request.Date || e.Date.ToString("yyyy-MM-dd") == request.Date);
                }
            }

            if (!String.IsNullOrEmpty(request.City))
            {
                publicEvents = publicEvents.Where(e => citiesHelper.GetCityName(e.Place) == request.City);
            }

            switch (request.SortBy)
            {
            case "date":
                publicEvents = publicEvents.OrderBy(e => e.Date);
                break;

            case "follows":
                publicEvents = publicEvents.OrderByDescending(e => e.Follows);
                break;
            }

            var data = publicEvents
                       .Include(p => p.Category)
                       .ThenInclude(c => c.ParentCategory)
                       .Include(te => te.TagEvents)
                       .ThenInclude(t => t.Tag)
                       .ThenInclude(t => t.TagType)
                       .Skip(request.PageSize * request.PageNumber - request.PageSize).Take(request.PageSize).ToList();

            var publicEventsList = data.AsQueryable().Select(p => new PublicEventListItem {
                PublicEventId = p.PublicEventId,
                Name          = p.Name,
                Description   = p.Description,
                Date          = p.Date,
                CategoryId    = p.CategoryId,
                ImagePath     = p.ImagePath,
                Url           = p.Url,
                Follows       = p.Follows,
                Place         = p.Place,
                City          = citiesHelper.GetCityName(p.Place),
                Promotor      = p.Promotor,
                Price         = p.Price,
                IsFollowed    = p.IsFollowed,
                TagEvents     = p.TagEvents,
                Category      = p.Category
            }).ToList();


            if (!string.IsNullOrEmpty(request.UserId))
            {
                var user = _context.Users
                           .Include(f => f.UserFollows).SingleOrDefault(u => u.Id == request.UserId);
                foreach (var p in publicEventsList)
                {
                    if (user.UserFollows.Select(e => e.PublicEventId).Contains(p.PublicEventId))
                    {
                        p.IsFollowed = true;
                    }
                }
            }

            return(publicEventsList);
        }
Ejemplo n.º 5
0
        public async Task <List <PublicEventListItem> > GetPublicEvents(int?categoryId = 0, string sortBy = "date", string date = "", string city = "", int pageNumber = 1, int pageSize = 25, string userId = "")
        {
            IQueryable <PublicEvent> publicEvents;
            CitiesHelper             citiesHelper = new CitiesHelper();

            if (categoryId != 0 && categoryId != 10)
            {
                publicEvents = from p in _context.PublicEvents
                               .Where(p => p.Category.CategoryId == categoryId || p.Category.ParentCategoryId == categoryId)
                               .Where(e => e.Date.Date > DateTime.Now.AddDays(-2).Date)
                               select p;
            }
            else
            {
                publicEvents = from p in _context.PublicEvents
                               .Where(e => e.Date.Date > DateTime.Now.AddDays(-2).Date)
                               select p;
            }
            if (!String.IsNullOrEmpty(date))
            {
                if (date.Length >= 21)
                {
                    publicEvents = publicEvents.Where(e => e.Date.ToString("dd'.'MM'.'yyyy") == date || (e.Date >= DateTime.Parse(date.Substring(0, 10)) && e.Date <= DateTime.Parse(date.Substring(13, 10))));
                }
                else
                {
                    publicEvents = publicEvents.Where(e => e.Date.ToString("dd'.'MM'.'yyyy") == date || e.Date.ToString("yyyy-MM-dd") == date);
                }
            }

            if (!String.IsNullOrEmpty(city))
            {
                publicEvents = publicEvents.Where(e => citiesHelper.GetCityName(e.Place) == city);
            }

            switch (sortBy)
            {
            case "date":
                publicEvents = publicEvents.OrderBy(e => e.Date);
                break;

            case "follows":
                publicEvents = publicEvents.OrderByDescending(e => e.Follows);
                break;
            }

            var data = await publicEvents
                       .Include(p => p.Category)
                       .ThenInclude(c => c.ParentCategory)
                       .Include(te => te.TagEvents)
                       .ThenInclude(t => t.Tag)
                       .ThenInclude(t => t.TagType)
                       .Skip(pageSize * pageNumber - pageSize)
                       .Take(pageSize)
                       .ToListAsync();

            var publicEventsList = data.Select(p => new PublicEventListItem
            {
                PublicEventId = p.PublicEventId,
                Name          = p.Name,
                Description   = p.Description,
                Date          = p.Date,
                CategoryId    = p.CategoryId,
                ImagePath     = p.ImagePath,
                Url           = p.Url,
                Follows       = p.Follows,
                Place         = p.Place,
                City          = citiesHelper.GetCityName(p.Place),
                Promotor      = p.Promotor,
                Price         = p.Price,
                IsFollowed    = p.IsFollowed,
                TagEvents     = p.TagEvents,
                Category      = p.Category
            }).ToList();

            foreach (var pe in publicEventsList)
            {
                if (!string.IsNullOrEmpty(userId))
                {
                    pe.IsFollowed = await IsEventFollowed(pe.PublicEventId, userId);
                }
                else
                {
                    pe.IsFollowed = false;
                }
            }

            return(publicEventsList);
        }
Ejemplo n.º 6
0
        public static void Change(ushort nodeId, ref NetNode node, ChangeMode mode, ref ChangedStatistics stats)
        {
            stats.Action = mode.ToString();

            if (node.m_flags == NetNode.Flags.None)
            {
                return;
            }
            stats.NumberOfNodesNotNone++;
            if (!Node.IsValidIntersection(nodeId, ref node))
            {
                return;
            }
            if (!Node.IsInsideBuildableArea(nodeId, ref node))
            {
                return;
            }

            var ai = node.Info.GetAI() as RoadBaseAI;

            if (ai == null)
            {
                return;
            }

            stats.NumberOfIntersections++;

            var wantLights = ai.WantTrafficLights();
            var hasLights  = CitiesHelper.HasTrafficLights(node.m_flags);
            var isCustom   = CitiesHelper.IsCustomTrafficLights(node.m_flags);

            bool shouldHasLights;

            switch (mode)
            {
            case ChangeMode.Remove:
                shouldHasLights = false;
                break;

            case ChangeMode.Add:
                shouldHasLights = true;
                break;

            case ChangeMode.Reset:
                shouldHasLights = wantLights;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
            }
            bool shouldBeCustom = mode != ChangeMode.Reset;


            if (wantLights)
            {
                stats.NumberOfWantLights++;
            }
            else
            {
                stats.NumberOfWantNoLights++;
            }
            if (hasLights)
            {
                stats.NumberOfHadLights++;
            }
            else
            {
                stats.NumberOfHadNoLights++;
            }
            if (isCustom)
            {
                stats.NumberOfWasCustom++;
            }
            else
            {
                stats.NumberOfWasNotCustom++;
            }

            if (shouldHasLights)
            {
                stats.NumberOfHasLights++;
            }
            else
            {
                stats.NumberOfHasLights++;
            }
            if (shouldBeCustom)
            {
                stats.NumberOfIsCustom++;
            }
            else
            {
                stats.NumberOfIsNotCustom++;
            }

            // test if should change
            if (hasLights == shouldHasLights && isCustom == shouldBeCustom)
            {
                return;
            }
            stats.NumberOfChanges++;

            if (hasLights != shouldHasLights)
            {
                if (shouldHasLights)
                {
                    node.m_flags |= NetNode.Flags.TrafficLights;
                    stats.NumberOfAddedLights++;
                }
                else
                {
                    node.m_flags &= ~NetNode.Flags.TrafficLights;
                    stats.NumberOfRemovedLights++;
                }
            }

            if (isCustom != shouldBeCustom)
            {
                if (shouldBeCustom)
                {
                    node.m_flags |= NetNode.Flags.CustomTrafficLights;
                    stats.NumberOfAddedCustoms++;
                }
                else
                {
                    node.m_flags &= ~NetNode.Flags.CustomTrafficLights;
                    stats.NumberOfRemovedCustoms++;
                }
            }
        }