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);
        }
Beispiel #2
0
        /// <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;
 }
Beispiel #5
0
        /// <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);
        }
Beispiel #7
0
        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);
        }