public void Add([FromBody] SolvedTestSession solvedSession) { if (IsCorrectSolvedSession(solvedSession) == false) { throw new HttpResponseException(HttpStatusCode.Forbidden); } try { solvedSession.PublishDate = DateTime.Now; var sameSessions = context.SolvedTestsSessions .Where(session => session.Id == solvedSession.Id || session.SettingsId == solvedSession.SettingsId); if (sameSessions.Count() > 0) { context.SolvedTestsSessions.RemoveRange(sameSessions); } context.SolvedTestsSessions.Add(solvedSession); context.SaveChanges(); } catch (Exception) { throw new HttpResponseException(HttpStatusCode.Forbidden); } }
public static void SaveSolvedTestSession(SolvedTestSession session) { using (var client = new HttpClient()) { var data = new StringContent(JsonConvert.SerializeObject(session), Encoding.UTF8, "application/json"); client.PostAsync(BaseUrl + $"/api/tests/solvedSessions/new", data).Wait(); } }
private bool IsCorrectSolvedSession(SolvedTestSession solvedSession) { if (solvedSession is null) { return(false); } var naUrokAccount = context.WebSitesAccounts.First(account => account.WebSite == "https://naurok.com.ua"); var naUrokClient = new NaUrokClient(naUrokAccount.Login, naUrokAccount.Password); TestSession testSession; try { testSession = naUrokClient.GetTestSession(solvedSession.Id); } catch (Exception) { return(false); } return(naUrokClient.IsCorrectTestDocument(testSession, solvedSession.TestDocumentId, out _)); }