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)); }
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); }