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);
            }
        }
示例#2
0
 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 _));
        }