/// <summary> /// This method Clear /// </summary> public void Clear(bool justStatus = false) { // if the value for justStatus is false if (!justStatus) { // Clear all the controls this.ShipmentNameControl.Text = ""; this.SourceFolderTextBox.Text = ""; this.OutputFolderTextBox.Text = ""; this.BinCheckBox.Checked = false; this.ObjCheckBox.Checked = false; this.PackagesCheckBox.Checked = false; this.ZipCheckBox.Checked = false; this.CopyCheckBox.Checked = false; this.AddTimeStampCheckBox.Checked = false; this.IgnoreFoldersListBox.Items.Clear(); } // Clear the Status SolutionStatus status = new SolutionStatus(); status.OutputFolderStatus = new FolderStatus(); status.SourceFolderStatus = new FolderStatus(); // Erase the status values this.DisplayShipmentStatus(status); // Hide the graph this.DestinationLabel.Visible = false; this.Graph.Visible = false; }
public ActionResult Add(SolutionStatus model) { try { if (ModelState.IsValid) { if (model.Code > 0) { var chk = _slnStatus.GetAll().Where(c => c.Name.ToUpper() == model.Name.ToUpper() || c.Code == model.Code).FirstOrDefault(); if (chk == null) { _slnStatus.Create(model); TempData["Msg"] = _help.getMsg(AlertType.success.ToString(), "Added successfully!"); return(RedirectToAction("Index")); } else { return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = "The record already exist. Please check the records and try again!" })); } } else { return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = "Invalid Code!" })); } } else { return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = "Please fill the form correctly!" })); } } catch (Exception ex) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, Error = ex.Message })); } }
private static bool MustBePendingToChangeClaim <T>( SolutionStatus newSolnStatus, IEnumerable <T> oldItems, IEnumerable <T> newItems, IEqualityComparer <T> comparer, Action onError ) where T : IHasId { var newNotOld = newItems.Except(oldItems, comparer).ToList(); var oldNotNew = oldItems.Except(newItems, comparer).ToList(); var same = !newNotOld.Any() && !oldNotNew.Any(); if (same) { // no add/remove return(true); } if ((oldNotNew.Any() || newNotOld.Any()) && !IsPendingForClaims(newSolnStatus)) { // Can only add/remove Claim while pending onError(); return(false); } return(true); }
public void Update_DoesNotCallPrepareForSolution_WhenNotRegistered(SolutionStatus status) { var logic = new SolutionsExLogic( _solutionsModifier.Object, _capabilitiesImplementedModifier.Object, _standardsApplicableModifier.Object, _capabilitiesImplementedEvidenceModifier.Object, _standardsApplicableEvidenceModifier.Object, _capabilitiesImplementedReviewsModifier.Object, _standardsApplicableReviewsModifier.Object, _datastore.Object, _context.Object, _validator.Object, _filter.Object, _contacts.Object, _evidenceBlobStoreLogic.Object); var soln = Creator.GetSolution(status: status); var solnEx = Creator.GetSolutionEx(soln: soln); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext()); _contacts.Setup(x => x.ByEmail(It.IsAny <string>())).Returns(Creator.GetContact()); var valres = new ValidationResult(); _validator.Setup(x => x.Validate(It.IsAny <ValidationContext>())).Returns(valres); logic.Update(solnEx); _evidenceBlobStoreLogic.Verify(x => x.PrepareForSolution(soln.Id), Times.Never); }
public static Solutions GetSolution( string id = null, string previousId = null, string orgId = null, SolutionStatus status = SolutionStatus.Draft, string createdById = null, DateTime?createdOn = null, string modifiedById = null, DateTime?modifiedOn = null) { var retval = new Solutions { Id = id ?? Guid.NewGuid().ToString(), PreviousId = previousId, OrganisationId = orgId ?? Guid.NewGuid().ToString(), Status = status, CreatedById = createdById ?? Guid.NewGuid().ToString(), CreatedOn = createdOn ?? DateTime.Now, ModifiedById = modifiedById ?? Guid.NewGuid().ToString(), ModifiedOn = modifiedOn ?? DateTime.Now }; Verifier.Verify(retval); return(retval); }
private static bool MustBePendingToChangeReview <T>( SolutionStatus newSolnStatus, IEnumerable <T> oldItems, IEnumerable <T> newItems, IEqualityComparer <T> comparer, Action onError ) where T : IHasId { var newNotOld = newItems.Except(oldItems, comparer).ToList(); var oldNotNew = oldItems.Except(newItems, comparer).ToList(); if (newNotOld.Any() && newNotOld.Count > oldNotNew.Count && IsPendingForReview(newSolnStatus)) { // added return(true); } var same = !newNotOld.Any() && !oldNotNew.Any(); if (!same) { onError(); } return(same); }
public override int GetHashCode() { int hash = 1; if (header_ != null) { hash ^= Header.GetHashCode(); } if (SolutionCompleted != false) { hash ^= SolutionCompleted.GetHashCode(); } if (SolutionStatus != 0) { hash ^= SolutionStatus.GetHashCode(); } if (PositionType != 0) { hash ^= PositionType.GetHashCode(); } if (NumSats != 0) { hash ^= NumSats.GetHashCode(); } return(hash); }
private static bool IsPendingForEvidence(SolutionStatus status) { return (status == SolutionStatus.Registered || status == SolutionStatus.CapabilitiesAssessment || status == SolutionStatus.StandardsCompliance); }
public async Task <IActionResult> Post( Guid solutionId, SolutionStatus state, [FromServices] NotifyUsersService notifyUserService) { var solution = await dbContext.Solutions.SingleOrDefaultAsync(S => S.Id == solutionId); if (solution == null) { return(NotFound()); } solution.Status = state; if (state == SolutionStatus.InProcessing) { solution.StartCheckingTime = DateTimeOffset.UtcNow; } else //Some end state { solution.TotalScore = await CalculateScore(solution.Id); solution.CheckedTime = DateTimeOffset.UtcNow; } await dbContext.SaveChangesAsync(); await notifyUserService.NewSolutionAdded(solution); return(Ok()); }
/// <summary> /// event is fired when the 'ShipSolutionButton' is clicked. /// </summary> private void ShipSolutionButton_Click(object sender, EventArgs e) { // Clear only the bottom part of the screen (Status, Graph and DestinationLabel this.Clear(true); // Capture the current shipment Shipment shipment = CaptureShipment(); // If the shipment object exists if (NullHelper.Exists(shipment)) { // Perform the shipment SolutionStatus status = ShipManager.Ship(shipment, this.Graph); // If the status object exists if (NullHelper.Exists(status)) { // hide the graph this.Graph.Visible = false; // Display the Status results DisplayShipmentStatus(status); // Display the text of the output folder this.DestinationLabel.Text = "Destination: " + shipment.OutputFolder.Path; this.DestinationLabel.Visible = true; } } }
public void MustBePending_Draft_Succeeds(SolutionStatus status) { var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var soln = Creator.GetSolution(status: status); validator.MustBePending(); var valres = validator.Validate(soln); valres.Errors.Should().BeEmpty(); }
public void Create(SolutionStatus model) { try { _context.SolutionStatus.Add(model); _context.SaveChanges(); } catch (Exception e) { throw; } }
public static Solution GetSolution( string id = null, string orgId = null, SolutionStatus status = SolutionStatus.Draft) { return(new Solution { Id = id ?? Guid.NewGuid().ToString(), OrganisationId = orgId ?? Guid.NewGuid().ToString(), Status = status }); }
public void MustBePending_NonDraft_ReturnsError(SolutionStatus status) { var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var soln = Creator.GetSolution(status: status); validator.MustBePending(); var valres = validator.Validate(soln); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Status must be Draft") .And .HaveCount(1); }
public static string ToRussian(this SolutionStatus solutionStatus) { return(solutionStatus switch { SolutionStatus.ErrorWhileCompile => "Ошибка системы при компиляции", SolutionStatus.CompileError => "Ошибка при компиляции", SolutionStatus.RunTimeError => "Ошибка во время исполнения", SolutionStatus.WrongAnswer => "Неверный ответ", SolutionStatus.TooLongWork => "Слишком долгое выполнение", SolutionStatus.InQueue => "В очереди на проверку", SolutionStatus.InProcessing => "Идет проверка", SolutionStatus.Successful => "Решено верно", _ => "Некорректный статус", });
public void SolutionMustBeInReview_Review_Succeeds(SolutionStatus status) { var validator = new StandardsApplicableEvidenceValidator(_evidenceDatastore.Object, _claimDatastore.Object, _solutionDatastore.Object, _context.Object, _logger.Object); var soln = Creator.GetSolution(status: status); var claim = Creator.GetStandardsApplicable(solnId: soln.Id); var evidence = Creator.GetStandardsApplicableEvidence(claimId: claim.Id); _claimDatastore.As <IClaimsDatastore <ClaimsBase> >().Setup(x => x.ById(evidence.ClaimId)).Returns(claim); _solutionDatastore.Setup(x => x.ById(soln.Id)).Returns(soln); validator.SolutionMustBeInReview(); var valres = validator.Validate(evidence); valres.Errors.Should().BeEmpty(); }
internal SolutionResult(XElement solutionNode) { status = (SolutionStatus)int.Parse(solutionNode.Attribute("status").Value); correlationLog = solutionNode.Elements("log").Select(e => e.Value).FirstOrDefault() ?? ""; var nodeDict = new Dictionary <NodeId, NodeSolution>(); nodeSolutions = nodeDict; foreach (var nodeElement in solutionNode.Elements("node")) { nodeDict.Add( new NodeId(nodeElement.Element(NodeId.xmlName)), new NodeSolution(nodeElement.Element(NodeSolution.xmlName)) ); } }
/// <summary> /// Сохранение решения задачи /// </summary> /// <param name="solutionStatus">Статус решения</param> /// <param name="handleSolutionStream">Обработчик потока решения</param> /// <exception cref="RetryException">ри возникновении данной ошибки возможно повторения выхова через некоторое время</exception> /// <exception cref="HttpException">Если при сохранении решения возникнет сетевая ошибка</exception> public void Post(SolutionStatus solutionStatus, Action <Stream> handleSolutionStream) { using (var client = new HttpClient()) { if (!string.IsNullOrEmpty(_authorizationHeader)) { client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", _authorizationHeader); } client.BaseAddress = new Uri(_baseUrl); using (var stream = new MemoryStream()) { handleSolutionStream(stream); //stream.Get using (var multipartFormDataContent = new MultipartFormDataContent()) { multipartFormDataContent.Add(new StringContent(solutionStatus.ToString()), '"' + "SolutionStatus" + '"'); multipartFormDataContent.Add(new ByteArrayContent(stream.ToArray()), '"' + "Solution" + '"', '"' + $"solution" + '"'); try { var res = client.PutAsync("api/problem/solution", multipartFormDataContent).GetAwaiter().GetResult(); if (res.IsSuccessStatusCode) { return; } if (!res.IsSuccessStatusCode && !_statusCodesToThrow.Contains((int)res.StatusCode)) { throw new RetryException($"Invalid status code for sending request to {_baseUrl} with authorization{_authorizationHeader}", new HttpException($"Invalid status code for sending request to {_baseUrl} with authorization{_authorizationHeader}", (int)res.StatusCode, res.ReasonPhrase, res.Content.ReadAsStringAsync().GetAwaiter().GetResult(), res.Headers.ToDictionary(x => x.Key, x => x.Value))); } throw new HttpException($"Invalid status code for sending request to {_baseUrl} with authorization{_authorizationHeader}", (int)res.StatusCode, res.ReasonPhrase, res.Content.ReadAsStringAsync().GetAwaiter().GetResult(), res.Headers.ToDictionary(x => x.Key, x => x.Value)); } catch (HttpRequestException e) { throw new RetryException($"Invalid status code for sending request to {_baseUrl} with authorization{_authorizationHeader}", e); } } } } }
public void Update_CallsPrepareForSolution_WhenRegistered(SolutionStatus status) { var logic = Create(); var soln = Creator.GetSolution(status: status); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext()); _contacts.Setup(x => x.ByEmail(It.IsAny <string>())).Returns(Creator.GetContact()); var valres = new ValidationResult(); _validator.Setup(x => x.Validate(It.IsAny <ValidationContext>())).Returns(valres); logic.Update(soln); _evidenceBlobStoreLogic.Verify(x => x.PrepareForSolution(soln.Id), Times.Once); }
public void Filter_Supplier_Returns_Own([ValueSource(nameof(Statuses))] SolutionStatus status) { var orgId = Guid.NewGuid().ToString(); var ctx = Creator.GetContext(orgId: orgId, role: Roles.Supplier); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionsFilter(_context.Object); var soln1 = Creator.GetSolution(status: status, orgId: orgId); var soln2 = Creator.GetSolution(status: status); var soln3 = Creator.GetSolution(status: status); var solns = new[] { soln1, soln2, soln3 }; var res = filter.Filter(solns); res.Should().BeEquivalentTo(soln1); }
public void Update_DoesNotCallPrepareForSolution_WhenNotRegistered(SolutionStatus status) { var logic = new SolutionsLogic(_modifier.Object, _datastore.Object, _contacts.Object, _context.Object, _validator.Object, _filter.Object, _evidenceBlobStoreLogic.Object); var soln = Creator.GetSolution(status: status); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext()); _contacts.Setup(x => x.ByEmail(It.IsAny <string>())).Returns(Creator.GetContact()); var valres = new ValidationResult(); _validator.Setup(x => x.Validate(It.IsAny <ValidationContext>())).Returns(valres); logic.Update(soln); _evidenceBlobStoreLogic.Verify(x => x.PrepareForSolution(soln.Id), Times.Never); }
/// <summary> /// Сохранение решения задачи /// </summary> /// <param name="solutionStatus">Статус решения</param> /// <param name="handleSolutionStream">Обработчик потока решения</param> public void Post(SolutionStatus solutionStatus, Action <Stream> handleSolutionStream) { var solutionFileFormat = $"{solutionStatus}_{DateTime.UtcNow.ToString("yyyy-MM-dd_HH-mm-ss")}"; var number = 0; string fileName = ""; do { fileName = Path.Combine(_solutionsDir, solutionFileFormat + (number > 0 ? $".{++number}" : "")); } while (File.Exists(fileName)); using (var fileStream = new FileStream(fileName, FileMode.Create)) { handleSolutionStream(fileStream); } }
public void MustBePendingToChangeVersion_SameVersion_Succeeds(SolutionStatus status) { var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var soln = Creator.GetSolution(status: status); soln.Version = "Original version"; var solnOld = Creator.GetSolution(status: status, id: soln.Id); solnOld.Version = "Original version"; _solutionDatastore.Setup(x => x.ById(soln.Id)).Returns(solnOld); validator.MustBePendingToChangeVersion(); var valres = validator.Validate(soln); valres.Errors.Should().BeEmpty(); }
public void Filter_None_Returns_Approved( [ValueSource(typeof(Creator), nameof(Creator.SolutionStatuses))] SolutionStatus status) { var filter = new SolutionsFilter(); var solns = new[] { Creator.GetSolution(status: status), Creator.GetSolution(status: status), Creator.GetSolution(status: status) }; var expSolns = solns.Where(x => x.Status == SolutionStatus.Approved); var res = filter.Filter(solns); res.Should().BeEquivalentTo(expSolns); }
public void MustBeValidStatusTransition_Valid_Succeeds(SolutionStatus oldStatus, SolutionStatus newStatus, string role) { var solnId = Guid.NewGuid().ToString(); _context.Setup(x => x.HttpContext).Returns(Creator.GetContext(role: role)); var validator = new SolutionsValidator(_context.Object, _logger.Object, _solutionDatastore.Object, _organisationDatastore.Object, _env.Object); var oldSoln = Creator.GetSolution(id: solnId, status: oldStatus); var newSoln = Creator.GetSolution(id: solnId, status: newStatus); _solutionDatastore.Setup(x => x.ById(solnId)).Returns(oldSoln); validator.MustBeValidStatusTransition(); var valres = validator.Validate(newSoln); valres.Errors.Should().BeEmpty(); }
public void SolutionMustBeInReview_Review_Succeeds(SolutionStatus status) { var validator = new CapabilitiesImplementedReviewsValidator(_reviewsDatastore.Object, _evidenceDatastore.Object, _claimDatastore.Object, _solutionDatastore.Object, _context.Object, _logger.Object); var soln = Creator.GetSolution(status: status); var review = GetCapabilitiesImplementedReview(); var claim = Creator.GetCapabilitiesImplemented(solnId: soln.Id); var evidence = Creator.GetCapabilitiesImplementedEvidence(claimId: claim.Id); _evidenceDatastore.As <IEvidenceDatastore <EvidenceBase> >().Setup(x => x.ById(review.EvidenceId)).Returns(evidence); _claimDatastore.As <IClaimsDatastore <ClaimsBase> >().Setup(x => x.ById(evidence.ClaimId)).Returns(claim); _solutionDatastore.Setup(x => x.ById(soln.Id)).Returns(soln); validator.SolutionMustBeInReview(); var valres = validator.Validate(review); valres.Errors.Should().BeEmpty(); }
public void Filter_Admin_Returns_All([ValueSource(nameof(Statuses))] SolutionStatus status) { var ctx = Creator.GetContext(role: Roles.Admin); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionsFilter(_context.Object); var solns = new[] { Creator.GetSolution(status: status), Creator.GetSolution(status: status), Creator.GetSolution(status: status) }; var res = filter.Filter(solns); res.Should().BeEquivalentTo(solns); }
public void Filter_None_Returns_NonDraft([ValueSource(nameof(Statuses))] SolutionStatus status) { var ctx = Creator.GetContext(role: "None"); _context.Setup(c => c.HttpContext).Returns(ctx); var filter = new SolutionFilter(_context.Object); var solns = new[] { Creator.GetSolution(status: status), Creator.GetSolution(status: status), Creator.GetSolution(status: status) }; var expSolns = solns.Where(x => x.Status != SolutionStatus.Draft); var res = filter.Filter(solns.AsQueryable()); res.Should().BeEquivalentTo(expSolns); }
public void SolutionMustBeInReview_NonReview_ReturnsError(SolutionStatus status) { var validator = new StandardsApplicableEvidenceValidator(_evidenceDatastore.Object, _claimDatastore.Object, _solutionDatastore.Object, _context.Object, _logger.Object); var soln = Creator.GetSolution(status: status); var claim = Creator.GetStandardsApplicable(solnId: soln.Id); var evidence = Creator.GetStandardsApplicableEvidence(claimId: claim.Id); _claimDatastore.As <IClaimsDatastore <ClaimsBase> >().Setup(x => x.ById(evidence.ClaimId)).Returns(claim); _solutionDatastore.Setup(x => x.ById(soln.Id)).Returns(soln); validator.SolutionMustBeInReview(); var valres = validator.Validate(evidence); valres.Errors.Should() .ContainSingle(x => x.ErrorMessage == "Can only add evidence if solution is in review") .And .HaveCount(1); }
public void UpdateSolutionStatus(SolutionStatus obj) { try { var dt = _context.SolutionStatus.Find(obj.SolutionStatusId); if (dt != null) { dt.Name = obj.Name; dt.Code = obj.Code; dt.Status = obj.Status; _context.SaveChanges(); } } catch (Exception e) { throw; } }