public async Task <AnalysisProfileDTO> Handle(CreateAnalysisProfileCommand message, CancellationToken cancellationToken) { var analysisProfile = new AnalysisProfile(message.Name, message.Description, message.Price); analysisProfile.SetMediaType(_repository.AddMediaType( new MediaType(message.MediaType.Id, message.MediaType.Name)) ); analysisProfile.SetScriptFile(_repository.AddScriptFile( new ScriptFile(message.ScriptFile.Id, message.ScriptFile.Name, message.ScriptFile.Description, message.ScriptFile.Script) ) ); analysisProfile.SetScriptParametersFile(_repository.AddScriptParametersFile( new ScriptParametersFile(message.ScriptParametersFile.Id, message.ScriptParametersFile.Name, message.ScriptParametersFile.Description, message.ScriptParametersFile.ScriptParameters) ) ); _repository.Add(analysisProfile); var analysisProfileDTO = _mapper.Map <AnalysisProfileDTO>(analysisProfile); var integrationEvent = new AnalysisProfileCreatedEvent(analysisProfileDTO); await _integrationEventService.AddAndSaveEventAsync(integrationEvent); await _repository.UnitOfWork.SaveChangesAsync(); return(analysisProfileDTO); }
/// <summary> /// Sets the change tracking <c>State</c> /// of an <c>AnalysisProfile</c> to <c>EntityState.Modified</c>. /// This allows changes that have been made to the tracked <c>AnalysisProfile</c> to be /// committed when changes are saved to the database context. /// </summary> /// <param name="analysisProfile"></param> public async Task <AnalysisProfile> UpdateAnalysisProfile(AnalysisProfile analysisProfile) { var res = _context.AnalysisProfiles.Update(analysisProfile).Entity; await _context.SaveChangesAsync(); return(res); }
/// <summary> /// Adds an <c>AnalysisProfile</c> to the <c>BusinessManagementContext</c> in-memory /// </summary> /// <param name="analysisProfile"></param> /// <returns>The added <c>AnalysisProfile</c> entity</returns> public AnalysisProfile Add(AnalysisProfile analysisProfile) { return(_context.Add(analysisProfile).Entity); }
/// <summary> /// Sets the change tracking <c>State</c> /// of an <c>AnalysisProfile</c> to <c>EntityState.Modified</c>. /// This allows changes that have been made to the tracked <c>AnalysisProfile</c> to be /// committed when changes are saved to the database context. /// </summary> /// <param name="analysisProfile"></param> public void Update(AnalysisProfile analysisProfile) { _context.Entry(analysisProfile).State = EntityState.Modified; }
/// <summary> /// For each original value list exactly one dayProfile number is allowed. /// </summary> /// <param name="dayProfiles">The list of DayProfiles.</param> /// <param name="obisId">The corresponding obisId.</param> /// <param name="analysisProfile">The AnalysisProfile which contain the needed tariff stages.</param> /// <returns></returns> public ushort GetDayProfileNumber(List <DayProfile> dayProfiles, ObisId obisId, AnalysisProfile analysisProfile) { var profileList = dayProfiles.GetValidDayProfilesForMeterReading(obisId, analysisProfile.TariffStages); if (profileList == null || profileList.Count != 1) { throw new InvalidOperationException($"Es sind {profileList?.Count} Tagesprofile vorhanden. Es ist genau 1 Tagesprofil erlaubt."); } return((ushort)profileList.First()); }
internal static BusinessManagementContext AddSeedData(this BusinessManagementContext context) { // Check (naively) if BusinessTiers have already been seeded if (!context.BusinessTiers.Any()) { var businessTiers = new List <BusinessTier>() { new BusinessTier(Guid.Parse("0c69921b-afa7-4eba-a69f-aaef3a5c3f5b"), "Paid", "Long and informative description full of details and stuff woah!", 100.00m), new BusinessTier(Guid.Parse("2992a45a-9b79-4eee-aa30-240ccefe4ec2"), "Free", "Long and informative description full of details and stuff woah!", 0.00m) }; context.AddRange(businessTiers); } // Check (naively) if features have already been seeded if (!context.Features.Any()) { var features = new List <Feature>() { new Feature(Guid.Parse("17bcd22f-41cf-44d1-894b-6634caf7b489"), "Feature1", "Long and informative description full of details and stuff woah!", 100.00m), new Feature(Guid.Parse("59b06dcc-8108-4233-b5d2-94fc93dd2455"), "Feature2", "Long and informative description full of details and stuff woah!", 100.00m), new Feature(Guid.Parse("36d8e579-e27a-43e4-b6c5-72fb7a55ce08"), "Feature3", "Long and informative description full of details and stuff woah!", 100.00m), new Feature(Guid.Parse("088ad0ab-57b1-48df-ac51-9c9bff608a72"), "Feature4", "Long and informative description full of details and stuff woah!", 100.00m) }; context.AddRange(features); } // Check (naively) if AnalysisProfiles have already been seeded if (!context.AnalysisProfiles.Any()) { var mediaType1 = new MediaType(Guid.Parse("523db2b5-d266-49e9-a318-d65479933b3a"), "MediaType1"); var mediaType2 = new MediaType(Guid.Parse("c6c599aa-7e81-4e3c-8ea2-b2621b3bed5c"), "MediaType2"); var mediaType3 = new MediaType(Guid.Parse("9ba7606b-d8ce-4720-b2b7-ddc226b80a53"), "MediaType3"); var temp1 = new AnalysisProfile(Guid.Parse("40b8cc10-8cec-40a8-98e5-30fcca5a847c"), "AnalysisProfile1", "Long and informative description full of details and stuff woah!", 100.00m); temp1.SetScriptFile(new ScriptFile(Guid.Parse("9ad053df-075e-4372-9367-f810a8eacca9"), "ScriptFile1", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp1.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("b54ad278-9c45-4c0e-91b3-32c8495920a4"), "ScriptParametersFile1", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp1.SetMediaType(mediaType1); var temp2 = new AnalysisProfile(Guid.Parse("4218b6af-6429-4ccb-9e96-b8403fbce655"), "AnalysisProfile2", "Long and informative description full of details and stuff woah!", 100.00m); temp2.SetScriptFile(new ScriptFile(Guid.Parse("e1c2178c-2d99-46f5-b0fe-3d71793eec1b"), "ScriptFile2", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp2.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("1796d543-0ac2-4ca9-90fa-66f48452d234"), "ScriptParametersFile2", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp2.SetMediaType(mediaType2); var temp3 = new AnalysisProfile(Guid.Parse("ea26702e-5aa0-49dd-8a16-0d16f6bfb5ab"), "AnalysisProfile3", "Long and informative description full of details and stuff woah!", 100.00m); temp3.SetScriptFile(new ScriptFile(Guid.Parse("8393a386-dbbc-4122-b0b0-442de6d05f7c"), "ScriptFile3", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp3.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("e7117473-6b0d-4200-9004-4186a4fd7e79"), "ScriptParametersFile3", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp3.SetMediaType(mediaType3); var temp4 = new AnalysisProfile(Guid.Parse("727f66cc-3161-4796-9136-dcef15f2d661"), "AnalysisProfile4", "Long and informative description full of details and stuff woah!", 100.00m); temp4.SetScriptFile(new ScriptFile(Guid.Parse("fa433ebd-ab54-47fd-a936-d250d44fb52c"), "ScriptFile4", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp4.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("70a27cca-6b45-4ca6-bdee-e5c6aa8ab318"), "ScriptParametersFile4", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp4.SetMediaType(mediaType1); var temp5 = new AnalysisProfile(Guid.Parse("55776aa1-68b8-48df-8a37-c3f3cd15db94"), "AnalysisProfile5", "Long and informative description full of details and stuff woah!", 100.00m); temp5.SetScriptFile(new ScriptFile(Guid.Parse("a022e3a0-96a3-44ec-b5a8-70be7afbbdb6"), "ScriptFile5", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp5.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("b062f0b7-6ff8-4dbf-8752-0c0d8f5e9bae"), "ScriptParametersFile5", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp5.SetMediaType(mediaType2); var temp6 = new AnalysisProfile(Guid.Parse("d90c7d0e-6c4e-4baa-9f04-076215db86fa"), "AnalysisProfile6", "Long and informative description full of details and stuff woah!", 100.00m); temp6.SetScriptFile(new ScriptFile(Guid.Parse("ff9db33b-2529-4e1e-97b6-f57d97e9de2e"), "ScriptFile6", "Long and informative description full of details and stuff woah!", "print(\"hello world!\")")); temp6.SetScriptParametersFile(new ScriptParametersFile(Guid.Parse("fb32ad84-eccf-4470-8c61-95828e5bbb5a"), "ScriptParametersFile6", "Long and informative description full of details and stuff woah!", "{\"key\":\"value\"}")); temp6.SetMediaType(mediaType3); context.AddRange(temp1, temp2, temp3, temp4, temp5, temp6); } context.SaveChanges(); return(context); }
public void TestGetRegister() { var supplier = new UsagePointLieferant(); var analysisProfile = new AnalysisProfile(); var obisId181 = "0100010801FF"; var obisId182 = "0100010802FF"; var obisId183 = "0100010803FF"; var obisId1863 = "010001083FFF"; var obisId281 = "0100020801FF"; var obisId282 = "0100020802FF"; var obisId2863 = "010002083FFF"; var tariffStage1 = new TariffStage() { Description = "T1", ObisCode = obisId181, TariffNumber = 1 }; var tariffStage2 = new TariffStage() { Description = "T2", ObisCode = obisId182, TariffNumber = 2 }; var tariffStage3 = new TariffStage() { Description = "T3", ObisCode = obisId183, TariffNumber = 3 }; var tariffStage4 = new TariffStage() { Description = "T4", ObisCode = obisId1863, TariffNumber = 4 }; var tariffStage5 = new TariffStage() { Description = "T5", ObisCode = obisId281, TariffNumber = 5 }; var tariffStage6 = new TariffStage() { Description = "T6", ObisCode = obisId282, TariffNumber = 6 }; var tariffStage7 = new TariffStage() { Description = "T7", ObisCode = obisId2863, TariffNumber = 7 }; analysisProfile.TariffStages.Add(tariffStage1); analysisProfile.TariffStages.Add(tariffStage2); analysisProfile.TariffStages.Add(tariffStage3); analysisProfile.TariffStages.Add(tariffStage4); analysisProfile.TariffStages.Add(tariffStage5); analysisProfile.TariffStages.Add(tariffStage6); analysisProfile.TariffStages.Add(tariffStage7); supplier.AnalysisProfile = analysisProfile; var target = supplier.GetRegister(); Assert.AreEqual(7, target.Count); foreach (Register reg in target) { Assert.AreEqual(0, reg.Amount); } Assert.AreEqual("0100010801FF", target[0].ObisCode.ToHexString()); Assert.AreEqual("0100010802FF", target[1].ObisCode.ToHexString()); Assert.AreEqual("0100010803FF", target[2].ObisCode.ToHexString()); Assert.AreEqual("010001083FFF", target[3].ObisCode.ToHexString()); Assert.AreEqual("0100020801FF", target[4].ObisCode.ToHexString()); Assert.AreEqual("0100020802FF", target[5].ObisCode.ToHexString()); Assert.AreEqual("010002083FFF", target[6].ObisCode.ToHexString()); Assert.AreEqual(1, target[0].TariffId); Assert.AreEqual(2, target[1].TariffId); Assert.AreEqual(3, target[2].TariffId); Assert.AreEqual(4, target[3].TariffId); Assert.AreEqual(5, target[4].TariffId); Assert.AreEqual(6, target[5].TariffId); Assert.AreEqual(7, target[6].TariffId); supplier.AnalysisProfile.TariffUseCase = HanAdapter.Interface.TafId.Taf2; target = supplier.GetRegister(); Assert.AreEqual(1, target[0].TariffId); Assert.AreEqual(2, target[1].TariffId); Assert.AreEqual(3, target[2].TariffId); Assert.AreEqual(63, target[3].TariffId); Assert.AreEqual(5, target[4].TariffId); Assert.AreEqual(6, target[5].TariffId); Assert.AreEqual(63, target[6].TariffId); var analysisProfile2 = new AnalysisProfile { TariffUseCase = HanAdapter.Interface.TafId.Taf2 }; analysisProfile2.TariffStages.Add(tariffStage1); analysisProfile2.TariffStages.Add(tariffStage2); analysisProfile2.TariffStages.Add(tariffStage3); analysisProfile2.TariffStages.Add(tariffStage5); analysisProfile2.TariffStages.Add(tariffStage6); supplier.AnalysisProfile = analysisProfile2; target = supplier.GetRegister(); foreach (Register reg in target) { Assert.AreEqual(0, reg.Amount); } Assert.AreEqual(7, target.Count); Assert.AreEqual("0100010801FF", target[0].ObisCode.ToHexString()); Assert.AreEqual("0100010802FF", target[1].ObisCode.ToHexString()); Assert.AreEqual("0100010803FF", target[2].ObisCode.ToHexString()); Assert.AreEqual("0100020801FF", target[3].ObisCode.ToHexString()); Assert.AreEqual("0100020802FF", target[4].ObisCode.ToHexString()); Assert.AreEqual("010001083FFF", target[5].ObisCode.ToHexString()); Assert.AreEqual("010002083FFF", target[6].ObisCode.ToHexString()); Assert.AreEqual(1, target[0].TariffId); Assert.AreEqual(2, target[1].TariffId); Assert.AreEqual(3, target[2].TariffId); Assert.AreEqual(5, target[3].TariffId); Assert.AreEqual(6, target[4].TariffId); Assert.AreEqual(63, target[5].TariffId); Assert.AreEqual(63, target[6].TariffId); var analysisProfile3 = new AnalysisProfile { TariffUseCase = HanAdapter.Interface.TafId.Taf2 }; var obisId381 = "0100030801FF"; var obisId481 = "0100040801FF"; var obisId482 = "0100040802FF"; var tariffStage8 = new TariffStage() { Description = "T8", ObisCode = obisId381, TariffNumber = 8 }; var tariffStage9 = new TariffStage() { Description = "T9", ObisCode = obisId481, TariffNumber = 9 }; var tariffStage10 = new TariffStage() { Description = "T10", ObisCode = obisId482, TariffNumber = 10 }; analysisProfile3.TariffStages.Add(tariffStage1); analysisProfile3.TariffStages.Add(tariffStage2); analysisProfile3.TariffStages.Add(tariffStage3); analysisProfile3.TariffStages.Add(tariffStage5); analysisProfile3.TariffStages.Add(tariffStage6); analysisProfile3.TariffStages.Add(tariffStage8); analysisProfile3.TariffStages.Add(tariffStage9); analysisProfile3.TariffStages.Add(tariffStage10); supplier.AnalysisProfile = analysisProfile3; target = supplier.GetRegister(); foreach (Register reg in target) { Assert.AreEqual(0, reg.Amount); } Assert.AreEqual(12, target.Count); Assert.AreEqual("0100010801FF", target[0].ObisCode.ToHexString()); Assert.AreEqual("0100010802FF", target[1].ObisCode.ToHexString()); Assert.AreEqual("0100010803FF", target[2].ObisCode.ToHexString()); Assert.AreEqual("0100020801FF", target[3].ObisCode.ToHexString()); Assert.AreEqual("0100020802FF", target[4].ObisCode.ToHexString()); Assert.AreEqual("0100030801FF", target[5].ObisCode.ToHexString()); Assert.AreEqual("0100040801FF", target[6].ObisCode.ToHexString()); Assert.AreEqual("0100040802FF", target[7].ObisCode.ToHexString()); Assert.AreEqual("010001083FFF", target[8].ObisCode.ToHexString()); Assert.AreEqual("010002083FFF", target[9].ObisCode.ToHexString()); Assert.AreEqual("010003083FFF", target[10].ObisCode.ToHexString()); Assert.AreEqual("010004083FFF", target[11].ObisCode.ToHexString()); Assert.AreEqual(1, target[0].TariffId); Assert.AreEqual(2, target[1].TariffId); Assert.AreEqual(3, target[2].TariffId); Assert.AreEqual(5, target[3].TariffId); Assert.AreEqual(6, target[4].TariffId); Assert.AreEqual(8, target[5].TariffId); Assert.AreEqual(9, target[6].TariffId); Assert.AreEqual(10, target[7].TariffId); Assert.AreEqual(63, target[8].TariffId); Assert.AreEqual(63, target[9].TariffId); Assert.AreEqual(63, target[10].TariffId); Assert.AreEqual(63, target[11].TariffId); }