示例#1
0
        public void GetMetadata_ShouldBeSuccessful(string fullMessage, SmsMetadata expectedData)
        {
            //Act
            var result = _smsParser.GetMetadata(fullMessage);

            //Assert
            result.IsFailure.ShouldBeFalse();
            result.Value.Position.ShouldNotBeNull();
            result.Value.Position.Latitude.ShouldBe(expectedData.Position.Latitude);
            result.Value.Position.Longitude.ShouldBe(expectedData.Position.Longitude);
            result.Value.Timestamp.ShouldBe(expectedData.Timestamp);
            result.Value.Radius.ShouldBe(expectedData.Radius);
            result.Value.InnerRadius.ShouldBe(expectedData.InnerRadius);
            result.Value.OuterRadius.ShouldBe(expectedData.OuterRadius);
            result.Value.OpeningAngle.ShouldBe(expectedData.OpeningAngle);
            result.Value.StartAngle.ShouldBe(expectedData.StartAngle);
        }
        private void ProcessSms(string body, string senderExtension)
        {
            var smsTextResult = _smsParser.GetSmsText(body);

            if (smsTextResult.IsFailure)
            {
                _logger.Warning($"Ошибка парсинга текста из sms body. {smsTextResult.ErrorMessage}");
                return;
            }

            var metadataResult = _smsParser.GetMetadata(body);

            if (metadataResult.IsFailure)
            {
                _logger.Warning($"Не удалось получить метаданные из sms body. {metadataResult.ErrorMessage}");
            }

            var metadata = metadataResult.Value;

            var smsId = Guid.NewGuid();

            NotifyAboutNewSms(smsId, senderExtension, smsTextResult.Value, metadata);
        }