Exemple #1
0
 public void AddData(Stored_Data_Model data)
 {
     if (_connection != null)
     {
         _connection.Insert(data);
     }
 }
        private async Task GetProductsAsync()
        {
            IsBusy = true;
            var _restService = new RESTService();
            var result       = await _restService.GetProductsAsync();

            if (result.Item1 == true)
            {
                var json = result.Item2;

                if (DataStore.GetDataStoredJson("Products").ToList().Count > 0)
                {
                    DataStore.UpdateData("Products", json);
                }
                else
                {
                    var Data = new Stored_Data_Model
                    {
                        Type = "Products",
                        json = json
                    };
                    DataStore.AddData(Data);
                }
                UpdateProductsListview();
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert(result.Item2);
            }
            IsBusy = false;
        }
        private async Task ExecuteOnLogin()
        {
            if (!string.IsNullOrEmpty(UserName) & !string.IsNullOrEmpty(Password))
            {
                IsBusy = true;
                var _restService = new RESTService();
                var version      = await _restService.CheckVersion();

                if (version.Item1)
                {
                    var responce = await _restService.Login(UserName.TrimEnd(), Password.TrimEnd());

                    if (responce.Item1)
                    {
                        var responce2 = await _restService.Get_Contacts_Async();

                        if (responce2.Item1)
                        {
                            if (DataStore.GetDataStoredJson("Mail_Contact_List").ToList().Count > 0)
                            {
                                DataStore.UpdateData("Mail_Contact_List", responce2.Item2);
                            }
                            else
                            {
                                var Data = new Stored_Data_Model
                                {
                                    DateTime = DateTime.Now,
                                    json     = responce2.Item2,
                                    Type     = "Mail_Contact_List"
                                };
                                DataStore.AddData(Data);
                            }
                            if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                            {
                                var coords_list = DataStore.GetLocations().Where(i => i.Date.Date < DateTime.Now.Date).ToList();
                                if (coords_list.Count > 0)
                                {
                                    foreach (var coords in coords_list)
                                    {
                                        DataStore.DeleteLocation(coords.Id);
                                    }
                                }
                            }
                            Application.Current.MainPage = new NavigationPage(new MainPage());
                        }
                        else
                        {
                            Responce = responce2.Item2;
                        }
                        var responce3 = await _restService.GetQuestionnairesAsyc();

                        if (responce3.Item1)
                        {
                            if (DataStore.GetDataStoredJson("Questionnaires").ToList().Count > 0)
                            {
                                DataStore.UpdateData("Questionnaires", responce3.Item2);
                            }
                            else
                            {
                                var Data = new Stored_Data_Model
                                {
                                    DateTime = DateTime.Now,
                                    json     = responce3.Item2,
                                    Type     = "Questionnaires"
                                };
                                DataStore.AddData(Data);
                            }
                        }
                    }
                    else
                    {
                        Responce = responce.Item2;
                    }
                }
                else
                {
                    Responce = version.Item2;
                }
                IsBusy = false;
            }
        }
