Beispiel #1
0
        private async Task OnEditLogStreamSettingsValidSubmitAsync(GeneralLogStreamSettingsViewModel generalLogStreamSettings, EditContext editContext)
        {
            var logStreams = new LogStreams {
                LogStreamSettings = new List <LogStreamSettings>()
            };
            GeneralLogStreamSettingsViewModel updatedgeneralLogStreamSettings = null;

            foreach (var ls in logSreamSettingsList)
            {
                if (ls == generalLogStreamSettings)
                {
                    logStreams.LogStreamSettings.Add(generalLogStreamSettings.Form.Model);
                    updatedgeneralLogStreamSettings = ls;
                }
                else
                {
                    logStreams.LogStreamSettings.Add(ls.LogStreamSettings);
                }
            }
            await TrackService.SaveTrackLogStreamSettingsAsync(logStreams);

            updatedgeneralLogStreamSettings.LogStreamSettings = generalLogStreamSettings.Form.Model;
            if (generalLogStreamSettings.CreateMode)
            {
                toastService.ShowSuccess("Log stream settings created.", "SUCCESS");
            }
            else
            {
                toastService.ShowSuccess("Log stream settings updated.", "SUCCESS");
            }
            generalLogStreamSettings.Edit = false;
        }
Beispiel #2
0
        private async Task DeleteLogStreamSettingsAsync(GeneralLogStreamSettingsViewModel generalLogStreamSettings)
        {
            try
            {
                var logStreams = new LogStreams {
                    LogStreamSettings = new List <LogStreamSettings>()
                };
                var logStreamSettingsSavelist = new List <LogStreamSettings>();
                foreach (var ls in logSreamSettingsList)
                {
                    if (ls != generalLogStreamSettings)
                    {
                        logStreams.LogStreamSettings.Add(ls.LogStreamSettings);
                    }
                }
                await TrackService.SaveTrackLogStreamSettingsAsync(logStreams);

                logSreamSettingsList.Remove(generalLogStreamSettings);
            }
            catch (TokenUnavailableException)
            {
                await(OpenidConnectPkce as TenantOpenidConnectPkce).TenantLoginAsync();
            }
            catch (Exception ex)
            {
                generalLogStreamSettings.Form.SetError(ex.Message);
            }
        }
        public void TestTracks()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("tracksIndex").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Id       = 1,
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };

            dbContext.Tracks.Add(track);
            dbContext.SaveChanges();

            var result = service.Index("aaa", "Joni", 5, 5);

            Assert.That(result, Is.Not.Null);
            Assert.That(track.Id, Is.Not.Null);
            Assert.AreEqual("aaa", result.Result.UserId);
            Assert.AreNotEqual("bbbaaa", result.Result.UserId);

            Assert.AreNotEqual("aaaa", result.Result.AlbumId);
            Assert.AreNotEqual("aaa", result.Result.SearchTerm);
            Assert.AreEqual("Joni", result.Result.SearchTerm);
            Assert.AreEqual(5, result.Result.PageNum);
            Assert.AreNotEqual("int", result.Result.PageNum);
            Assert.AreEqual(5, result.Result.PageSize);
            Assert.AreNotEqual("aaa", result.Result.PageNum);
        }
        public void TestCreateTrackCount()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("createTracksReturnCount").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };

            for (int i = 1; i < 5; i++)
            {
                service.Create(track.Name, track.Duration, track.AlbumId);

                dbContext.SaveChanges();
            }

            dbContext.SaveChanges();

            int result = dbContext.Tracks.CountAsync().Result;

            Assert.AreEqual(4, result);
            Assert.AreNotEqual(16, result);
            Assert.AreNotEqual("int", result);
            Assert.That(result, Is.Not.Null);
            Assert.That(track.Id, Is.Not.Null);

            dbContext.Remove(track);
        }
        public void TestTrackEdit()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("trackEditCorrect").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Id       = 1,
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };

            dbContext.Tracks.Add(track);
            dbContext.SaveChanges();

            var result = service.Edit(track.Id, track.Name, track.Duration, track.AlbumId);

            Assert.AreNotEqual(track, result);
            Assert.AreEqual("Joni", track.Name);
            Assert.AreNotEqual("Joki", track.Name);
            Assert.That(result, Is.Not.Null);
            Assert.That(track.Id, Is.Not.Null);
            Assert.AreEqual(result, true);
        }
        public void TestTracksDetails()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("trackDetails").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Id       = 1,
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };

            dbContext.Tracks.Add(track);
            dbContext.SaveChanges();

            var result = service.TrackDetails(track.Id);

            Assert.That(result.Result.Id, Is.Not.Null);
            Assert.That(result, Is.Not.Null);
            Assert.AreEqual("Joni", result.Result.Name);
            Assert.AreNotEqual(2000, result.Result.Name);
            Assert.AreEqual("4:44", result.Result.Duration);
            Assert.AreNotEqual(8, result.Result.AlbumId);
            Assert.AreEqual(track.AlbumId, result.Result.AlbumId);
        }
        public void TestTrackDelete()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("trackDelete").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Id       = 1,
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };


            dbContext.Tracks.Add(track);
            dbContext.SaveChanges();

            var result = service.Delete(track.Id);

            Assert.AreNotEqual(result, true);
            Assert.AreEqual(service.TrackExist(track.Id), false);
            Assert.AreEqual(result, false);
            Assert.That(track.Id, Is.Not.Null);
        }
        public void TestTrackCount()
        {
            var options   = new DbContextOptionsBuilder <MusicSpotDbContext>().UseInMemoryDatabase("trackCount").Options;
            var dbContext = new MusicSpotDbContext(options);
            var service   = new TrackService(dbContext);

            var track = new Track
            {
                Id       = 1,
                Name     = "Joni",
                Duration = "4:44",
                AlbumId  = 4
            };

            for (int i = 0; i < 3; i++)
            {
                dbContext.Tracks.Add(track);
            }
            dbContext.SaveChanges();

            var result = dbContext.Tracks.CountAsync().Result;

            Assert.AreNotEqual(result, true);
            Assert.AreEqual(result, 1);
            Assert.That(result, Is.Not.Null);
        }
        //int systemType, string clientId, int userId
        public override async Task <ObservableCollection <Node> > GetTableSource(Dictionary <string, object> parameterDictionary)
        {
            try
            {
                var campaignListResult = await TrackService.GetCampaigns();

                if (campaignListResult != null)
                {
                    var campaignItems = new ObservableCollection <Node>();
                    foreach (var site in campaignListResult)
                    {
                        var node = new Node {
                            Id = site.Key, Title = site.Value
                        };
                        campaignItems.Add(node);
                    }
                    TableSource = campaignItems;
                }
            }
            catch (Exception ex)
            {
                ShowMessage.Show("查询数据表出错");
                LogHelper.LogMessage(MethodBase.GetCurrentMethod().DeclaringType, LogHelper.LogLevel, "Failed to GetTableSource", ex);
            }
            finally
            {
                if (LogHelper.LogLevel == LogLevelEnum.Debug || LogHelper.LogLevel == LogLevelEnum.Info)
                {
                    LogHelper.LogMessage(MethodBase.GetCurrentMethod().DeclaringType, LogHelper.LogLevel, "GetTableSource", null);
                }
            }

            return(TableSource);
        }
