Пример #1
0
 private void OnEnable()
 {
     trackRecord = new TrackRecord();
     setTrackingPos();
     pharus.EventProcessor.PharusListener.EventQueue.Enqueue(new UnityPharusListener.PharusEvent(ETrackState.TS_NEW, trackRecord));
     //tuio.EventProcessor.TuioListener.EventQueue.Enqueue(new UnityTuioListener.TuioEvent(UnityTuioListener.ETuioEventType.ADD_OBJECT, tuioObj));
 }
Пример #2
0
 public void OnTrackLost(TrackRecord track)
 {
     eventCounter++;
     lock (m_lockObj)
     {
         m_eventQueue.Enqueue(new PharusEvent(track.state, track));
     }
 }
        private static TrackRecord MapTrackRecordViewModelToTrackRecord(TrackRecordViewModel viewModel)
        {
            var pattern = new TrackRecord
            {
                IsWorking    = viewModel.IsWorking,
                IsCancelled  = viewModel.IsCancelled,
                PatternValue = viewModel.Domain,
                StartDate    = viewModel.StartTime,
            };

            return(pattern);
        }
Пример #4
0
    void RefreshRecord()
    {
        TrackRecord tr = TrackRecord.Load(trackName, 1);

        if (tr != null && tr.time < float.PositiveInfinity)
        {
            m_RecordText.gameObject.SetActive(true);
            m_RecordText.text = string.Format(m_RecordText.text, tr.time);
        }
        else
        {
            m_RecordText.gameObject.SetActive(false);
        }
    }
        private static TrackRecordViewModel MapTrackRecordToTrackRecordViewModel(TrackRecord entity)
        {
            var pattern = new TrackRecordViewModel
            {
                Id          = entity.Id,
                CreateDate  = entity.CreateDate,
                UpdateDate  = entity.UpdateDate,
                IsCancelled = entity.IsCancelled,
                IsWorking   = entity.IsWorking,
                Domain      = entity.PatternValue,
                StartTime   = entity.StartDate,
                EndTime     = entity.EndDate
            };

            return(pattern);
        }
Пример #6
0
        private string UpdateTrackRecord(SFITrackNum track, TrackRecord record)
        {
            DynamicParameters p = new DynamicParameters();

            p.Add("@MappingID", track.int_Mappingid, DbType.Int32);
            p.Add("@AGid", track.int_AGid, DbType.Int32);
            p.Add("@SFInumber", track.vchar_SFInum, DbType.String);
            p.Add("@AGnumber", track.vchar_AGnum, DbType.String);
            p.Add("@dttm", record.dttm_Record_Dttm, DbType.DateTime);
            p.Add("@Description", record.nvchar_Description, DbType.String);
            p.Add("@DescriptionLocal", record.nvchar_Description_Local, DbType.String);
            p.Add("@city", record.nvchar_City, DbType.String);
            p.Add("@code", $"{record.dttm_Record_Dttm.ToString("yyyyMMddhhmmss")}_{track.int_Mappingid}", DbType.String);
            p.Add("@message", null, DbType.String, ParameterDirection.ReturnValue);
            return(SQLHelper.ExecuteStoredProcedure <string>(Constants.sp_RecordUpdate, p, "@message"));
        }
Пример #7
0
    private int AddNewTrack(string tag)
    {
        Debug.Log("Adding new track");
        Debug.Log("trackRecords pituus " + trackRecords.Length);
        TrackRecord[] tr = new TrackRecord[trackRecords.Length + 1];
        for (int i = 0; i < trackRecords.Length; i++)
        {
            tr[i] = trackRecords[i];
        }

        tr[tr.Length - 1] = new TrackRecord(tag);
        indices.Add(tag, tr.Length - 1);
        Debug.Log("tr pituus " + tr.Length);
        trackRecords = tr;

        return(tr.Length - 1);
    }
