Autor Zpráva
sony
Profil *
Dobrý den,

vím, že tohle je pro psaní webu, ale stím to také souvisí. Mám dokončené stránky a ještě než je nahraju na server, tak by sem chtěl udělat api. Něco hodně podobného jako má rande.cz

v C# jsem udělal stěží updater a prohlížeč pomocí knihoven safari. Sice se moc chci naučit tento jazyk, ale tento program potřebuji co nejdřív. Proto se chci zeptat zda někdo neví o nějakém otevřeném kodu nebo jestli mi někdo nepopíše jak to mám udělat pokud možno krok po kroku. Případně za kolik by to někdo udělal. Byl by sem nejraději si to udělal sám už jen pro ten pocit, že to je má tvorba, ale sám to asi nezvládnu.

Jde mi o to aby uměl:
1. zjistit zda je uživatel přihlášen (nějaký vnitřní token nebo něco podobného k xml)
2. pokud není přihlášen, tak vyhodit jednoduchej přihlašovací formík
3. možnost nastavení prodlevy pro refresh ( zjištění změn )
4. zobrazení né jako klasický winform, ale v nástrojové liště vedle času
5. po načtení zobrazení v bublině zda je nový vzkaz nebo jiná událost
6. pokud se zjistí, že je nová událost, tak se změní ikona například na červenou ( změní ikonu )

