pondělí 1. srpna 2022

NopCommerce Payment Plugin


Components

One or more errors occurred. (A view component named 'PaymentComGate' could not be found. A view component must be a public non-abstract class, not contain any generic parameters, and either be decorated with 'ViewComponentAttribute' or have a class name ending with the 'ViewComponent' suffix. A view component must not be decorated with 'NonViewComponentAttribute'.)

Nebo

One or more errors occurred. (A view component named 'PaymentBesteron' could not be found. A view component must be a public non-abstract class, not contain any generic parameters, and either be decorated with 'ViewComponentAttribute' or have a class name ending with the 'ViewComponent' suffix. A view component must not be decorated with 'NonViewComponentAttribute'.)


Řešení

 namespace Nop.Plugin.Payments.{NázevSlužby}.Components
{

          [ViewComponent(Name = "Payment{NázevSlužby}")]

 public class Payment{NázevSlužby}ViewComponent : NopViewComponent
    {
        public IViewComponentResult Invoke()
        {
            return View("~/Plugins/Payments.{NázevSlužby}/Views/PaymentInfo.cshtml");
        }
    }

            } 

Souvisí s metodou GetPublicViewComponentName ve třídě {NázevSlužby}PaymentProceser

/// <summary>
/// Gets a name of a view component for displaying plugin in public store ("payment info" checkout step)
/// </summary>
/// <returns>View component name</returns>
public string GetPublicViewComponentName()
{
return "Payment{NázevSlužby}";
}

 

Services

Služby jteré jsou využívány v konstruktorech je potřeba nejprce zaregistrovat tak aby je IOC mohl nalézt. Registrují se ve třídě NopStartup ve složce Infrastructure
Pokud je použijete bez registrace tak Vám pravděpodobně nepůjde plugin ani nainstalovat a instalace skončí chybou ve smyslu že se nepodařilo nalézt vyhovující konstruktor.

Views

Configure.cshtml

Zobrazuje formulář v administraci kterým se nastavují údaje pro komunikaci s platební bránou. Například ID obchodníka

PaymentInfo.cshtml

Zobrazuje informace o tom že po dokončení objednávky budete přesměrování na platební bránu, nebo může obsahuvat formulář pro zadání doplňujících informací pro dokončení platby.

Zdroj:

čtvrtek 13. ledna 2022

Visual Studio nerozpozná nově přidanou třídu

 Po přidání nové třídy do projektu se VS chovalo jako kdyby nová třída vůbec přidaná nebyla.

Řešení:

Aktualizovat verzi knihovny "Microsoft.Net.Compilers" z verze 1.0.0 na alespoň 3.0.0

Zdroj:

https://developercommunity.visualstudio.com/t/cannot-navigate-to-the-symbol-under-the-caret-3/505489

čtvrtek 18. února 2021

Test ukazující funkci Distinct a SequenceEqual

[TestMethod]

public void Distinct_SequenceEqual()
{
// ARRANGE
var list1 = new List<string>() { "Karel", "Jan", "Jindra", "Jan"};
var list2 = new List<string>() { "Karel", "Jan", "Jindra" };

// ACT
var result = !list1.Distinct()
.SequenceEqual(list2);

// ASSERT
Assert.IsFalse(result);
}

úterý 29. prosince 2020

Home Assistant Vs Somfy a TaHoma

 Propojeni Google Home a Somfy samo o sobe neni v cechach zrovna jednoduche. Nejprve musite zmenit nastaveni jazyka a regionu na svem mobilnim telefonu na anglictinu. Protoze v cechach toto propojeni neni podporovano.

Potom co obe sluzby propojite se vam sice do Google home dosynchronizuji vsechny mistnosti a zarizeni (rolety, zaluzie, ...) Ale z aplikace Google home je nemuzete nijak primo ovladat.

Ovladat rolety muzete stale jen z originalni aplikace somfy.

Ovladat je muzete pomoci hlasovych prikazu.

Hey Google open blinds

hey Google close blinds

hey Google close bedroom blinds 50%

Hey Google rotate bedroom blinds 20%


Rozhodne pri pojmenovani zarizeni v Somfy je dobry napad pojmenovat je anglicky. 

Take dobry napad je pojmenovat zarizeni tak aby jste dokazali jmeno spravne vyslovit.

Pokud si nastavite treba scenar ktery budete spoustet behem obedu a pojmenujete ho lunch.

Budete mit pravdepodobne nekdy problem ho aktivovat, protoze alespon v mem pripade Mel Google problem rozlisit jestli jsem rekl


Lunch, launch a lounge.






středa 11. listopadu 2020

Ukládání desetinných čísel ASP.NET MVC

 Validace hodnot formuláře pomocí knihovny jquery.validate.js

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}


Vyžaduje pro čekou culture drobnou úpravu v _Layout.cshtml, která nahradí validační funkci pro desetinná čísla


<script type="text/javascript">

        $.validator.methods.number = function (value, element) {

            return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)?(?:,\d+)?$/.test(value);

       }

        $.validator.methods.range = function (value, element, param) {

            value = Number(value.toString().replace(',', '.'));

            return this.optional(element) || (value >= Number(param[0].toString().replace(',', '.')) && value <= Number(param[1].toString().replace(',', '.')));

        }


    </script>

neděle 27. září 2020

Přesmětování HTTP na HTTPS ve WebConfigu

Stačí do WebConfigu doplnit rewrite pravidlo do části  System.Webserver

<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>


 Zdroj:

https://napoveda.czechia.com/clanek/presmerovani-http-na-https/