public async Task <IActionResult> Edit(string id, string ProjectID, [Bind("VariantName,ScenarioID,ID,CreatedBy,CreatedDateTime,UpdatedBy,UpdatedDateTime,IsActive")] TestVariant testVariant) { if (id != testVariant.ID) { return(NotFound()); } if (!AuthorizeData(id)) { return(Unauthorized()); } if (!CanWrite(User.Identity.Name, ProjectID)) { return(Forbid()); } var isDuplicated = _context.TestVariant.Any(i => i.VariantName.Equals(testVariant.VariantName, StringComparison.OrdinalIgnoreCase) && i.ScenarioID.Equals(testVariant.ScenarioID, StringComparison.OrdinalIgnoreCase)); if (isDuplicated) { ModelState.AddModelError("VariantName", "This Variant Name is already existing. "); } if (ModelState.IsValid) { try { testVariant.SetUpdater(User.Identity.Name); _context.Update(testVariant); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TestVariantExists(testVariant.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), new { ProjectID = ProjectID, ScenarioID = testVariant.ScenarioID })); } var testVariantViewModel = new TestVariantViewModel() { ProjectID = ProjectID, TestVariant = testVariant }; return(View(testVariantViewModel)); }
public async Task <IActionResult> Edit(string id, [Bind("Username,ProjectID,CanWrite,ID,CreatedBy,CreatedDateTime,UpdatedBy,UpdatedDateTime,IsActive")] UserMappingProject userMappingProject) { if (id != userMappingProject.ID) { return(NotFound()); } if (!AuthorizeData(id)) { return(Unauthorized()); } if (!CanWrite(User.Identity.Name, userMappingProject.ProjectID)) { return(Forbid()); } if (ModelState.IsValid) { try { userMappingProject.SetUpdater(User.Identity.Name); _context.Update(userMappingProject); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserMappingProjectExists(userMappingProject.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), new { ProjectID = userMappingProject.ProjectID })); } return(View(userMappingProject)); }
public async Task <IActionResult> Edit(string id, string ProjectID, string ScenarioID, string TesterName, DateTime?FromPlannedDate, DateTime?ToPlannedDate, string SearchTestStatus, DateTime?FromUpdatedDate, DateTime?ToUpdatedDate, List <IFormFile> files, List <TestCaseAttachment> TestCaseAttachments, [Bind("TestCaseName,TestVariantID,TestCaseSteps,ExpectedResult,ActualResult,TesterName,PlannedDate,TestStatus,Note,ID,CreatedBy,CreatedDateTime,UpdatedBy,UpdatedDateTime,IsActive")] TestCase testCase) { if (id != testCase.ID) { return(NotFound()); } if (!AuthorizeData(id)) { return(Unauthorized()); } if (!CanWrite(User.Identity.Name, ProjectID)) { return(Forbid()); } DateTime minDate = new DateTime(2000, 1, 1); if (testCase?.PlannedDate < minDate) { ModelState.AddModelError("TestCase.PlannedDate", $"PlannedDate must be >= {minDate.ToString("yyyy/MM/dd")}"); } if (ModelState.IsValid) { try { testCase.SetUpdater(User.Identity.Name); _context.Update(testCase); if (files.Count > 0) { List <TestCaseAttachment> attachments = new List <TestCaseAttachment>(); string subFolder = Path.Combine("datafile/testCaseAttachment/", ProjectID, ScenarioID, id); string fullFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", subFolder); if (!Directory.Exists(fullFolder)) { Directory.CreateDirectory(fullFolder); } foreach (var formFile in files) { if (formFile.Length > 0) { string filename = Guid.NewGuid().ToString() + Path.GetExtension(formFile.FileName); string fullPath = Path.Combine(fullFolder, filename); string filePath = Path.Combine(subFolder, filename); using (var stream = new FileStream(fullPath, FileMode.Create)) { await formFile.CopyToAsync(stream); var attachment = new TestCaseAttachment() { TestCaseID = testCase.ID, OriginalFileName = formFile.FileName, FullFileName = filePath, ContentType = formFile.ContentType }; attachment.SetCreator(User.Identity.Name); attachments.Add(attachment); } } } _context.TestCaseAttachment.AddRange(attachments); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TestCaseExists(testCase.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), new { ProjectID = ProjectID, ScenarioID = ScenarioID, VariantID = testCase.TestVariantID, TesterName = TesterName, FromPlannedDate = FromPlannedDate, ToPlannedDate = ToPlannedDate, SearchTestStatus = SearchTestStatus, FromUpdatedDate = FromUpdatedDate, ToUpdatedDate = ToUpdatedDate })); } var testCaseViewModel = new TestCaseViewModel() { ProjectID = ProjectID, ScenarioID = ScenarioID, TesterName = TesterName, FromPlannedDate = FromPlannedDate, ToPlannedDate = ToPlannedDate, SearchTestStatus = SearchTestStatus, FromUpdatedDate = FromUpdatedDate, ToUpdatedDate = ToUpdatedDate, TestCase = testCase, TestCaseAttachments = TestCaseAttachments }; return(View(testCaseViewModel)); }