示例#1
0
        public static MarkerCollection GetDistinctCities(int moduleId, string customField, string country, string state, int maxPoints)
        {
            MarkerCollection states = new MarkerCollection();
            MarkerQuery      q      = new MarkerQuery();

            q.Select(q.City);

            if (!String.IsNullOrEmpty(customField))
            {
                q.Where(q.CustomField == customField);
            }

            q.Where(q.ModuleId == moduleId);
            q.Where(q.Country == country);
            q.Where(q.Region == state);
            q.Where(q.Latitude.IsNotNull() && q.Longitude.IsNotNull());
            q.OrderBy(q.City.Ascending);
            q.es.Distinct = true;


            states.Load(q);

            return(states);
        }
        public void StartFrame()
        {
#if TRACE
            lock (this)
            {
                // We skip reset frame when this method gets called multiple times.
                int count = Interlocked.Increment(ref updateCount);
                if (Visible && (1 < count && count < MaxSampleFrames))
                {
                    return;
                }

                // Update current frame log.
                prevLog = logs[frameCount++ & 0x1];
                curLog  = logs[frameCount & 0x1];

                float endFrameTime = (float)stopwatch.Elapsed.TotalMilliseconds;

                // Update marker and create a log.
                for (int barIdx = 0; barIdx < prevLog.Bars.Length; ++barIdx)
                {
                    MarkerCollection prevBar = prevLog.Bars[barIdx];
                    MarkerCollection nextBar = curLog.Bars[barIdx];

                    // Re-open marker that didn't get called EndMark in previous frame.
                    for (int nest = 0; nest < prevBar.NestCount; ++nest)
                    {
                        int markerIdx = prevBar.MarkerNests[nest];

                        prevBar.Markers[markerIdx].EndTime = endFrameTime;

                        nextBar.MarkerNests[nest]      = nest;
                        nextBar.Markers[nest].MarkerId =
                            prevBar.Markers[markerIdx].MarkerId;
                        nextBar.Markers[nest].BeginTime = 0;
                        nextBar.Markers[nest].EndTime   = -1;
                        nextBar.Markers[nest].Color     = prevBar.Markers[markerIdx].Color;
                    }

                    // Update marker log.
                    for (int markerIdx = 0; markerIdx < prevBar.MarkCount; ++markerIdx)
                    {
                        float duration = prevBar.Markers[markerIdx].EndTime -
                                         prevBar.Markers[markerIdx].BeginTime;

                        int        markerId = prevBar.Markers[markerIdx].MarkerId;
                        MarkerInfo m        = markers[markerId];

                        m.Logs[barIdx].Color = prevBar.Markers[markerIdx].Color;

                        if (!m.Logs[barIdx].Initialized)
                        {
                            // First frame process.
                            m.Logs[barIdx].Min = duration;
                            m.Logs[barIdx].Max = duration;
                            m.Logs[barIdx].Avg = duration;

                            m.Logs[barIdx].Initialized = true;
                        }
                        else
                        {
                            // Process after first frame.
                            m.Logs[barIdx].Min  = Math.Min(m.Logs[barIdx].Min, duration);
                            m.Logs[barIdx].Max  = Math.Min(m.Logs[barIdx].Max, duration);
                            m.Logs[barIdx].Avg += duration;
                            m.Logs[barIdx].Avg *= 0.5f;

                            if (m.Logs[barIdx].Samples++ >= LogSnapDuration)
                            {
                                m.Logs[barIdx].SnapMin = m.Logs[barIdx].Min;
                                m.Logs[barIdx].SnapMax = m.Logs[barIdx].Max;
                                m.Logs[barIdx].SnapAvg = m.Logs[barIdx].Avg;
                                m.Logs[barIdx].Samples = 0;
                            }
                        }
                    }

                    nextBar.MarkCount = prevBar.NestCount;
                    nextBar.NestCount = prevBar.NestCount;
                }

                // Start measuring.
                stopwatch.Reset();
                stopwatch.Start();
            }
#endif
        }
示例#3
0
 public FrameLog()
 {
     // Initialize markers.
     Bars = new MarkerCollection[MaxBars];
     for (int i = 0; i < MaxBars; ++i)
         Bars[i] = new MarkerCollection();
 }
示例#4
0
 public FrameLog()
 {
     Bars = new MarkerCollection[MaxBars];
     for ( int i = 0; i < MaxBars; ++i )
       Bars[i] = new MarkerCollection();
 }
示例#5
0
文件: TimeRuler.cs 项目: himapo/ccm
 public FrameLog()
 {
     // マーカーコレクション配列の初期化
     Bars = new MarkerCollection[MaxBars];
     for (int i = 0; i < MaxBars; ++i)
         Bars[i] = new MarkerCollection();
 }
