Exemplo n.º 1
0
        async void getCalls()
        {
            if (PropertiesManager.IsDateCallTrue())
            {
                PropertiesManager.SaveCallDate(dateToSend);
            }
            else
            {
                dateToSend = PropertiesManager.GetDateCall();
            }
            if (PropertiesManager.IsFirstDateCallTrue())
            {
                PropertiesManager.SaveFirstCallDate(1);
            }
            else
            {
                PropertiesManager.SaveFirstCallDate(PropertiesManager.GetFirstDataCall() + 1);
            }

            CheckConnection();
            ShowProgress("Validando");
            String times = "";

            if (PropertiesManager.GetFirstDataCall() > 1)
            {
                times = dateToSend.ToString("yyyy-MM-dd HH:MM:ss");
            }
            else
            {
                times = "0000-00-00 00:00:00";
            }
            //var times = dateToSend.ToString("yyyy-MM-dd HH:MM:ss");
            _calls = await ClientGuanajoven.getCalls(times);

            var convocatorias = App.CurrentApp.RealmInstance.All <Convocatoria>().ToList();

            if (_calls != null && _calls.Count > 0)
            {
                foreach (var item in _calls)
                {
                    var fecha_cierre = DateTime.Parse(item.fecha_cierre);
                    if (time <= fecha_cierre)
                    {
                        item.estatusText = "Activa";
                    }
                    else
                    {
                        item.estatusText = "Inactiva";
                    }

                    foreach (var document in item.documentos)
                    {
                        if (document.formato.nombre == "docx")
                        {
                            document.Icono = "ic_doc-web.png";
                        }
                        else if (document.formato.nombre == "xlsx")
                        {
                            document.Icono = "ic_xls-web.png";
                        }
                        else if (document.formato.nombre == "pdf")
                        {
                            document.Icono = "ic_pdf-web.png";
                        }
                        else
                        {
                            document.Icono = "ic_unknow-web.png";
                        }
                    }
                }

                App.CurrentApp.RealmInstance.Write(() =>
                {
                    if (convocatorias.Count > 0)
                    {
                        foreach (var convocatoria in convocatorias)
                        {
                            foreach (var _call in _calls)
                            {
                                if (convocatoria.id_convocatoria == _call.id_convocatoria)
                                {
                                    App.CurrentApp.RealmInstance.Remove(convocatoria);
                                }
                            }
                        }
                    }

                    foreach (var item in _calls)
                    {
                        if (item.deleted_at != null)
                        {
                        }
                        else
                        {
                            App.CurrentApp.RealmInstance.Add(item);
                        }
                    }
                });
            }

            convocatorias = App.CurrentApp.RealmInstance.All <Convocatoria>().ToList();
            if (convocatorias != null)
            {
                dateToSend = time;
                PropertiesManager.SaveCallDate(dateToSend);
                convocatorias = convocatorias.OrderByDescending(x => x.fecha_inicio).ToList();
                _itemsList.Clear();
                convocatorias = App.CurrentApp.RealmInstance.All <Convocatoria>().ToList();
                foreach (var item in convocatorias)
                {
                    _itemsList.Add(item);
                }

                Device.BeginInvokeOnMainThread(() =>
                {
                    if (ListView.ItemsSource != _itemsList)
                    {
                        ListView.ItemsSource = _itemsList;
                    }
                });
            }
            HideProgress();
        }