async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
        {
            var item = args.SelectedItem as DtoClassAvailable;

            if (item == null)
            {
                return;
            }

            var teacher = App.LoggedUser;

            var bookClass = new DtoNewClass
            {
                ClassID       = item.ClassID,
                Name          = item.Name,
                TeacherID     = teacher.UserID,
                TeacherName   = teacher.Name,
                AvailableDate = DateTime.Now,
                Time          = DateTime.Now.TimeOfDay,
                Token         = teacher.Token
            };

            await viewModel.MasterNavigateTo(new TeacherSchedulePage(bookClass));

            // Manually deselect item
            ListItems.SelectedItem = null;
        }
Exemple #2
0
        public async Task <List <DtoTeacherSchedule> > GetScheduleClass(DtoNewClass schedule)
        {
            var uri = new Uri(string.Format(_apiUrl + "AlumnoMateria/GetListProfesorMateriaApp?idMateria={0}", schedule.ClassID));

            HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, uri);

            message.Headers.Add("Token", schedule.Token);

            HttpResponseMessage response = await _client.SendAsync(message);

            var result = JsonConvert.DeserializeObject <dynamic>(response.Content.ReadAsStringAsync().Result);

            var materiasCollection = new List <DtoTeacherSchedule>();

            foreach (var m in result)
            {
                materiasCollection.Add(new DtoTeacherSchedule
                {
                    ScheduleID    = m.IdProfesorMateria,
                    ClassID       = m.IdMateria,
                    TeacherID     = m.IdProfesor,
                    AvailableDate = m.FechaHora,
                    Latitude      = m.Latitud,
                    Longitude     = m.Longitud,
                    ClassName     = m.NombreMateria,
                    TeacherName   = m.NombreProfesor,
                    Token         = schedule.Token,
                });
            }

            return(materiasCollection);
        }
Exemple #3
0
        public async Task SaveClass(DtoNewClass item)
        {
            var uri = new Uri(string.Format(_apiUrl + "ProfesorMateria/InsProfesorMateriaApp", "ProfesorMateriaApp"));

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri);

            var json = JsonConvert.SerializeObject(
                new {
                IdProfesorMateria = new Random().Next(),
                IdMateria         = item.ClassID,
                IdProfesor        = item.TeacherID,
                FechaHora         = item.AvailableDate + item.Time,
                Latitud           = item.CurrentLatitude,
                Longitud          = item.CurrentLongitude,
                NombreMateria     = item.Name,
                NombreProfesor    = item.TeacherName
            });

            request.Headers.Add("Token", item.Token);
            request.Content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await _client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception("No se pudor registrar la materia, intente de nuevo.");
            }
        }
Exemple #4
0
        public TeacherScheduleViewModel(DtoNewClass selectedClass)
        {
            _selectedClass = selectedClass;

            Items            = new ObservableCollection <DtoTeacherSchedule>();
            LoadItemsCommand = new Command(async() => await GetItemsDataSource());
        }
 public TeacherSchedulePage(DtoNewClass selectedClass)
 {
     InitializeComponent();
     Title          = "Horarios disponibles";
     BindingContext = viewModel = new TeacherScheduleViewModel(selectedClass);
 }
 public RegisterClassPageViewModel(DtoNewClass item)
 {
     _item       = item;
     SaveCommand = new Command(async() => await SaveClass());
 }