示例#6
0
        protected void btnGeocodeRemainingMarkers_Click(object sender, EventArgs e)
        {
            List <Marker> markers = MarkerCollection.LoadNotGeolocated(ModuleId).ToList();

            litMessage.Text = GeocodeMarkerList(markers);
        }
示例#7
0
        private string ParseCsvFile()
        {
            var    fileName = Settings[ModuleSettingNames.FileName];
            var    filePath = HttpContext.Current.Server.MapPath(String.Format("{0}Maps/uploads/{1}", ModuleWebPath, fileName));
            string status   = string.Empty;

            if (!File.Exists(filePath))
            {
                status = String.Format("File {0} doesn't exist. Please upload a CSV file in the module settings.", fileName);
                return(status);
            }

            var csvOptions = new CsvReaderOptions()
            {
                HasHeaderRecord = true, Strict = false
            };
            var parser = new CsvParser(new StreamReader(filePath));
            var reader = new CsvReader(parser, csvOptions);

            // Get header names
            var address1       = (string)(Settings[ModuleSettingNames.Address1] ?? ModuleSettingNames.Address1);
            var address2       = (string)(Settings[ModuleSettingNames.Address2] ?? ModuleSettingNames.Address2);
            var city           = (string)(Settings[ModuleSettingNames.City] ?? ModuleSettingNames.City);
            var country        = (string)(Settings[ModuleSettingNames.Country] ?? ModuleSettingNames.Country);
            var iconUrl        = (string)(Settings[ModuleSettingNames.IconUrl] ?? ModuleSettingNames.IconUrl);
            var iconShadowUrl  = (string)(Settings[ModuleSettingNames.IconShadowUrl] ?? ModuleSettingNames.IconShadowUrl);
            var infoWindowHtml = (string)(Settings[ModuleSettingNames.InfoWindowHtml] ?? ModuleSettingNames.InfoWindowHtml);
            var latitude       = (string)(Settings[ModuleSettingNames.Latitude] ?? ModuleSettingNames.Latitude);
            var longitude      = (string)(Settings[ModuleSettingNames.Longitude] ?? ModuleSettingNames.Longitude);
            var postalCode     = (string)(Settings[ModuleSettingNames.PostalCode] ?? ModuleSettingNames.PostalCode);
            var region         = (string)(Settings[ModuleSettingNames.Region] ?? ModuleSettingNames.Region);
            var title          = (string)(Settings[ModuleSettingNames.Title] ?? ModuleSettingNames.Title);
            var customField    = (string)(Settings[ModuleSettingNames.CustomField] ?? ModuleSettingNames.CustomField);
            var priority       = (string)(Settings[ModuleSettingNames.Priority] ?? ModuleSettingNames.Priority);
            var phoneNumber    = (string)(Settings[ModuleSettingNames.PhoneNumber] ?? ModuleSettingNames.PhoneNumber);

            // Delete old markers
            var markerQuery = new MarkerQuery();

            markerQuery.Where(markerQuery.ModuleId == ModuleId);

            var markerCollection = new MarkerCollection();

            markerCollection.Load(markerQuery);
            markerCollection.MarkAllAsDeleted();
            markerCollection.Save();


            while (reader.Read())
            {
                // Add new markers to db from csv
                try
                {
                    var marker = new Marker
                    {
                        ModuleId       = ModuleId,
                        Title          = reader.GetField(title),
                        InfoWindowHtml = reader.GetField(infoWindowHtml),
                        Address1       = reader.GetField(address1),
                        Address2       = reader.GetField(address2),
                        City           = reader.GetField(city),
                        Region         = reader.GetField(region),
                        PostalCode     = reader.GetField(postalCode),
                        Country        = reader.GetField(country),
                        Latitude       = WA.Parser.ToDouble(reader.GetField(latitude)),
                        Longitude      = WA.Parser.ToDouble(reader.GetField(longitude)),
                        IconUrl        = reader.GetField(iconUrl),
                        IconShadowUrl  = reader.GetField(iconShadowUrl),
                        CustomField    = reader.GetField(customField),
                        PhoneNumber    = reader.GetField(phoneNumber),
                        Priority       = (reader.GetField(priority) == "" || reader.GetField(priority) == null) ? "zzzz" : reader.GetField(priority)
                    };

                    marker.Save();

                    if (!marker.Latitude.HasValue && !marker.Longitude.HasValue)
                    {
                        _markers.Add(marker);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            status  = String.Format("<h1>File {0} parsed successfully</h1><hr />", fileName);
            status += GeocodeMarkerList(_markers);

            return(status);
        }
示例#8
0
 public FrameLog(int maxBars, int maxSamples, int maxNestCall)
 {
     Bars = new MarkerCollection[maxBars];
     for (int i = 0; i < maxBars; i++)
     {
         Bars[i] = new MarkerCollection(maxSamples, maxNestCall);
     }
 }