Beispiel #10
0
        private async Task DefaultLoadAsync()
        {
            logSreamSettingsListError = null;
            try
            {
                var logStreams = await TrackService.GetTrackLogStreamSettingsAsync();

                logSreamSettingsList.Clear();
                if (logStreams?.LogStreamSettings?.Count > 0)
                {
                    foreach (var ls in logStreams?.LogStreamSettings)
                    {
                        logSreamSettingsList.Add(new GeneralLogStreamSettingsViewModel(ls));
                    }
                }
            }
            catch (TokenUnavailableException)
            {
                await(OpenidConnectPkce as TenantOpenidConnectPkce).TenantLoginAsync();
            }
            catch (Exception ex)
            {
                logSreamSettingsListError = ex.Message;
            }
        }
Beispiel #11
0
        public async static Task <ObservableCollection <SiteInfo> > GetSiteList(string campaignId)
        {
            try
            {
                var sites     = new List <List <SiteInfo> >();
                var campaigns = campaignId.Split(',');
                foreach (var campaign in campaigns)
                {
                    var siteInfo = await TrackService.GetSiteInfo(campaign);

                    if (siteInfo == null)
                    {
                        continue;
                    }

                    sites.Add(siteInfo);
                }

                var list = EraseDuplacatedSite(sites);
                return(new ObservableCollection <SiteInfo>(list));
            }
            catch (Exception ex)
            {
                ShowMessage.Show("获取站点列表出错");
                LogHelper.LogMessage(MethodBase.GetCurrentMethod().DeclaringType, LogHelper.LogLevel, "Failed to GetTableSource", ex);
            }

            return(new ObservableCollection <SiteInfo>());
        }
Beispiel #12
0
 private void PlaySource(string path, string name, PlaybackSource playbackSource)
 {
     _audioPlayer.Play(path);
     if (playbackSource == PlaybackSource.Path)
     {
         _media.GetMetadata(path);
         string artist = _media.Artist;
         Label     = (string.IsNullOrEmpty(artist)) ? "<Unknow Artist>" : TrackService.SetNames(artist);
         Name      = TrackService.SetNames(name);
         TotalTime = SelectedTrack.Duration;
         Album     = _media.Album;
         AlbumArt  = TrackService.SetImage(path, _audioPlayer);
         mediator.SetEqualizer();
     }
     else if (playbackSource == PlaybackSource.Stream)
     {
         Label     = TrackService.SetNames(SelectedStream.Tag_list);
         Name      = TrackService.SetNames(name);
         TotalTime = SelectedStream.Duration;
         if (string.IsNullOrEmpty(SelectedStream.Artwork_url))
         {
             AlbumArt = ImageSource.FromFile(FileImages.NoAlbum);
         }
         else
         {
             AlbumArt = ImageSource.FromUri(new Uri(SelectedStream.Artwork_url));
         }
     }
     ;
     SliderMax = _audioPlayer.SliderMax();
     StartTimer();
     IsPlaying = true;
 }
Beispiel #13
0
        private async Task OnEditCertificateValidSubmitAsync(GeneralTrackCertificateViewModel generalCertificate, EditContext editContext)
        {
            try
            {
                if (generalCertificate.Form.Model.Key == null)
                {
                    throw new ArgumentNullException("Model.Key");
                }

                _ = await TrackService.UpdateTrackKeyContainedAsync(generalCertificate.Form.Model.Map <TrackKeyItemContainedRequest>());

                generalCertificate.Subject    = generalCertificate.Form.Model.Subject;
                generalCertificate.ValidFrom  = generalCertificate.Form.Model.ValidFrom;
                generalCertificate.ValidTo    = generalCertificate.Form.Model.ValidTo;
                generalCertificate.IsValid    = generalCertificate.Form.Model.IsValid;
                generalCertificate.Thumbprint = generalCertificate.Form.Model.Thumbprint;
                generalCertificate.CreateMode = false;
                generalCertificate.Edit       = false;
            }
            catch (FoxIDsApiException ex)
            {
                if (ex.StatusCode == System.Net.HttpStatusCode.Conflict)
                {
                    generalCertificate.Form.SetFieldError(nameof(generalCertificate.Form.Model.Key), ex.Message);
                }
                else
                {
                    throw;
                }
            }
        }
