public ProblemDescription AddProblem(ProblemDescription newProblem) { SetNewIdToProblem(newProblem); Save(newProblem); return(newProblem); }
public async Task SetDescription(ProblemDescription value) { _problem.Description = value.Description; _problem.Input = value.Input; _problem.Output = value.Output; _problem.Hint = value.Hint; await _context.SaveChangesAsync(); }
public ProblemDescription UpdateProblem(ProblemDescription problem, ProblemDescription updatedProblem) { problem.Copy(updatedProblem); problem.LastUpdate = Helper.GetDateTimeNowBrazil(); Save <ProblemDescription>(problem); return(problem); }
private void SetNewIdToProblem(ProblemDescription newProblem) { var lastId = GetAllProblemsIds()?.LastOrDefault(); if (lastId == null) { lastId = "0"; } int newID = Convert.ToInt32(lastId) + 1; newProblem.Id = newID.ToString(); }
public async Task <ActionResult> UpdateDescription(string id, [FromBody] ProblemDescription data) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } await res.SetDescription(data); return(Accepted()); }
public bool TryReadProblemString(string problemString, out ProblemDescription problemDescription) { problemDescription = null; try { problemDescription = JsonConvert.DeserializeObject <ProblemDescription>(problemString); } catch (Exception) { return(false); } return(problemDescription != null); }
// Takes in a standard Q# format and outputs interpretable data to text // Input: Problem, state, indexConvention (default), qubitEncoding (default) // Output: No output, see ToPauliHamiltonian for generated filed public static void ToQSharpFormat( ProblemDescription problem, string state = "", IndexConvention indexConvention = IndexConvention.UpDown, QubitEncoding qubitEncoding = QubitEncoding.JordanWigner ) { var fermionHamiltonian = problem .OrbitalIntegralHamiltonian .ToFermionHamiltonian(indexConvention); Auxiliary.ToPauliHamiltonian(fermionHamiltonian, qubitEncoding); }
public IActionResult UpdateProblemById(string problemId, ProblemDescription updatedProblem) { var user = this.GetUserFromContext(); var problem = _problemsManager.GetProblemById(problemId); if (problem == null) { NotFound(_contractBo.BuildBackendResponse <string>("Este problema não existe no sistema.", SOJStatusCode.SOJStatusCodes.NotFound)); } if (!problem.Author.Username.Equals(user.Username)) { return(BadRequest(_contractBo.BuildBackendResponse <string>("Você não pode modificar este problema.", SOJStatusCode.SOJStatusCodes.BadRequest))); } problem = _problemsManager.UpdateProblem(problem, updatedProblem); return(Ok(_contractBo.BuildBackendResponse <ProblemDescription>(null, SOJStatusCode.SOJStatusCodes.OK, problem))); }
public IActionResult AddProblem(ProblemDescription newProblem) { if (newProblem == null) { return(StatusCode(StatusCodes.Status400BadRequest, _contractBo.BuildBackendResponse <string>("Você precisar enviar um arquivo!", SOJStatusCode.SOJStatusCodes.BadRequest, null))); } var author = this.GetAuthorFromContext(); newProblem.Author = author; newProblem.LastUpdate = Helper.GetDateTimeNowBrazil(); var response = _problemsManager.AddProblem(newProblem); return(StatusCode(StatusCodes.Status201Created, _contractBo.BuildBackendResponse <ProblemDescription>("Problema adicionado com sucesso", SOJStatusCode.SOJStatusCodes.Created, response))); }
/// <summary> /// Converts an electronic structure problem description /// into a format consumable by Q# using default settings. /// </summary> /// <param name="problem">Input electronic structure problem description.</param> /// <param name="state">Selected wavefunction ansatz. This uses the Hartree–Fock state by default.</param> /// <param name="indexConvention">Convention for mapping spin-orbit indices to integer indices.</param> /// <param name="qubitEncoding">Scheme for mapping fermions to qubits.</param> /// <returns> /// A representation of <paramref name="problem" /> suitable for passing to Q# simulation operations. /// </returns> public static JordanWignerEncodingData ToQSharpFormat( this ProblemDescription problem, string state = "", IndexConvention indexConvention = IndexConvention.UpDown, QubitEncoding qubitEncoding = QubitEncoding.JordanWigner ) { var fermionHamiltonian = problem .OrbitalIntegralHamiltonian .ToFermionHamiltonian(indexConvention); var wavefunction = problem.Wavefunctions.ContainsKey(state) ? problem.Wavefunctions[state].ToIndexing(indexConvention) : fermionHamiltonian.CreateHartreeFockState(problem.NElectrons); var pauliHamiltonian = fermionHamiltonian.ToPauliHamiltonian(qubitEncoding); var pauliHamiltonianQSharpFormat = pauliHamiltonian.ToQSharpFormat(); var wavefunctionQSharpFormat = wavefunction.ToQSharpFormat(); return(QSharpFormat.Convert.ToQSharpFormat(pauliHamiltonianQSharpFormat, wavefunctionQSharpFormat)); }
/// <summary> /// Draw the given problem to the UI. /// </summary> /// <param name="desc"></param> public void draw(ProblemDescription desc) { invokeDraw(desc); }
/// <summary> /// Draw the given problem to the UI. /// </summary> /// <param name="desc"></param> public void draw(ProblemDescription desc) { invokeDraw(desc); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { // configures one-to-many relationship // modelBuilder.Entity<User>() //.HasMany(p => p.Posts) //.WithOne(p => p.User); // modelBuilder.Entity<Profile>() // .HasOne(u => u.User) // .WithOne(u => u.Profile) // .IsRequired(); User admin = new User { Id = 1, Login = "******", Password = "******", Email = "*****@*****.**", Solved_Problems = null }; User slave = new User { Id = 2, Login = "******", Password = "******", Email = "*****@*****.**", Solved_Problems = null }; Problem summTwo = new Problem { Id = 1, Title = "Найти сумму двух чисел", Type = "Easy", Solved = 0, Trying = 0, }; Problem minusTwo = new Problem { Id = 2, Title = "Найти разницу двух чисел", Type = "Easy", Solved = 0, Trying = 0 }; ProblemDescription minusTwoDesc = new ProblemDescription { ProblemId = 2, Description = "В этой задаче тербуется найти разность двух чисел", ExamplesJson = JsonConvert.SerializeObject(new[] { new { input = "a = 2, b = 1", output = "1" }, new { input = "a = 3, b = 3", output = "0" } }), Cheat = "К этой задаче нет подсказок", Id = 2, InitialCodeJson = JsonConvert.SerializeObject(new { Javascript = "JS Code Here!", Csharp = "C# Code Here!", CPlus = "C++ Code Here!" }), TestCasesJson = JsonConvert.SerializeObject(new TestData[] { new TestData { input = new string[] { "2", "1" }, output = "1" }, new TestData { input = new string[] { "2", "2" }, output = "0" }, }) }; ProblemDescription summTwoDesc = new ProblemDescription { ProblemId = 1, Description = "В этой задаче тербуется найти сумму двух чисел", ExamplesJson = JsonConvert.SerializeObject(new[] { new { input = "a = 1, b = 2", output = "3" }, new { input = "a = 3, b = 3", output = "6" } }), Cheat = "К этой задаче нет подсказок", Id = 1, InitialCodeJson = JsonConvert.SerializeObject(new { Javascript = "JS Code Here!", Csharp = "C# Code Here!", CPlus = "C++ Code Here!" }), TestCasesJson = JsonConvert.SerializeObject(new TestData[] { new TestData { input = new string[] { "2", "1" }, output = "3" }, new TestData { input = new string[] { "2", "2" }, output = "4" }, }) }; modelBuilder.Entity <User>(b => { b.HasKey(o => o.Id); b.Property(o => o.Id).ValueGeneratedOnAdd(); b.HasData(admin, slave); b.HasMany(p => p.Solved_Problems).WithMany(c => c.Solved_By); }); modelBuilder.Entity <Problem>(b => { b.HasKey(o => o.Id); b.Property(o => o.Id).ValueGeneratedOnAdd(); b.HasData(summTwo, minusTwo); b.OwnsOne(p => p.ProblemDescription).HasData(summTwoDesc, minusTwoDesc); }); }