Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            var config             = SwimbaitConfig.Get();
            var environmentService = new EnvironmentService(config);

            //var swimbaitConfig = config.GetSection("Swimbait");

            //var s = swimbaitConfig["RelayHost"];


            var activity = File.ReadAllLines(environmentService.ActivityLogFilename);
            int counter  = 1;

            foreach (var line in activity)
            {
                var log = RequestLog.FromCsv(line);

                if (log.Method == "GET")
                {
                    var swimbaitResponse = UriService.GetResponse(environmentService.IpAddress, log.ActualPort, log.PathAndQuery);
                    var yamahaResponse   = UriService.GetResponse(IPAddress.Parse("192.168.1.213"), log.YamahaPort, log.PathAndQuery);

                    var logService = new LogService(environmentService);
                    logService.LogToDisk(counter, swimbaitResponse);
                    logService.LogToDisk(counter, yamahaResponse);
                }

                counter++;
            }
        }
Ejemplo n.º 2
0
Archivo: App.xaml.cs Proyecto: rrsc/uwp
        /// <summary>
        /// Handle protocol activations.
        /// </summary>
        /// <param name="e">Details about the activate request and process.</param>
        protected override async void OnActivated(IActivatedEventArgs e)
        {
            if (e.Kind == ActivationKind.Protocol)
            {
                // Handle URI activation
                ProtocolActivatedEventArgs eventArgs = e as ProtocolActivatedEventArgs;

                // Initialize the links information
                LinkInformationService.Reset();

                bool      validUri  = true;
                Exception exception = null;
                try
                {
                    validUri = eventArgs.Uri.IsWellFormedOriginalString();
                    if (validUri)
                    {
                        // Use OriginalString to keep uppercase and lowercase letters
                        LinkInformationService.ActiveLink = UriService.ReformatUri(eventArgs.Uri.OriginalString);
                    }
                }
                catch (UriFormatException ex)
                {
                    validUri  = false;
                    exception = ex;
                }
                finally
                {
                    if (!validUri)
                    {
                        LogService.Log(MLogLevel.LOG_LEVEL_ERROR, "Invalid URI detected during app activation", exception);
                        await DialogService.ShowAlertAsync(ResourceService.AppMessages.GetString("AM_InvalidUri_Title"),
                                                           ResourceService.AppMessages.GetString("AM_InvalidUri"));
                    }
                }

                Frame rootFrame = CreateRootFrame();

                if (eventArgs.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // When the navigation stack isn't restored navigate to the first page, configuring
                // the new page by passing required information as a navigation parameter
                if (rootFrame.Content == null)
                {
                    rootFrame.Navigate(typeof(MainPage), eventArgs);
                }

                // Ensure the current window is active
                Window.Current.Activate();

                // Check session and special navigation
                await AppService.CheckActiveAndOnlineSessionAsync();

                // Validate product subscription license on background thread
                Task.Run(() => LicenseService.ValidateLicensesAsync());
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> GetPage(PaginationFilter filter, HttpRequest request)
        {
            var              route       = request.Path.Value;
            var              uri         = string.Concat(request.Scheme, "://", request.Host.ToUriComponent());
            IUriService      uriService  = new UriService(uri);
            PaginationFilter validFilter = new PaginationFilter(filter.PageNumber, filter.PageSize);
            List <User>      userList    = await userDA.GetPage(validFilter.PageNumber, validFilter.PageSize);

            List <UserDTO> userDtoList = new List <UserDTO>();

            foreach (User user in userList)
            {
                userDtoList.Add(ItemToDTO(user));
            }

            int totalRecords = await userDA.GetRecords();

            Information info = InformationHelper.FillInformation(totalRecords, validFilter.PageNumber, validFilter.PageSize);

            var pagedResponse = PaginationHelper.CreatePagedReponse <UserDTO>(
                userDtoList, info, validFilter, totalRecords, uriService, route
                );

            return(new OkObjectResult(pagedResponse));
        }
Ejemplo n.º 4
0
        private IActionResult DoManInTheMiddle()
        {
            var uri = HttpContext.Request.GetUri();
            var manInTheMiddleResponse = UriService.GetManInTheMiddleResult(_musicCastHost.RelayHost, uri, ActivityLogMiddleware.MapPortToReal);

            return(new FileContentResult(manInTheMiddleResponse.ResponseBytes, "application/octet-stream"));
        }
        public async Task CreateAsync_WhenInputIsValid_Then_CreatesContractSuccessfullyTest()
        {
            // Arrange
            string baseUrl = $"https://localhost:5001";

            SetMapperHelper();
            var request = Generate_CreateContractRequest();

            ILoggerAdapter <ContractService>    logger     = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));
            ILoggerAdapter <ContractRepository> loggerRepo = new LoggerAdapter <ContractRepository>(new Logger <ContractRepository>(new LoggerFactory()));

            MockAuditService();

            var inMemPdsDbContext = HelperExtensions.GetInMemoryPdsDbContext();
            var repo         = new Repository <DataModels.Contract>(inMemPdsDbContext);
            var work         = new SingleUnitOfWorkForRepositories(inMemPdsDbContext);
            var contractRepo = new ContractRepository(repo, work, loggerRepo);
            var uriService   = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            // Act
            var before = await contractRepo.GetByContractNumberAsync(request.ContractNumber);

            await service.CreateAsync(request);

            var after = await contractRepo.GetByContractNumberAsync(request.ContractNumber);

            // Assert
            before.Should().BeEmpty();
            after.Should().HaveCount(1).And.Subject.First().ContractVersion.Should().Be(request.ContractVersion);
        }
Ejemplo n.º 6
0
        private UriService CreateMockService()
        {
            var uriService = new UriService(new UriDatabaseSettings()
            {
                DatabaseName     = "UrlShortener",
                ConnectionString = "mongodb+srv://user:[email protected]/myFirstDatabase?retryWrites=true&w=majority",
                UriCollection    = "Uris"
            });

            return(uriService);
        }
Ejemplo n.º 7
0
        public ActionResult Get(int pageSize, int page)
        {
            PaginationParameters paginationParameters = new PaginationParameters(pageSize, page);

            paginationParameters.BaseUri = UriService.GetPlayerUri().AbsoluteUri;

            PaginatedResponse <Player> playerDataResponse = new PaginatedResponse <Player>(_playerService.GetPlayersOrdered(), paginationParameters);

            _logger.LogInformation("Successfully retrieved player information", playerDataResponse);

            return(Ok(playerDataResponse));
        }
Ejemplo n.º 8
0
        public ActionResult Get(string name, int pageSize, int page)
        {
            PaginationParameters paginationParameters = new PaginationParameters(pageSize, page);

            paginationParameters.BaseUri = UriService.GetTeamUri(name).AbsoluteUri;

            var response = new PaginatedResponse <Player>(_playerService.GetPlayersByTeam(name), paginationParameters);

            _logger.LogInformation("Successfully retrieved team data", response);

            return(Ok(response));
        }
Ejemplo n.º 9
0
        private Lazy <ITemplate> CreateLazyTemplate(Uri uri)
        {
            return(new Lazy <ITemplate>(() =>
            {
                var template = UriService.TryResolveUri <ITemplate>(uri);
                if (template == null)
                {
                    throw new FileNotFoundException("Template not found");
                }

                return template;
            }));
        }
Ejemplo n.º 10
0
        private async void OpenLink()
        {
            if (!await IsUserOnlineAsync())
            {
                return;
            }

            var link = await DialogService.ShowInputDialogAsync(OpenLinkText,
                                                                ResourceService.UiResources.GetString("UI_TypeOrPasteLink"));

            if (string.IsNullOrEmpty(link) || string.IsNullOrWhiteSpace(link))
            {
                return;
            }

            LinkInformationService.ActiveLink = UriService.ReformatUri(link);

            if (LinkInformationService.ActiveLink.Contains(
                    ResourceService.AppResources.GetString("AR_FileLinkHeader")))
            {
                LinkInformationService.UriLink = UriLinkType.File;

                // Navigate to the file link page
                OnUiThread(() =>
                {
                    NavigateService.Instance.Navigate(typeof(FileLinkPage), false,
                                                      NavigationObject.Create(this.GetType()));
                });
            }
            else if (LinkInformationService.ActiveLink.Contains(
                         ResourceService.AppResources.GetString("AR_FolderLinkHeader")))
            {
                LinkInformationService.UriLink = UriLinkType.Folder;

                // Navigate to the folder link page
                OnUiThread(() =>
                {
                    NavigateService.Instance.Navigate(typeof(FolderLinkPage), false,
                                                      NavigationObject.Create(this.GetType()));
                });
            }
            else
            {
                OnUiThread(async() =>
                {
                    await DialogService.ShowAlertAsync(
                        ResourceService.AppMessages.GetString("AM_OpenLinkFailed_Title"),
                        ResourceService.AppMessages.GetString("AM_OpenLinkFailed"));
                });
            }
        }
        public async Task ApproveManuallyAsync_ReturnsExpectedResult_DocumentTest()
        {
            //Arrange
            SetAsposeLicense();
            var    signer  = $"hand and approved by ESFA";
            string baseUrl = $"https://localhost:5001";

            SetMapperHelper();
            var contracts = GetDataModel_ForManualApprove();

            var request = new ContractRequest()
            {
                ContractNumber = "main-0001", ContractVersion = 1, FileName = BlobHelper.BlobName
            };

            ILoggerAdapter <ContractService> logger = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));

            MockAuditService();

            var contractRepo = await GetContractRepository(contracts);

            var uriService = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            //Act
            var beforeUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas | ContractDataEntityInclude.Content);

            // assigning to a new variable before update because this is an in memory db the
            // update will update the object.
            var actualBeforeUpdate = GetClonedContract(beforeUpdate);

            var contract = await service.ApproveManuallyAsync(request);

            var afterUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas);



            //Assert
            contract.Should().NotBeNull();
            actualBeforeUpdate.Status.Should().Be((int)ContractStatus.PublishedToProvider);
            afterUpdate.Status.Should().Be((int)ContractStatus.Approved);
            afterUpdate.ContractContent.Content.ShouldHaveSignedPage("testDoc", signer, afterUpdate.SignedOn.Value, true, afterUpdate.ContractContent.FileName, ContractFundingType.CityDeals, null);
            afterUpdate.ContractData.OriginalContractXml.Should().Be(BlobHelper.BlobSampleContent);
        }