Exemple #4
0
        public async Task UploadDataAsync()
        {
            string LogguedIn = null;

            if (CrossSecureStorage.Current.HasKey("LogguedIn"))
            {
                LogguedIn = CrossSecureStorage.Current.GetValue("LogguedIn");
            }
            if (LogguedIn == "True")
            {
                var  Add_Contacts     = DataStore.GetContactsToUpload().ToList();
                var  Edit_Contacts    = DataStore.GetEditContactsToUpload().ToList();
                var  Reports          = DataStore.GetReportsToUpload().ToList();
                var  Unvailibilitys   = DataStore.GetUnvailibilityToUpload().ToList();
                var  Questionnaire    = DataStore.GetQuastionnairesToUpload().ToList();
                var  _tokenController = new TokenController();
                bool IsFreeMission    = false;
                var  Token            = _tokenController.DecodeToken();
                if (Token.Item1)
                {
                    if (Token.Item2.permissions.Contains("Tournée Libre"))
                    {
                        IsFreeMission = true;
                    }
                }
                else
                {
                    CrossSecureStorage.Current.SetValue("LogguedIn", "False");
                    CrossSecureStorage.Current.DeleteKey("acces_token");
                    Application.Current.MainPage = new Login_View();
                    return;
                }
                string[] error_list = { "Contact existe déjà", "Contact non trouvé", "Client existe déjà", "Prénom ne doit pas étre vide", "Nom ne doit pas étre vide", "Sexe ne doit pas étre vide", "Sécteur ne doit pas étre vide", "Adresse ne doit pas étre vide", "Commune ne doit pas étre vide", "Spécialité ne doit pas étre vide", "Potontiel ne doit pas étre vide", "Wilaya ne doit pas étre vide" };
                if (Add_Contacts.Count > 0)
                {
                    foreach (var contact in Add_Contacts)
                    {
                        if (!error_list.Contains(contact.Last_Error))
                        {
                            var    obj            = JsonConvert.DeserializeObject <NewContact_Model>(contact.Json);
                            Stream picture_stream = null;
                            if (!string.IsNullOrWhiteSpace(contact.PicturePath))
                            {
                                var picture = File.ReadAllBytes(contact.PicturePath);
                                picture_stream = new MemoryStream(picture);
                            }
                            var Result = await RESTService.Post_New_Client(obj, null, picture_stream);

                            if (Result.Item1)
                            {
                                var List = DataStore.GetDataStoredJson("Contacts").ToList();
                                if (List.Count > 0)
                                {
                                    var Contacts_List = JsonConvert.DeserializeObject <List <Client2> >(List[0].json);
                                    Contacts_List.Add(Result.Item3);
                                    var json = JsonConvert.SerializeObject(Contacts_List);
                                    DataStore.UpdateData("Contacts", json);
                                    DataStore.DeleteContactToUpdate(contact.Id);
                                }
                                else
                                {
                                    var Contacts_List = new List <Client2>();
                                    Contacts_List.Add(Result.Item3);
                                    var json = JsonConvert.SerializeObject(Contacts_List);
                                    var data = new Stored_Data_Model
                                    {
                                        DateTime = DateTime.Now,
                                        json     = json,
                                        Type     = "Contacts"
                                    };
                                    DataStore.AddData(data);
                                    DataStore.DeleteContactToUpdate(contact.Id);
                                }
                            }
                            else
                            {
                                DataStore.UpdateContactToUpload(contact.Id, Result.Item2);
                            }
                        }
                        MessagingCenter.Send(this, "ContactsSyncUpdated");
                    }
                }
                if (Edit_Contacts.Count > 0)
                {
                    foreach (var contact in Edit_Contacts)
                    {
                        if (!error_list.Contains(contact.Last_Error))
                        {
                            var    obj            = JsonConvert.DeserializeObject <NewContact_Model>(contact.Json);
                            Stream picture_stream = null;
                            if (!string.IsNullOrWhiteSpace(contact.PicturePath))
                            {
                                var picture = File.ReadAllBytes(contact.PicturePath);
                                picture_stream = new MemoryStream(picture);
                            }
                            var Result = await RESTService.Update_client(obj, null, picture_stream);

                            if (Result.Item1)
                            {
                                var List          = DataStore.GetDataStoredJson("Contacts").ToList();
                                var Contacts_List = JsonConvert.DeserializeObject <List <Client2> >(List[0].json);
                                try
                                {
                                    Contacts_List.RemoveAt(Contacts_List.IndexOf(Contacts_List.SingleOrDefault(i => i._id == obj._id)));
                                    Contacts_List.Add(Result.Item3);
                                    var json = JsonConvert.SerializeObject(Contacts_List);
                                    DataStore.UpdateData("Contacts", json);
                                    DataStore.DeleteEditContactToUpdate(contact.Id);
                                }
                                catch
                                {
                                    DataStore.UpdateEditContactToUpload(contact.Id, "Erreur Lors de Supression");
                                }
                            }
                            else
                            {
                                DataStore.UpdateEditContactToUpload(contact.Id, Result.Item2);
                            }
                        }
                        MessagingCenter.Send(this, "ContactsSyncUpdated");
                    }
                }
                if (Reports.Count > 0)
                {
                    foreach (var report in Reports)
                    {
                        var Result = await RESTService.Post_Answer(report.report, report.Global_id, report.Mission_id, report.Contact_id, report.IsFreeMission);

                        if (Result.Item1)
                        {
                            DataStore.DeleteReportToUload(report.Id);

                            if (report.IsFreeMission)
                            {
                            }
                        }
                        else
                        {
                            DataStore.UpdateReportToUpload(report.Id, Result.Item2);
                        }
                        MessagingCenter.Send(this, "ContactsSyncUpdated");
                    }
                }
                if (Unvailibilitys.Count > 0)
                {
                    foreach (var unvailibility in Unvailibilitys)
                    {
                        var Result = await RESTService.Post_Unvailability(unvailibility.Json, unvailibility.Global_id, unvailibility.Mission_id, unvailibility.Contact_id, unvailibility.IsFreeMission);

                        if (Result.Item1)
                        {
                            DataStore.DeleteUnvailibilityToUload(unvailibility.Id);

                            if (unvailibility.IsFreeMission)
                            {
                            }
                        }
                        else
                        {
                            DataStore.UpdateUnvailibilityToUpload(unvailibility.Id, Result.Item2);
                        }
                        MessagingCenter.Send(this, "ContactsSyncUpdated");
                    }
                }
                if (Questionnaire.Count > 0)
                {
                    foreach (var questionnaire in Questionnaire)
                    {
                        var Result = await RESTService.PostQuestionnaireAsync(questionnaire.Json);

                        if (Result.Item1)
                        {
                            DataStore.DeleteQuestionnaireToUpload(questionnaire.Id);
                        }
                        else
                        {
                            DataStore.UpdateQuestionnairesToUpload(questionnaire.Id, Result.Item2);
                        }
                        MessagingCenter.Send(this, "ContactsSyncUpdated");
                    }
                }
                var Result2 = await RESTService.GetMissionsAsync();

                if (Result2.Item1)
                {
                    var List = DataStore.GetDataStoredJson("Missions").ToList();
                    if (List.Count > 0)
                    {
                        DataStore.UpdateData("Missions", Result2.Item2);
                    }
                    else
                    {
                        var data = new Stored_Data_Model
                        {
                            DateTime = DateTime.Now,
                            json     = Result2.Item2,
                            Type     = "Missions"
                        };
                        DataStore.AddData(data);
                    }
                }
                if (IsFreeMission)
                {
                    var Result = await RESTService.GetPeriodHistryAsync(DateTime.Now, DateTime.Now);

                    if (Result.Item1)
                    {
                        var List = DataStore.GetDataStoredJson("VisiteToday").ToList();
                        if (List.Count > 0)
                        {
                            DataStore.UpdateData("VisiteToday", Result.Item2);
                        }
                        else
                        {
                            var data = new Stored_Data_Model
                            {
                                DateTime = DateTime.Now,
                                json     = Result.Item2,
                                Type     = "VisiteToday"
                            };
                            DataStore.AddData(data);
                        }
                    }
                }
            }
        }