Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }