Ejemplo n.º 1
0
 public Trip(TripDTO.Detail dto)
 {
     TripId     = dto.TripId;
     Name       = dto.Name;
     Color      = dto.Color;
     Start      = dto.Start;
     End        = dto.End;
     Travelers  = dto.Travelers.Select(t => new Person(t)).ToList();
     Invited    = dto.Invited.Select(t => new Person(t)).ToList();
     Route      = new Route(dto.Route);
     Items      = dto.Items.Select(i => new Item(i)).ToList();
     Categories = dto.Categories.Select(c => new Category(c)).ToList();
 }
Ejemplo n.º 2
0
        public async void GetTripAsync(int tripId)
        {
            try
            {
                _toDoCurrent   = 0;
                _toDoTotal     = 0;
                _toPackCurrent = 0;
                _toPackTotal   = 0;
                var            email = (string)ApplicationData.Current.LocalSettings.Values["current_user_email"];
                TripDTO.Detail trip  = await TripController.GetTripAsync(tripId);

                Trip            = new Trip(trip);
                this.Categories = Trip.Categories.Select(c => c.Name).ToList();
                this.Travelers  = Trip.Travelers;
                ToDoList.Clear();
                ToPackList.Clear();
                var toDoList = Trip.Items.Where(i => i.ItemType == ItemType.ToDo).ToList();
                toDoList.ForEach(i =>
                {
                    var person = i.Persons.FirstOrDefault(p => p.PersonEmail.ToLower() == email.ToLower());
                    if (person != null)
                    {
                        var amount = i.Persons.Where(p => p.IsDone != true).ToList().Count();
                        var forOnePersonOverview              = new ItemDTO.ForOnePersonOverview(i.ItemId, i.Name, i.ItemType, i.Category.Name, amount, person);
                        forOnePersonOverview.PropertyChanged += async(sender, e) => await UpdateItemAsync((ItemDTO.ForOnePersonOverview)sender);
                        ToDoList.Add(forOnePersonOverview);
                    }
                    _toDoTotal   += i.Persons.Count();
                    _toDoCurrent += i.Persons.Where(p => p.IsDone == true).ToList().Count();
                });
                decimal toDoPercent = ((decimal)_toDoCurrent / (decimal)_toDoTotal) * 100;
                ToDoProgress       = Convert.ToInt32(toDoPercent);
                ToDoProgressFormat = $"{ToDoProgress}%";

                var toPackList = Trip.Items.Where(i => i.ItemType == ItemType.ToPack).ToList();
                toPackList.ForEach(i =>
                {
                    var person = i.Persons.FirstOrDefault(p => p.PersonEmail.ToLower() == email.ToLower());
                    if (person != null)
                    {
                        var amount = i.Persons.Where(p => p.IsDone != true).ToList().Count();
                        var forOnePersonOverview              = new ItemDTO.ForOnePersonOverview(i.ItemId, i.Name, i.ItemType, i.Category.Name, amount, person);
                        forOnePersonOverview.PropertyChanged += async(sender, e) => await UpdateItemAsync((ItemDTO.ForOnePersonOverview)sender);
                        ToPackList.Add(forOnePersonOverview);
                    }
                    _toPackTotal   += i.Persons.Count();
                    _toPackCurrent += i.Persons.Where(p => p.IsDone == true).ToList().Count();
                });
                decimal toPackPercent = ((decimal)_toPackCurrent / (decimal)_toPackTotal) * 100;
                ToPackProgress       = Convert.ToInt32(toPackPercent);
                ToPackProgressFormat = $"{ToPackProgress}%";
                GotDataNotSuccesfull = false;
                BuildShareString();
            }
            catch
            {
                GotDataNotSuccesfull = true;
            }
            IsBusy      = false;
            LoadingDone = true;
        }