public static DataRetrievalResult TryGetData(
            EventData eventData,
            EventMetadata eventTelemetryMetadata,
            out EventTelemetryData eventTelemetryData)
        {
            Requires.NotNull(eventData, nameof(eventData));
            Requires.NotNull(eventTelemetryMetadata, nameof(eventTelemetryMetadata));
            eventTelemetryData = null;

            if (!EventMetadataKind.Equals(eventTelemetryMetadata.MetadataType, System.StringComparison.OrdinalIgnoreCase))
            {
                return(DataRetrievalResult.InvalidMetadataType(eventTelemetryMetadata.MetadataType, EventMetadataKind));
            }

            string eventName = eventTelemetryMetadata[EventNameMoniker];

            if (string.IsNullOrWhiteSpace(eventName))
            {
                DataRetrievalResult result = eventTelemetryMetadata.GetEventPropertyValue(eventData, EventNamePropertyMoniker, out eventName);
                if (result.Status != DataRetrievalStatus.Success)
                {
                    return(result);
                }
            }

            eventTelemetryData      = new EventTelemetryData();
            eventTelemetryData.Name = eventName;
            return(DataRetrievalResult.Success);
        }
        public void GetKeyTwiceInDifferentTimeShouldHaveSameRetrievedOn()
        {
            DataRetrievalResult res1 = DataRetrievalService.GetMyData("DataFile1");
            DataRetrievalResult res2 = DataRetrievalService.GetMyData("DataFile1");

            Assert.IsTrue(res1.RetrievedOn == res2.RetrievedOn,
                          string.Format("RetrievedOn1={0} AND RetrievedOn2={1} should be same!", res1.RetrievedOn,
                                        res2.RetrievedOn));
        }
        public void GetDataBasedOnKnownKeyShouldBeOK()
        {
            DataRetrievalResult res = DataRetrievalService.GetMyData("DataFile1");

            Assert.IsNotNull(res, string.Format("retrieving file should not end up in null!"));
        }