Beispiel #14
0
        static void Main(string[] args)
        {
            SendNotificationsRequest request = CreateSendNotificationsRequest();
            //
            TrackService service = new TrackService();

            if (usePropertyFile())
            {
                service.Url = getProperty("endpoint");
            }
            try
            {
                // Call the Track web service passing in a TrackNotificationRequest and returning a TrackNotificationReply
                SendNotificationsReply reply = service.sendNotifications(request);
                if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING)
                {
                    ShowSendNotificationsReply(reply);
                }
                ShowNotifications(reply);
            }
            catch (SoapException e)
            {
                Console.WriteLine(e.Detail.InnerText);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Console.WriteLine("Press any key to quit!");
            Console.ReadKey();
        }
Beispiel #15
0
        private async Task CreateSelfSignedCertificateAsync(GeneralTrackCertificateViewModel generalCertificate)
        {
            generalCertificate.Form.ClearError();
            try
            {
                var trackKeyResponse = await TrackService.UpdateTrackKeyContainedAsync(generalCertificate.Form.Model.Map <TrackKeyItemContainedRequest>(afterMap: afterMap =>
                {
                    afterMap.CreateSelfSigned = true;
                    afterMap.Key = null;
                }));

                var keyResponse = generalCertificate.Form.Model.IsPrimary ? trackKeyResponse.PrimaryKey : trackKeyResponse.SecondaryKey;

                generalCertificate.Subject    = keyResponse.CertificateInfo.Subject;
                generalCertificate.ValidFrom  = keyResponse.CertificateInfo.ValidFrom;
                generalCertificate.ValidTo    = keyResponse.CertificateInfo.ValidTo;
                generalCertificate.IsValid    = keyResponse.CertificateInfo.IsValid();
                generalCertificate.Thumbprint = keyResponse.CertificateInfo.Thumbprint;
                generalCertificate.CreateMode = false;
                generalCertificate.Edit       = false;
            }
            catch (TokenUnavailableException)
            {
                await(OpenidConnectPkce as TenantOpenidConnectPkce).TenantLoginAsync();
            }
            catch (HttpRequestException ex)
            {
                generalCertificate.Form.SetError(ex.Message);
            }
            catch (FoxIDsApiException aex)
            {
                generalCertificate.Form.SetError(aex.Message);
            }
        }
Beispiel #16
0
        private async Task DefaultLoadAsync()
        {
            try
            {
                deleteTrackError       = null;
                deleteTrackAcknowledge = false;
                var track = await TrackService.GetTrackAsync(TrackSelectedLogic.Track.Name);

                var trackSendEmail = await TrackService.GetTrackSendEmailAsync();

                await updateTrackForm.InitAsync(track.Map <UpdateTrackViewModel>(afterMap: afterMap =>
                {
                    if (trackSendEmail != null)
                    {
                        afterMap.SendMailExist  = true;
                        afterMap.FromEmail      = trackSendEmail.FromEmail;
                        afterMap.SendgridApiKey = trackSendEmail.SendgridApiKey;
                    }
                }));
            }
            catch (TokenUnavailableException)
            {
                await(OpenidConnectPkce as TenantOpenidConnectPkce).TenantLoginAsync();
            }
            catch (Exception ex)
            {
                updateTrackForm.SetError(ex.Message);
            }
        }
