public async Task <ActionResult> Create(DbDiagram receivedDiagram, HttpPostedFileBase image)
        {
            if (ModelState.IsValid)
            {
                dynamic queryResult = (await TryQuery(receivedDiagram.CreationQuery)).Data;
                if (((string)queryResult.result).StartsWith("ERROR"))
                {
                    return(View(receivedDiagram));
                }
                if (image == null)
                {
                    receivedDiagram.Diagram = receivedDiagram.Diagram ?? HardcodedDiagram;
                }
                else
                {
                    using (MemoryStream mStream = new MemoryStream())
                    {
                        image.InputStream.CopyTo(mStream);
                        receivedDiagram.Diagram = mStream.ToArray();
                    }
                }
                _context.Diagrams.Add(receivedDiagram);
                await _context.SaveAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(View(receivedDiagram));
            }
        }
Example #2
0
        public bool ConfimMail(string hashedAccountName)
        {
            var notConfirmedUsers = _context.Users
                                    .Where(u => !u.MailConfirmed)
                                    .ToList();
            var confirmed = notConfirmedUsers.Find(u => _hasher.CompareAgainst(hashedAccountName, u.Account));

            if (confirmed == null || confirmed.MailConfirmed)
            {
                return(false);
            }
            confirmed.MailConfirmed = true;
            _context.SaveAsync().Wait();
            return(true);
        }
Example #3
0
        public async Task <ActionResult> Create(CreateExercise exercise)
        {
            if (ModelState.IsValid)
            {
                dynamic result;
                if (string.IsNullOrEmpty(exercise.VerificationQuery))
                {
                    result = (await TestQuery(exercise.SolutionQuery, exercise.Diagram)).Data;
                }
                else
                {
                    result = (await TestQueryDML(exercise.SolutionQuery, exercise.VerificationQuery, exercise.Diagram)).Data;
                }
                if (((string)result.result).StartsWith("ERROR"))
                {
                    return(View(exercise));
                }
                var toInJudge = new Judge
                {
                    VerifyQuery = exercise.VerificationQuery,
                    AnswerQuery = exercise.SolutionQuery,
                    Diagram     = _context.Diagrams.Find(exercise.Diagram)
                };
                var toIn = new Exercise
                {
                    Description = exercise.Description,
                    Difficulty  = exercise.Difficulty,
                    Title       = exercise.Title,
                    Judge       = toInJudge
                };
                await Task.Run(() => _context.Judges.Add(toInJudge));

                await Task.Run(() => _context.Exercises.Add(toIn));

                await _context.SaveAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(View(exercise));
            }
        }
Example #4
0
        public async Task <ActionResult> Create(SeedCreateViewModel seed)
        {
            if (ModelState.IsValid)
            {
                var result = await TestQuery(seed.SeedQuery, seed.DiagramId);

                if (((dynamic)result.Data).result.ToString().StartsWith("ERROR: "))
                {
                    return(View(seed));
                }
                else
                {
                    if (seed.SeedId.HasValue)
                    {
                        var dbSeed = await Task.Run(() => _context.Seeds.Find(seed.SeedId.Value));

                        dbSeed.SeedQuery = seed.SeedQuery;
                    }
                    else
                    {
                        _context.Seeds.Add(new DataSeed
                        {
                            Diagram   = await FindDiagram(seed.DiagramId),
                            SeedQuery = seed.SeedQuery,
                        });
                    }
                    await _context.SaveAsync();

                    return(RedirectToAction(nameof(Index), new { diagramId = seed.DiagramId }));
                }
            }
            else
            {
                return(View(seed));
            }
        }
Example #5
0
        public async Task <ActionResult> MarkExerciser(string accountName)
        {
            var user = _context.Users.SingleOrDefault(u => u.Account.Equals(accountName));

            if (user != null)
            {
                user.Role = _context.Roles.Single(r => r.Name.Equals(UserRoles.Exerciser.ToString()));
                await _context.SaveAsync();

                return(Content($"User's account: {accountName} has been upgraded to Exerciser role."));
            }
            else
            {
                return(HttpNotFound());
            }
        }
Example #6
0
 public Task <int> SaveAsync()
 {
     EnableMock();
     return(_mockedObject.SaveAsync());
 }