Ejemplo n.º 12
0
        public override void Execute()
        {
            this.ValidateObject();

            tracer.Info(
                Resources.CreateArtifactLinkCommand_TraceInitial, this.CurrentElement.InstanceName);

            foreach (var item in Solution.Traverse().Where(t => !string.IsNullOrEmpty(t.PhysicalPath) && Items.Contains(t.PhysicalPath.ToLowerInvariant())))
            {
                tracer.Info(
                    Resources.CreateArtifactLinkCommand_TraceCreateLink, this.CurrentElement.InstanceName, item.GetLogicalPath());

                SolutionArtifactLinkReference.AddReference(this.CurrentElement, UriService.CreateUri(item))
                .Tag = this.Tag ?? string.Empty;
            }
        }
Ejemplo n.º 13
0
        public JsonResult Get(string nome)
        {
            try
            {
                UriService uriService = new UriService();

                object result = uriService.GetRanking(nome);

                return(Json(new { data = result }));
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Json(new { mensagem = ex.Message }));
            }
        }
Ejemplo n.º 14
0
        public void OpenLink()
        {
            if (!IsUserOnline())
            {
                return;
            }

            // Only 1 CustomInputDialog should be open at the same time.
            if (this.AppInformation.PickerOrAsyncDialogIsOpen)
            {
                return;
            }

            var inputDialog = new CustomInputDialog(UiResources.UI_OpenMegaLink, UiResources.UI_PasteMegaLink, this.AppInformation);

            inputDialog.OkButtonTapped += (sender, args) =>
            {
                if (!String.IsNullOrWhiteSpace(args.InputText))
                {
                    App.LinkInformation.ActiveLink = UriService.ReformatUri(args.InputText);

                    if (App.LinkInformation.ActiveLink.Contains("https://mega.nz/#!"))
                    {
                        App.LinkInformation.UriLink = UriLinkType.File;
                        this.MegaSdk.getPublicNode(App.LinkInformation.ActiveLink, new GetPublicNodeRequestListener(this));
                    }
                    else if (App.LinkInformation.ActiveLink.Contains("https://mega.nz/#F!"))
                    {
                        App.LinkInformation.UriLink = UriLinkType.Folder;
                        NavigateService.NavigateTo(typeof(FolderLinkPage), NavigationParameter.FolderLinkLaunch);
                    }
                    else
                    {
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            new CustomMessageDialog(
                                AppMessages.AM_OpenLinkFailed_Title,
                                AppMessages.AM_InvalidLink,
                                App.AppInformation,
                                MessageDialogButtons.Ok).ShowDialog();
                        });
                    }
                }
            };
            inputDialog.ShowDialog();
        }
        public async Task UpdateContractWithdrawalAsync_ReturnsExpectedResult_Test()
        {
            //Arrange
            string baseUrl = $"https://localhost:5001";

            SetMapperHelper();
            var contracts = GetDataModel_Contracts();

            var request = new UpdateContractWithdrawalRequest()
            {
                ContractNumber = "main-0001", ContractVersion = 1, WithdrawalType = ContractStatus.WithdrawnByAgency, FileName = BlobHelper.BlobName
            };

            ILoggerAdapter <ContractService> logger = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));

            MockAuditService();

            var contractRepo = await GetContractRepository(contracts);

            var uriService = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            //Act
            var beforeUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas);

            // assigning to a new variable before update because this is an in memory db the
            // update will update the object.
            var actualBeforeUpdate = GetClonedContract(beforeUpdate);

            var contract = await service.WithdrawalAsync(request);

            var afterUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas);

            //Assert
            contract.Should().NotBeNull();
            actualBeforeUpdate.Status.Should().Be((int)ContractStatus.PublishedToProvider);
            afterUpdate.Status.Should().Be((int)ContractStatus.WithdrawnByAgency);
            afterUpdate.ContractData.OriginalContractXml.Should().Be(BlobHelper.BlobSampleContent);
        }