Beispiel #17
0
        private async Task LoadLogAsync()
        {
            logLoadError = null;
            var logRequest = new LogRequest();
            var fromTime   = GetFromTime();

            if (!fromTime.HasValue)
            {
                return;
            }
            logRequest.FromTime = fromTime.Value.ToUnixTimeSeconds();
            logRequest.ToTime   = fromTime.Value.AddSeconds((int)(logRequestForm?.Model != null ? logRequestForm.Model.TimeInterval : LogTimeIntervals.FifteenMinutes)).ToUnixTimeSeconds();
            if (logRequestForm?.Model != null)
            {
                logRequest.Filter          = logRequestForm.Model.Filter;
                logRequest.QueryExceptions = logRequestForm.Model.QueryTypes.Contains(LogQueryTypes.Exceptions);
                logRequest.QueryTraces     = logRequestForm.Model.QueryTypes.Contains(LogQueryTypes.Traces);
                logRequest.QueryEvents     = logRequestForm.Model.QueryTypes.Contains(LogQueryTypes.Events);
                logRequest.QueryMetrics    = logRequestForm.Model.QueryTypes.Contains(LogQueryTypes.Metrics);
            }
            else
            {
                logRequest.QueryExceptions = true;
                logRequest.QueryEvents     = true;
            }

            logResponse = (await TrackService.GetTrackLogAsync(logRequest)).Map <LogResponseViewModel>();
        }
        public void IfTrackHasReachedCapacity_ThenCreateNewTrack()
        {
            var trackService = new TrackService();
            var traks        = trackService.CreateTracks(getListOfTalks());

            Assert.That(traks.Count, Is.GreaterThanOrEqualTo(1));
        }
Beispiel #19
0
        private async Task ShowUpdateResourceAsync(GeneralResourceViewModel resource)
        {
            resource.DeleteAcknowledge = false;
            resource.ShowAdvanced      = false;
            resource.Error             = null;
            resource.Edit = true;

            try
            {
                var resourceItem = await TrackService.GetTrackResourceAsync(resource.Id);

                if (resourceItem == null)
                {
                    resource.CreateMode = true;
                    await resource.Form.InitAsync(new ResourceItemViewModel { Name = resource.Name, Id = resource.Id });
                }
                else
                {
                    resource.CreateMode = false;
                    await resource.Form.InitAsync(resourceItem.Map <ResourceItemViewModel>(), afterInit : afterInit =>
                    {
                        afterInit.Name = resource.Name;
                    });
                }
            }
            catch (TokenUnavailableException)
            {
                await(OpenidConnectPkce as TenantOpenidConnectPkce).TenantLoginAsync();
            }
            catch (HttpRequestException ex)
            {
                resource.Error = ex.Message;
            }
        }
Beispiel #20
0
        private async Task OpenDirectory()
        {
            string path = await TrackService.GetPath();

            if (path == "CANCELED")
            {
                await Application.Current.MainPage.DisplayAlert("Caution", "Select folder with music files", "ok");

                return;
            }
            Song = await TrackService.GetSongs(path);

            if (Song.Count == 0)
            {
                await Application.Current.MainPage.DisplayAlert("Alert", "No files in selected folder", "ok");

                return;
            }
            else if (Search != null)
            {
                Song.Clear();
                Song = await TrackService.GetSongs(path);
            }
            Search = Song;
            Albums = TrackService.Albums;
            Genre  = TrackService.Genres;
        }
Beispiel #21
0
 public CourseController(CourseService _courseService, UserTrackService _userTrackService, TrackService _trackService)
 {
     courseService    = _courseService;
     TrackService     = _trackService;
     userTrackService = _userTrackService;
     Hub = GlobalHost.ConnectionManager.GetHubContext <WhatsLearnHub>();
 }
Beispiel #22
0
        public void CreateTrack_UnderNormalConditions_AddsTrackToTrackList()
        {
            //arrange
            var originalCountOfTracks = _trackList.Count;
            var trackToCreate         = new TrackDto()
            {
                TrackId          = 6,
                TrackName        = "track 6",
                TrackDescription = "track description 6",
                IsActive         = true
            };

            var mockRepo = Mock.Create <ITrackRepository>();

            Mock.Arrange(() => mockRepo.Create(Arg.IsAny <Track>()))
            .DoInstead(() => _trackList.Add(trackToCreate))
            .OccursOnce();

            _trackService = new TrackService(mockRepo);

            //act
            _trackService.Create(trackToCreate);
            var actualCount = _trackList.Count;

            //assert
            Mock.Assert(mockRepo);
            Assert.That(actualCount, Is.EqualTo(originalCountOfTracks + 1));
        }
