public void CreateAssessmentSubmission(AssessmentSubmission submission, out Certificate certificate) { if (submission == null) { throw new ArgumentNullException(nameof(submission)); } certificate = null; //TODO validation AssessmentRequest request = submission.AssessmentRequest ?? _assessmentRequests.GetById(submission.AssessmentRequestId); request.IsCompleted = true; _assessmentRequests.Update(request); _assessmentRequests.SaveChanges(); submission.UserId = request.UserId; _assessmentSubmissions.Add(submission); _assessmentSubmissions.SaveChanges(); Course submissionCourse = _courses.GetById(submission.CourseId); if (submission.IsSuccessful) { certificate = _certificatesService.GenerateCertificate(request.User.Username, submissionCourse.Id, submission); string certificateUrl = _routeProvider.GetCertificateRoute(certificate); string certificatePictureUrl = _routeProvider.GetCertificatePictureRoute(certificate); _messageService.SendExamSuccessfulMessage(request.User, submissionCourse, certificateUrl, certificatePictureUrl); } else { string assessmentUrl = _routeProvider.GetAssessmentRoute(submissionCourse.Id); _taskRunner.Schedule <IMessageService>(x => x.SendExamAvailableMessage(request.User, submissionCourse, assessmentUrl), NextAvailableAssessmentAttempt(submission.CreatedOn));//TODO add config setting } }
public void TestAssessmentCreate() { var time = new Time { Zone = "GMT", Identifier = "Time", Format = "iso_8601" }; var datasource = new Datasource { Type = "STANDALONE" }; var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var Field = new Field { Time = time }; var ds = new DatastreamRequest { Name = "TestDS" + randomNumber, Field = Field, DataSource = datasource }; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotSame(null, datastream.Id); // create assessment AssessmentRequest asmtRequest = new AssessmentRequest { Name = "TestAsmt", Datastream = datastream.Id }; var assessmentCreated = _falkonry.CreateAssessment(asmtRequest); Assert.AreEqual(assessmentCreated.Name, asmtRequest.Name); Assert.AreNotEqual(null, assessmentCreated.Id); // get Assessment List List <Assessment> assessmnetList = _falkonry.GetAssessments(); Assert.AreEqual(assessmnetList.Count > 0, true); // get assessment by id Assessment fetchedassessment = _falkonry.GetAssessment(assessmentCreated.Id); Assert.AreEqual(assessmentCreated.Name, asmtRequest.Name); Assert.AreNotEqual(null, fetchedassessment.Id); // check for aprioricondition list Assert.AreEqual(fetchedassessment.AprioriConditionList.Length == 0, true); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "CRUD operation failed for assessment"); } }
public AssessmentRequest GetLatestForUser(string username, int assessmentId) { AssessmentRequest request = _assessmentRequests.All() .Where(x => x.User.Username == username && x.AssessmentExternalId == assessmentId && x.IsCompleted == false) .OrderByDescending(x => x.CreatedOn) .FirstOrDefault(); return(request); }
public AssessmentRequest GetAssessmentRequest(int requestId) { if (requestId <= 0) { throw new ArgumentOutOfRangeException("requestId must be a positive integer."); } AssessmentRequest request = _assessmentRequests.GetById(requestId); return(request); }
public Assessment CreateAssessment(AssessmentRequest assessment) { try { return(_falkonryService.CreateAssessment(assessment)); } catch (Exception) { throw; } }
public async Task <IActionResult> Post([FromBody] AssessmentRequest model) { var assessment = await _context.Assessment.Where(x => x.Year.Equals(model.SADAssessmentYear) && x.AssessmentSerial.Equals(model.SADAssessmentSerial) && x.AssessmentNumber.Equals(model.SADAssessmentNumber)).ToListAsync(); var currentVerson = assessment.LastOrDefault(); if (currentVerson != null) { AssessmentResponse response = _mapper.Map <AssessmentResponse>(currentVerson); response.Taxes = await _context.Tax.Where(x => x.AssessmentId.Equals(currentVerson.Id)).ToListAsync(); return(Ok(new { status = HttpStatusCode.OK, Message = "Request completed", Data = response })); } return(NotFound(new { status = HttpStatusCode.NotFound, Message = "Resource not found" })); }
public void TestAssessmentDelete() { var time = new Time { Zone = "GMT", Identifier = "Time", Format = "iso_8601" }; var datasource = new Datasource { Type = "STANDALONE" }; var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var Field = new Field { Time = time }; var ds = new DatastreamRequest { Name = "TestDS" + randomNumber, Field = Field, DataSource = datasource }; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotSame(null, datastream.Id); // create assessment AssessmentRequest asmtRequest = new AssessmentRequest { Name = "TestAsmt", Datastream = datastream.Id }; var assessmentCreated = _falkonry.CreateAssessment(asmtRequest); _falkonry.DeleteAssessment(assessmentCreated.Id); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "CRUD operation failed for assessment"); } }
public void CreateAssesmentRequest_ShouldAddAssesmentToRepositoryOnlyOnce_WhenAssesmentRequestIsNull() { // Arrange var assessmentRequestRepositoryMock = new Mock <IRepository <AssessmentRequest> >(); assessmentRequestRepositoryMock.Setup(x => x.Add(It.IsAny <AssessmentRequest>())); var service = SetupAssessmentsService(assessmentRequestRepositoryMock.Object); var assementRequest = new AssessmentRequest(); // Act service.CreateAssesmentRequest(assementRequest); // Assert assessmentRequestRepositoryMock.Verify(x => x.Add(It.IsAny <AssessmentRequest>()), Times.Once); }
private Record TestAssessment(Record record) { using (var db = ReusableDocumentStore.OpenSession()) { db.Store(record); db.SaveChanges(); var publishingController = GetTestPublishingController(db); var request = new AssessmentRequest { Id = Helpers.RemoveCollection(record.Id) }; return(((RecordServiceResult)publishingController.Assess(request)).Record); } }
public void CreateAssesmentRequest_ShouldSaveChangesToAssesmentRepository_AfterAssmentRequestIsAdded() { var assessmentRequestRepositoryMock = new Mock <IRepository <AssessmentRequest> >(); assessmentRequestRepositoryMock.Setup(x => x.Add(It.IsAny <AssessmentRequest>())); assessmentRequestRepositoryMock.Setup(x => x.SaveChanges()); var service = SetupAssessmentsService(assessmentRequestRepositoryMock.Object); var assementRequest = new AssessmentRequest(); // Act service.CreateAssesmentRequest(assementRequest); // Assert assessmentRequestRepositoryMock.Verify(x => x.SaveChanges(), Times.Once); }
public void GetAssessmentRequest_ShouldThrowArgumentOutOfRangeException_WhenGivenNegativeIntegerAsId() { var assesmentIdToGet = -5; var assesmentRequest = new AssessmentRequest(); assesmentRequest.Id = assesmentIdToGet; var assessmentRequestRepositoryMock = new Mock <IRepository <AssessmentRequest> >(); assessmentRequestRepositoryMock.Setup(x => x.Add(It.IsAny <AssessmentRequest>())); assessmentRequestRepositoryMock.Setup(x => x.SaveChanges()); assessmentRequestRepositoryMock.Setup(x => x.GetById(It.IsAny <int>())); var service = SetupAssessmentsService(assessmentRequests: assessmentRequestRepositoryMock.Object); Assert.Throws <ArgumentOutOfRangeException>(() => service.GetAssessmentRequest(assesmentIdToGet)); }
// Create Assessment public Assessment CreateAssessment(AssessmentRequest assessment) { try { var data = JsonConvert.SerializeObject(assessment, Formatting.Indented, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }); var assessmentJson = _http.Post("/assessment", data); return(JsonConvert.DeserializeObject <Assessment>(assessmentJson)); } catch (Exception) { throw; } }
private static Record TestAssessment(Record record) { var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var publishingController = GetTestOpenDataPublishingController(db); var request = new AssessmentRequest { Id = record.Id }; return(((RecordServiceResult)publishingController.Assess(request)).Record); } }
public Pipeline createPipeline(Pipeline pipeline) { JavaScriptSerializer javascript = new JavaScriptSerializer(); PipelineRequest pipelineRequest = new PipelineRequest(); List <Signal> signalList = new List <Signal>(); List <SignalRequest> signalRequestList = new List <SignalRequest>(); int len_input_list = pipeline.inputList.Count; signalList = pipeline.inputList; for (int i = 0; i < len_input_list; i++) { SignalRequest signalRequest = new SignalRequest(); signalRequest.name = (signalList[i].name); signalRequest.eventType = (signalList[i].eventType); signalRequest.valueType = (signalList[i].valueType); signalRequestList.Add(signalRequest); } int len_assessment_list = pipeline.assessmentList.Count; List <Assessment> assessmentList = pipeline.assessmentList; List <AssessmentRequest> assessmentRequestList = new List <AssessmentRequest>(); for (int i = 0; i < len_assessment_list; i++) { AssessmentRequest assessmentRequest = new AssessmentRequest(); assessmentRequest.name = (assessmentList[i].name); assessmentRequest.inputList = (assessmentList[i].inputList); assessmentRequest.aprioriConditionList = (assessmentList[i].aprioriConditionList); assessmentRequestList.Add(assessmentRequest); } pipelineRequest.name = pipeline.name; pipelineRequest.interval = pipeline.interval; pipelineRequest.input = pipeline.input; pipelineRequest.inputList = signalRequestList; pipelineRequest.assessmentList = assessmentRequestList; string data = javascript.Serialize(pipelineRequest); string pipeline_json = http.post("/pipeline", data); return(javascript.Deserialize <Pipeline>(pipeline_json)); }
public void GetAssessmentRequest_ShouldReturnAssesmentRequest_WhenGivenValidId() { var assesmentIdToGet = 5; var assesmentRequest = new AssessmentRequest(); assesmentRequest.Id = assesmentIdToGet; var assessmentRequestRepositoryMock = new Mock <IRepository <AssessmentRequest> >(); assessmentRequestRepositoryMock.Setup(x => x.Add(It.IsAny <AssessmentRequest>())); assessmentRequestRepositoryMock.Setup(x => x.SaveChanges()); assessmentRequestRepositoryMock.Setup(x => x.GetById(It.IsAny <int>())); var service = SetupAssessmentsService(assessmentRequests: assessmentRequestRepositoryMock.Object); service.GetAssessmentRequest(assesmentIdToGet); assessmentRequestRepositoryMock.Verify(x => x.GetById(It.IsAny <int>()), Times.Once); }
public void not_eligible_for_assessment_when_path_is_not_file_path(Record record) { var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var publishingController = GetTestOpenDataPublishingController(db); var request = new AssessmentRequest { Id = record.Id }; Action a = () => publishingController.Assess(request); a.ShouldThrow <InvalidOperationException>().And.Message.Should().Be("Must have a file path for publishing"); var resultRecord = db.Load <Record>(record.Id); resultRecord.Publication.OpenData.Assessment.Should().BeNull(); } }
public void fail_when_reassessing_up_to_date_record_at_sign_off_stage() { var recordId = Helpers.AddCollection(Guid.NewGuid().ToString()); var record = new Record().With(r => { r.Id = recordId; r.Path = @"X:\path\to\assessment\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.MetadataDate = new DateTime(2017, 07, 30); }); r.Publication = new PublicationInfo { Assessment = new AssessmentInfo { Completed = true, CompletedOnUtc = new DateTime(2017, 07, 21), CompletedByUser = new UserInfo { DisplayName = "Pete", Email = "*****@*****.**" }, InitialAssessmentWasDoneOnSpreadsheet = false }, SignOff = new SignOffInfo { DateUtc = new DateTime(2017, 07, 30) }, Target = new TargetInfo { Gov = new GovPublicationInfo { Publishable = true, LastAttempt = new PublicationAttempt { DateUtc = new DateTime(2017, 07, 20) } } } }; r.Footer = new Footer(); }); using (var db = ReusableDocumentStore.OpenSession()) { db.Store(record); db.SaveChanges(); var publishingController = GetTestPublishingController(db); var request = new AssessmentRequest { Id = Helpers.RemoveCollection(record.Id) }; Action a = () => publishingController.Assess(request); a.Should().Throw <InvalidOperationException>().And.Message.Should().Be("Assessment has already been completed and is up to date"); var resultRecord = db.Load <Record>(record.Id); resultRecord.Publication.Should().NotBeNull(); var publicationInfo = resultRecord.Publication; publicationInfo.Should().NotBeNull(); publicationInfo.Assessment.Completed.Should().BeTrue(); publicationInfo.Assessment.CompletedByUser.DisplayName.Should().Be("Pete"); publicationInfo.Assessment.CompletedByUser.Email.Should().Be("*****@*****.**"); publicationInfo.Assessment.CompletedOnUtc.Should().Be(new DateTime(2017, 07, 21)); resultRecord.Gemini.MetadataDate.Should().NotBe(publicationInfo.Assessment.CompletedOnUtc); } }
public ActionResult Assessment() { int courseId = _coursesContentService.GetCourseId(Umbraco.AssignedContentItem); string username = User.Identity.Name; if (!_feedbackService.UserHasSentFeedback(username, courseId)) { return(RedirectToRoute("Feedback", new { courseNiceUrl = Umbraco.AssignedContentItem.UrlName })); } if (_assessments.GetEligibilityStatus(username, courseId) != AssessmentEligibilityStatus.Eligible) { TempData["ErrorMessage"] = $"В момента нямате достъп до изпита за този курс. Моля посетете <a href=\"{Url.RouteUrl("Profile")}\" title=\"Профил\">Вашия профил </a> за повече информация."; return(Redirect(Umbraco.AssignedContentItem.Url)); } object assessmentId = Umbraco.AssignedContentItem.GetPropertyValue <Picker>(nameof(Course.Assessment)).SavedValue; IPublishedContent assessmentContnet = Umbraco.TypedContent(assessmentId); var user = _users.GetByUsername(username); AssessmentViewModel assessment = new AssessmentViewModel(); List <QuestionViewModel> questionViewModel = new List <QuestionViewModel>(); IEnumerable <IPublishedContent> questions; var assessmentRequest = _assessments.GetLatestForUser(user.Username, assessmentContnet.Id); if (assessmentRequest == null) { var numberOfQuestions = assessmentContnet.GetPropertyValue <int>( nameof(Models.Umbraco.DocumentTypes.Assessment.NumberOfQuestions)); if (numberOfQuestions == default(int)) { throw new ArgumentException($"Number of questions is not set for assessment with ID: {assessmentId}"); } questions = assessmentContnet.Descendants(1).OrderBy(x => Guid.NewGuid()).Take(numberOfQuestions).ToList(); assessmentRequest = new AssessmentRequest { AssessmentExternalId = assessmentContnet.Id, QuestionIds = string.Join(",", questions.Select(x => x.Id)), IsCompleted = false, UserId = user.Id }; _assessments.CreateAssesmentRequest(assessmentRequest); } else { questions = Umbraco.TypedContent(assessmentRequest.QuestionIds.Split(',')).ToList(); } _mapper.AddCustomMapping( typeof(IEnumerable <QuestionAnswer>).FullName, UmbracoMapperMappings.MapQuestionAnswer) .MapCollection(questions, questionViewModel) .Map(assessmentContnet, assessment); assessment.Questions = questionViewModel; assessment.AssessmentRequestId = assessmentRequest.Id; return(View(assessment)); }
public void CreateAssesmentRequest(AssessmentRequest request) { //TODO validation _assessmentRequests.Add(request); _assessmentRequests.SaveChanges(); }
public void fail_when_reassessing_up_to_date_record_at_upload_stage() { var recordId = new Guid("593177d9-885f-4450-903b-ecb9ea667575"); var record = new Record().With(r => { r.Id = recordId; r.Path = @"X:\path\to\assessment\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.MetadataDate = new DateTime(2017, 07, 30); }); r.Publication = new PublicationInfo { OpenData = new OpenDataPublicationInfo { Publishable = true, Assessment = new OpenDataAssessmentInfo { Completed = true, CompletedOnUtc = new DateTime(2017, 07, 21), CompletedByUser = new UserInfo { DisplayName = "Pete", Email = "*****@*****.**" }, InitialAssessmentWasDoneOnSpreadsheet = false }, SignOff = new OpenDataSignOffInfo { DateUtc = new DateTime(2017, 07, 29) }, LastAttempt = new PublicationAttempt { DateUtc = new DateTime(2017, 07, 30) } } }; r.Footer = new Footer(); }); var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var publishingController = GetTestOpenDataPublishingController(db); var request = new AssessmentRequest { Id = record.Id }; Action a = () => publishingController.Assess(request); a.ShouldThrow <InvalidOperationException>().And.Message.Should().Be("Assessment has already been completed and is up to date"); var resultRecord = db.Load <Record>(record.Id); resultRecord.Publication.Should().NotBeNull(); var openDataInfo = resultRecord.Publication.OpenData; openDataInfo.Should().NotBeNull(); openDataInfo.Assessment.Completed.Should().BeTrue(); openDataInfo.Assessment.CompletedByUser.DisplayName.Should().Be("Pete"); openDataInfo.Assessment.CompletedByUser.Email.Should().Be("*****@*****.**"); openDataInfo.Assessment.CompletedOnUtc.Should().Be(new DateTime(2017, 07, 21)); resultRecord.Gemini.MetadataDate.Should().NotBe(openDataInfo.Assessment.CompletedOnUtc); } }
public void GetLatestForUser_ShouldReturnAssesmentRequest_WhenGivenExistingUsernameAndAssesmentId() { #region listOfRequests var list = new List <AssessmentRequest>() { new AssessmentRequest() { AssessmentExternalId = 1, CreatedOn = DateTime.Now, DeletedOn = null, Id = 1, IsCompleted = false, IsDeleted = false, ModifiedOn = null, QuestionIds = "question ids", User = new User() { Username = "******" }, UserId = 1 }, new AssessmentRequest() { AssessmentExternalId = 2, CreatedOn = DateTime.Now, DeletedOn = null, Id = 2, IsCompleted = false, IsDeleted = false, ModifiedOn = null, QuestionIds = "question ids", User = new User() { Username = "******" }, UserId = 2 }, new AssessmentRequest() { AssessmentExternalId = 3, CreatedOn = DateTime.Now, DeletedOn = null, Id = 3, IsCompleted = false, IsDeleted = false, ModifiedOn = null, QuestionIds = "question ids", User = new User() { Username = "******" }, UserId = 3 }, }; #endregion var userPesho = new User(); userPesho.Username = "******"; var expectedRequest = new AssessmentRequest(); expectedRequest.User = userPesho; expectedRequest.AssessmentExternalId = 3; var assessmentRequestRepositoryMock = new Mock <IRepository <AssessmentRequest> >(); assessmentRequestRepositoryMock.Setup(x => x.All()).Returns(list.AsQueryable());// var sevice = SetupAssessmentsService(assessmentRequestRepositoryMock.Object); var result = sevice.GetLatestForUser("Pesho", 3); Assert.AreEqual(expectedRequest.AssessmentExternalId, result.AssessmentExternalId); Assert.AreEqual(expectedRequest.User.Username, result.User.Username); }
public void AddFactsForBatchDatastream() { var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var time = new Time { Zone = "GMT", Identifier = "time", Format = "iso_8601" }; var datasource = new Datasource { Type = "PI", Host = "https://test.piserver.com/piwebapi", ElementTemplateName = "SampleElementTempalte" }; var Signal = new Signal { ValueIdentifier = "value", SignalIdentifier = "signal" }; var Field = new Field { Signal = Signal, Time = time, EntityIdentifier = "Unit", BatchIdentifier = "batch" }; var ds = new DatastreamRequest { Field = Field, DataSource = datasource, Name = "TestDS" + randomNumber }; ds.DataSource = datasource; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotEqual(null, datastream.Id); Assert.AreEqual(ds.Field.Time.Format, datastream.Field.Time.Format); Assert.AreEqual(ds.Field.Time.Identifier, datastream.Field.Time.Identifier); Assert.AreEqual(ds.DataSource.Type, datastream.DataSource.Type); datastream = _falkonry.GetDatastream(datastream.Id); //add data var data = "time,Unit,current,vibration,state,batch\n2016-05-05T12:00:00.000Z,Unit1,12.4,3.4,On,batch1"; var options = new SortedDictionary <string, string> { { "timeIdentifier", "time" }, { "timeFormat", "iso_8601" }, { "timeZone", time.Zone }, { "streaming", "false" }, { "hasMoreData", "false" }, { "entityIdentifier", "Unit" }, { "batchIdentifier", "batch" } }; var inputstatus = _falkonry.AddInput(datastream.Id, data, options); //check data status CheckStatus(inputstatus.Id); // add assessment var asmt = new AssessmentRequest(); var randomNumber1 = System.Convert.ToString(rnd.Next(1, 10000)); asmt.Name = "TestAssessment" + randomNumber1; asmt.Datastream = datastream.Id; var optionsFacts = new SortedDictionary <string, string> { { "entityIdentifier", datastream.Field.EntityIdentifier }, { "valueIdentifier", "Health" }, { "batchIdentifier", "Batch" } }; var assessment = _falkonry.CreateAssessment(asmt); var data1 = datastream.Field.EntityIdentifier + ",Health,Batch\nUnit1,Normal,batch1\nUnit1,Normal,batch2"; var response = _falkonry.AddFacts(assessment.Id, data1, optionsFacts); //check data status CheckStatus(response.Id); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "Cannot add facts"); } }
public void AddFactsForSingleEntity() { var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var time = new Time { Zone = "GMT", Identifier = "time", Format = "iso_8601" }; var datasource = new Datasource { Type = "PI", Host = "https://test.piserver.com/piwebapi", ElementTemplateName = "SampleElementTempalte" }; var Signal = new Signal { ValueIdentifier = "value", SignalIdentifier = "signal" }; var Field = new Field { Signal = Signal, Time = time }; var ds = new DatastreamRequest { Field = Field, DataSource = datasource, Name = "TestDS" + randomNumber }; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotEqual(null, datastream.Id); Assert.AreEqual(ds.Field.Time.Format, datastream.Field.Time.Format); Assert.AreEqual(ds.Field.Time.Identifier, datastream.Field.Time.Identifier); Assert.AreEqual(ds.DataSource.Type, datastream.DataSource.Type); Assert.AreEqual(ds.Name, datastream.Field.EntityName); Assert.AreEqual(ds.Name, datastream.Field.EntityName); datastream = _falkonry.GetDatastream(datastream.Id); // add assessment var asmt = new AssessmentRequest(); var randomNumber1 = System.Convert.ToString(rnd.Next(1, 10000)); asmt.Name = "TestAssessment" + randomNumber1; asmt.Datastream = datastream.Id; var options = new SortedDictionary <string, string> { { "startTimeIdentifier", "time" }, { "endTimeIdentifier", "end" }, { "timeFormat", "iso_8601" }, { "timeZone", time.Zone }, { "valueIdentifier", "Health" } }; var assessment = _falkonry.CreateAssessment(asmt); var data1 = "time,end,Health" + "\n2011-03-31T00:00:00Z,2011-04-01T00:00:00Z,Normal\n2011-03-31T00:00:00Z,2011-04-01T00:00:00Z,Unit1,Normal"; var response = _falkonry.AddFacts(assessment.Id, data1, options); //check data status CheckStatus(response.Id); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "Cannot add facts"); } }
public void AddFactsWithAdditionalKeywordFromStream() { var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var time = new Time { Zone = "GMT", Identifier = "time", Format = "iso_8601" }; var datasource = new Datasource { Type = "PI", Host = "https://test.piserver.com/piwebapi", ElementTemplateName = "SampleElementTempalte" }; var Signal = new Signal { ValueIdentifier = "value", SignalIdentifier = "signal" }; var Field = new Field { Signal = Signal, Time = time }; var ds = new DatastreamRequest { Field = Field, DataSource = datasource, Name = "TestDS" + randomNumber }; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotEqual(null, datastream.Id); Assert.AreEqual(ds.Field.Time.Format, datastream.Field.Time.Format); Assert.AreEqual(ds.Field.Time.Identifier, datastream.Field.Time.Identifier); Assert.AreEqual(ds.DataSource.Type, datastream.DataSource.Type); datastream = _falkonry.GetDatastream(datastream.Id); // add assessment var asmt = new AssessmentRequest(); var randomNumber1 = System.Convert.ToString(rnd.Next(1, 10000)); asmt.Name = "TestAssessment" + randomNumber1; asmt.Datastream = datastream.Id; var options = new SortedDictionary <string, string> { { "startTimeIdentifier", "time" }, { "endTimeIdentifier", "end" }, { "timeFormat", "iso_8601" }, { "timeZone", time.Zone }, { "entityIdentifier", "car" }, { "valueIdentifier", "Health" }, { "additionalKeyword", "testTag" } }; var assessment = _falkonry.CreateAssessment(asmt); var folder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); var path = folder + "/../../resources/factData.json"; var bytes = File.ReadAllBytes(path); var response = _falkonry.AddFactsStream(assessment.Id, bytes, options); //check data status CheckStatus(response.Id); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "Cannot add facts"); } }
public void GetFacts() { var rnd = new System.Random(); var randomNumber = System.Convert.ToString(rnd.Next(1, 10000)); var time = new Time { Zone = "GMT", Identifier = "time", Format = "iso_8601" }; var datasource = new Datasource { Type = "PI", Host = "https://test.piserver.com/piwebapi", ElementTemplateName = "SampleElementTempalte" }; var ds = new DatastreamRequest(); var Signal = new Signal { ValueIdentifier = "value", SignalIdentifier = "signal" }; var Field = new Field { Signal = Signal, Time = time, EntityIdentifier = "Unit" }; ds.Field = Field; ds.DataSource = datasource; ds.Name = "TestDS" + randomNumber; ds.DataSource = datasource; try { var datastream = _falkonry.CreateDatastream(ds); _datastreams.Add(datastream); Assert.AreEqual(ds.Name, datastream.Name); Assert.AreNotEqual(null, datastream.Id); Assert.AreEqual(ds.Field.Time.Format, datastream.Field.Time.Format); Assert.AreEqual(ds.Field.Time.Identifier, datastream.Field.Time.Identifier); Assert.AreEqual(ds.DataSource.Type, datastream.DataSource.Type); datastream = _falkonry.GetDatastream(datastream.Id); //add data var data = "time,Unit,current,vibration,state\n 2016-05-05T12:00:00.000Z,Unit1,12.4,3.4,On"; var options = new SortedDictionary <string, string> { { "timeIdentifier", "time" }, { "timeFormat", "iso_8601" }, { "timeZone", time.Zone }, { "streaming", "false" }, { "hasMoreData", "false" }, { "entityIdentifier", "Unit" } }; InputStatus inputstatus = _falkonry.AddInput(datastream.Id, data, options); //check data status CheckStatus(inputstatus.Id); // add assessment var asmt = new AssessmentRequest(); var randomNumber1 = System.Convert.ToString(rnd.Next(1, 10000)); asmt.Name = "TestAssessment" + randomNumber1; asmt.Datastream = datastream.Id; var assessment = _falkonry.CreateAssessment(asmt); var optionsFacts = new SortedDictionary <string, string> { { "startTimeIdentifier", "time" }, { "endTimeIdentifier", "end" }, { "timeFormat", "iso_8601" }, { "timeZone", time.Zone }, { "entityIdentifier", datastream.Field.EntityIdentifier }, { "valueIdentifier", "Health" } }; var data1 = "time,end," + datastream.Field.EntityIdentifier + ",Health\n2011-03-31T00:00:00.000Z,2011-04-01T00:00:00.000Z,Unit1,Normal\n2011-03-31T00:00:00.000Z,2011-04-01T00:00:00.000Z,Unit1,Normal"; inputstatus = _falkonry.AddFacts(assessment.Id, data1, optionsFacts); //check data status CheckStatus(inputstatus.Id); /// Get Facts options = new SortedDictionary <string, string> { { "startTime", "2011-03-30T00:00:00.000Z" }, { "endTime", "2011-04-01T00:00:00.000Z" }, { "responseFormat", "application/json" } }; var factsData = _falkonry.getFacts(assessment.Id, options); Assert.AreEqual(factsData.Response.Length > 0, true); Assert.AreEqual(factsData.Response.ToLower().Contains(optionsFacts["startTimeIdentifier"].ToLower()), true); } catch (System.Exception exception) { Assert.AreEqual(exception.Message, null, "Cannot get facts"); } }