From e2de14cb702b22b77806fc0899fb0a1575595dcf Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Mon, 24 Oct 2011 17:04:37 +0000 Subject: [PATCH] Goldshit Init --- GoldShit/GoldShit.sln | 22 ++ GoldShit/GoldShit/App.xaml | 19 ++ GoldShit/GoldShit/App.xaml.cs | 148 +++++++++++ GoldShit/GoldShit/AppSettings.cs | 103 ++++++++ GoldShit/GoldShit/ApplicationIcon.png | Bin 0 -> 480 bytes GoldShit/GoldShit/Background.png | Bin 0 -> 1277 bytes GoldShit/GoldShit/GoldShit.csproj | 119 +++++++++ GoldShit/GoldShit/GoldShit.csproj.user | 12 + GoldShit/GoldShit/Icon_large.png | Bin 0 -> 1395 bytes GoldShit/GoldShit/Icon_small.png | Bin 0 -> 725 bytes GoldShit/GoldShit/MainPage.xaml | 110 ++++++++ GoldShit/GoldShit/MainPage.xaml.cs | 234 ++++++++++++++++++ GoldShit/GoldShit/PoopItem.cs | 98 ++++++++ GoldShit/GoldShit/Properties/AppManifest.xml | 6 + GoldShit/GoldShit/Properties/AssemblyInfo.cs | 37 +++ .../GoldShit/Properties/WMAppManifest.xml | 35 +++ GoldShit/GoldShit/SplashScreenImage.jpg | Bin 0 -> 16847 bytes GoldShit/GoldShit/SplashScreenImage.png | Bin 0 -> 1615 bytes GoldShit/GoldShit/icons/appbar.back.rest.png | Bin 0 -> 375 bytes GoldShit/GoldShit/icons/appbar.favs.rest.png | Bin 0 -> 453 bytes .../icons/appbar.feature.settings.rest.png | Bin 0 -> 543 bytes GoldShit/GoldShit/icons/appbar.stat.rest.png | Bin 0 -> 194 bytes 22 files changed, 943 insertions(+) create mode 100644 GoldShit/GoldShit.sln create mode 100644 GoldShit/GoldShit/App.xaml create mode 100644 GoldShit/GoldShit/App.xaml.cs create mode 100644 GoldShit/GoldShit/AppSettings.cs create mode 100644 GoldShit/GoldShit/ApplicationIcon.png create mode 100644 GoldShit/GoldShit/Background.png create mode 100644 GoldShit/GoldShit/GoldShit.csproj create mode 100644 GoldShit/GoldShit/GoldShit.csproj.user create mode 100644 GoldShit/GoldShit/Icon_large.png create mode 100644 GoldShit/GoldShit/Icon_small.png create mode 100644 GoldShit/GoldShit/MainPage.xaml create mode 100644 GoldShit/GoldShit/MainPage.xaml.cs create mode 100644 GoldShit/GoldShit/PoopItem.cs create mode 100644 GoldShit/GoldShit/Properties/AppManifest.xml create mode 100644 GoldShit/GoldShit/Properties/AssemblyInfo.cs create mode 100644 GoldShit/GoldShit/Properties/WMAppManifest.xml create mode 100644 GoldShit/GoldShit/SplashScreenImage.jpg create mode 100644 GoldShit/GoldShit/SplashScreenImage.png create mode 100644 GoldShit/GoldShit/icons/appbar.back.rest.png create mode 100644 GoldShit/GoldShit/icons/appbar.favs.rest.png create mode 100644 GoldShit/GoldShit/icons/appbar.feature.settings.rest.png create mode 100644 GoldShit/GoldShit/icons/appbar.stat.rest.png diff --git a/GoldShit/GoldShit.sln b/GoldShit/GoldShit.sln new file mode 100644 index 0000000..59895d5 --- /dev/null +++ b/GoldShit/GoldShit.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoldShit", "GoldShit\GoldShit.csproj", "{374ED675-2D42-4068-A504-52A9138E6278}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {374ED675-2D42-4068-A504-52A9138E6278}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {374ED675-2D42-4068-A504-52A9138E6278}.Debug|Any CPU.Build.0 = Debug|Any CPU + {374ED675-2D42-4068-A504-52A9138E6278}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {374ED675-2D42-4068-A504-52A9138E6278}.Release|Any CPU.ActiveCfg = Release|Any CPU + {374ED675-2D42-4068-A504-52A9138E6278}.Release|Any CPU.Build.0 = Release|Any CPU + {374ED675-2D42-4068-A504-52A9138E6278}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/GoldShit/GoldShit/App.xaml b/GoldShit/GoldShit/App.xaml new file mode 100644 index 0000000..a3242eb --- /dev/null +++ b/GoldShit/GoldShit/App.xaml @@ -0,0 +1,19 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/GoldShit/GoldShit/App.xaml.cs b/GoldShit/GoldShit/App.xaml.cs new file mode 100644 index 0000000..f144feb --- /dev/null +++ b/GoldShit/GoldShit/App.xaml.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Microsoft.Phone.Controls; +using Microsoft.Phone.Shell; + +namespace GoldShit +{ + public partial class App : Application + { + /// + /// Bietet einen einfachen Zugriff auf den Stammframe der Phone-Anwendung. + /// + /// Der Stammframe der Phone-Anwendung. + public PhoneApplicationFrame RootFrame { get; private set; } + + /// + /// Konstruktor für das Application-Objekt. + /// + public App() + { + // Globaler Handler für nicht abgefangene Ausnahmen. + UnhandledException += Application_UnhandledException; + + // Silverlight-Standardinitialisierung + InitializeComponent(); + + // Phone-spezifische Initialisierung + InitializePhoneApplication(); + + // Während des Debuggens Profilerstellungsinformationen zur Grafikleistung anzeigen. + if (System.Diagnostics.Debugger.IsAttached) + { + // Zähler für die aktuelle Bildrate anzeigen. + Application.Current.Host.Settings.EnableFrameRateCounter = true; + + // Bereiche der Anwendung hervorheben, die mit jedem Bild neu gezeichnet werden. + //Application.Current.Host.Settings.EnableRedrawRegions = true; + + // Nicht produktiven Visualisierungsmodus für die Analyse aktivieren, + // in dem Bereiche einer Seite angezeigt werden, die mit einer Farbüberlagerung an die GPU übergeben wurden. + //Application.Current.Host.Settings.EnableCacheVisualization = true; + + // Deaktivieren Sie die Leerlauferkennung der Anwendung, indem Sie die UserIdleDetectionMode-Eigenschaft des + // PhoneApplicationService-Objekts der Anwendung auf "Disabled" festlegen. + // Vorsicht: Nur im Debugmodus verwenden. Eine Anwendung mit deaktivierter Benutzerleerlauferkennung wird weiterhin ausgeführt + // und verbraucht auch dann Akkuenergie, wenn der Benutzer das Handy nicht verwendet. + PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; + } + using (PoopDataContext db = new PoopDataContext(PoopDataContext.DBConnectionString)) + { + if (db.DatabaseExists() == false) + { + db.CreateDatabase(); + } + } + } + + // Code, der beim Starten der Anwendung ausgeführt werden soll (z. B. über "Start") + // Dieser Code wird beim Reaktivieren der Anwendung nicht ausgeführt + private void Application_Launching(object sender, LaunchingEventArgs e) + { + } + + // Code, der ausgeführt werden soll, wenn die Anwendung aktiviert wird (in den Vordergrund gebracht wird) + // Dieser Code wird beim ersten Starten der Anwendung nicht ausgeführt + private void Application_Activated(object sender, ActivatedEventArgs e) + { + } + + // Code, der ausgeführt werden soll, wenn die Anwendung deaktiviert wird (in den Hintergrund gebracht wird) + // Dieser Code wird beim Schließen der Anwendung nicht ausgeführt + private void Application_Deactivated(object sender, DeactivatedEventArgs e) + { + } + + // Code, der beim Schließen der Anwendung ausgeführt wird (z. B. wenn der Benutzer auf "Zurück" klickt) + // Dieser Code wird beim Deaktivieren der Anwendung nicht ausgeführt + private void Application_Closing(object sender, ClosingEventArgs e) + { + } + + // Code, der bei einem Navigationsfehler ausgeführt wird + private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e) + { + if (System.Diagnostics.Debugger.IsAttached) + { + // Navigationsfehler. Unterbrechen und Debugger öffnen + System.Diagnostics.Debugger.Break(); + } + } + + // Code, der bei nicht behandelten Ausnahmen ausgeführt wird + private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) + { + if (System.Diagnostics.Debugger.IsAttached) + { + // Eine nicht behandelte Ausnahme ist aufgetreten. Unterbrechen und Debugger öffnen + System.Diagnostics.Debugger.Break(); + } + } + + #region Initialisierung der Phone-Anwendung + + // Doppelte Initialisierung vermeiden + private bool phoneApplicationInitialized = false; + + // Fügen Sie keinen zusätzlichen Code zu dieser Methode hinzu + private void InitializePhoneApplication() + { + if (phoneApplicationInitialized) + return; + + // Frame erstellen, aber noch nicht als RootVisual festlegen. Dadurch kann der Begrüßungsbildschirm + // aktiv bleiben, bis die Anwendung bereit für das Rendern ist. + RootFrame = new PhoneApplicationFrame(); + RootFrame.Navigated += CompleteInitializePhoneApplication; + + // Navigationsfehler behandeln + RootFrame.NavigationFailed += RootFrame_NavigationFailed; + + // Sicherstellen, dass keine erneute Initialisierung erfolgt + phoneApplicationInitialized = true; + } + + // Fügen Sie keinen zusätzlichen Code zu dieser Methode hinzu + private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) + { + // Visuelle Stammkomponente festlegen, sodass die Anwendung gerendert werden kann + if (RootVisual != RootFrame) + RootVisual = RootFrame; + + // Dieser Handler wird nicht mehr benötigt und kann entfernt werden + RootFrame.Navigated -= CompleteInitializePhoneApplication; + } + + #endregion + } +} \ No newline at end of file diff --git a/GoldShit/GoldShit/AppSettings.cs b/GoldShit/GoldShit/AppSettings.cs new file mode 100644 index 0000000..54f6beb --- /dev/null +++ b/GoldShit/GoldShit/AppSettings.cs @@ -0,0 +1,103 @@ +using System; +using System.IO.IsolatedStorage; +using System.Diagnostics; +using System.Collections.Generic; + +namespace GoldShit +{ + public class AppSettings + { + IsolatedStorageSettings settings; + + const string SettingsWageKeyName = "SettingsWage"; + const string SettingsHourlyKeyName = "SettingsHourly"; + const string SettingsSalaryKeyName = "SettingsSalary"; + + const double SettingsWageDefault = 9.44; + const bool SettingsHourlyDefault = true; + const bool SettingsSalaryDefault = false; + + public AppSettings() + { + settings = IsolatedStorageSettings.ApplicationSettings; + } + + public bool AddOrUpdateValue(string Key, Object value) + { + bool valueChanged = false; + if (settings.Contains(Key)) + { + if (settings[Key] != value) + { + settings[Key] = value; + valueChanged = true; + } + } + else + { + settings.Add(Key, value); + valueChanged = true; + } + return valueChanged; + } + public T GetValueOrDefault(string Key, T defaultValue) + { + T value; + if (settings.Contains(Key)) + { + value = (T)settings[Key]; + } + else + { + value = defaultValue; + } + return value; + } + public void Save() + { + settings.Save(); + } + public double SettingsWage + { + get + { + return GetValueOrDefault(SettingsWageKeyName, SettingsWageDefault); + } + set + { + if (AddOrUpdateValue(SettingsWageKeyName, value)) + { + Save(); + } + } + } + public bool SettingsHourly + { + get + { + return GetValueOrDefault(SettingsHourlyKeyName, SettingsHourlyDefault); + } + set + { + if (AddOrUpdateValue(SettingsHourlyKeyName, value)) + { + Save(); + } + } + } + public bool SettingsSalary + { + get + { + return GetValueOrDefault(SettingsSalaryKeyName, SettingsSalaryDefault); + } + set + { + if (AddOrUpdateValue(SettingsSalaryKeyName, value)) + { + Save(); + } + } + } + } +} diff --git a/GoldShit/GoldShit/ApplicationIcon.png b/GoldShit/GoldShit/ApplicationIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..6023e838f9637dda93a198757247222397b3c68d GIT binary patch literal 480 zcmV<60U!Q}P)~vJv}}D|NpQOypjL_00VSV zPE-H?0N2V5K>z>&UP(kjRCwCdm%$RlAP7Vk{{N%fCXNa&pvkEmIxWq^bwy?ZeHHjC z9C(2Phq!s%!zFHjl`im#w)paZ!*l2H3a8?x+yi`8RP3GNbGC3k;&;y-tbTfSP|e#4 z>Cqy+5o^MiJH*vEi9_-IH(J!rVO_kl<-vhiKXO%5(~~ouh?h7krBMev+#f|@g!>ag zQv>`4_&SNqn8zNDYF-yOiV2EvNF@a(gX3P^#2Js2x47nbW&@(3uvY-At;3+W9|7MG zk?TX+*NDfE4vWjcCDZ^ay0OyBM4JGo#p#bs0Q2j9{AOe%2#=hWq2>&~L|-Nl^DK@9 zmw_|sDGup^MY#4H7qbVlzGnEmD3`DK>c8E04+LS~fzuAh8E#sJh*vkPh;vD1zB1%m zS3O_g#f{SnZNp!PQFu0000Ghz0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy2~bQ_Mg9H#78Vx&|NqMVI(h&A00VSV zPE-H?0N2V5K>z>*dr3q=RCwC#-05!QAP@xLg7<&uT`7?=wmJH!0*?g$*qE6wy&Mf# zLH(wJqdnTAJ=&u^+LvnazkG=nKjka54(oQU%eq_Zvu@TptwOEA;l`@8kYGhx5muvB zVI^8vwe>ApNoW;XU1&{O=NxW%8Y(Ry(ke1WuhqsCX%U&jcWDut!{?2JT0v^18D-H= zowbu_gC9B{n^3F{VXck(8trVFh9awpYiA$`GDf_MD_YPkjltjPAj6%s1%DTr<}yDU zRmn9iY25P!guS+W!IO+Cj#M1;pDz@sI>9p3q#`afG)pvcC@Z_(cZy4FdC0_nkx5YM(*>WZbSVpGH_1bZKmI$1Kx-Ft)$w@*Gdjr zGulBT(Lt-HxmQa+xpd`C?Vd2s8ARGhcQI&_2d&J$JM1?#kn6c@zsj7$=?8Mr{u)0z?X2%Q;*8YTAM@PW`4CS{R9DtO zOX4Dl{q)?b7d3~AWIy=hl}VMcWW==}h_RN)ML4vhWuaZoa}iAh?%&_24t^Z;BAT>3 zzWz}yqhBt@1q+KY9x5$@S`6z>EsR?DwHCKV8^E^u=%Wiuv~X(gYiqgAZN-|2Ez({G zd}(MQ(;^<*GOjwYYVAC>Y%Rd;3I2>xqQxkft=I~*fIqm81gBFi1gu0m(QncgYZatH z);h_LtY*!Ok)DF(w6kzZ^II^vtsigHVshrysHV3%2`yYR0cD$>(f%DA+&ApE(*|#F zYgP1HOnC*DUxvEp^>^BjbfBxf9Y67Q=mD)IwoYwj_k`k#Ed*NkN@k9&Pir~{i>$jB z&fmY@A9{(lb)(Ze0-lekg zF4309h3<9cvMpntw<%KE<_&6V8ct)wD{pIiHhmW)X$|LK?Io>SEgWn#zYU)@rm)ey z1Ft0C2YatIe)_S)8bAHmK#ku;u7{@X(AO%nZ&NI0&fWrg6Vmu*V2ECICHx1J78+C9 njpb;M_GpjxXpi<;{s}MugruHqnW1=x00000NkvXXu0mjfob7RS literal 0 HcmV?d00001 diff --git a/GoldShit/GoldShit/GoldShit.csproj b/GoldShit/GoldShit/GoldShit.csproj new file mode 100644 index 0000000..a25eb21 --- /dev/null +++ b/GoldShit/GoldShit/GoldShit.csproj @@ -0,0 +1,119 @@ + + + + Debug + AnyCPU + 10.0.20506 + 2.0 + {374ED675-2D42-4068-A504-52A9138E6278} + {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + GoldShit + GoldShit + v4.0 + $(TargetFrameworkVersion) + WindowsPhone71 + Silverlight + true + + + true + true + GoldShit.xap + Properties\AppManifest.xml + GoldShit.App + true + true + true + 4.0.30816.0 + + + true + full + false + Bin\Debug + DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + pdbonly + true + Bin\Release + TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + + + + + + + + + + + + + App.xaml + + + + MainPage.xaml + + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + \ No newline at end of file diff --git a/GoldShit/GoldShit/GoldShit.csproj.user b/GoldShit/GoldShit/GoldShit.csproj.user new file mode 100644 index 0000000..0140cb8 --- /dev/null +++ b/GoldShit/GoldShit/GoldShit.csproj.user @@ -0,0 +1,12 @@ + + + + + + + False + + + + + \ No newline at end of file diff --git a/GoldShit/GoldShit/Icon_large.png b/GoldShit/GoldShit/Icon_large.png new file mode 100644 index 0000000000000000000000000000000000000000..f84e907847ea622a3bb4a3d07451face6ccfc490 GIT binary patch literal 1395 zcmV-(1&sQMP)}9EL*L|P=1g0)g0Lv3;JsjDM{39Uv%EBt2 zGW1jmSzE#BcHULTAsYycAQ1LU?8xarkd`AAh{+)pKO3kJ?koftyYVlCD0~pJ3nVi! zzNcmX0};s^KxD@dox~ReuLda^jpQbgjFV0RUy=t6-k0RTJ=jU-l9wO|g@5aP1&Qbt zQL78wr4^?VyU!IdXVj@u2kK}jaJZO+Zj+QVUioO&qf!4{Qk^V37Gv?h6@(n5dJhE{LJ)gM9!?xS`asZbH+ljOVi=q)UuA>^ zvZo4xtt!psdY~IXw=d$?g_)$=(>$Sw3YrQPQr-sw-v#dEhB|>5JV!5o+5|G4hQK_f z3y5WuZZ{kliqPcg74Sid0uC6#{bEXtuqJ`gJ_l?i$!Y7UI#LZ1P_6L#4!c& z=5R)l@0$b=M6N3;2m;l?1;N`uFqA+LP(cu8A#4x?uPndfUVoCnZv_A*iV_4o5T}J( z_$o;PQoKUlToBbbSRjZ2Nlv19gY6F?5i5v#EG&?yPl`VSVjux>sst|wu@}TH%M+0! z28Tb3sgN=ciLK@)5sRS!Diw+LZ6L@7S+kJN2x_gJmU?NZ0VI=G-T!_4E5nALCOXN@ zo2JuP#~^oT9FqIAu#jU6QahbSBsQdVjt)r`w9u^I$Z@jfKP~^pee6=7+>+-c$6@0- z{>MQy9M>Op)bIcapk7+%dB151B~ftHt3@BtYSSh7#MkUtJ&qAsG>MYqGVX4}=)eQjSO&F<8qb#^mfjjWI~HX<-~av*Zy#bX=6?b6By(mP1*ql+dBVVOvC z1lEC5zYsVL25Cn%Z?LQ`UY4K=yb?zeV!C6rnC56TlZo7z#k?gK2u67j)Tt@u0>Lm! zGTnu<9P5guG}2lwkYmWSjXhqvT!Y$qKz=TKXNTp-cki>VfKZeF7pJ_VfKHs74PrRj zH5%cAm=tmvckP=*(zE> zkRr?b`haoe1A)T`f_9X+w!l=25>|y=o6?_V*mb=+D72iqxn%UKo5&mmE-E?gv%?BH z5IOub0(XrBe>Tw;EOu42ppg= literal 0 HcmV?d00001 diff --git a/GoldShit/GoldShit/Icon_small.png b/GoldShit/GoldShit/Icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7cec526fdd15a9af84500d72ccd07c387bf791 GIT binary patch literal 725 zcmV;`0xJE9P)sEG#Vl|NpQX{0#sA00VSV zPE-H?0N2V5K>z>(Q%OWYRCwC#nvHJ5APj^L-v6ODZ4C*;*ms6h+SEvutdRPPe=%xN zpTF>7{9guuhZ(@r4B&CboRDHzx*S4+VQO;`G6S*|8yRAKc&|0{lvsm!o&i5cjKv&7 zODmayD1i3|pvF9UDWhqm7!ccrTpux{irzx4IZGD%6$Mf1wk9Ccwg{nL1^zV`RYusd zB=aG?Yk=1nx+2esI~mog&1sZ^&dV&}ymqD4uy7@0>U^3%=k3l0)E!N6_~P(Dx+i)A z(6FrUYB3|;UkFA`FsNM({5%>mrk>z!8yOX`X_N=Y%Zl6-Jg|WQfdQQnL7+iyO@cgULX5k$ zE2s=9KIHJZ0txK^dBqH8npuZfd3F1G`Mx@#-Jl@GKx86*blwHZ9L%T43j>GhU!k-+ z6a_>G4z)Nx9s>zRd8sUi4NV{+Agt&@(8YvHGDNA`G&w>5K~xQ=9z!TpxgaXIsh*-U zrie24)HX&}AZS9-8Sw15sJ<4;K1Nf0h51P(GB9*QLtq&IGC_w@A1?J!6 zIjEZ;?3wcs0x|Ed9GdO($4=GM?>Ot)lmBP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoldShit/GoldShit/MainPage.xaml.cs b/GoldShit/GoldShit/MainPage.xaml.cs new file mode 100644 index 0000000..4186796 --- /dev/null +++ b/GoldShit/GoldShit/MainPage.xaml.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using Microsoft.Phone.Controls; +using System.Data.Linq; +using System.Data.Linq.Mapping; +using System.ComponentModel; +using System.Collections.ObjectModel; +using System.Threading; +using System.Globalization; + +namespace GoldShit +{ + public partial class MainPage : PhoneApplicationPage, INotifyPropertyChanged + { + private DateTime starttime; + private Thread thread; + private bool _stop = false; + private double moneypersecond; + private AppSettings settings = new AppSettings(); + private PoopDataContext PoopDB; + private ObservableCollection _poopItems; + public ObservableCollection PoopItems + { + get + { + return _poopItems; + } + set + { + if (_poopItems != value) + { + _poopItems = value; + NotifyPropertyChanged("PoopItems"); + } + } + } + // Konstruktor + public MainPage() + { + InitializeComponent(); + PoopDB = new PoopDataContext(PoopDataContext.DBConnectionString); + this.DataContext = this; + Init(); + } + protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) + { + var poopItemsInDB = from PoopItem poop in PoopDB.PoopItems select poop; + PoopItems = new ObservableCollection(poopItemsInDB); + base.OnNavigatedTo(e); + LoadStatistics(); + } + protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) + { + base.OnNavigatedFrom(e); + PoopDB.SubmitChanges(); + } + + #region INotifyPropertyChanged Members + public event PropertyChangedEventHandler PropertyChanged; + private void NotifyPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + { + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + #endregion + + private void Init() + { + GetMoneyPerSecond(); + } + + private void LoadStatistics() + { + this.bstatsall.Items.Clear(); + double totmoney = 0; + TimeSpan tottime = new TimeSpan(); + foreach (PoopItem p in PoopItems) + { + Grid g = new Grid(); + g.Margin = new Thickness(0); + + ColumnDefinition cd = new ColumnDefinition(); + cd.Width = new GridLength(140); + g.ColumnDefinitions.Add(cd); + + cd = new ColumnDefinition(); + cd.Width = new GridLength(152); + g.ColumnDefinitions.Add(cd); + + cd = new ColumnDefinition(); + cd.Width = new GridLength(140); + g.ColumnDefinitions.Add(cd); + + ListBoxItem i = new ListBoxItem(); + i.Content = p.Start.ToShortDateString(); + i.Margin = new Thickness(4, 0, 13, 0); + Grid.SetColumn(i, 0); + g.Children.Add(i); + + i = new ListBoxItem(); + i.Content = Convert.ToInt32(Math.Floor(p.Stop.Subtract(p.Start).TotalMinutes)).ToString().PadLeft(2, '0') + ":" + p.Stop.Subtract(p.Start).Seconds.ToString().PadLeft(2, '0'); + tottime = tottime.Add(p.Stop.Subtract(p.Start)); + i.Margin = new Thickness(13, 0, 13, 0); + Grid.SetColumn(i, 1); + g.Children.Add(i); + + i = new ListBoxItem(); + i.Content = "$" + Math.Round(p.Stop.Subtract(p.Start).TotalSeconds * this.moneypersecond, 2).ToString(); + totmoney += p.Stop.Subtract(p.Start).TotalSeconds * this.moneypersecond; + i.Margin = new Thickness(13, 0, 4, 0); + Grid.SetColumn(i, 2); + g.Children.Add(i); + + this.bstatsall.Items.Add(g); + } + this.tstattotalmoney.Text = "$" + Math.Round(totmoney, 2).ToString(); + this.tstattotaltime.Text = Convert.ToInt32(Math.Floor(tottime.TotalMinutes)).ToString().PadLeft(2, '0') + ":" + tottime.Seconds.ToString().PadLeft(2, '0'); + } + + private void GetMoneyPerSecond() + { + double m = 0; + if (settings.SettingsHourly) + { + m = settings.SettingsWage / 3600; + } + else if (settings.SettingsSalary) + { + m = settings.SettingsWage / 31556925.261; + } + this.moneypersecond = m; + this.tsettingswage.Text = this.settings.SettingsWage.ToString(); + this.tsettingshourly.IsChecked = this.settings.SettingsHourly; + this.tsettingssalary.IsChecked = this.settings.SettingsSalary; + } + + private void ApplicationBarIconButton_Click(object sender, EventArgs e) + { + this.bsettings.Visibility = System.Windows.Visibility.Visible; + } + + private void tsettingssave_Click(object sender, RoutedEventArgs e) + { + double m = 0; + try + { + this.tsettingswage.Text = this.tsettingswage.Text.Replace(',', '.'); + m = Convert.ToDouble(this.tsettingswage.Text, new CultureInfo("en-US")); + } catch(Exception) { + MessageBox.Show("Invaild input"); + return; + } + this.settings.SettingsWage = m; + this.settings.SettingsHourly = this.tsettingshourly.IsChecked.Value; + this.settings.SettingsSalary = this.tsettingssalary.IsChecked.Value; + GetMoneyPerSecond(); + LoadStatistics(); + this.bsettings.Visibility = System.Windows.Visibility.Collapsed; + Canvas.SetZIndex(this.bsettings, 0); + } + + private void ApplicationBarIconButton_Click_1(object sender, EventArgs e) + { + this.bstat.Visibility = System.Windows.Visibility.Visible; + } + + private void tstatclose_Click(object sender, RoutedEventArgs e) + { + this.bstat.Visibility = System.Windows.Visibility.Collapsed; + } + + private void bstart_Click(object sender, RoutedEventArgs e) + { + starttime = DateTime.Now; + bstop.IsEnabled = true; + bstart.IsEnabled = false; + this.thread = new Thread(this.TimeRunner); + this._stop = false; + this.thread.Start(); + while (!this.thread.IsAlive) ; + } + private void TimeRunner() + { + while (!_stop) + { + DateTime now = DateTime.Now; + TimeSpan d = now.Subtract(starttime); + Deployment.Current.Dispatcher.BeginInvoke(() => + { + this.ttime.Text = Convert.ToInt32(Math.Floor(d.TotalMinutes)).ToString().PadLeft(2, '0') + ":" + d.Seconds.ToString().PadLeft(2, '0'); + this.tmoney.Text = "$" + Math.Round(d.TotalSeconds * this.moneypersecond, 2).ToString(); + }); + Thread.Sleep(50); + } + } + + private void bstop_Click(object sender, RoutedEventArgs e) + { + this._stop = true; + bstop.IsEnabled = false; + bstart.IsEnabled = true; + PoopItem newPoop = new PoopItem { Start = starttime, Stop = DateTime.Now }; + PoopItems.Add(newPoop); + PoopDB.PoopItems.InsertOnSubmit(newPoop); + LoadStatistics(); + } + + private void tstatreset_Click(object sender, RoutedEventArgs e) + { + PoopItems.Clear(); + var poopItemsInDB = from PoopItem poop in PoopDB.PoopItems select poop; + PoopDB.PoopItems.DeleteAllOnSubmit(poopItemsInDB); + PoopDB.SubmitChanges(); + LoadStatistics(); + } + } + public class PoopDataContext : DataContext + { + public static string DBConnectionString = "Data Source=isostore:/Poop.sdf"; + public PoopDataContext(string connectionString) : base(connectionString) { } + public Table PoopItems; + } +} \ No newline at end of file diff --git a/GoldShit/GoldShit/PoopItem.cs b/GoldShit/GoldShit/PoopItem.cs new file mode 100644 index 0000000..7eb9a41 --- /dev/null +++ b/GoldShit/GoldShit/PoopItem.cs @@ -0,0 +1,98 @@ +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using System.Data.Linq; +using System.Data.Linq.Mapping; +using System.ComponentModel; +using System.Collections.ObjectModel; + +namespace GoldShit +{ + [Table] + public class PoopItem : INotifyPropertyChanged, INotifyPropertyChanging + { + private int _PoopItemId; + [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false, AutoSync = AutoSync.OnInsert)] + public int PoopItemId + { + get + { + return _PoopItemId; + } + set + { + if (_PoopItemId != value) + { + NotifyPropertyChanging("PoopItemId"); + _PoopItemId = value; + NotifyPropertyChanged("PoopItemId"); + } + } + } + private DateTime _start; + [Column] + public DateTime Start + { + get + { + return _start; + } + set + { + if (_start != value) + { + NotifyPropertyChanging("Start"); + _start = value; + NotifyPropertyChanged("Start"); + } + } + } + private DateTime _stop; + [Column] + public DateTime Stop + { + get + { + return _stop; + } + set + { + if (_stop != value) + { + NotifyPropertyChanging("Stop"); + _stop = value; + NotifyPropertyChanged("Stop"); + } + } + } + [Column(IsVersion = true)] + private Binary _version; + #region INotifyPropertyChanged Members + public event PropertyChangedEventHandler PropertyChanged; + private void NotifyPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + { + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + #endregion + #region INotifyPropertyChanging Members + public event PropertyChangingEventHandler PropertyChanging; + private void NotifyPropertyChanging(string propertyName) + { + if (PropertyChanging != null) + { + PropertyChanging(this, new PropertyChangingEventArgs(propertyName)); + } + } + #endregion + } +} diff --git a/GoldShit/GoldShit/Properties/AppManifest.xml b/GoldShit/GoldShit/Properties/AppManifest.xml new file mode 100644 index 0000000..a955232 --- /dev/null +++ b/GoldShit/GoldShit/Properties/AppManifest.xml @@ -0,0 +1,6 @@ + + + + diff --git a/GoldShit/GoldShit/Properties/AssemblyInfo.cs b/GoldShit/GoldShit/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..05b95a5 --- /dev/null +++ b/GoldShit/GoldShit/Properties/AssemblyInfo.cs @@ -0,0 +1,37 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// Allgemeine Informationen über eine Assembly werden über die folgende +// Attributgruppe gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("GoldShit")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("GoldShit")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID ist für die ID der typelib, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("76a5aed7-0463-48ac-aa3f-7e1bd08cd011")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die Standardwerte für Revisions- und Buildnummer verwenden +// übernehmen, indem Sie "*" wie folgt verwenden: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: NeutralResourcesLanguageAttribute("de-DE")] diff --git a/GoldShit/GoldShit/Properties/WMAppManifest.xml b/GoldShit/GoldShit/Properties/WMAppManifest.xml new file mode 100644 index 0000000..e734e9d --- /dev/null +++ b/GoldShit/GoldShit/Properties/WMAppManifest.xml @@ -0,0 +1,35 @@ + + + + + ApplicationIcon.png + + + + + + + + + + + + + + + + + + + + + + + Background.png + 0 + GoldShit + + + + + diff --git a/GoldShit/GoldShit/SplashScreenImage.jpg b/GoldShit/GoldShit/SplashScreenImage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b23248cd8cd4272919b090e414137dbff12ef432 GIT binary patch literal 16847 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 Y04rbIoe7asKK*+=0Uvd+BjjY!KU@W!D*ylh literal 0 HcmV?d00001 diff --git a/GoldShit/GoldShit/icons/appbar.back.rest.png b/GoldShit/GoldShit/icons/appbar.back.rest.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc2b92147faad38be33e6630cb94439df579bf7 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@jFO%%jv*Dd-pu^V+hibcbZsJoTO!L%7xf|**@L_#%mvJ5 z4ZN?ioBm5I(7m%&ai6!IN`dD4>375rMr89>Z+o2h+>L=rpn-u!fq{|Z!+8c*pACk` zq?_MvJF;|E<()@8iVu1U0`)AeI3GDIZJlc_>Knum^k_3f#gX{r&sLfZ?tdzM6V;dx z?B%-W-Q~}=K-ErcLBvm{>uU2q6g~PVdr$G%mY{lW`KIVG!AKediS4u`%!2ve(T2?k!k(`SniwuLhT$es8=mc}w70$8DTSU$qqN zE)?k$FA~^!Ez__=hhfs}mA~}1Tu5SYDvfUJC9B2L`5;&HW6_44Vr#z9>Iq RV+#yP22WQ%mvv4FO#tj1ly(3B literal 0 HcmV?d00001 diff --git a/GoldShit/GoldShit/icons/appbar.favs.rest.png b/GoldShit/GoldShit/icons/appbar.favs.rest.png new file mode 100644 index 0000000000000000000000000000000000000000..fec3c2bc37e61ade939a6c41f2aca007c9607a4f GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@jOm^(jv*Dd-ppv^Z88vWU0KL*hrzsnWln{e;PE@3(n>?k!xDIqN|BZPt0x%mxf#)Np;dmb7u?=Fw? z%utx$prtIXqGEb{&eVWU$vSsqoDvLwO}Q)bxV-m<_^!H>mrCc%H$5GBZ=QURUkF1> z$3gAx&h6PJBjaDmG_1SSV6UU{|HvxQHCz{NzsZ_Vlctj$%y8!e%Re=hxNU}J=az1D zTb2>0C7qiUZMvyq;m*~JD%@vdpU1AaY8s<-c4=0`>jyn89~}55uRo~&ApOI_dxz`p zn%}+SCVJ|4*6u~=B4I_FSOWa6ev3Q*!m8pa3&XdDlegBrki5j&AoEl(s7^mQ<{^_q tO2NNHq1J}~x1M0&IRHiVY#&4u7;+PDJ*?fC%n6Ja22WQ%mvv4FO#nb!y^#O_ literal 0 HcmV?d00001 diff --git a/GoldShit/GoldShit/icons/appbar.feature.settings.rest.png b/GoldShit/GoldShit/icons/appbar.feature.settings.rest.png new file mode 100644 index 0000000000000000000000000000000000000000..899b98367e55ac3df0bf5db9ca4f9f164dacf1ed GIT binary patch literal 543 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@j0Zhk978H@y_wmV+iW1<%6y8U=Rux>*$0lE3w{@R9MnC` z6r`6(A7JxUPiVQodB^(Yoq0O9osO-Nez~uNsi(2}M~&U2Qxco2Q?Bl2pU%M1fIuoM zR;^ml7_~vp=jboX>q|IKzZBuVvzm4H?0DWcG0xA~?wo(-?#EDcB$R#G0lNt4rV>kr zRaf|>tlzwl$q}=Nd+~#BcG^*0zJjy8%u6!nC(0$xNO%!*;-l#~|2sc@ZwWbVu${HT zAjd5|?#8!eKV&{wq?Inc@JM*acZV}u)_XH3{u6{1-oD!MpbXXwBCgpa@e*kYDhBhNs&Nyns9xPZ!6Kid#tu zDuM<*SrS(rTG-gwZe=qt-pW#Vqw^~3z%!Su>;ol_7&04n&YdO|@NorORrUd{6)O_A i7|309@aJV