Пример #1
0
        public async Task ExchangeService_CanConstructClient()
        {
            var InvalidData = new ExchangeExternalServiceData()
            {
                PublicKey  = "test",
                PairedDate = DateTime.Now,
            };
            var externalServiceData = new ExternalServiceData()
            {
                Type = ExchangeService.ExchangeServiceType,
                Name = "something"
            };

            externalServiceData.Set(InvalidData);

            var exchangeService = GetExternalService(externalServiceData);
            await Assert.ThrowsAnyAsync <Exception>(async() => await exchangeService.ConstructClient());


            var validData = new ExchangeExternalServiceData()
            {
                PublicKey    = "test",
                PairedDate   = DateTime.Now,
                ExchangeName = "Binance",
                PrivateKey   = "aa"
            };

            externalServiceData.Set(validData);

            Assert.NotNull(exchangeService.ConstructClient());
        }
Пример #2
0
        BuildModel(
            EditSmtpExternalServiceViewModel viewModel, ExternalServiceData mainModel)
        {
            if (ModelState.IsValid && !string.IsNullOrEmpty(viewModel.TestEmail))
            {
                var data = new ExternalServiceData();
                data.Set(viewModel);
                data.Type = ExternalServiceType;
                var smtpService = new SmtpService(data);
                var error       = await SendTestEmail(smtpService, viewModel.TestEmail);

                if (string.IsNullOrEmpty(error))
                {
                    viewModel.TestEmail = string.Empty;
                }
                else
                {
                    ModelState.AddModelError(nameof(viewModel.TestEmail), error);
                }
            }

            if (!ModelState.IsValid)
            {
                return(null, viewModel);
            }

            mainModel.Set(viewModel);
            return(mainModel, null);
        }
Пример #3
0
        public void ExchangeService_CanInitiate()
        {
            //import for service discovery to be able to initiate without constructor
            _ = new ExchangeService();

            Assert.Throws <ArgumentException>(() =>
            {
                _ = new ExchangeService(new ExternalServiceData()
                {
                    Type = "invalid"
                });
            });

            var data = new ExchangeExternalServiceData()
            {
                PublicKey  = "test",
                PairedDate = DateTime.Now
            };
            var externalServiceData = new ExternalServiceData()
            {
                Type = ExchangeService.ExchangeServiceType,
                Name = "something"
            };

            externalServiceData.Set(data);

            var exchangeService = new ExchangeService(externalServiceData);

            Assert.Equal(exchangeService.GetData().PublicKey, data.PublicKey);
            Assert.Equal(exchangeService.GetData().PairedDate, data.PairedDate);
        }
Пример #4
0
        protected override Task <(ExternalServiceData ToSave, SmtpExternalServiceData showViewModel)> BuildModel(
            SmtpExternalServiceData viewModel, ExternalServiceData mainModel)
        {
            if (!ModelState.IsValid)
            {
                return(Task.FromResult <(ExternalServiceData ToSave, SmtpExternalServiceData showViewModel)>((null,
                                                                                                              viewModel)));
            }

            mainModel.Set(viewModel);
            return(Task.FromResult <(ExternalServiceData ToSave, SmtpExternalServiceData showViewModel)>((mainModel,
                                                                                                          null)));
        }
Пример #5
0
        public void ExchangeService_CanConstructClient()
        {
            var data = new ExchangeExternalServiceData()
            {
                PublicKey  = "test",
                PairedDate = DateTime.Now
            };
            var externalServiceData = new ExternalServiceData()
            {
                Type = ExchangeService.ExchangeServiceType,
                Name = "something"
            };

            externalServiceData.Set(data);

            var exchangeService = new ExchangeService(externalServiceData);

            Assert.NotNull(exchangeService.ConstructClient());
        }
Пример #6
0
        protected override async Task <(ExternalServiceData ToSave, Pop3ExternalServiceData showViewModel)> BuildModel(Pop3ExternalServiceData viewModel, ExternalServiceData mainModel)
        {
            if (!ModelState.IsValid)
            {
                return(null, viewModel);
            }
            mainModel.Set(viewModel);

            var imapService    = new Pop3Service(mainModel);
            var testConnection = await imapService.CreateClientAndConnect();

            if (testConnection == null)
            {
                ModelState.AddModelError(string.Empty, "Could not connect successfully");

                return(null, viewModel);
            }

            testConnection.Dispose();
            return(mainModel, null);
        }
