• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    MICTECH
    MICTECH --- ---
    NECROMAN: Kazdej vygenerovanej guid bych zpoplatnil aspon 1USD :)
    NECROMAN
    NECROMAN --- ---
    Kdybyste nekdo potreboval unikatni Guid, tak jsem si dovolil jednu drobnost, z vlastni zahradky :)
    Guid
    http://guid.suchan.cz/
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: Jeste jsem to poradne neprosel. Ale kdyz tam maj ten prevod na C# a pravdepodobne tam nebudou mit tak obskurni API jako mel Reflector, tak by teoreticky nemelo bejt nijak extremne narocny to jeste pripojit na .NETovej debuger. To by se mi dost hodilo :).
    VIRTUALVOID
    VIRTUALVOID --- ---
    TENCOKACISTROMY: nene, nemam na gnu/fsf momentalne vobec cas :(
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: Dobra zprava!
    Ty na tom nejak participujes?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: Vsak jo. Navic neni problem vytvorit novy zaznamy treba na smartphonu, ty pak pri nejaky prilezitosti poslat na server a mas jistotu, ze PK bude uplne v poradku. Ja na GUID nedam dopustit :).
    VIRTUALVOID
    VIRTUALVOID --- ---
    ILSpy - SharpDevelop Wiki
    http://wiki.sharpdevelop.net/ilspy.ashx
    VIRTUALVOID
    VIRTUALVOID --- ---
    TENCOKACISTROMY: nj .. viac dat. mne to pride uplne jedno, ked pouzivame ako PK/FK GUIDy tak odpada jeden selekt / update. v minulosti sme pouzivali tabulku generatorov (Nazov, Hodnota) do ktorej bolo treba pozriet, priratat 1, updatnut.... blablabla.

    kdezto urobim NEWID() pri inzerte trebars, tak je to rozhodne menej.

    alebo ?!
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SELUC: INTy jako PK prakticky vubec nepouzivam (vynecham-li par ciselniku s konstantama) a s vykonem nemam zadnej problem. Zrejme se ti to o neco zpomali, pac GUID je 4x vetsi nez INT, takze se musi prenaset vic dat. Na druhou stranu, ten narust je jen o 96 bytu na jeden zaznam. Cili pokud neco JOINujes, tak obvykle v ostatnich sloupcich mas mnohokrat vic dat [ 96bytu=1xnchar(6) ].
    VIRTUALVOID
    VIRTUALVOID --- ---
    SELUC: ja guidy pouzivam v praci normalne, pre pk, fk... znizenie nejakeho vykonu som nespozoroval .)
    SELUC
    SELUC --- ---
    mate nekdo realnou zkusenost s prechodem z INTu na GUID u cizich klicu a s tim moznou degradaci vykonu v databazovem stroji (joiny atd.) ?
    PECA
    PECA --- ---
    Zdravím. Potřebuju nakopnout správným směrem. Snažím se udělat klienta webové služby. Teprve se to učím a nějak se mi nedaří najít ty správné příklady a návody. Veškeré, co jsem našel, popisují primitivní příkládky, ze kterých mi není jasné, jak zavolat poněkud obsáhlejší službu. Konkrétně se mi jedná o služby portálu farmáře: http://eagri.cz/public/web/mze/farmar/elektronicka-vymena-dat/prehled-vystavenych-sluzeb/
    Dejme tomu třeba: https://eagri.cz/ssl/nosso-app/EPO/WS/Online/vOKOsrv.aspx?SERVICEID=LPI_GPL01A
    Optimálně s asynchronním voláním.

    Já jsme si tuto službu přidal do řešení a vygeneroval se mi pro ni soubor "Reference.cs". Pak jsem tak nějak předpokládal, že mi bude stačit vyrobit objekt, naplnit parametry, zavolat proces a přečíst odpověď. Zatím synchronně. Jenže ouha, hned na prvním řádku, kde se snažím vytvořit instanci mi to zhebne na výjimku.

    Výjimka:
    System.InvalidOperationException was unhandled by user code
      Message=Nelze najít výchozí element koncového bodu, který odkazuje na kontrakt
    CiselnikPlodin.LPI_GPL01A v oddílu konfigurace klienta třídy ServiceModel. Může to být
    proto, že pro aplikaci nebyl nalezen konfigurační soubor, nebo v elementu klienta
    nebylo možné najít element koncového bodu odpovídající tomuto kontraktu.
      Source=System.ServiceModel
      StackTrace:
           v System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
           v System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
           v System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
           v System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
           v System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
           v System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
           v System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
           v System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
           v System.ServiceModel.ClientBase`1..ctor()
           v CiselnikPlodin.LPI_GPL01AClient..ctor() v C:\zdrojaky\Service References\CiselnikPlodin\Reference.cs:řádek 1554  // !!! zde je prázdný konstruktor: public LPI_GPL01AClient() { } !!!
           v program.CiselnikPlodin() v C:\zdrojaky\program.cs:řádek 177
      InnerException: 
    
    Můj zamýšlený kód - možná úplně mimo mísu:
    public string CiselnikPlodin()
    {
    	CiselnikPlodin.LPI_GPL01AClient cp = new CiselnikPlodin.LPI_GPL01AClient(); // !!! výjimka !!! řádek 177
    	CiselnikPlodin.processRequest rq = new CiselnikPlodin.processRequest();
    	rq.Request.AppInfo.AppModule.id = "Moje aplikace"; // TODO: Doplnit automatickou identifikací aplikace.
    	rq.Request.AppInfo.AppModule.version = this.Version.ToString();
    	rq.Request.vOKOid = "LPI_GPL01A";
    	rq.Request.TimeStamp.type = CiselnikPlodin.TimeStampType.@base;
    	rq.Request.TimeStamp.Value = DateTime.Now;
    	rq.Request.RequestHeader.RequestID = "Označení dotazu";
    	rq.Request.RequestHeader.Subject.subjectID = "**********";
    	rq.Request.RequestHeader.Subject.Value = "Moje farma";
    	rq.Request.RequestContent.Item.GETDATA = false;
    	CiselnikPlodin.processResponse rp = cp.process(rq);
    	return rp.Response.ResponseContent.Item.DATZMENYCIS.ToString();
    }
    
    Našel jsem, že by to mohlo být chybějícím konfigurákem, ale ten tam mám. Tak už nevím. Děkuji předem, za každou pomoc.
    VIRTUALVOID
    VIRTUALVOID --- ---
    MORMEGIL: ja som sa k tomu dopatral tu

    A Simple C# Wrapper for Ghostscript » matthew ephraim’s blog
    http://www.mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript/

    :)
    MORMEGIL
    MORMEGIL --- ---
    DARKREIDER: Přímo v C# pochybuju; zaintegrovat nativní Ghostscript, na to už wrapper najdeš.
    DARKREIDER
    DARKREIDER --- ---
    Zdarec, skromna otazka: existuje nejaka kniznica (alebo nieco), co dokaze v C# interpretovat postscript? Potrebujem zobrazit *.ps subor a nad tym spravit nejaky jednoduchy WYSIWYG editor na presuvanie blokov v tom PS kode. Cakal som, ze codeproject toho bude plny, ale ani google mi nedava nic pozitivne. Dik za kazdu reakciu.
    SLUPKA
    SLUPKA --- ---
    AREX: Aha, já myslel, že jsem napsal něco špatně :)
    AREX
    AREX --- ---
    SLUPKA: Mluvim ted samozrejme jen o te smycce dole. Tam to pri "pondeli 8:00" v prvni smycce breakne a tim padem to skonci na pondeli 7:00 coz uz je ponekud spatne :)

    Tu horni cast kontroly jsem udelal jednodusi prave vyuzitim tehle funkce.

    var now = DateTime.Now;
    var nextCheck = GetNextCheckDate(now);

    if (nextCheck.Date == now.Date && now.Hour == CheckHour) {
    ...
    }

    return nextCheck;
    SLUPKA
    SLUPKA --- ---
    AREX: Ani opačný problém by tomu mému neměl vadit - pondělí 8:00 vleze do prvního ifu, v něm první if nic druhý zvedne den o jedna (na další den)... A pak od toho dalšího dne nalezne první dobrý den a to je středa...
    AREX
    AREX --- ---
    SLUPKA: Jo, byl tam opacny problem. Pokud je treba Pondeli 8:00 tak by to melo skocit na Streda 7:00. Konecne to dela co chci, ale jsem dneska nejakej vygumovanej, takovy v podstate jednoduchy algoritmus a povedlo se mi to az na nejakych 10. pokus odladit :/
    public static DateTime GetNextCheckDate(DateTime date)
    {
        var result = date;
        while (true)
        {
            if (CheckDays.Any(d => d == result.DayOfWeek) && result.Hour <= CheckHour) {
                break;
            }
    
            result = result.Date.AddDays(1);
        }
    
        return result.Date.AddHours(CheckHour);
    }
    SLUPKA
    SLUPKA --- ---
    AREX: To by nemělo skočit do středy. Protože to skočí do první podmínky, ale tam už to neskočí do ničeho vevnitř. Takže po prvním ifu bude stále Pondělí 6:00... A ve while bude okamžitý break, takže to vrátí stejný datum jen s upraveným časem...
    Kliknutím sem můžete změnit nastavení reklam