To je všechno. Vím, že to je náročné, ale co v C není :-)
Pokud tohle někdo umí nebo ví o nějakém otevřeném kodu, tak prosím poradte. Případně budu rád i za orientační ceník. Nebo třeba jinak se revanžovat. například odkazem na Vaše služby a podobně. děkuju
aDAm
Profil
No a co teda chcete řešit? Vlastní api webové aplikace ke kterému se pak připojí nějaká jiná aplikace nebo nějakou aplikaci v Cčku?
sony
Profil *
C# nebo dokonce v C++ ale raději v C#. Tam se orientuju líp a jsou tam už definované doplnky. Chci dosáhnout přesně toho co jsem psal. Defakto chci udělat hlídacího pejska jako má třeba seznam.cz nebo rande.cz na vzkazy.
Mike8748
Profil
sony:
bod 3 řeší C# třída Timer ( http://msdn.microsoft.com/cs-cz/library/system.timers%28v=vs.100%29.aspx ) , časovač si nastavíš podle potřeby
body 4-6 řeší NotifyIcon ( http://msdn.microsoft.com/cs-cz/library/system.windows.forms.notifyicon%28v=vs.100%29.aspx ), viditelnost ikony, změny barvy, případně text v bublině u ikonky se nastaví v závislosti na tom co zrovna budeš chtít zobrazit. při kliknutí na ikonku akorát zobrazíš hlavní winform svojí aplikace, kde se budou zobrazovat zprávy pro uživatele (nebo pokud zjistíš že uživatel ještě není prihlášen, tak zobrazíš winform s přihlašovacím formulářem)

body 1 a 2 závisí na tom jak je vyřešená stránka, jestli tam potřebnou funkcionalitu již máš nebo jí budeš dodělávat. pokud je webová část již teď řešena ajaxově, tak by to nebylo ani moc složité.

pokud dobře chápu smysl aplikace, tak na serveru potřebuješ tři stránky
- po spuštění aplikace zavoláš první, řekněme http://tvujweb.cz/info. stránka ověří zda je uživatel prihlášen
- pokud ano, vráti info o uživateli a aktuální počet zpráv pro něj (+ další info pokud jsou třeba).
- pokud ne, stránka odpoví třeba kódem HTTP 403, tvoje aplikace na to zareaguje zobrazením přihlašovacího formuláře uživateli, a po zadání ho přes http://tvujweb.cz/login zkusí přihlásit. pokud se to povede, dostane zpět token, který budeš posílat z aplikace na server při každém požadavku.
- v aplikaci zapneš Timer, který bude pravidelně volat URL http://tvujweb.cz/neco , která odpoví počtem nových zpráv, případně zprávama jako takovýma (v XML nebo JSON formátu třeba)
- pokud dostaneš odpověd o existenci nové zprávy, tak u NotifyIcon změníš ikonu na jinak barevnou, změníš popisek,... po kliknutí na ikonku zobraziš winform v kterém bude ta zpráva jako taková


Token jako takový můžeš posílat jako cookie nebo http hlavičku, záleží jak vyřešíš komunikaci aplikace a webu.
tedy jestli v aplikaci akorát používáš komponentu co ti zobrazí webovou stránku, nebo zda tvoje aplikace dělá http požadavky a zobrazení výsledku sama
sony
Profil *
Děkuji. Pokusím se podle toho ten program sestavit. Spíš aby sem to moc nekomplikoval, tak chci data tahat pomoci xml soouboru. Programu chci dát do url přihlašovací údaje a na stránce si jen pomocí get ověří platnost. Pokud bude správný, tak ho pustí a zobrazí se příslušná data. Tím si ulehčím programování v C#
sony
Profil *
Dokázal jsem sebírat data s xml souboru, ale ted se snažím to dostat do dolního panelu. Prosím poradí někdo co dělám špatně. Případně zda by mi to třeba někdo nepomohl opravoit skrz vzdálenou plochu. Děkuju


Warning 1 Load of property 'RootNamespace' failed. The string for the root namespace must be a valid identifier. Dog

Error 2 The namespace '<global namespace>' already contains a definition for 'Dog' D:\Dog\dog.cs 8 14 Dog
Mike8748
Profil
sony:
ukaž to XML jak vypadá... řekl bych že máš blbě jeho formát (=generuješ nevalidní XML)
sony
Profil *
xml je ready.

<?xml version="1.0" encoding="utf-8" ?>
<zamestnanci>
    <zamestnanec>
        <jmeno>Jan</jmeno>
        <prijmeni>Novak</prijmeni>
    <objednavky>1</objednavky>
    <jine>2</jine>
    </zamestnanec>
    <zamestnanec>
        <jmeno>Jiri</jmeno>
        <prijmeni>Joudek</prijmeni>
    <objednavky>3</objednavky>
    <jine>4</jine>
    </zamestnanec>
</zamestnanci>



Je prosím někdo ochotný to semnou udělat skrz vzdálenou plochu? Vím, že to není žádná legrace a tohle je už pro zkušené programátory co nemají čas si hrát, ale snad se někdo slituje. Děkuji
sony
Profil *
Stáhnul jsem si hotovou aplikaci. Chce jí jen říct kde ten soubor má a mírně upravit. Pomůže mi prosím někdo? Jinak ta bublina i refresh je tam vyřešenej.
Mike8748
Profil
sony:
ok. moje chyba, XML to neni... chce to více přemýšlet příště.... ale k problému:

špatně definuješ jmenné prostory v zdrojovém kódu, v Dog.cs definuješ namespace které už existuje (pravděpodobně ti před tím chybí správná řádka s using .....
sony
Profil *
Děkuju, ale rozhodl jsem se na to .... Jestli si stránky povedou dobře, tak si stejně budu platit stálého programátora a ten to udělá. Když ne, tak je stejně soft na nic :-)

Já se už vystresoval dost a už chci mít klid. Jen pro zvědavost: kolik by to stálo nechat někoho externě vytvořit?
Anonymní
Profil *
sony:
Těžko říct, záleží na celkové náročnosti aplikace, pokud se jedná o něco jednoduššího(což to tvoje bude) tak to bude v řádu několika tisíců, ale výhoda na C#(oproti třeba náročného C++) je, že se docela často učí na různých průmyslových školách atd.. takže nelze vyloučit, že by ti kvalitní aplikaci napsal nějaký student za mírnější poplatek.
sony
Profil *
Tak už jsem o něco moudřejší. Jak se znám, tak mě to nedá a ještě se o to pokusím. Mám dobrej základ, který stačí jen překopat. Ale dneska na to nervy už nemám. Jinak děkuju. Tak v c++ to zrovna být nemusí. Uživatelé na linuxu jsou na omezení zvyklí a drtivá většina tam má stejně sekundárně win. Jen mě trápí, že to nedokážu udělat sám. Ale vše má svůj vývoj a když si stránky povedou dobře, tak stejně bude nutnost mít nějakého programátora, který to potom udělá. Já to jen chtěl udělat pro svůj pocit, že jsem to dělal já nebo se alespon nějak účastnil.
sony
Profil *
Dobrý večer, je tu přesně to co jsem psal a už se vtom zase točím. Teď jsem se zaseknul na notifyicon. Vypisuji údaje s XML, ale když jsem přešel do fáze notifyicon, tak se furt točim vkruhu. Dělal jsem to podle návodu na internetu a kterýkoli jiný návod co najdu mě utvrzuje, že mám vše ok. Našla by se tady nějaká dobrá duše co by se mi podívala do kodu třeba prostřednictvím team viewer? Vypsal by sem zde kod, ale nikde mi to chybu nevypisuje. Jen to nedělá co chci. Děkuju moc za jakoukoli pomoc.
sony
Profil *
Tak se zeptám a vložím kod, který snad řekne kde je chyba. Jde mi o to, že nechci aby se zobrazoval v dosovém okně, ale aby se údaje vypsali do notifyicon. Vložil jsem tam samozřejmě notifycon i contexmenustrip, ale nedaří se mi ty údaje vložit do zmíněného pole. Děkuju

namespace hlidac
{
    public class XMLReader
    {
        public static void Vypis()
        {
            XmlReader lReader = new XmlTextReader("D:/hlidac.xml");
            try
            {
                while(lReader.Read())
                {
                    switch(lReader.NodeType)
                    {
                        //zajima nas pouze start elementu
                        case XmlNodeType.Element :
                            //pokud je jmeno elementu info a element ma nejake atributy
                            if (lReader.Name.Equals("info") && lReader.HasAttributes)
                            {
                                //vypiseme atributy
                                Console.WriteLine("Jméno: {0}", lReader["jmeno"]);
                                Console.WriteLine("Příjmení: {0}", lReader["prijmeni"]);
                                Console.WriteLine("Pozice: {0}", lReader["pozice"]);
                                Console.WriteLine();
                            }
                        break;
                    }
                }
            }
            finally
            {
                lReader.Close();
            }
        }
    }
}
Anonymní
Profil *
Není divu, že se ti to vypisuje do dosové okna, když máš Console.WriteLine(což píše překvapivě do konzole :) ). Na rychlo jsem napsal, jak udělat aby se bublina zobrazila
    
