public ActivityAddAndUpdatePage(Activity activity = null) { foreach (var activityType in (Enums.ActivityTypes[])Enum.GetValues(typeof(Enums.ActivityTypes))) { activityTypesDictionary.Add(activityType, Enums.GetEnumDescription(activityType)); } var mainGrid = new ExGrid() { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Padding = new Thickness(20, 0, 20, 0) }; //mainGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); //mainGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); //mainGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); //mainGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); TableSection tableSection = null; TableRoot tableRoot = null; if (activity == null) { tableSection = new TableSection("Aktivite Ekle"); tableRoot = new TableRoot("Aktivite Ekle"); } else { tableSection = new TableSection("Aktivite Güncelle"); tableRoot = new TableRoot("Aktivite Güncelle"); } var activityNameEntry = new ExEntry() { Placeholder = "Aktivite Adı", }; var activityNameEntryViewCell = new ViewCell(); if (activity != null) { var activityNameLabel = new ExLabel() { Text = "Aktivite Adı:", TextColor = Color.Blue, HorizontalTextAlignment = TextAlignment.Center }; activityNameEntryViewCell.View = new ExStackLayout() { Children = { activityNameLabel, activityNameEntry } }; } else { activityNameEntryViewCell.View = activityNameEntry; } tableSection.Add(activityNameEntryViewCell); var activityTypesPicker = new ExPicker() { Title = "Aktivite Türünü Seçiniz", TextColor = Color.Black, ItemsSource = activityTypesDictionary.Values.ToList() }; var activityTypesPickerViewCell = new ViewCell(); if (activity != null) { var activityTypesPickerLabel = new ExLabel() { Text = "Aktivite Türü:", TextColor = Color.Blue, HorizontalTextAlignment = TextAlignment.Center }; activityTypesPickerViewCell.View = new ExStackLayout() { Children = { activityTypesPickerLabel, activityTypesPicker } }; } else { activityTypesPickerViewCell.View = activityTypesPicker; } tableSection.Add(activityTypesPickerViewCell); var activityIsActivePicker = new ExPicker() { Title = "Aktivite Aktiflik Durumu", TextColor = Color.Black, ItemsSource = isActiveStatusDictionary.Values.ToList() }; if (activity != null) { var activityIsActivePickerLabel = new ExLabel() { Text = "Aktivite Aktiflik Durumu:", TextColor = Color.Blue, HorizontalTextAlignment = TextAlignment.Center }; isActiveStatusDictionary.Add(false, "Aktif Değil"); isActiveStatusDictionary.Add(true, "Aktif"); activityIsActivePicker.ItemsSource = isActiveStatusDictionary.Values.ToList(); activityIsActivePicker.SelectedItem = isActiveStatusDictionary .FirstOrDefault(p => p.Key == activity.IsActive).Value; var activityIsActivePickerViewCell = new ViewCell { View = new ExStackLayout() { Children = { activityIsActivePickerLabel, activityIsActivePicker } } }; tableSection.Add(activityIsActivePickerViewCell); activityNameEntry.Text = activity.ActivityName; activityTypesPicker.SelectedItem = Enums.GetEnumDescription(activity.ActivityTypes); } var saveButton = new Exbutton() { Text = "Kaydet", BackgroundColor = Color.FromHex("#449D44"), TextColor = Color.White, CornerRadius = 10, HorizontalOptions = LayoutOptions.FillAndExpand }; var saveButtonViewCell = new ViewCell { View = saveButton }; tableSection.Add(saveButtonViewCell); tableRoot.Add(tableSection); var tableView = new TableView(tableRoot) { Intent = TableIntent.Form, HasUnevenRows = true, RowHeight = -1, HeightRequest = -2 }; mainGrid.Children.Add(tableView); saveButton.Clicked += async(sender, e) => { if (activityNameEntry.Text.Length != 0) { if (activity == null) { if (!_manager.IsThereActivity(activityNameEntry.Text, null)) { var newActivity = new Activity() { ActivityName = activityNameEntry.Text, ActivityRegisterDate = DateTime.Today, IsActive = true }; newActivity.ActivityTypes = activityTypesDictionary.FirstOrDefault(p => p.Value == activityTypesPicker.SelectedItem.ToString()).Key; if (_manager.InsertActivity(newActivity) > 0) { App.activityList = _manager.GetAllActivity(); await DisplayAlert("Başarı", "Aktivite ekleme işlemi başarılı bir şekilde sonuçlandı.", "Tamam"); await Navigation.PopAsync(true); } else { await DisplayAlert("Hata", "Ekleme işlemi sırasında hata oluştu.", "Tamam"); } } else { await DisplayAlert("Hata", "Girilen aktivite adı zaten başka bir aktivite için kullanılıyor.", "Tamam"); } } else { if (!_manager.IsThereActivity(activityNameEntry.Text, activity.ActivityId)) { var regulatedActivity = new Activity() { ActivityTypes = activityTypesDictionary.FirstOrDefault(p => p.Value == activityTypesPicker.SelectedItem.ToString()).Key, ActivityName = activityNameEntry.Text, ActivityId = activity.ActivityId, ActivityRegisterDate = activity.ActivityRegisterDate, IsActive = isActiveStatusDictionary.FirstOrDefault(p => p.Value == activityIsActivePicker.SelectedItem.ToString()).Key }; if (regulatedActivity.ActivityTypes == activity.ActivityTypes && regulatedActivity.IsActive == activity.IsActive && regulatedActivity.ActivityName.Equals(activity.ActivityName)) { App.activityList = _manager.GetAllActivity(); await DisplayAlert("Başarı", "Aktivite güncelleme işlemi tamamlandı.", "Tamam"); await Navigation.PopAsync(true); } else { if (regulatedActivity.ActivityTypes != activity.ActivityTypes) { var returned = await DisplayAlert("Dikkat", "Aktivitenin türünü değiştirdiniz. Devam ederseniz bu aktivitenin geçmişe yönelik tüm" + "verileri sıfırlanacaktır. Devam etmek istiyor musunuz?", "Devam", "İptal"); if (returned == true) { var listActivityStatuses = _manager.GetAllActivityStatusesById(activity.ActivityId); foreach (var activityState in listActivityStatuses) { _manager.UpdateActivityStatus(activityState.ActivityStatusId, 0); } if (_manager.UpdateActivity(regulatedActivity) > 0) { App.activityList = _manager.GetAllActivity(); await DisplayAlert("Başarı", "Aktivite güncelleme işlemi tamamlandı.", "Tamam"); await Navigation.PopAsync(true); } else { await DisplayAlert("Hata", "Güncelleme işlemi sırasında hata oluştu.", "Tamam"); } } else { await DisplayAlert("Uyarı", "Aktivite güncelleme işlemi kendi isteğiniz ile iptal edildi.", "Tamam"); } } else { if (_manager.UpdateActivity(regulatedActivity) > 0) { App.activityList = _manager.GetAllActivity(); await DisplayAlert("Başarı", "Aktivite güncelleme işlemi tamamlandı.", "Tamam"); await Navigation.PopAsync(true); } else { await DisplayAlert("Hata", "Güncelleme işlemi sırasında hata oluştu.", "Tamam"); } } } } else { await DisplayAlert("Hata", "Girilen aktivite adı zaten başka bir aktivite için kullanılıyor.", "Tamam"); } } } else { await DisplayAlert("Hata", "Aktivite Adı girilmesi zorunludur.", "Tamam"); } }; Content = mainGrid; }
public async Task CreateDisplay(DateTime?date) { try { this.IsBusy = true; if (date > DateTime.Today) { await DisplayAlert("Hata", "Bugünün tarihinden ileri bir tarih giremezsiniz.", "Tamam"); date = DateTime.Today; } var queryDate = new DateTime(date.Value.Year, date.Value.Month, date.Value.Day); mainExStackLayout.IsVisible = false; mainExStackLayout.Children.Clear(); this.datePicker.Date = queryDate; this.datePicker.Format = "dd/MM/yyyy"; this.datePicker.VerticalOptions = LayoutOptions.Center; this.datePicker.MaximumDate = DateTime.Today; //var datePicker = new ExDatePicker() //{ // Date = queryDate, // Format = "dd/MM/yyyy", // VerticalOptions = LayoutOptions.Center, // MaximumDate = DateTime.Today //}; var dateLabel = new ExLabel() { Text = "Günü Seçiniz:", TextColor = Color.Blue, Margin = new Thickness(10, 0, 0, 0), // HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; mainExStackLayout.Children.Add(dateLabel); mainExStackLayout.Children.Add(datePicker); mainExStackLayout.Children.Add(datePicker); var allActivities = _manager.GetAllActivity(date, true); foreach (var activity in allActivities) { if (!_manager.IsThereActivityStatus(activity.ActivityId, queryDate)) { _manager.InsertActivityStatus(activity.ActivityId, queryDate); } } var allActivitiesNoFilter = _manager.GetAllActivity(); var allActivityStatus = _manager.GetAllActivityStatuses(queryDate); var activityStatusList = allActivityStatus.Select(p => new ActivityStatusViewModel() { ActivityName = allActivitiesNoFilter.FirstOrDefault(a => a.ActivityId == p.ActivityId) != null ? allActivitiesNoFilter.FirstOrDefault(a => a.ActivityId == p.ActivityId).ActivityName : "", ActivityValue = p.ActivityValue, ActivityStatusId = p.ActivityStatusId, ActivityTypes = allActivitiesNoFilter.FirstOrDefault(a => a.ActivityId == p.ActivityId) != null ? allActivitiesNoFilter.FirstOrDefault(a => a.ActivityId == p.ActivityId).ActivityTypes : Enums.ActivityTypes.YapildiYapilmadi }).ToList(); exPickers = new ExPicker[activityStatusList.Count(p => p.ActivityTypes == Enums.ActivityTypes.YapildiYapilmadi)]; exEntries = new ExNumericEntry[activityStatusList.Count(p => p.ActivityTypes != Enums.ActivityTypes.YapildiYapilmadi)]; var exPickersCounter = 0; var exEntryCellsCounter = 0; var lst = new List <ViewCell>(); if (activityStatusList.Count > 0) { var tabIndex = 0; foreach (var activity in activityStatusList) { if (activity.ActivityTypes == Enums.ActivityTypes.Sayi) { exEntries[exEntryCellsCounter] = new ExNumericEntry() { Keyboard = Keyboard.Text, Placeholder = activity.ActivityValue.ToString(), ReturnCommandParameter = activity.ActivityStatusId, TabIndex = tabIndex, HorizontalTextAlignment = TextAlignment.Center, }; mainExStackLayout.Children.Add(new ExLabel() { Text = activity.ActivityName, TextColor = Color.Blue, Margin = new Thickness(10, 0, 0, 0), // HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, }); mainExStackLayout.Children.Add(exEntries[exEntryCellsCounter]); exEntryCellsCounter++; } else { exPickers[exPickersCounter] = new ExPicker() { ItemsSource = exPickersValue.Values.ToList(), SelectedItem = exPickersValue.FirstOrDefault(p => p.Key == int.Parse(activity.ActivityValue.ToString())).Value, Title = "Durum Seçiniz", ClassId = activity.ActivityStatusId.ToString(), TabIndex = tabIndex }; mainExStackLayout.Children.Add(new ExLabel() { Text = activity.ActivityName, TextColor = Color.Blue, Margin = new Thickness(10, 0, 0, 0), // HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }); mainExStackLayout.Children.Add(exPickers[exPickersCounter]); exPickersCounter++; } tabIndex++; } } var saveButton = new Exbutton() { Text = "Kaydet", BackgroundColor = Color.FromHex("#449D44"), TextColor = Color.White, CornerRadius = 10, VerticalOptions = LayoutOptions.Center }; saveButton.Clicked += async(sender, e) => { foreach (var exEntry in exEntries) { if (exEntry.Text != null) { double value; if (double.TryParse(exEntry.Text, NumberStyles.Float, CultureInfo.InvariantCulture, out value)) { _manager.UpdateActivityStatus(int.Parse(exEntry.ReturnCommandParameter.ToString()), value); } } // DisplayAlert("Deneme", $"{Convert.ToDouble(exEntry.Text)} {exEntry.ReturnCommandParameter}", "a"); } foreach (var exPicker in exPickers) { _manager.UpdateActivityStatus(int.Parse(exPicker.ClassId.ToString()), exPickersValue.FirstOrDefault(p => p.Value == exPicker.SelectedItem).Key); //DisplayAlert("Deneme", $"{exPicker.SelectedItem} {exPicker.ClassId}", "a"); } await DisplayAlert("Başarı", "Kayıt işlemi başarı ile tamamlandı.", "Tamam"); }; mainExStackLayout.Children.Add(saveButton); await Task.Delay(1000); mainExStackLayout.IsVisible = true; await Task.Delay(1380); this.IsBusy = false; } catch (Exception e) { DisplayAlert("Hata", e.Message, "Tamam"); } }