Пример #8
0
        private void InitializeCurrentSets(SimulatorDataSet dataSet)
        {
            _currentSessionType = dataSet.SessionInfo.SessionType;

            if (dataSet.SessionInfo.SessionType == SessionType.Na || string.IsNullOrEmpty(dataSet.Source) || dataSet.PlayerInfo == null)
            {
                _initialized = false;
                return;
            }

            _currentSimulatorRecords = _simulatorsRecords.GetOrCreateSimulatorRecords(dataSet.Source);
            _currentTrackRecords     = _currentSimulatorRecords.GetOrCreateTrackRecord(dataSet.SessionInfo.TrackInfo.TrackFullName);
            _currentVehicleRecordSet = _currentTrackRecords.GetOrCreateVehicleRecord(dataSet.PlayerInfo.CarName);
            _currentClassRecordSet   = _currentTrackRecords.GetOrCreateClassRecord(dataSet.PlayerInfo.CarClassName);

            RefreshViewModel();
            TrackRecordsViewModel.TrackRecord.IsHighlighted   = false;
            TrackRecordsViewModel.ClassRecord.IsHighlighted   = false;
            TrackRecordsViewModel.VehicleRecord.IsHighlighted = false;
        }
        public Guid Create(TrackRecord entity, int userId)
        {
            var existingIdentity = this._identityRepository.Query(identity => identity.Id == userId).FirstOrDefault();
            var existingPattern  = this._patternRepository.Query(pattern => pattern.Value == entity.PatternValue.ToLower()).FirstOrDefault();

            if (existingIdentity == null)
            {
                throw new ApplicationException("Parent Identity no found");
            }
            if (existingPattern == null)
            {
                throw new ApplicationException("Parent Pattern not found");
            }

            entity.Id         = Guid.NewGuid();
            entity.CreateDate = DateTime.Now;

            entity.LoginId   = existingIdentity.Id;
            entity.PatternId = existingPattern.Id;

            return(this._repository.Create(entity));
        }
        public void RegisterDisconnectFromPage()
        {
            if (CurrentUser == null)
            {
                return;
            }

            var url = CurrentUser.CurrentPageUrl;

            var dateTimeNow   = DateTime.Now;
            var timeSpanDiff  = (dateTimeNow - CurrentUser.InitialAccessTime);
            var passedSeconds = timeSpanDiff.TotalSeconds;

            var entitySplit = url.Split('/').Where(a => a != "").ToList();
            var entityName  = entitySplit.FirstOrDefault() ?? "";

            if (!string.IsNullOrWhiteSpace(entityName) && entityName.Contains("?"))
            {
                entityName = entityName.Split('?').FirstOrDefault(a => a != "");
            }

            // you can add a rule for accepting only 1sec or more of access time
            var trackRecord = new TrackRecord()
            {
                Id                  = ++_id,
                UserId              = CurrentUser.Id,
                RelativeUrl         = url,
                EntityName          = entityName,
                PassedSeconds       = passedSeconds,
                BeginAccessDateTime = CurrentUser.InitialAccessTime,
                EndAccessDateTime   = dateTimeNow
            };

            MockDB.TrackRecords.Add(trackRecord);

            ConnectedUsers.TryRemove(Context.ConnectionId, out UserTrackInfo discard);
        }
Пример #11
0
        public async ValueTask <MuzlanResponse <IList <TrackRecord> > > GetTracks(string artist, string album, CancellationToken token = default)
        {
            var pageUri = new Uri($"https://{_baseUri.DnsSafeHost}/artist/{Uri.EscapeDataString(artist)}/album/{Uri.EscapeDataString(album)}");

            try
            {
                var content = await _client.TryGetStringAsync(pageUri, token).ConfigureAwait(false);

                using var document = await _parser.ParseDocumentAsync(content, token).ConfigureAwait(false);

                var tracks = new List <TrackRecord>();

                foreach (var item in document.QuerySelectorAll <IHtmlDivElement>("div.page-content div.row-col div.row.item-list div.item.track"))
                {
                    var trackItem  = item.QuerySelector <IHtmlAnchorElement>("div.item-info div.item-title a");
                    var authorItem = item.QuerySelector <IHtmlAnchorElement>("div.item-info div.item-author a");

                    var trackName = trackItem.Text.Trim();
                    var trackUri  = new Uri($"https://{_baseUri.DnsSafeHost}{trackItem.PathName}");

                    var trackDownload = new Uri($"https://{_baseUri.DnsSafeHost}{item.Dataset["src"]}");

                    var artistName = authorItem.Text.Trim();

                    var track = new TrackRecord(trackName, artistName, trackUri, trackDownload);

                    tracks.Add(track);
                }

                return(MuzlanResponse <IList <TrackRecord> > .FromResult(tracks, pageUri));
            }
            catch (Exception ex)
            {
                return(MuzlanResponse <IList <TrackRecord> > .FromException(ex, pageUri));
            }
        }
