public void PopulateFromWriteModel(SignalWriteModel writeModel) { var isBaseType = writeModel.Value.IsBaseType(); Name = writeModel.Name; Tags = writeModel.Tags.IsNullOrEmpty() ? null : string.Join(",", writeModel.Tags); IsBaseType = isBaseType; ValueType = writeModel.Value.GetSignalValueType(); Value = isBaseType ? writeModel.Value.ToString() : JsonConvert.SerializeObject(writeModel.Value); }
public async Task Should_Update_Signal_With_New_Encrypted_Object() { // Arrange _mediatorMock.Setup(x => x.Send(It.IsAny <EncryptionRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync((EncryptionRequest encryptionRequest, CancellationToken token) => Convert.ToBase64String(Encoding.UTF8.GetBytes(encryptionRequest.ToEncrypt))); _mediatorMock.Setup(x => x.Send(It.IsAny <GetSettingRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync(Convert.ToBase64String(Encoding.UTF8.GetBytes("Test Public Key"))); var id = Guid.NewGuid(); const string oldValue = "Test Value"; var newValue = new SignalWriteModel { Name = "Test Name" }; await _context.Signals.AddAsync(new Signal { Id = 1, DateCreated = DateTime.UtcNow, DateLastUpdated = DateTime.UtcNow, IsBaseType = true, Name = "Test", ResourceId = id, Value = oldValue, ValueType = typeof(string).FullName, Tags = Constants.EncryptedTag }).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); var request = new PatchSignalRequest { Id = id, Patch = new JsonPatchDocument <SignalWriteModel>() .Replace(x => x.Tags, new List <string> { "Tag1", "Tag2" }) .Replace(x => x.Value, newValue) }; // Act await _sut.Execute(request, CancellationToken.None).ConfigureAwait(false); // Assert var signal = await _context.Signals.FirstOrDefaultAsync(s => s.ResourceId == id).ConfigureAwait(false); signal.Value.ShouldNotBe(JsonConvert.SerializeObject(newValue)); signal.Value.ShouldNotBe(oldValue); signal.Tags.ShouldNotBeNull(); signal.Tags.ShouldContain(Constants.EncryptedTag); }
public void Should_Populate_From_Base_WriteModel() { // Arrange var writeModel = new SignalWriteModel { Name = "Test Name", Tags = new List <string> { "Test", "Tags" }, Encrypted = false, Value = "Test Value" }; var domainModel = new Signal(); // Act domainModel.PopulateFromWriteModel(writeModel); // Assert domainModel.Name.ShouldBe(writeModel.Name); domainModel.Tags.ShouldBe(string.Join(",", writeModel.Tags)); domainModel.Value.ShouldBe(writeModel.Value); }
/// <summary> /// Writes a value to the signal /// </summary> /// <param name="writeValue"></param> /// <returns></returns> public HttpResponseMessage Put([FromUri] SignalWriteModel writeValue) { string comments = "NULL"; if (!string.IsNullOrWhiteSpace(writeValue.Comments)) { comments = "'" + writeValue.Comments.Replace("'", "''") + "'"; } string source = "NULL"; if (!string.IsNullOrWhiteSpace(writeValue.Source)) { source = "'" + writeValue.Source + "'"; } string query = "EXEC rSetOPC_SigWrite @UserID = '" + writeValue.UserName + "'" + ",@SignalID = '" + writeValue.SignalID + "'" + ",@Value = '" + writeValue.Value + "'" + ",@Comment = " + comments + ",@Source = " + source; sqlObject.QuerySQL(query, ref sqlStatus); HttpResponseMessage response; if (sqlStatus == "Success") { response = Request.CreateResponse(HttpStatusCode.OK, sqlStatus); } else { response = Request.CreateResponse(HttpStatusCode.BadRequest, sqlStatus); } response.Content = new StringContent(sqlStatus, Encoding.Unicode); response.Headers.CacheControl = new CacheControlHeaderValue() { MaxAge = TimeSpan.FromMinutes(20) }; return(response); }
public async Task Should_Update_Signal_With_New_Unencrypted_Object() { // Arrange var id = Guid.NewGuid(); var newValue = new SignalWriteModel { Name = "Test Name" }; await _context.Signals.AddAsync(new Signal { Id = 1, DateCreated = DateTime.UtcNow, DateLastUpdated = DateTime.UtcNow, IsBaseType = true, Name = "Test", ResourceId = id, Value = "Test Value", ValueType = typeof(string).FullName }).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); var request = new PatchSignalRequest { Id = id, Patch = new JsonPatchDocument <SignalWriteModel>() .Replace(x => x.Value, newValue) }; // Act await _sut.Execute(request, CancellationToken.None).ConfigureAwait(false); // Assert var signal = await _context.Signals.FirstOrDefaultAsync(s => s.ResourceId == id).ConfigureAwait(false); signal.Value.ShouldBe(JsonConvert.SerializeObject(newValue)); }
public void Should_Populate_From_Object_WriteModel() { // Arrange var writeModel = new SignalWriteModel { Name = "Test Name", Tags = new List <string> { "Test", "Tags" }, Encrypted = false, Value = new SignalWriteModel { Name = "Child" } }; var domainModel = new Signal(); // Act domainModel.PopulateFromWriteModel(writeModel); // Assert domainModel.Name.ShouldBe(writeModel.Name); domainModel.Tags.ShouldBe(string.Join(",", writeModel.Tags)); domainModel.Value.ShouldBe(JsonConvert.SerializeObject(writeModel.Value)); }