Пример #1
0
        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;
        }
        public void OnXMLLoadComplete(AssetLoadRequest inValue)
        {
            XMLAssetLoader xmlAssetLoader = inValue as XMLAssetLoader;
            CombinedData   data           = xmlAssetLoader?.Content as CombinedData;

            if (data != null)
            {
                foreach (BaseData instance in data.Data)
                {
                    DataStore.AddData(instance);
                }
            }

            OnLoadingComplete(0);
        }
Пример #3
0
        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;
            }
        }
Пример #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);
                        }
                    }
                }
            }
        }
Пример #5
0
        private void _preprocessData(List <Signal> e)
        {
            bool          newStage       = true;
            List <Signal> filteredSignal = new List <Signal>();

            foreach (var item in SettingsVM.PreProcessSteps)
            {
                item.GetSignalNameList();
                if (item.Model is Customization)
                {
                    if (newStage)
                    {
                        newStage = false;
                        // check flags and change values to NAN.
                        foreach (var sig in filteredSignal)
                        {
                            // don't need all of them, only the ones was in previous filters
                            sig.ChangeFlaggedValueToNAN();
                        }
                        filteredSignal = new List <Signal>();
                    }
                    try
                    {
                        item.Model.Process(e);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                if (item.Model is Filter)
                {
                    if (!newStage)
                    {
                        newStage = true;
                    }
                    List <Signal> sigs = null;
                    try
                    {
                        sigs = item.Model.Process(e);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    if (sigs != null)
                    {
                        foreach (var sig in sigs)
                        {
                            if (!filteredSignal.Contains(sig))
                            {
                                filteredSignal.Add(sig);
                            }
                        }
                    }
                }
            }
            // need change the last batch of filter to Nan if the last one is not customization
            if (newStage)
            {
                foreach (var sig in filteredSignal)
                {
                    // don't need all of them, only the ones was in previous filters
                    sig.ChangeFlaggedValueToNAN();
                }
            }
            try
            {
                DataMngr.AddData(e);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            // concat data, different signature concat data differently

            //foreach (var item in SettingsVM.SignatureSettings)
            //{
            //    item.Model.Process(e);
            //}
        }