Пример #12
0
 public PharusEventTrackArgs(TrackRecord thetrackRecord)
 {
     trackRecord = thetrackRecord;
 }
Пример #13
0
 public PharusEvent(ETrackState eventType, TrackRecord track)
 {
     m_pharusEventType = eventType;
     m_trackRecord     = track;
 }
Пример #14
0
 internal Track(TrackDatabase db, TrackRecord record)
 {
     this.db     = db;
     this.record = record;
 }
Пример #15
0
        public virtual void AddTrackRecord()
        {
            DateTime    strDate;
            string      strDes    = null;
            string      strDesLoc = null;
            string      strCity   = null;
            TrackRecord record;
            string      tmpStr;
            int         intNew   = 0;
            int         intError = 0;
            string      strRes;

            try
            {
                intNew   = 0;
                intError = 0;
                foreach (string s in RecordStr.Split((char)(10)))
                {
                    tmpStr = s.Trim();
                    if (!string.IsNullOrWhiteSpace(tmpStr))
                    {
                        if (tmpStr.Substring(0, 2) == "20")
                        {
                            strDate   = Convert.ToDateTime(tmpStr.Split(new char[] { ' ' })[0] + " " + tmpStr.Split(new char[] { ' ' })[1]);
                            strDes    = GetDesc(tmpStr.Replace(strDate.ToString(), ""))[1];
                            strDesLoc = GetDesc(tmpStr.Replace(strDate.ToString(), ""))[0];
                            switch (tmpStr.IndexOf(" - "))
                            {
                            case 0:
                                strCity = "China";
                                break;

                            default:
                                strCity = tmpStr.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[tmpStr.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries).Length - 1];
                                break;
                            }
                            record = new TrackRecord();
                            record.dttm_Record_Dttm         = strDate;
                            record.nvchar_Description       = strDes;
                            record.nvchar_Description_Local = strDesLoc;
                            record.nvchar_City   = strCity;
                            record.int_MappingId = SFITrackNum.int_Mappingid;
                            record.int_AGid      = SFITrackNum.int_AGid;
                            record.vchar_SFInum  = SFITrackNum.vchar_SFInum;
                            record.vchar_AGnum   = SFITrackNum.vchar_AGnum;
                            strRes = UpdateTrackRecord(SFITrackNum, record);
                            if (strRes == "N")
                            {
                                intNew += 1;
                            }
                            else if (strRes == "F")
                            {
                                intError += 1;
                            }
                            trackRecords.Add(record);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                WriteServerLog(SFITrackNum, "0|0|0|", ex.Message);
            }
            WriteServerLog(SFITrackNum, $"{intError + intNew}|{intNew}|{intError}", null);

            XtraMessageBox.Show("导入数据完成,导入结果请查看日志", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Пример #16
0
 internal Track(TrackDatabase db, TrackRecord record)
 {
     this.db = db;
     this.record = record;
 }
Пример #17
0
 public void CalculateMonth(TrackRecord trackRecord)
 {
 }
Пример #18
0
        public async ValueTask <MuzlanResponse <DownloadRecord> > DownloadTrack(TrackRecord track, AuthRecord auth, CancellationToken cancellationToken = default)
        {
            var sourceUri = new Uri(track.DownloadUri, $"?key={auth.MediaToken}");

            var fileExtension = NormalizeFileExtension(Path.GetExtension(sourceUri.LocalPath));
            var fileName      = track.Name;

            try
            {
                using var response = await _client.GetAsync(sourceUri, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();

                var contentLength = response.Content.Headers.GetValues("Content-Length").First();

                var fileSize   = int.Parse(contentLength);
                var fileOffset = 0;
                var bytesRead  = 0;
                var fileData   = new byte[fileSize];

                await OnDownloadProgressChanged(fileOffset, fileSize).ConfigureAwait(false);

                using var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);

                bool hasCompletedEvent = false;

                do
                {
                    if (fileOffset >= fileSize)
                    {
                        break;
                    }

                    bytesRead = await stream.ReadAsync(
                        ConvertToMemory(fileData, fileOffset, 8192),
                        cancellationToken).ConfigureAwait(false);

                    fileOffset += bytesRead;

                    if (fileOffset == fileSize)
                    {
                        hasCompletedEvent = true;
                    }

                    await OnDownloadProgressChanged(fileOffset, fileSize).ConfigureAwait(false);
                } while (bytesRead > 0);

                if (!hasCompletedEvent)
                {
                    await OnDownloadProgressChanged(fileSize, fileSize).ConfigureAwait(false);
                }

                var file = new DownloadRecord(fileName + fileExtension, fileData, sourceUri);

                return(MuzlanResponse <DownloadRecord> .FromResult(file, sourceUri));
            }
            catch (Exception ex)
            {
                return(MuzlanResponse <DownloadRecord> .FromException(ex, sourceUri));
            }
        }
        public async Task <IActionResult> UpdateWithTracking(int id, Student student)
        {
            var existingStudent = await _context.Students.FindAsync(id);

            if (id != student.StudentId)
            {
                return(BadRequest());
            }

            var existingStudentData = new Student()
            {
                FirstName  = existingStudent.FirstName,
                LastName   = existingStudent.LastName,
                StudentAge = existingStudent.StudentAge,
                DOB        = existingStudent.DOB
            };

            var trackRecordData = new TrackRecord()
            {
                UpdatedColumn = "",
                OldValue      = "",
                UpdatedValue  = "",
                UpdatedTime   = new TimeSpan()
            };


            if (existingStudentData.FirstName != student.FirstName)
            {
                student.IsUpdated             = true;
                trackRecordData.UpdatedColumn = "FirstName";
                trackRecordData.OldValue      = existingStudentData.FirstName;
                trackRecordData.UpdatedValue  = student.FirstName;
                trackRecordData.UpdatedTime   = DateTime.Now.TimeOfDay;
            }

            else if (existingStudentData.LastName != student.LastName)
            {
                student.IsUpdated             = true;
                trackRecordData.UpdatedColumn = "LastName";
                trackRecordData.OldValue      = existingStudentData.LastName;
                trackRecordData.UpdatedValue  = student.LastName;
                trackRecordData.UpdatedTime   = DateTime.Now.TimeOfDay;
            }
            else if (existingStudentData.StudentAge != student.StudentAge)
            {
                student.IsUpdated             = true;
                trackRecordData.UpdatedColumn = "StudentAge";
                trackRecordData.OldValue      = Convert.ToString(existingStudentData.StudentAge);
                trackRecordData.UpdatedValue  = Convert.ToString(student.StudentAge);
                trackRecordData.UpdatedTime   = DateTime.Now.TimeOfDay;
            }
            else if (existingStudentData.DOB != student.DOB)
            {
                student.IsUpdated             = true;
                trackRecordData.UpdatedColumn = "DOB";
                trackRecordData.OldValue      = Convert.ToString(existingStudentData.DOB);
                trackRecordData.UpdatedValue  = Convert.ToString(student.DOB);
                trackRecordData.UpdatedTime   = DateTime.Now.TimeOfDay;
            }

            _context.TrackRecords.Add(trackRecordData);

            _context.Entry(existingStudent).State = EntityState.Detached;
            _context.Entry(student).State         = EntityState.Modified;

            _context.SaveChanges();


            try
            {
                await _context.SaveChangesAsync();
            }

            catch (DbUpdateConcurrencyException)
            {
                if (!StudentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Ok());
        }
 void Start()
 {
     // we are only interested in this particular track, the time of one lap
     bestTime.text  = "Best time: " + TrackRecord.Load("ArtTest", 1).time.ToString(".##") + " s";
     mostCoins.text = "Total coins: " + CoinManager.GetCoinsNumber().ToString();
 }