Beispiel #23
0
        public TrackServiceTests()
        {
            var myProfile     = new TrackProfile();
            var configuration = new MapperConfiguration(cfg => cfg.AddProfile(myProfile));
            var mapper        = new Mapper(configuration);

            _trackService = new TrackService(_trackMockRepo.Object, mapper, _logger.Object);
        }
        public void Setup()
        {
            var timeService = new TimeService();

            _trackService = new TrackService(timeService, SpecialLengthSettings.Object);

            _sessionSettings = Sessions.Object.SessionList.First();
        }
Beispiel #25
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your fragment here

            _trackService = new TrackService();
        }
        public void WhenCreatingATrack_MakeSureEachSessionHasNoDuplicates()
        {
            var trackService = new TrackService();
            var track        = trackService.CreateTracks(getListOfTalks());

            Assert.That(track.First().MorningSesion, Is.Unique);
            Assert.That(track.First().AfternoonSession, Is.Unique);
        }
Beispiel #27
0
        static void Main(string[] args)
        {
            TrackService  _trackService  = new TrackService(unitOfWork);
            AlbumService  _albumService  = new AlbumService(unitOfWork);
            ArtistService _artistService = new ArtistService(unitOfWork);
            SearchTrack   search         = new SearchTrack(_albumService, _trackService, _artistService);

            search.Search();
        }
Beispiel #28
0
 public UsersController(MovieService movieService, UserService userService, TrackService trackService, IOptions <AppSettings> appSettings)
 {
     _movieService = movieService;
     _userService  = userService;
     _trackService = trackService;
     _appSettings  = appSettings.Value;
     _imdb         = new Imdb(appSettings.Value.ImdbApiKey);
     _musicClient  = new LastfmClient(appSettings.Value.LastfmApiKey, appSettings.Value.LastfmApiSecret);
 }
Beispiel #29
0
        public TrackServiceTest()
        {
            var faker = new Faker();

            _trackRepositoryMock = new Mock <ITrackRepository> ();
            _genreRepositoryMock = new Mock <IGenreRepository> ();

            _trackService = new TrackService(_trackRepositoryMock.Object, _genreRepositoryMock.Object);
        }
Beispiel #30
0
        public void GetTopTracks()
        {
            // Arrange
            TrackService _trackService = new TrackService(unitOfWork);
            // Act
            List <Track> tracks = _trackService.GetTopTracks("RadioHead");

            // Assert
            Assert.Equal(24, tracks?.Count);
        }
