Esempio n. 1
0
        public async Task <IActionResult> Post([FromBody] MonitoringInput input)
        {
            if (!ModelState.IsValid || input.Email == null)
            {
                return(BadRequest(ModelState));
            }
            var processedData = MonitoringDataProcessor.ProcessRawData(input, _env.WebRootPath);

            if (processedData.Item1 != null)
            {
                _context.MonitoringData.Add(processedData.Item1);
                await _context.SaveChangesAsync();

                return(Json(processedData.Item1));
            }

            return(Json(processedData.Item2));
        }
Esempio n. 2
0
        public static (MonitoringData, string) ProcessRawData(MonitoringInput rawData, string path)
        {
            string log = "";

            foreach (var row in userData)
            {
                //check if user is needed user
                if (row.Key == rawData.Email)
                {
                    //check if it has recordings
                    if (row.Value == null)
                    {
                        log += "user.value was null";
                        // if not -> then add a recording
                        userData[rawData.Email] = rawData;
                        log += " and I wrote some data";
                        return(null, log);
                    }
                    else if (row.Value != null)
                    {
                        log += "user.value was not null";
                        //compare times
                        var startTime = UnixTimeStampToDateTime(row.Value.Time);
                        var endTime   = UnixTimeStampToDateTime(rawData.Time);
                        var timeSpent = endTime.Subtract(startTime);

                        var            id     = Guid.NewGuid().ToString();
                        MonitoringData result = new MonitoringData {
                            Id    = id,
                            Email = rawData.Email,
                            Time  = timeSpent.ToString(),
                            Title = row.Value.Title,
                            URL   = row.Value.URL
                        };

                        //saveImageFile(id, rawData.ScreenShotBase64, path);
                        //replace recording
                        userData[rawData.Email] = rawData;
                        return(result, log);
                    }
                }
            }
            return(null, log);
        }