public override void InitilizeFunc(object obj = null) { IsRefreshing = true; var user = ApplicationSettings.CurrentUser; var eventsArticles = ApplicationSettings.CurrentUser.FavoritesArticleEvents.Select(item => { var result = new ArticleEventItem(item); result.DeleteItem += Result_DeleteItem; return(result); }).ToList(); Articles = new ObservableCollection <ArticleEventItem>( eventsArticles.Where(item => !item.StartDate.HasValue)); Events = new ObservableCollection <ArticleEventItem>( eventsArticles.Where(item => item.StartDate.HasValue)); var pins = ApplicationSettings.CurrentUser.FavoritesPlaces.Select(item => { var temp = new UserPinDescriptor(item); temp.DeleteFromFavorites += Pin_DeleteFromFavorites; return(temp); }); Pins = new ObservableCollection <UserPinDescriptor>(pins); IsRefreshing = false; }
public override void InitilizeFunc(object obj = null) { Device.BeginInvokeOnMainThread(() => { if (!_isRedact) { Pin = new UserPinDescriptor { Pin = new TKCustomMapPin { Position = _mapCenter, IsSmall = true, Scale = 3, Image = "empty_pin.png", ShowCallout = false, IsDraggable = true }, IsVisible = true, CategoriesBranch = new List <int>() }; IsPersonalMarker = !IsGuide; } else { IsPersonalMarker = true; } if (Device.OS == TargetPlatform.Android) { Pin.Pin.IsDraggable = false; } Pins = new ObservableCollection <TKCustomMapPin> { Pin.Pin }; MapCenter = new Position(Pin.Pin.Position.Latitude, Pin.Pin.Position.Longitude); }); //CheckRegion(); }
public AddPinView(UserPinDescriptor pin) { CurrentViewModel = new AddNewPinViewModel(pin); InitializeComponent(); Init(); }
public AddNewPinViewModel(UserPinDescriptor pin) { Pin = pin; _mapCenter = new Position(pin.Lat, pin.Lng); ValidCities = new List <DeserializeCitiesData>(); _pinCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinCategories.Select(item => { var temp = new PinCategory { CategoriesBranch = item.CategoriesBranch, Color = item.Color, Icon = item.Icon, Id = item.Id, PinIcon = item.PinIcon, IsVisible = true, ItemSelected = false, Name = item.Name, ParentId = item.ParentId }; temp.ItemTapped += Category_ItemTapped; return(temp); })); _pinSubCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinSubCategories.Select(item => { var temp = new PinCategory { CategoriesBranch = item.CategoriesBranch, Color = item.Color, Icon = item.Icon, PinIcon = item.PinIcon, Id = item.Id, IsVisible = false, ItemSelected = false, Name = item.Name, ParentId = item.ParentId }; temp.ItemTapped += Tag_ItemTapped; return(temp); })); foreach (var item in _pinSubCategories.Where(psc => psc.ParentId == Pin.BaseCategoryId)) { item.IsVisible = true; item.ItemSelected = Pin.Subcategories.Any(p => p.Id == item.Id); } OldPhotos = new ObservableCollection <string>(pin.PhotosMini); #region [ Для времени работы ] _weekViewModel = new WeekViewModel(); _workTimeViewModels = new List <WorkTimeViewModel>(); if (Pin.WorkTime != null && Pin.WorkTime.Count > 0) { foreach (var tempListOfDay in Pin.WorkTime.GroupBy(w => w.CloseTime.ToString() + w.OpenTime.ToString())) { var newWorkTimeViewModel = new WorkTimeViewModel(); if (_workTimeViewModels.All(wt => !wt.IsAdd)) { newWorkTimeViewModel.IsAdd = true; } newWorkTimeViewModel.PlusMinusClicked += WoktimeVm_PlusMinusClicked; newWorkTimeViewModel.CalendarClicked += WoktimeVm_CalendarClicked; foreach (var workTime in tempListOfDay) { newWorkTimeViewModel.Days.Add(new MyDayOfWeek((DayOfWeek)(workTime.Id == 7 ? 0 : workTime.Id)) { IsSelected = true }); newWorkTimeViewModel.StartTime = workTime.OpenTime; newWorkTimeViewModel.StopTime = workTime.CloseTime; _weekViewModel.Days.FirstOrDefault( d => d.Day == (DayOfWeek)(workTime.Id == 7 ? 0 : workTime.Id)) .IsSelected = true; } _workTimeViewModels.Add(newWorkTimeViewModel); } } else { var firstWoktimeVm = new WorkTimeViewModel(new List <MyDayOfWeek>(), true); firstWoktimeVm.PlusMinusClicked += WoktimeVm_PlusMinusClicked; firstWoktimeVm.CalendarClicked += WoktimeVm_CalendarClicked; _workTimeViewModels.Add(firstWoktimeVm); } #endregion [ Для времени работы ] #region [ Для телефонов ] _phoneViewModels = new List <PhoneViewModel>(); if (Pin.Phones != null && Pin.Phones.Count > 0) { foreach (var phone in Pin.Phones) { var newPhone = new PhoneViewModel(phone); if (newPhone.Phone.Primary) { newPhone.IsAdd = true; } _phoneViewModels.Add(newPhone); newPhone.PlusMinusClicked += Phone_PlusMinusClicked; } } else { var firstPhone = new PhoneViewModel(new Phone { Primary = true }, true); firstPhone.PlusMinusClicked += Phone_PlusMinusClicked; _phoneViewModels.Add(firstPhone); } #endregion [ Для телефонов ] _baseCategoryString = Pin.BaseCategoryName; _baseCategoryColor = _pinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).Color; _baseCategoryImage = _pinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).Icon; BaseCategorySelected = true; PinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).ItemSelected = true; _isRedact = true; Photos.CollectionChanged += Photos_CollectionChanged; PropertyChanged += AddNewPinViewModel_PropertyChanged; Pin.PropertyChanged += Pin_PropertyChanged; }
public PinDetailsViewModel(int id) { PinFromServer = ApplicationSettings.Service.GetMarkerDetails(id); if (PinFromServer == null) { return; } _id = id; _pin = new UserPinDescriptor { Pin = new TKCustomMapPin { Id = PinFromServer.Id, Position = new Position(PinFromServer.Lat, PinFromServer.Lng), Title = PinFromServer.Name, Image = PinFromServer.Pin, ShowCallout = false, IsDraggable = false, Subtitle = PinFromServer.Description }, Id = PinFromServer.Id, BaseCategoryId = PinFromServer.BaseCategoryId, BaseCategoryName = PinFromServer.CategoriesBranch.FirstOrDefault()?.Name ?? "", RootCategoryName = PinFromServer.CategoriesBranch.LastOrDefault()?.Name ?? "", PinImage = PinFromServer.Pin, InfoImage = PinFromServer.Logo, Photos = PinFromServer.Photos, PhotosMini = PinFromServer.PhotosMini, Photo = PinFromServer.Photo, Name = PinFromServer.Name, HexColor = PinFromServer.Color, Phones = PinFromServer.Phones.Any() ? PinFromServer.Phones : new List <Phone>(), WorkTime = PinFromServer.WorkTime, Subcategories = PinFromServer.Subcategories, //Phone = // PinFromServer.Phones.Any() ? PinFromServer.Phones.FirstOrDefault(item => item.Primary) : new Phone(), Description = " " + PinFromServer.Description, Street = PinFromServer.Street, House = PinFromServer.House, Adress = PinFromServer.Street + " " + PinFromServer.House, IsVisible = true, Introduction = PinFromServer.Introduction, Tags = PinFromServer.Subcategories.Select(item => item.Name).ToList(), WiFi = PinFromServer.Wifi, Personal = PinFromServer.Personal, HaveRelatedEvents = PinFromServer.HaveRelatedEvents }; var todayWorkTime = PinFromServer.WorkTime.FirstOrDefault( d => d.Id.ToDayOfWeek() == DateTime.Now.DayOfWeek); _openTime = todayWorkTime?.OpenTime; _closeTime = todayWorkTime?.CloseTime; _icon = PinFromServer.Icon; _isFavorite = ApplicationSettings.CurrentUser.FavoritesPlaces.Any(item => item.ServerId == id); _pins = new ObservableCollection <TKCustomMapPin> { _pin.Pin }; _mapCenter = new Position(_pin.Pin.Position.Latitude, _pin.Pin.Position.Longitude); Events = ApplicationSettings.Service.GetRelatedEventsFromMarker(_id, true) .Select(i => new RelatedEvent(new ArticleEventItem(i))) .ToList(); }