NotifyIcon bublina = new NotifyIcon(); 
bublina.Icon = SystemIcons.Information; //nastavíš ikonu, která se bude zoobrazovat v panelu
bublina.Visible = true; // nastavíš to, že se bublina vůbec zoobrazí
bublina.ShowBalloonTip(50, "Název tvé aplikace(nebo cokoliv co chceš aby bylo v nadpisu)", "Sem vypíšeš text, který chceš", ToolTipIcon.Info); // zobrazíš bublinu, první parametr udává čas, kdy bude bublina zobrazena, další parametr zajištuje, co bude v "nadpisu", třetí parametr udává samotný text co chceš aby na bublině byl a poslední jaká ikonka bude vedle nadpisu bubliny.

Jak jsem psal, je to psané na rychlo, takže si nejsem na 100% jistý, jestli to vůbec funguje :D Ale snad to aspoň trošku pomůže..
sony
Profil *
Jestli chceš, tak jsem na team viewer

id: 562 923 402
heslo: 8776

Moc by mi to pomohlo, když by ses mi na to kouknul. Takhle i zároveň uvidím co tam děláš a něčemu novému se přiučím. Jinak moc děkuju i za ten kod i když na 90% ho nerozbehnu a vše vrátím do původního stavu


Anonymní:
Zase nefunguje. Tohle není o tom vypsat 3 řádky. Je to vážně na to se podívat do kodu.
Anonymní
Profil *
sony:
Zase nefunguje. Tohle není o tom vypsat 3 řádky. Je to vážně na to se podívat do kodu.
Škoda, tak jsem tě špatně pochopil asi. Rád pomůžu, ale prostě potřebuji mít detailně popsanou problematiku a čeho chceš dosáhnout, jinak to prostě nejde. A budu potřebovat více času na orientaci v kódu. Takže pokud chceš dej mi sem tvůj email, já tě kontaktuji a ty mě pošleš všechny zdrojové kódy v emailu a podrobně popíšeš čeho vlastně chceš dosáhnout a i přesto ti nedám 100% jistotu že se mi to povede :) Klidně bych to řešil přes vzdálenou plochu, ale jak jsem psal může to být i na déle a prostě potřebuji čas na zamyšlenou

Ale být tebou se na to vykašlu a prostě to kompletně přenechám profesionálovi, ale to je můj názor.
sony
Profil *
Já si to prozatím dovolit nemůžu. Nejdřív jsem zastal stejný názor, ale nemám vpovaze se vzdávat. Pokud stránky začnou vykazovat zisky, tak mám v plánu zaměstnat odborníky, ale do té doby je to závyslé na tom co udělám já. Můj mail je: sitemap ( tady závin ) email / cz

Moc děkuju


Já ted stejně asi na team viewru pro změnu budu radit já. Jen jsem doufal, že uvidím ty změny a i když budeš psát jedno písmeno za minutu, tak mě to nevadí, alespon by sem si lépe zapamatoval postup :-)
sony
Profil *
Pořád mi nepřišel žádný e-mail. Možná se někde zatoulal. Pokud ano, tak prosím ještě jednou napište. Děkuju


nedoručitelný mail :-)
Odeslal jsem vám to ze seznamu i google a všude mi to říká, že na Váš mail nelze zprávu doručit
sony
Profil *
Pořád mi to na outlocku vypisuje: Tito příjemci nebyli zastiženi:

Nemáš prosím jiný mail nebo třeba ti to pošlu skrz skype
Anonymní
Profil *
Bohužel jiný mail momentálně nemám, stejně tak skype. Doporučuji nepoužívat outlock, ale poslat to klasickým způsobem přímo přes seznam.cz(nebo co máš za mail..)
sony
Profil *
ja to posilal skrz seznam, ale na druhy mailovce outlockem. Jeste se pokusim primo na google.


tak google to vypadá odeslal :-)
To stím outloockem by sem pochopil, ale že i seznam mi vypisoval chybu. Hlavní je, že se to povedlo alespon nejak odeslat :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: