public async Task <IActionResult> InsertContact(DailyInsert model) { var response = new ResponseModel(); try { if (ModelState.IsValid && model.Latitude != 0 && model.Longitude != 0) { response = await _da.DailyInsertion(model); return(StatusCode(response.StatusCode, response)); } if (model.Latitude == 0 && model.Longitude == 0) { response.StatusCode = 400; response.Message = "Latitude and Longitude are 0, the data in invalid"; return(StatusCode(response.StatusCode, response)); } response.StatusCode = 400; response.Message = "One or more fields are not correct"; return(StatusCode(response.StatusCode, response)); } catch (Exception ex) { response.StatusCode = 500; response.Message = ex.Message; return(StatusCode(response.StatusCode, response)); } }
public async Task <ResponseModel> DailyInsertion(DailyInsert model) { try { var query = @" INSERT INTO [DailyContact] (DispoContactId, DispoId, Prox, Province, Latitude, Longitude, Distance, DateContact) VALUES (@DispoContactId, @DispoId, @Prox, @Province, @Latitude, @Longitude, @Distance, @DateContact)"; var DateContact = DateTime.Parse(model.DateContact); var rows = await _conn.ExecuteAsync(query, new { model.DispoContactId, model.DispoId, model.Prox, model.Province, model.Latitude, model.Longitude, model.Distance, DateContact }); if (rows > 0) { var findPositive = @"SELECT * FROM Positive WHERE DispoId = @DispoContactId"; var queryPositive = await _conn.QueryFirstOrDefaultAsync <PositiveTable>(findPositive, new { model.DispoContactId }); if (queryPositive != null) { var scoreForDate = ScoreForDate(queryPositive.DatePositive, DateContact); var scoreForProx = ScoreForProx(model.Prox); var Score = scoreForDate + scoreForProx; var DateOfRelevation = DateContact; await _conn.ExecuteAsync("INSERT INTO Scoring (Score, DispoId, DateOfRelevation) VALUES (@Score, @DispoId, @DateOfRelevation)", new { Score, model.DispoId, DateOfRelevation }); return(new ResponseModel { StatusCode = 200, Message = "Insertion executed" }); } return(new ResponseModel { StatusCode = 500, Message = "Insertion Not completed during Query" }); } else { return(new ResponseModel { StatusCode = 500, Message = "Insertion Not completed during Query" }); } } catch (Exception ex) { return(new ResponseModel { StatusCode = 500, Message = ex.Message }); } }