Ejemplo n.º 16
0
        internal void AssociateDroppedSolutionItems(HashSet <string> paths)
        {
            if (paths.Count == 0)
            {
                return;
            }

            var existingUris = new HashSet <string>(SolutionArtifactLinkReference
                                                    .GetReferenceValues(this.CurrentElement)
                                                    .Select(u => u.ToString().ToLowerInvariant()));

            var items = this.Solution.Find(i =>
                                           (i.Kind == ItemKind.Item || i.Kind == ItemKind.Project) &&
                                           paths.Contains(i.PhysicalPath.ToLowerInvariant()));

            foreach (var item in items)
            {
                var uri = UriService.CreateUri(item);
                if (!existingUris.Contains(uri.ToString().ToLowerInvariant()))
                {
                    // add new reference with tag
                    ReferenceKindProvider <SolutionArtifactLinkReference, Uri> .AddReference(CurrentElement, uri).Tag =
                        this.Tag ?? string.Empty;
                }
                else
                {
                    // Update tag on reference (add if not already exist)
                    var reference = ReferenceKindProvider <SolutionArtifactLinkReference, Uri> .GetReference(CurrentElement, uri);

                    if (reference != null)
                    {
                        reference.AddTag(this.Tag);
                    }
                }
            }
        }
Ejemplo n.º 17
0
 private void FindFilePath()
 {
     FilePath = UriService.GetDataModelUri();
 }