Пример #7
0
        BuildModel(EditDynamicServiceDataViewModel viewModel, ExternalServiceData mainModel)
        {
            if (string.IsNullOrEmpty(viewModel.RecipeActionId) && string.IsNullOrEmpty(viewModel.RecipeActionGroupId))
            {
                ModelState.AddModelError(string.Empty, "please select a recipe action or a recipe action group ");
            }

            if (!ModelState.IsValid)
            {
                var recipes = await _recipeManager.GetRecipes(new RecipesQuery()
                {
                    UserId = _userManager.GetUserId(User)
                });

                var recipe = string.IsNullOrEmpty(viewModel.RecipeId)
                    ? null
                    : recipes.SingleOrDefault(recipe1 =>
                                              recipe1.Id.Equals(viewModel.RecipeId, StringComparison.InvariantCultureIgnoreCase));



                return(null, new EditDynamicServiceDataViewModel()
                {
                    Value = viewModel.Value,
                    RecipeId = viewModel.RecipeId,
                    RecipeActionId = viewModel.RecipeActionId,
                    RecipeActionGroupId = viewModel.RecipeActionGroupId,
                    Recipes = new SelectList(recipes, nameof(Recipe.Id), nameof(Recipe.Name), viewModel.RecipeId),
                    RecipeActions = recipe == null? null :  new SelectList(recipe.RecipeActions, nameof(RecipeAction.Id), nameof(RecipeAction.ActionId), viewModel.RecipeActionId),
                    RecipeActionGroups = recipe == null? null :  new SelectList(recipe.RecipeActionGroups, nameof(RecipeActionGroup.Id), nameof(RecipeActionGroup.Id), viewModel.RecipeActionGroupId),
                });
            }

            mainModel.Set(viewModel);
            return(mainModel, null);
        }
Пример #8
0
 public virtual void SetData(T data)
 {
     _data.Set(data);
 }
        BuildModel(EditBtcPayServerDataViewModel viewModel, ExternalServiceData mainModel)
        {
            if (viewModel.Action == "unpair")
            {
                viewModel.Seed = null;
            }

            //current External Service data
            var oldData = mainModel.Get <BtcPayServerExternalServiceData>();


            if (oldData.Seed == viewModel.Seed && oldData.Server == viewModel.Server)
            {
                viewModel.LastCheck = oldData.LastCheck;
                viewModel.MonitoredInvoiceStatuses = oldData.MonitoredInvoiceStatuses;
                viewModel.PairedDate = oldData.PairedDate;
            }
            else
            {
                viewModel.PairedDate = DateTime.Now;
            }

            mainModel.Set((BtcPayServerExternalServiceData)viewModel);
            var service = new BtcPayServerService(mainModel);

            if (!ModelState.IsValid)
            {
                var serviceData = service.GetData();
                return(null, new EditBtcPayServerDataViewModel()
                {
                    Seed = serviceData.Seed ?? new Mnemonic(Wordlist.English, WordCount.Twelve).ToString(),
                    Server = serviceData.Server,
                    PairingUrl = await service.GetPairingUrl(mainModel.Name),
                    Paired = await service.CheckAccess()
                });
            }


            if (!await service.CheckAccess())
            {
                viewModel.Seed = viewModel.Seed ?? new Mnemonic(Wordlist.English, WordCount.Twelve).ToString();
                service.SetData(viewModel);
                viewModel.PairingUrl = await service.GetPairingUrl(mainModel.Name);

                viewModel.Paired = false;
                if (!string.IsNullOrEmpty(viewModel.PairingCode))
                {
                    var client = service.ConstructClient();
                    await client.AuthorizeClient(new PairingCode(viewModel.PairingCode));

                    if (!await service.CheckAccess())
                    {
                        ModelState.AddModelError(string.Empty, "Could not pair with pairing code");
                        return(null, viewModel);
                    }
                }

                ModelState.AddModelError(string.Empty, "Cannot proceed until paired");
                return(null, viewModel);
            }

            return(mainModel, null);
        }
Пример #10
0
 public void SetData(T data)
 {
     _data.Set(data);
 }