Beispiel #31
0
        /// <summary>
        /// Gets all events for a tracking number.
        /// </summary>
        /// <param name="trackingNumber">The tracking number to track</param>
        /// <returns>List of Shipment Events.</returns>
        public virtual IList<ShipmentStatusEvent> GetShipmentEvents(string trackingNumber)
        {
            if (string.IsNullOrEmpty(trackingNumber))
                return new List<ShipmentStatusEvent>();

            var result = new List<ShipmentStatusEvent>();
            try
            {
                //use try-catch to ensure exception won't be thrown is web service is not available

                //build the TrackRequest
                var request = new TrackRequest();

                //
                request.WebAuthenticationDetail = new WebAuthenticationDetail();
                request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential();
                request.WebAuthenticationDetail.UserCredential.Key = _fedexSettings.Key; // Replace "XXX" with the Key
                request.WebAuthenticationDetail.UserCredential.Password = _fedexSettings.Password; // Replace "XXX" with the Password
                //
                request.ClientDetail = new ClientDetail();
                request.ClientDetail.AccountNumber = _fedexSettings.AccountNumber; // Replace "XXX" with client's account number
                request.ClientDetail.MeterNumber = _fedexSettings.MeterNumber; // Replace "XXX" with client's meter number
                //
                request.TransactionDetail = new TransactionDetail();
                request.TransactionDetail.CustomerTransactionId = "***nopCommerce v16 Request using VC#***";

                //creates the Version element with all child elements populated from the wsdl
                request.Version = new VersionId();
                //tracking information
                request.PackageIdentifier = new TrackPackageIdentifier();
                request.PackageIdentifier.Value = trackingNumber;
                request.PackageIdentifier.Type = TrackIdentifierType.TRACKING_NUMBER_OR_DOORTAG;

                request.IncludeDetailedScans = true;
                request.IncludeDetailedScansSpecified = true;

                //initialize the service
                var service = new TrackService(_fedexSettings.Url);
                //this is the call to the web service passing in a TrackRequest and returning a TrackReply
                TrackReply reply = service.track(request);
                //parse response
                if (reply.HighestSeverity == NotificationSeverityType.SUCCESS || reply.HighestSeverity == NotificationSeverityType.NOTE || reply.HighestSeverity == NotificationSeverityType.WARNING) // check if the call was successful
                {

                    foreach (TrackDetail trackDetail in reply.TrackDetails)
                    {

                        if (trackDetail.Events != null)
                        {
                            //Set the parent level attributes
                            //var statusDescription = trackDetail.StatusDescription;
                            //var tatusCode = trackDetail.StatusCode;
                            //if (statusCode == "DL")
                            //{
                            //    var delivered = true;
                            //}


                            //if (trackDetail.SignatureProofOfDeliveryAvailable == true)
                            //{
                            //    trackResults.SignedForBy = trackDetail.DeliverySignatureName;
                            //}

                            //if (trackDetail.ShipmentWeight != null)
                            //{
                            //    var shipmentWeight = string.Format("{0} {1}", trackDetail.ShipmentWeight.Value, trackDetail.ShipmentWeight.Units);
                            //}
                            //else
                            //{
                            //    var shipmentWeight = string.Format("{0} {1}", trackDetail.PackageWeight.Value, trackDetail.PackageWeight.Units);
                            //}

                            //var shipDate = trackDetail.ShipTimestamp;
                            //var serviceType = trackDetail.ServiceInfo;
                            //var packageCount = int.Parse(trackDetail.PackageCount);
                            //var destination = string.Format("{0}, {1} {2}", trackDetail.DestinationAddress.City, trackDetail.DestinationAddress.StateOrProvinceCode, trackDetail.DestinationAddress.CountryCode);
                            //var deliveryDate = trackDetail.ActualDeliveryTimestamp;

                            //Set the TrackingActivity
                            foreach (TrackEvent trackevent in trackDetail.Events)
                            {
                                var sse = new ShipmentStatusEvent();

                                if (trackevent.TimestampSpecified)
                                {
                                    sse.Date = trackevent.Timestamp;
                                }
                                sse.EventName = String.Format("{0} ({1})", trackevent.EventDescription, trackevent.EventType);
                                sse.Location = trackevent.Address.City;
                                sse.CountryCode = trackevent.Address.CountryCode;
                                //other properties (not used yet)
                                //trackevent.EventType;
                                //trackevent.Address.PostalCode;
                                //trackevent.Address.StateOrProvinceCode;
                                //trackevent.StatusExceptionCode;
                                //trackevent.StatusExceptionDescription;

                                result.Add(sse);
                            }
                        }
                    }
                }


                //result.AddRange(trackResponse.Shipment.SelectMany(c => c.Package[0].Activity.Select(x => ToStatusEvent(x))).ToList());
            }
            catch (SoapException ex)
            {
                var sb = new StringBuilder();
                sb.AppendFormat("SoapException Message= {0}.", ex.Message);
                sb.AppendFormat("SoapException Category:Code:Message= {0}.", ex.Detail.LastChild.InnerText);
                //sb.AppendFormat("SoapException XML String for all= {0}.", ex.Detail.LastChild.OuterXml);
                _logger.Error(string.Format("Error while getting Fedex shipment tracking info - {0}", trackingNumber), new Exception(sb.ToString()));
            }
            catch (Exception exc)
            {
                _logger.Error(string.Format("Error while getting Fedex shipment tracking info - {0}", trackingNumber), exc);
            }
            return result;
        }