Ejemplo n.º 18
0
 public UserServiceTests()
 {
     _sut = new UriService(BaseUri, CurrentPath);
 }
Ejemplo n.º 19
0
        public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime, ILoggerFactory loggerFactory)
        {
            var webListenerInfo = app.ServerFeatures.Get <WebListener>();

            if (webListenerInfo != null)
            {
                webListenerInfo.Settings.Authentication.Schemes = AuthenticationSchemes.None;
            }

            //loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddConsole();
            loggerFactory.AddDebug();

            var log2 = loggerFactory.CreateLogger("test");

            log2.LogWarning("log test");


            var o = new StatusCodePagesOptions();

            o.HandleAsync = async statusCodeContext => {
                var request = statusCodeContext.HttpContext.Request;
                var context = statusCodeContext.HttpContext;
                var log     = loggerFactory.CreateLogger <Startup>();
                log.LogWarning($"{request.Path} wasn't handled.");
                var uri = request.GetUri();

                var body = "<not decoded>";
                if (!uri.ToString().Contains("secure") && request.Method.ToLower() == "post")
                {
                    //body = request.Form.Keys.First();
                }

                var isFavIcon = uri.AbsolutePath.EndsWith("favicon.ico");

                //not the singleton instance var musicCastHost = (MusicCastHost) app.ApplicationServices.GetService(typeof (MusicCastHost));

                if (!isFavIcon)
                {
                    if (context.Response.HasStarted)
                    {
                        log.LogCritical("Too late");
                    }
                    else
                    {
                        var manInTheMiddleResponse = UriService.GetManInTheMiddleResult(_musicCastHost.RelayHost, uri, ActivityLogMiddleware.MapPortToReal);
                        log.LogInformation($"Man in the middle! {manInTheMiddleResponse.RequestUri}");
                        context.Response.StatusCode = 200;
                        await context.Response.WriteAsync(manInTheMiddleResponse.ResponseBody);

                        var logService = new LogService(_environmentService);
                        logService.LogToDisk(-1, manInTheMiddleResponse);
                    }
                }
            };

            // So we can decode the formurlencoded content that isn't properly encoded
            app.Use((context, next) => { context.Request.EnableRewind(); return(next()); });

            app.UseStatusCodePages(o);

            app.UseHeadersMiddleware();

            app.UseActivityLogMiddleware();
            app.UseStaticFiles();
            app.UseMvc();
        }
