Example #1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.ReservacionSalaJuntasLayout);
            Toolbar toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetActionBar(toolbar);
            ActionBar.Title = Resources.GetString(Resource.String.str_meeting_room_reservation);
            ActionBar.SetDisplayHomeAsUpEnabled(true);

            FindViewById <TextView>(Resource.Id.txtSeleccionarFecha).Text      = fecha_seleccionada = DateTime.Now.ToString("yyyy-MM-dd");
            FindViewById <TextView>(Resource.Id.txtSeleccionarHoraInicio).Text = hora_inicio_seleccionada = CalendarHelper.RoundUp(DateTime.Now, TimeSpan.FromMinutes(30)).ToString("HH:mm");
            FindViewById <TextView>(Resource.Id.txtSeleccionarHoraFin).Text    = hora_fin_seleccionada = CalendarHelper.RoundUp(DateTime.Now.AddMinutes(30), TimeSpan.FromMinutes(30)).ToString("HH:mm");

            FindViewById <TextView>(Resource.Id.lblCreditosDisponibles).Text   = SalasController.GetCreditosDisponibles(storage.Get("Usuario_Id")).ToString();
            FindViewById <LinearLayout>(Resource.Id.llSeleccionarFecha).Click += (sender, e) =>
            {
                DatePickerMinFragment frag = DatePickerMinFragment.NewInstance(delegate(DateTime time)
                {
                    FindViewById <TextView>(Resource.Id.lblDiaFecha).Text         = time.DayOfWeek.ToString().Substring(0, 3);
                    FindViewById <TextView>(Resource.Id.lblDiaNumero).Text        = time.Day.ToString();
                    FindViewById <TextView>(Resource.Id.txtSeleccionarFecha).Text = fecha_seleccionada = time.ToString("yyyy-MM-dd");
                    SeleccionElemento();
                });
                frag.Show(FragmentManager, Resources.GetString(Resource.String.str_label_select_date));
            };

            FindViewById <LinearLayout>(Resource.Id.llSeleccionarHoraInicio).Click += (sender, e) =>
            {
                TimePickerIntervalFragment frag = TimePickerIntervalFragment.NewInstance(delegate(DateTime time)
                {
                    FindViewById <TextView>(Resource.Id.txtSeleccionarHoraInicio).Text = hora_inicio_seleccionada = time.ToString("HH:mm");
                    if (DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours < 0)
                    {
                        FindViewById <TextView>(Resource.Id.txtSeleccionarHoraFin).Text = hora_fin_seleccionada = time.AddMinutes(30).ToString("HH:mm");
                    }
                    SeleccionElemento();
                    FindViewById <TextView>(Resource.Id.lblHorasTotal).Text     = DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours.ToString();
                    FindViewById <TextView>(Resource.Id.lblCreditosUsados).Text = CalcularCreditos().ToString();
                });
                frag.Show(FragmentManager, Resources.GetString(Resource.String.str_label_select_hour_initial));
            };

            FindViewById <LinearLayout>(Resource.Id.llSeleccionarHoraFin).Click += (sender, e) =>
            {
                TimePickerIntervalFragment frag = TimePickerIntervalFragment.NewInstance(delegate(DateTime time)
                {
                    if (DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours > 0)
                    {
                        FindViewById <TextView>(Resource.Id.txtSeleccionarHoraFin).Text = hora_fin_seleccionada = time.ToString("HH:mm");
                        SeleccionElemento();
                        FindViewById <TextView>(Resource.Id.lblHorasTotal).Text     = DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours.ToString();
                        FindViewById <TextView>(Resource.Id.lblCreditosUsados).Text = CalcularCreditos().ToString();
                    }
                    else
                    {
                        Toast.MakeText(this, "Su hora de termino debe ser mayor a la hora de inicio", ToastLength.Short).Show();
                    }
                });
                frag.Show(FragmentManager, Resources.GetString(Resource.String.str_label_select_hour_final));
            };

            salas = SalasController.GetSalaJuntas(Intent.GetStringExtra("sucursal_id"), fecha_seleccionada, hora_inicio_seleccionada, hora_fin_seleccionada);
            FillImagenes();
            lvSalasJuntas = FindViewById <ListView>(Resource.Id.lvSalasJuntas);
            lvSalasJuntas.SetMinimumHeight(salas.Count * 200);
            lvSalasJuntas.Adapter    = new SalasJuntasListAdapter(salas);
            lvSalasJuntas.ItemClick += (sender, e) =>
            {
                sala_seleccionada = salas[e.Position];
            };


            FindViewById <RadioGroup>(Resource.Id.rgCapacidad).CheckedChange += (sender, e) =>
            {
                SeleccionElemento();
            };


            FindViewById <TextView>(Resource.Id.lblDiaFecha).Text       = DateTime.Parse(fecha_seleccionada).DayOfWeek.ToString().Substring(0, 3);
            FindViewById <TextView>(Resource.Id.lblDiaNumero).Text      = DateTime.Parse(fecha_seleccionada).Day.ToString();
            FindViewById <TextView>(Resource.Id.lblHorasTotal).Text     = DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours.ToString();
            FindViewById <TextView>(Resource.Id.lblCreditosUsados).Text = CalcularCreditos().ToString();//DateTime.Parse(hora_fin_seleccionada).Subtract(DateTime.Parse(hora_inicio_seleccionada)).TotalHours.ToString();


            FindViewById <TextView>(Resource.Id.lblAgendar).Click += delegate
            {
                if (sala_seleccionada != null)
                {
                    ShowConfirmacion();
                }
                else
                {
                    Toast.MakeText(this, "Seleccione una sala de reunión", ToastLength.Short).Show();
                }
            };
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.ReservaSalaJuntasLayout);
            Toolbar toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetActionBar(toolbar);
            ActionBar.Title = Resources.GetString(Resource.String.str_meeting_room_reservation);
            ActionBar.SetDisplayHomeAsUpEnabled(true);
            /*_viewPager = FindViewById<ViewPager>(Resource.Id.vpSucursal);*/
            salas = SalasController.GetSalaJuntas(Intent.GetStringExtra("sucursal_id"));

            /*niveles = SalasController.GetNivelesSucursal(Intent.GetStringExtra("sucursal_id"));
             * _viewPager.Adapter = new SalaJuntasAdapter(this, salas);*/
            //tlSalasJuntas = FindViewById<TableLayout>(Resource.Id.tlSalasJuntas);
            Horarios.Add(fecha_seleccionada, new List <double>());
            ListView lvSalasJuntas = FindViewById <ListView>(Resource.Id.lvSalasJuntas);

            lvSalasJuntas.Adapter       = new SalasJuntasListAdapter(salas);
            lvSalasJuntas.ChoiceMode    = ChoiceMode.Single;
            lvSalasJuntas.ItemSelected += (sender, e) =>
            {
                Console.WriteLine(((ListView)sender).ChildCount);
            };

            /*salas.ForEach(sala =>
             * {
             *  LayoutInflater liView = LayoutInflater;
             *  View SucursalView = liView.Inflate(Resource.Layout.SalasJuntasLayout, null, true);
             *  SucursalView.FindViewById<LinearLayout>(Resource.Id.llSalaJunta).Click += delegate
             *  {
             *      SucursalView.FindViewById<LinearLayout>(Resource.Id.llReserva).Visibility = ViewStates.Visible;
             *  };
             *  SucursalView.FindViewById<TextView>(Resource.Id.lblSalaJunta).Text = sala.Sala_Descripcion;
             *  SucursalView.FindViewById<TextView>(Resource.Id.tvCapacidad).Text = sala.Sala_Capacidad + "-" + (Convert.ToInt32(sala.Sala_Capacidad) + 2).ToString();
             *  SucursalView.FindViewById<TextView>(Resource.Id.tvNivel).Text = "Nivel " + Convert.ToInt32(sala.Sala_Nivel).ToString("00");
             *  TableRow row = new TableRow(this);
             *  row.AddView(SucursalView);
             *  tlSalasJuntas.AddView(row);
             * });*/
            FindViewById <TextView>(Resource.Id.lblCreditosDisponibles).Text   = SalasController.GetCreditosDisponibles(storage.Get("Usuario_Id")).ToString();
            FindViewById <LinearLayout>(Resource.Id.llSeleccionarFecha).Click += (sender, e) =>
            {
                DatePickerMinFragment frag = DatePickerMinFragment.NewInstance(delegate(DateTime time)
                {
                    FindViewById <TextView>(Resource.Id.lblDiaFecha).Text  = time.DayOfWeek.ToString().Substring(0, 3);
                    FindViewById <TextView>(Resource.Id.lblDiaNumero).Text = time.Day.ToString();
                    fecha_seleccionada = time.ToString("d");
                    Horarios.Clear();
                    Horarios.Add(fecha_seleccionada, new List <double>());
                    UpdateHorasNoDisponibles();
                });
                frag.Show(FragmentManager, Resources.GetString(Resource.String.str_meeting_room_reservation));
            };
            FindViewById <TextView>(Resource.Id.lblDiaFecha).Text       = DateTime.Parse(fecha_seleccionada).DayOfWeek.ToString().Substring(0, 3);
            FindViewById <TextView>(Resource.Id.lblDiaNumero).Text      = DateTime.Parse(fecha_seleccionada).Day.ToString();
            FindViewById <TextView>(Resource.Id.lblHorasTotal).Text     = Horarios[fecha_seleccionada].Count.ToString();
            FindViewById <TextView>(Resource.Id.lblCreditosUsados).Text = creditos.ToString();

            /*Spinner spNivel = FindViewById<Spinner>(Resource.Id.spNivel);
             * spNivel.Adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, niveles.Keys.ToList());
             * spNivel.SetSelection(niveles.Count - 1);
             * spNivel.ItemSelected += (sender, e) =>
             * {
             *  salas = SalasController.GetSalaJuntas(Intent.GetStringExtra("sucursal_id"), niveles[((Spinner)sender).SelectedItem.ToString()]);
             *  _viewPager.Adapter = new SalaJuntasAdapter(this, salas);
             * };*/
            llhHorario = FindViewById <LinearLayout>(Resource.Id.llhHorario);
            SalasController.GetHorasNoDisponibles(fecha_seleccionada, salas[SalaSeleccionada].Sala_Id).ForEach(horas =>
            {
                HorasNoDisponibles.Add(DateTime.Parse(horas.Sala_Hora_Fin).Hour);
                UpdateHorasNoDisponibles();
            });

            /*_viewPager.PageSelected += (sender, e) =>
             * {
             *  HorasNoDisponibles.Clear();
             *  SalasController.GetHorasNoDisponibles(fecha_seleccionada, salas[_viewPager.CurrentItem].Sala_Id).ForEach(horas =>
             *  {
             *      HorasNoDisponibles.Add(DateTime.Parse(horas.Sala_Hora_Fin).Hour);
             *  });
             *  if (!Horarios.ContainsKey(salas[_viewPager.CurrentItem].Sala_Id))
             *      Horarios.Add(salas[_viewPager.CurrentItem].Sala_Id, new Dictionary<string, List<double>>());
             *  if (!Horarios[salas[_viewPager.CurrentItem].Sala_Id].ContainsKey(fecha_seleccionada))
             *      Horarios[salas[_viewPager.CurrentItem].Sala_Id].Add(fecha_seleccionada, new List<double>());
             *  UpdateHorasNoDisponibles();
             *  FillHorario();
             * };*/
            FindViewById <RelativeLayout>(Resource.Id.rlAgendar).Click += (sender, e) => ShowConfirmacion();
            UpdateHorasNoDisponibles();
            FillHorario();
            HorizontalScrollView scrollHoras = FindViewById <HorizontalScrollView>(Resource.Id.hsvHorario);

            scrollHoras.PostDelayed(delegate
            {
                if (Convert.ToInt32(Build.VERSION.Sdk) < 23)
                {
                    scrollHoras.ScrollTo(DateTime.Now.Hour * 200, 0);
                }
                else
                {
                    scrollHoras.ScrollTo(DateTime.Now.Hour * 400, 0);
                }
            }, 100);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.InvitadosLayout);
            SimpleStorage.SetContext(ApplicationContext);
            storage = SimpleStorage.EditGroup("Login");
            Toolbar toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetActionBar(toolbar);
            ActionBar.Title = Resources.GetString(Resource.String.RegistroInvitados);
            ActionBar.SetDisplayHomeAsUpEnabled(true);
            TextView lblFecha = FindViewById <TextView>(Resource.Id.lblFecha);

            lblFecha.Text = DateTime.Now.ToString("MMMM dd, yyyy hh:mm tt").ToUpper();
            FindViewById <Button>(Resource.Id.btnFecha).Click += (sender, e) =>
            {
                DatePickerMinFragment frag = DatePickerMinFragment.NewInstance(delegate(DateTime time)
                {
                    TimePickerFragment timeFrag = TimePickerFragment.NewInstance(delegate(DateTime hour)
                    {
                        lblFecha.Text = time.ToString("MMMM dd, yyyy ").ToUpper() + hour.ToString("hh:mm tt");
                    });
                    timeFrag.Show(FragmentManager, Resources.GetString(Resource.String.str_meeting_room_reservation));
                });
                frag.Show(FragmentManager, Resources.GetString(Resource.String.str_meeting_room_reservation));
            };
            Nombre       = FindViewById <EditText>(Resource.Id.txtNombre);
            Apellidos    = FindViewById <EditText>(Resource.Id.txtApellidos);
            Correo       = FindViewById <EditText>(Resource.Id.txtEmail);
            DatosBasicos = FindViewById <LinearLayout>(Resource.Id.llInvitados);

            Spinner ubicacion = FindViewById <Spinner>(Resource.Id.spUbicacion);
            Dictionary <string, string> sucursales = new SucursalController().GetSucursalInfo();
            List <string> display = sucursales.Keys.ToList();

            ubicacion.Adapter = new ArrayAdapter <string>(this, Resource.Drawable.spinner_style, display);

            EditText txtAsunto = FindViewById <EditText>(Resource.Id.txtAsunto);


            FindViewById <TextView>(Resource.Id.lblAgregarInvitado).Click += (sender, e) => AddDatosBasicos();
            FindViewById <TextView>(Resource.Id.lblEnviar).Click          += delegate
            {
                List <int>   invitados_id = new List <int>();
                AssetManager asset        = Assets;
                correoInvitacion = new StreamReader(asset.Open("Invitacion.html")).ReadToEnd();
                SucursalModel sucursal = new SucursalController().GetSucursalInfo(sucursales[ubicacion.SelectedItem.ToString()]);
                invitados.AsParallel().ToList().ForEach(invitado =>
                {
                    try
                    {
                        invitados_id.Add(new InvitadosController().RegistraInvitado(invitado.Usuario_Nombre, invitado.Usuario_Apellidos, invitado.Usuario_Correo_Electronico,
                                                                                    txtAsunto.Text, DateTime.Parse(lblFecha.Text), sucursales[ubicacion.SelectedItem.ToString()],
                                                                                    storage.Get("Usuario_Id"), storage.Get("Usuario_Tipo")));

                        email.SendMail(invitado.Usuario_Correo_Electronico, invitado.Usuario_Nombre + " " + invitado.Usuario_Apellidos,
                                       correoInvitacion.Replace("{{NOMBRE}}", invitado.Usuario_Nombre + " " + invitado.Usuario_Apellidos)
                                       .Replace("{{FECHA}}", lblFecha.Text)
                                       .Replace("{{SUCURSAL}}", sucursal.Sucursal_Descripcion)
                                       .Replace("{{CALLE}}", sucursal.Sucursal_Domicilio)
                                       .Replace("{{COLONIA}}", sucursal.Territorio.Colonia)
                                       .Replace("{{QR}}", "INVITADO"), "Tiene una invitación");
                        Toast.MakeText(this, Resource.String.str_general_data_saved, ToastLength.Short).Show();
                    }
                    catch (Exception e)
                    {
                        Toast.MakeText(this, Resource.String.str_general_save_error, ToastLength.Short).Show();
                        SlackLogs.SendMessage(e.Message, GetType().Name, "OnCreate");
                    }
                });
                if (invitados_id.Count != 0)
                {
                    Intent intent = new Intent(this, typeof(InvitadosConfirmacionActivity));
                    intent.PutExtra("Invitados_Id", JsonConvert.SerializeObject(invitados_id));
                    StartActivity(intent);
                    Finish();
                }
            };
        }