private async Task HentPostOversigt()
        {
            Exception exception = null;

            try
            {
                Master.IsBusy = true;
                var svar = await AdvosysKlient.HentMinTidregAsync();

                var poster = svar.Poster
                             .Select(p => new PostOversigtViewModel(p))
                             .ToList();
                OversigtListView.ItemsSource  = poster;
                OversigtListView.SelectedItem = poster.FirstOrDefault();
            }
            catch (WebException hrex)
            {
                Detail      = new HistorikPage(DateTime.Today);
                IsPresented = false;
                exception   = hrex;
            }
            catch (Exception ex)
            {
                exception = ex;
            }
            finally
            {
                Master.IsBusy = false;
            }

            if (exception != null)
            {
                await DisplayAlert("Advosys", "Der gik noget galt: " + exception.Message, "OK");
            }
        }
Beispiel #2
0
        private async Task HentPoster()
        {
            try
            {
                IsBusy = true;
                var svar = await AdvosysKlient.HentMinTidsregDagAsync(dato);

                var poster = svar.Poster
                             .OrderByDescending(p => p.FraKlokken)
                             .Select(p => new PostViewModel(dato, p))
                             .GroupBy(g => g.Dato)
                             .Select(g => new Group <DateTime, PostViewModel>(g.Key, g))
                             .ToList();
                HistorikListView.ItemsSource = poster;

                if (poster.Count == 0)
                {
                    ShowEmptyLabel("Der findes ingen tidregistreringer for denne dato.");
                }
                else
                {
                    EmptyLabel.IsVisible = false;
                }
            }
            catch (Exception ex)
            {
                ShowEmptyLabel("Der kunne ikke hentes tidsregistreringer for denne dato: " + ex.Message);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #3
0
        private async Task Refresh()
        {
            if (geolocator == null)
            {
                return;
            }

            //var location = await geolocator.GetPositionAsync(30000);
            //var koordinat = new Koordinat(location.Latitude, location.Longitude);
            var koordinat = new Koordinat(55.708392, 9.526146);

            try
            {
                IsBusy = true;
                SearchBar.IsEnabled = false;

                var svar = await AdvosysKlient.HentSagslisteOgKoderAsync(koordinat);

                var close = sager.SingleOrDefault(g => g.Key == "I nærheden");
                sager.Remove(close);
                sager.Insert(0, new Group <string, Sag>("I nærheden", svar.Sager));
                FejlLabel.IsVisible = false;
            }
            catch
            {
            }
            finally
            {
                SearchBar.IsEnabled = true;
                IsBusy = false;
                SagerListView.IsRefreshing = false;
            }

            FiltrerSagsliste();
        }
Beispiel #4
0
        private async Task Refresh()
        {
            Exception exception = null;

            try
            {
                IsBusy = true;
                SearchBar.IsEnabled = false;

                var svar = await AdvosysKlient.HentSagslisteOgKoderAsync(null);

                cache.Set(Key, svar.Aktiviteter.ToList());
                FejlLabel.IsVisible = false;
            }
            catch (WebException)
            {
                FejlLabel.IsVisible = true;
            }
            catch
            {
            }
            finally
            {
                SearchBar.IsEnabled = true;
                IsBusy = false;
                AktiviteterListView.IsRefreshing = false;
            }

            HentFraCache();
            FiltrerAktivitetsliste();
        }
        private async void Slet()
        {
            try
            {
                await AdvosysKlient.SletTidsregistreringAsync(post.Id);

                MessagingCenter.Send(this, "Refresh");
            }
            catch (Exception)
            {
                MessagingCenter.Send(this, "SletFailed");
            }
        }
Beispiel #6
0
        public async Task HentSagerOgAktiviteter()
        {
            try
            {
                var svar = await AdvosysKlient.HentSagslisteOgKoderAsync(null);

                cache.Set("Sager", svar.Sager.ToList());
                cache.Set("Aktiviteter", svar.Aktiviteter.ToList());
            }
            catch (Exception)
            {
            }
        }
        protected override async void OnAppearing()
        {
            base.OnAppearing();

            var cache = Resolver.Resolve <ISimpleCache>();

            if (cache != null)
            {
                var cachedPosts = cache.Get <List <TidsregistreringCache> >(TidsregistreringCache.Key);
                var kø          = new Queue <TidsregistreringCache>(cachedPosts);

                while (kø.Count > 0)
                {
                    var post = kø.Dequeue();

                    try
                    {
                        if (post.ErNy)
                        {
                            await AdvosysKlient.RegistrerTidAsync(
                                post.Sag,
                                post.Aktivitet,
                                post.Dato.Date.Add(post.FraKlokken.TimeOfDay),
                                (int)post.Forbrugt.TotalMinutes,
                                post.Beskrivelse);

                            // Send besked til achievement system.
                            MessagingCenter.Send(this, "TidRegistreret");
                        }
                        else
                        {
                            await AdvosysKlient.RetTidsregistreringAsync(
                                post.Id,
                                post.Sag,
                                post.Aktivitet,
                                post.Dato.Date.Add(post.FraKlokken.TimeOfDay),
                                (int)post.Forbrugt.TotalMinutes,
                                post.Beskrivelse);
                        }
                    }
                    catch
                    {
                        kø.Enqueue(post);
                        break;
                    }
                }

                cache.Replace(TidsregistreringCache.Key, kø.ToList());

                if (cachedPosts.Count > 0 && kø.Count == 0)
                {
                    await DisplayAlert("Gemte tidsregistreringer", "De gemte tidsregistreringer blev afsendt.", "OK");
                }
            }

            if (notLoaded == false)
            {
                await HentPostOversigt();

                notLoaded = true;
            }
        }
Beispiel #8
0
        public async Task Gem()
        {
            if (IsBusy)
            {
                return;
            }

            var sag           = SelectedSag;
            var aktivitet     = SelectedAktivitet;
            var datoOgTid     = new DateTimeOffset(dato.Date).Add(fraKlokken);
            var antalMinutter = (int)Tidsforbrug.TotalMinutes;  // Rund op til nærmeste femte minut eller hvordan det var.
            var beskrivelse   = Beskrivelse ?? string.Empty;

            try
            {
                IsBusy = true;

                if (id == null)
                {
                    await AdvosysKlient.RegistrerTidAsync(sag, aktivitet, datoOgTid, antalMinutter, beskrivelse);

                    // Send besked til achievement system.
                    MessagingCenter.Send(this, "TidRegistreret");
                }
                else
                {
                    await
                    AdvosysKlient.RetTidsregistreringAsync(id, sag, aktivitet, datoOgTid, antalMinutter, beskrivelse);
                }

                await Navigation.PopAsync();
            }
            catch (HttpRequestException ex)
            {
                MessagingCenter.Send(this, "TidsregistreringFejlede", ex);

                var tidsregistreringer = cache.Get <List <TidsregistreringCache> >(TidsregistreringCache.Key);

                if (!tidsregistreringer.Any(t =>
                                            t.Beskrivelse == Beskrivelse && t.Sag.Nummer == SelectedSag.Nummer &&
                                            t.Aktivitet.Kode == SelectedAktivitet.Kode))
                {
                    tidsregistreringer.Add(new TidsregistreringCache
                    {
                        Sag         = SelectedSag,
                        Aktivitet   = SelectedAktivitet,
                        Beskrivelse = Beskrivelse,
                        Dato        = dato.Date,
                        Forbrugt    = Tidsforbrug,
                        FraKlokken  = DateTime.MinValue.Add(Tidspunkt),
                        Id          = id
                    });
                    cache.Replace(TidsregistreringCache.Key, tidsregistreringer);
                }
            }
            catch (Exception ex)
            {
                MessagingCenter.Send(this, "TidsregistreringFejlede", ex);
            }
            finally
            {
                IsBusy = false;
            }
        }