Ejemplo n.º 20
0
        public override Uri MapUri(Uri uri)
        {
            string tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());

            // URI association launch for MEGA.
            if (tempUri.Contains("mega://"))
            {
                App.LinkInformation.Reset();

                // Process the URI
                tempUri = tempUri.Replace(@"/Protocol?encodedLaunchUri=", String.Empty);
                tempUri = UriService.ReformatUri(tempUri);

                App.LinkInformation.ActiveLink = tempUri;

                //File link - Open file link to import or download
                if (tempUri.Contains("https://mega.nz/#!"))
                {
                    var extraParams = new Dictionary <string, string>(1)
                    {
                        {
                            "filelink",
                            System.Net.HttpUtility.UrlEncode(tempUri)
                        }
                    };

                    // Needed to get the file link properly
                    if (tempUri.EndsWith("/"))
                    {
                        tempUri = tempUri.Remove(tempUri.Length - 1, 1);
                    }

                    App.LinkInformation.ActiveLink = tempUri;
                    App.LinkInformation.UriLink    = UriLinkType.File;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.FileLinkLaunch, extraParams));
                }
                // Confirm account link
                else if (tempUri.Contains("https://mega.nz/#confirm"))
                {
                    // Go the confirm account page and add the confirm string as parameter
                    var extraParams = new Dictionary <string, string>(1)
                    {
                        {
                            "confirm",
                            System.Net.HttpUtility.UrlEncode(tempUri)
                        }
                    };

                    App.LinkInformation.UriLink = UriLinkType.Confirm;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.UriLaunch, extraParams));
                }
                //Folder link - Open folder link to import or download
                else if (tempUri.Contains("https://mega.nz/#F!"))
                {
                    var extraParams = new Dictionary <string, string>(1)
                    {
                        {
                            "folderlink",
                            System.Net.HttpUtility.UrlEncode(tempUri)
                        }
                    };

                    App.LinkInformation.ActiveLink = tempUri;
                    App.LinkInformation.UriLink    = UriLinkType.Folder;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.FolderLinkLaunch, extraParams));
                }
                //Recovery Key backup link
                else if (tempUri.Contains("https://mega.nz/#backup"))
                {
                    App.LinkInformation.UriLink = UriLinkType.Backup;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.UriLaunch,
                                                              new Dictionary <string, string>(1)
                    {
                        { "backup", String.Empty }
                    }));
                }
                //New sign up link - Incoming share or contact request (no MEGA account)
                else if (tempUri.Contains("https://mega.nz/#newsignup"))
                {
                    App.LinkInformation.UriLink = UriLinkType.NewSignUp;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.UriLaunch,
                                                              new Dictionary <string, string>(1)
                    {
                        { "newsignup", System.Net.HttpUtility.UrlEncode(tempUri) }
                    }));
                }
                //Confirm cancel a MEGA account
                else if (tempUri.Contains("https://mega.nz/#cancel"))
                {
                    App.LinkInformation.UriLink = UriLinkType.Cancel;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.Normal));
                }
                //Recover link - Recover the password with the Recovery Key or park the account
                else if (tempUri.Contains("https://mega.nz/#recover"))
                {
                    App.LinkInformation.UriLink = UriLinkType.Recover;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.Normal));
                }
                //Verify the change of the email address of the MEGA account
                else if (tempUri.Contains("https://mega.nz/#verify"))
                {
                    App.LinkInformation.UriLink = UriLinkType.Verify;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.Normal));
                }
                //Contact request to an email with an associated account of MEGA
                else if (tempUri.Contains("https://mega.nz/#fm/ipc"))
                {
                    App.LinkInformation.UriLink = UriLinkType.FmIpc;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.UriLaunch,
                                                              new Dictionary <string, string>(1)
                    {
                        { "fm/ipc", String.Empty }
                    }));
                }
                //Internal node link
                else if (tempUri.Contains("https://mega.nz/#"))
                {
                    var extraParams = new Dictionary <string, string>(1)
                    {
                        {
                            "localfolderlink",
                            System.Net.HttpUtility.UrlEncode(tempUri)
                        }
                    };

                    // Needed to get the file link properly
                    if (tempUri.EndsWith("/"))
                    {
                        tempUri = tempUri.Remove(tempUri.Length - 1, 1);
                    }

                    App.LinkInformation.ActiveLink = tempUri;
                    App.LinkInformation.UriLink    = UriLinkType.InternalNode;
                    return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.InternalNodeLaunch, extraParams));
                }
                //Invalid link
                else
                {
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        new CustomMessageDialog(
                            AppMessages.AM_LoadFailed_Title,
                            AppMessages.AM_InvalidLink,
                            App.AppInformation,
                            MessageDialogButtons.Ok).ShowDialog();
                    });

                    App.LinkInformation.Reset();
                    return(new Uri("/Views/MainPage.xaml", UriKind.Relative));
                }
            }

            // User has selected a folder shortcut
            if (tempUri.Contains("ShortCutBase64Handle"))
            {
                App.ShortCutBase64Handle = tempUri.Replace(@"/Views/MainPage.xaml?ShortCutBase64Handle=", String.Empty);
            }

            // User has selected MEGA app for operating system auto upload function
            if (tempUri.Contains("ConfigurePhotosUploadSettings"))
            {
                // Launch to the auto-upload settings page.
                App.AppInformation.IsStartedAsAutoUpload = true;

                var extraParams = new Dictionary <string, string>(1)
                {
                    {
                        "ConfigurePhotosUploadSettings",
                        System.Net.HttpUtility.UrlEncode(tempUri.Replace(@"?Action=ConfigurePhotosUploadSettings", String.Empty))
                    }
                };

                return(NavigateService.BuildNavigationUri(typeof(MainPage), NavigationParameter.AutoCameraUpload, extraParams));
            }

            // Otherwise perform normal launch.
            return(uri);
        }
        public async Task UpdateContractConfirmApprovalAsync_ReturnsExpectedResult_Test()
        {
            //Arrange
            SetMapperHelper();
            string       baseUrl        = $"https://localhost:5001";
            const string contractNumber = "Main-0001";
            const string title          = "Test Title";

            var working = new DataModels.Contract {
                Id = 1, Title = title, ContractNumber = contractNumber, ContractVersion = 1, Ukprn = 12345678, Status = (int)ContractStatus.ApprovedWaitingConfirmation
            };

            var request = new UpdateConfirmApprovalRequest()
            {
                ContractNumber = "Main-0001", ContractVersion = 1, FileName = BlobHelper.BlobName
            };

            ILoggerAdapter <ContractService>    logger     = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));
            ILoggerAdapter <ContractRepository> loggerRepo = new LoggerAdapter <ContractRepository>(new Logger <ContractRepository>(new LoggerFactory()));

            MockAuditService();

            var inMemPdsDbContext = HelperExtensions.GetInMemoryPdsDbContext();
            var repo         = new Repository <DataModels.Contract>(inMemPdsDbContext);
            var work         = new SingleUnitOfWorkForRepositories(inMemPdsDbContext);
            var contractRepo = new ContractRepository(repo, work, loggerRepo);
            var uriService   = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            await repo.AddAsync(working);

            await work.CommitAsync();

            //Act
            var beforeUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas);

            // assigning to a new variable before this is an in memory db so the
            // LastEmailReminderSent was being populated.
            var actualBeforeUpdate = new DataModels.Contract()
            {
                Id              = beforeUpdate.Id,
                Title           = beforeUpdate.Title,
                ContractNumber  = beforeUpdate.ContractNumber,
                ContractVersion = beforeUpdate.ContractVersion,
                Ukprn           = beforeUpdate.Ukprn,
                Status          = beforeUpdate.Status
            };

            var contract = await service.ConfirmApprovalAsync(request);

            var afterUpdate = await contractRepo.GetByContractNumberAndVersionWithIncludesAsync(request.ContractNumber, request.ContractVersion, ContractDataEntityInclude.Datas);

            //Assert
            contract.Should().NotBeNull();
            actualBeforeUpdate.Status.Should().Be((int)ContractStatus.ApprovedWaitingConfirmation);
            afterUpdate.Status.Should().Be((int)ContractStatus.Approved);
            afterUpdate.ContractData.OriginalContractXml.Should().Be(BlobHelper.BlobSampleContent);
        }
        public async Task UpdateLastEmailReminderSentAndLastUpdatedAtAsync_ReturnsExpectedResult_Test()
        {
            //Arrange
            SetMapperHelper();
            string       baseUrl        = $"https://localhost:5001";
            const string contractNumber = "main-000";
            const string title          = "Test Title";
            int          x = 0;

            var working = new List <DataModels.Contract>
            {
                new DataModels.Contract {
                    Id = 1, Title = title, ContractNumber = string.Empty, ContractVersion = 1, Ukprn = 12345678, LastEmailReminderSent = null
                }
            };

            var request = new UpdateLastEmailReminderSentRequest()
            {
                Id = 1, ContractNumber = "main-0001", ContractVersion = 1
            };

            foreach (var item in working)
            {
                item.ContractNumber        = $"{contractNumber}{x}";
                item.Ukprn                += x;
                item.LastEmailReminderSent = null;
                x += 1;
            }

            ILoggerAdapter <ContractService>    logger     = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));
            ILoggerAdapter <ContractRepository> loggerRepo = new LoggerAdapter <ContractRepository>(new Logger <ContractRepository>(new LoggerFactory()));

            MockAuditService();

            var inMemPdsDbContext = HelperExtensions.GetInMemoryPdsDbContext();
            var repo         = new Repository <DataModels.Contract>(inMemPdsDbContext);
            var work         = new SingleUnitOfWorkForRepositories(inMemPdsDbContext);
            var contractRepo = new ContractRepository(repo, work, loggerRepo);
            var uriService   = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            foreach (var item in working)
            {
                await repo.AddAsync(item);
            }

            await work.CommitAsync();

            //Act
            var beforeUpdate = await contractRepo.GetAsync(request.Id);

            // assigning to a new variable before this is an in memory db so the
            // LastEmailReminderSent was being populated.
            var actualBeforeUpdate = new DataModels.Contract()
            {
                Id                    = beforeUpdate.Id,
                Title                 = beforeUpdate.Title,
                ContractNumber        = beforeUpdate.ContractNumber,
                ContractVersion       = beforeUpdate.ContractVersion,
                Ukprn                 = beforeUpdate.Ukprn,
                LastEmailReminderSent = beforeUpdate.LastEmailReminderSent
            };

            var contract = await service.UpdateLastEmailReminderSentAndLastUpdatedAtAsync(request);

            var afterUpdate = await contractRepo.GetAsync(request.Id);

            //Assert
            contract.Should().NotBeNull();
            actualBeforeUpdate.LastEmailReminderSent.Should().BeNull();
            afterUpdate.LastEmailReminderSent.Should().NotBeNull();
            afterUpdate.LastUpdatedAt.Should().BeExactly(afterUpdate.LastEmailReminderSent.Value.TimeOfDay);
        }
Ejemplo n.º 23
0
 public UriController(UriService uriService)
 {
     _uriService = uriService;
 }
        public async Task GetContractRemindersAsync_ReturnsExpectedTest()
        {
            //Arrange
            SetMapperHelper();
            int reminderInterval               = 14;
            int pageNumber                     = 1;
            int pageSize                       = 1;
            ContractSortOptions sort           = ContractSortOptions.LastUpdatedAt;
            SortDirection       order          = SortDirection.Asc;
            string       baseUrl               = $"https://localhost:5001";
            string       routeTemplateUrl      = $"/api/contractReminders?reminderInterval={reminderInterval}&pageNumber={pageNumber}&pageSize={pageSize}&sort={sort}&order={order}";
            const string contractNumber        = "Test-Contract-Number";
            const string title                 = "Test Title";
            DateTime     lastEmailReminderSent = DateTime.UtcNow;

            var working = new List <DataModels.Contract>
            {
                new DataModels.Contract {
                    Id = 1, Title = title, ContractNumber = contractNumber, ContractVersion = 1, Ukprn = 12345678, LastEmailReminderSent = lastEmailReminderSent, Status = (int)ContractStatus.PublishedToProvider, FundingType = (int)ContractFundingType.AdvancedLearnerLoans
                },
                new DataModels.Contract {
                    Id = 2, Title = title, ContractNumber = contractNumber, ContractVersion = 2, Ukprn = 12345678, LastEmailReminderSent = lastEmailReminderSent.AddDays(-14), Status = (int)ContractStatus.PublishedToProvider, FundingType = (int)ContractFundingType.AdvancedLearnerLoans
                },
                new DataModels.Contract {
                    Id = 3, Title = title, ContractNumber = contractNumber, ContractVersion = 3, Ukprn = 12345678, LastEmailReminderSent = lastEmailReminderSent.AddDays(-15), Status = (int)ContractStatus.PublishedToProvider, FundingType = (int)ContractFundingType.AdvancedLearnerLoans
                },
            };

            var expectedList = new List <ContractReminderItem>
            {
                new ContractReminderItem {
                    Id = 2, Title = title, ContractNumber = contractNumber, ContractVersion = 2, Ukprn = 12345678, Status = ContractStatus.PublishedToProvider, FundingType = ContractFundingType.AdvancedLearnerLoans
                }
            };

            var expected = new ContractReminderResponse <IEnumerable <ContractReminderItem> >(expectedList)
            {
                Paging = new Metadata()
                {
                    CurrentPage     = pageNumber,
                    HasNextPage     = true,
                    HasPreviousPage = false,
                    NextPageUrl     = baseUrl + $"/api/contractReminders?reminderInterval={reminderInterval}&pageNumber={pageNumber}&pageSize={pageSize}&sort={sort}&order={order}",
                    PageSize        = pageSize,
                    PreviousPageUrl = string.Empty,
                    TotalCount      = 2,
                    TotalPages      = 2
                }
            };

            ILoggerAdapter <ContractService>    logger     = new LoggerAdapter <ContractService>(new Logger <ContractService>(new LoggerFactory()));
            ILoggerAdapter <ContractRepository> loggerRepo = new LoggerAdapter <ContractRepository>(new Logger <ContractRepository>(new LoggerFactory()));

            MockAuditService();

            var inMemPdsDbContext = HelperExtensions.GetInMemoryPdsDbContext();
            var repo         = new Repository <DataModels.Contract>(inMemPdsDbContext);
            var work         = new SingleUnitOfWorkForRepositories(inMemPdsDbContext);
            var contractRepo = new ContractRepository(repo, work, loggerRepo);
            var uriService   = new UriService(baseUrl);
            var asposeDocumentManagementContractService = GetDocumentService();
            var contractValidationService = GetContractValidationService();
            var mediator = BuildMediator();
            var contractDocumentService = BuildContractDocumentService();
            var service = new ContractService(contractRepo, _mapper, uriService, logger, _mockAuditService.Object, _semaphoreOnEntity, asposeDocumentManagementContractService, contractValidationService, mediator, contractDocumentService);

            foreach (var item in working)
            {
                await repo.AddAsync(item);
            }

            await work.CommitAsync();

            //Act
            var result = await service.GetContractRemindersAsync(reminderInterval, pageNumber, pageSize, sort, order, routeTemplateUrl);

            //Assert
            result.Should().BeEquivalentTo(expected);
        }