private static CodingViewModel ToCodingViewModel(this Coding coding) { var viewModel = new CodingViewModel { Code = coding.Code, Display = coding.Display, System = coding.System }; return(viewModel); }
/// <summary> /// Pagina de concurs a unei probleme. Aici se rezolva problema si se trimite solutia /// </summary> /// <param name="id">id-ul problemei</param> /// <param name="grade">nota obtinuta in urma trimiterii unei solutii</param> /// <param name="hasGrade">parametru de verificare in View daca a fost verificata solutia si a primit nota</param> public async Task <IActionResult> Index(int?id, float grade, bool hasGrade) { if (id == null) { return(NotFound()); } // challenge-ul in curs de desfasurare var challenge = _context.Challenges .Include(s => s.Contest) .FirstOrDefault(m => m.Id == id); if (!IsChallengeActive(challenge)) { return(RedirectToAction("EroareTimp")); } //inserare template-uri aferente challenge-ului in limbaje var programmingLanguages = _context.ProgrammingLanguages.Where(s => s.Available).ToList(); var codeTemplates = _context.CodeTemplates.Where(s => s.ChallengeId == id); foreach (var codeTemplate in codeTemplates) { foreach (var language in programmingLanguages) { if (codeTemplate.ProgrammingLanguageId == language.Id) { language.CodeTemplate = codeTemplate.Code; } } } //formare sesiune de coding var userId = _userManager.GetUserId(User); // id-ul utilizatorului curent var codingSession = _context.CodingSessions // verificam sa vedem daca este salvata o sesiune deja .Include(s => s.ProgrammingLanguage) .FirstOrDefault(s => s.ChallengeId == id && s.ApplicationUserId == userId); if (codingSession == null) // daca nu este una salvata in baza de date cream una aferenta utilizatorului si challenge-ului { var progLang = programmingLanguages.First(); var newCodingSession = new CodingSessionModel { ChallengeId = challenge.Id, ApplicationUserId = userId, ProgrammingLanguageId = progLang.Id, Code = progLang.CodeTemplate, }; _context.CodingSessions.Add(newCodingSession); await _context.SaveChangesAsync(); codingSession = newCodingSession; } // creare condingView pentru afisare in view var codingViewModel = new CodingViewModel { Challenge = challenge, CodingSession = codingSession, HasGrade = hasGrade, Grade = grade, ProgramingLanguages = programmingLanguages }; // creare select list pentru selectare limbaj de programare var currentLangCode = codingSession.ProgrammingLanguage.LanguageCode; var programmingLanguagesSelectList = new SelectList(programmingLanguages, "LanguageCode", "Name", currentLangCode); ViewData["ProgrammingLanguages"] = programmingLanguagesSelectList; //calculare timp ramas din concurs var contest = challenge.Contest; var remainingTime = contest.Duration - (DateTime.Now - contest.StartDate).TotalMinutes; ViewData["remainingTime"] = Math.Round(remainingTime); return(View(codingViewModel)); }
private void CodingClicked(object sender, RoutedEventArgs e) { DataContext = new CodingViewModel(); }
public MainWindow() { InitializeComponent(); DataContext = new CodingViewModel(); }