private void Validate(DevelopmentTool developmentTool) { if (string.IsNullOrEmpty(developmentTool.Name)) { ModelState.AddModelError("Name", "Enter Name for the development tool"); } if (string.IsNullOrEmpty(developmentTool.ImagePath)) { ModelState.AddModelError("ImagePath", "Enter ImagePath for the development tool"); } if (string.IsNullOrEmpty(developmentTool.SiteUrl)) { ModelState.AddModelError("SiteUrl", "Enter SiteUrl for the development tool"); } if (developmentTool.Rate < 0 || developmentTool.Rate > 10) { ModelState.AddModelError("Rate", "Rate should be between 0 - 10"); } if (developmentTool.Price < 0) { ModelState.AddModelError("Price", "Price should be greater than 0"); } if (developmentTool.NumberOfRaters < 0) { ModelState.AddModelError("NumberOfRaters", "NumberOfRaters should be greater than 0"); } if (developmentTool.NumberOfUsers < 0) { ModelState.AddModelError("NumberOfUsers", "NumberOfUsers should be greater than 0"); } if (developmentTool.LastUpdate == new DateTime()) { ModelState.AddModelError("LastUpdate", "Enter Last Update for the development tool"); } }
public ActionResult CommentDetails(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DevelopmentTool developmentTool = _db.DevelopmentTools.Find(id); if (developmentTool == null) { return(HttpNotFound()); } var commentDetails = Json(developmentTool.Comments.OrderBy(x => x.Date).Select(x => new { canDelete = (User.IsInRole("Admin") || User.Identity.GetUserId() == x.User.Id), userId = x.User.Id, x.Id, Date = x.Date.ToString(), x.Text, userName = x.User.UserName }), JsonRequestBehavior.AllowGet); return(commentDetails); }
public ActionResult Edit(DevelopmentTool developmentTool) { if (User == null || !User.IsInRole("Admin")) { return(Redirect("/Home/Index")); } Validate(developmentTool); if (ModelState.IsValid) { var original = _db.DevelopmentTools.Find(developmentTool.Id); original.Price = developmentTool.Price; original.LastUpdate = developmentTool.LastUpdate; original.Name = developmentTool.Name; original.Description = developmentTool.Description; var newCompanyId = Guid.Parse(developmentTool.CompanyId); if (original.Company.CompanyId != newCompanyId) { original.Company.MostPopularDevelopmentTool = null; } original.Company = _db.Companies.Find(newCompanyId); original.CompanyId = developmentTool.CompanyId; original.ImagePath = developmentTool.ImagePath; original.SiteUrl = developmentTool.ImagePath; original.Rate = developmentTool.Rate; original.NumberOfRaters = developmentTool.NumberOfRaters; original.NumberOfUsers = developmentTool.NumberOfUsers; original.SourceCodeLicense = developmentTool.SourceCodeLicense; _db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Companies = GetCompaniesList(); return(View(developmentTool)); }
public async System.Threading.Tasks.Task <ActionResult> DevelopmentToolsEdit(ContestsDevelopmentToolsEditViewModel model) { if (ModelState.IsValid) { if (await _db.DevelopmentTools.AnyAsync(d => d.ContestId == model.ContestId && d.Name == model.Name)) { ModelState.AddModelError("", "Компилятор в данном контесте с таким именем уже существует"); } else { var developmentTool = new DevelopmentTool { ContestId = model.ContestId, Id = (Guid)model.DevelopmentToolId, Name = model.Name, CompileCommand = model.CompileCommand, CommandArgs = model.CommandArgs }; _db.Entry(developmentTool).State = EntityState.Modified; await _db.SaveChangesAsync(); return(RedirectToAction("Edit", new { id = model.ContestId })); } } return(View(model)); }
// GET: /DevelopmentTool/Details/5 public ActionResult Details(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DevelopmentTool developmentTool = _db.DevelopmentTools.Find(id); if (developmentTool == null) { return(HttpNotFound()); } return(View(developmentTool)); }
// GET: /DevelopmentTool/Delete/5 public ActionResult Delete(Guid?id) { if (User == null || !User.IsInRole("Admin")) { return(Redirect("/Home/Index")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DevelopmentTool developmentTool = _db.DevelopmentTools.Find(id); if (developmentTool == null) { return(HttpNotFound()); } return(View(developmentTool)); }
public ActionResult Create(DevelopmentTool developmentTool) { if (User == null || !User.IsInRole("Admin")) { return(Redirect("/Home/Index")); } #region Hack the validator developmentTool.Id = Guid.NewGuid(); ModelState.Remove("Id"); #endregion Validate(developmentTool); if (ModelState.IsValid) { developmentTool.Company = _db.Companies.Find(Guid.Parse(developmentTool.CompanyId)); _db.DevelopmentTools.AddOrUpdate(developmentTool); _db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Companies = GetCompaniesList(); return(View(developmentTool)); }
// GET: /DevelopmentTool/Edit/5 public ActionResult Edit(Guid?id) { if (User == null || !User.IsInRole("Admin")) { return(Redirect("/Home/Index")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } DevelopmentTool developmentTool = _db.DevelopmentTools.Find(id); if (developmentTool == null) { return(HttpNotFound()); } ViewBag.Companies = _db.Companies.Select(x => new SelectListItem() { Value = x.CompanyId.ToString(), Text = x.Name }).ToList(); return(View(developmentTool)); }
static void CreateInitialData() { //check if the database identified by a named connection string exists var existsByName = Database.Exists("Name=ProjectsContext"); //check if the database identified by a connection string exists var existsByConnectionString = Database.Exists(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Succinctly;MultipleActiveResultSets=true"); using (var ctx = new ProjectsContext()) { var created = ctx.Database.CreateIfNotExists(); if (ctx.Database.CompatibleWithModel(false) == true) { return; } new DropCreateDatabaseAlways <ProjectsContext>().InitializeDatabase(ctx); using (var tx = new TransactionScope()) { //venues var home = new Venue() { Name = "Home, Sweet Home", Location = DbGeography.FromText("POINT(40.2112 8.4292)") }; var somePlace = new Venue() { Name = "Some Place Else", Location = DbGeography.FromText("POINT(41 8)") }; /*ctx.Venues.Add(home); * ctx.Venues.Add(somePlace);*/ //customers var bigCustomer = new Customer() { Name = "Big Customer" }; bigCustomer.Contact.Email = "*****@*****.**"; bigCustomer.Contact.Phone = "00 1 555 111 333"; var smallCustomer = new Customer() { Name = "Small Customer" }; smallCustomer.Contact.Email = "*****@*****.**"; smallCustomer.Contact.Phone = "00 351 111 222 333"; ctx.Customers.Add(bigCustomer); ctx.Customers.Add(smallCustomer); var developer = new Resource() { Name = "Ricardo Peres" }; developer.Contact.Email = "*****@*****.**"; developer.Contact.Phone = "?"; var projectManager = new Resource() { Name = "Succinct Project Manager" }; projectManager.Contact.Email = "*****@*****.**"; var tester = new Resource() { Name = "Succinct Tester" }; tester.Contact.Email = "*****@*****.**"; ctx.Resources.Add(developer); ctx.Resources.Add(projectManager); ctx.Resources.Add(tester); //start technologies var aspNet = new Technology() { Name = "ASP.NET" }; var entityFramework = new Technology() { Name = "Entity Framework" }; var selenium = new Technology() { Name = "Selenium" }; aspNet.Resources.Add(developer); entityFramework.Resources.Add(developer); selenium.Resources.Add(tester); developer.Technologies.Add(aspNet); developer.Technologies.Add(entityFramework); tester.Technologies.Add(selenium); ctx.Technologies.Add(aspNet); ctx.Technologies.Add(entityFramework); ctx.Technologies.Add(selenium); //end technologies //start tools var developmentTool = new DevelopmentTool() { Name = "Visual Studio 2012", Language = "C#" }; var managementTool = new ManagementTool() { Name = "Project 2013", CompatibleWithProject = true }; var testingTool = new TestingTool() { Name = "Selenium", Automated = true }; ctx.Tools.Add(developmentTool); ctx.Tools.Add(managementTool); ctx.Tools.Add(testingTool); //end tools //start big project var bigProject = new Project() { Name = "Big Project", Start = DateTime.Today, Customer = bigCustomer }; var bigProjectDetail = new ProjectDetail() { Project = bigProject, Budget = 10000M, Critical = true }; bigProject.Detail = bigProjectDetail; ctx.SaveChanges(); var bigProjectDeveloperResource = new ProjectResource() { Project = bigProject, Resource = developer, Role = Role.Developer }; var bigProjectProjectManagerResource = new ProjectResource() { Project = bigProject, Resource = projectManager, Role = Role.ProjectManager }; var bigProjectTesterResource = new ProjectResource() { Project = bigProject, Resource = tester, Role = Role.Tester }; bigProject.ProjectResources.Add(bigProjectDeveloperResource); bigProject.ProjectResources.Add(bigProjectProjectManagerResource); bigProject.ProjectResources.Add(bigProjectTesterResource); developer.ProjectResources.Add(bigProjectDeveloperResource); projectManager.ProjectResources.Add(bigProjectProjectManagerResource); tester.ProjectResources.Add(bigProjectTesterResource); bigCustomer.Projects.Add(bigProject); //end big project //small project var smallProject = new Project() { Name = "Small Project", Start = DateTime.Today.AddDays(-7), End = DateTime.Today.AddDays(-1), Customer = smallCustomer }; var smallProjectDetail = new ProjectDetail() { Project = smallProject, Budget = 5000M, Critical = false }; var smallProjectDeveloperResource = new ProjectResource() { Project = smallProject, Resource = developer, Role = Role.Developer }; var smallProjectProjectManagerResource = new ProjectResource() { Project = smallProject, Resource = projectManager, Role = Role.ProjectManager }; var smallProjectTesterResource = new ProjectResource() { Project = smallProject, Resource = tester, Role = Role.Tester }; smallProject.Detail = smallProjectDetail; smallProject.ProjectResources.Add(smallProjectDeveloperResource); smallProject.ProjectResources.Add(smallProjectProjectManagerResource); smallProject.ProjectResources.Add(smallProjectTesterResource); developer.ProjectResources.Add(smallProjectDeveloperResource); projectManager.ProjectResources.Add(smallProjectProjectManagerResource); tester.ProjectResources.Add(smallProjectTesterResource); smallCustomer.Projects.Add(smallProject); //end small project ctx.SaveChanges(); tx.Complete(); } } }
private Solution CheckPostedSolution(Contest contest, ApplicationUser user, Task task, DevelopmentTool devTool, string solutionsFolder, string localFolder, string sourcePath) { var solution = new Solution(new LocalFileSystem()) { Configuration = new Common.Configuration { FileSystem = new LocalFileSystem(), ContestType = contest.ContestsType.Name, ContestName = contest.Name, Site = ConfigurationManager.AppSettings["SiteConfigFolder"] }, DevTool = new DeveloperTool { Name = devTool.Name, CompileCommand = devTool.CompileCommand, CommandArgs = devTool.CommandArgs, IsExeFile = false }, Task = new Common.Task { Name = task.Name, ExecutableName = task.ExecutableName, CheckerName = task.CheckerName, TestsFolder = task.TestsFolder, TimeLimit = task.TimeLimit, Weight = task.Weight, MaxSourceSize = task.MaxSourceSize, MaxMemorySize = task.MaxMemorySize }, Path = sourcePath, LocalSourcePath = sourcePath }; solution.Check(LocalFolder, solutionsFolder); return(solution); }