Ejemplo n.º 1
0
        public void ComputerEngineeringPreReqShortTest()
        {
            // Constants for a pre-determined major/school combo
            const string COMPUTER_ENGINEERING_MAJOR = "1";
            const string UNIVERSITY_WA = "1";
            const string MAX_QUARTERS  = "15";

            // From my experience this seems to be a common schedule preference
            // set. Using this object as a concrete example to help debug and test.
            int schedId = PreferenceHelper.ProcessPreference(new CourseObject()
            {
                school     = UNIVERSITY_WA,
                credits    = "10",
                courses    = "10",
                major      = COMPUTER_ENGINEERING_MAJOR,
                quarters   = MAX_QUARTERS,
                enrollment = ((int)Constants.EnrollmentType.FullTime).ToString(),
                job        = ((int)Constants.JobType.Unemployed).ToString(),
                summer     = "N"
            }, true);

            // Check that a schedule has been been made
            Assert.AreNotEqual(0, schedId);

            // The first check should be that all the prereqs are satisfied in the schedule.
            string result = db.ExecuteToString(getFulfillQueryString(schedId));

            // This query will return 0 if all of the prereqs are met.
            Assert.AreEqual(0, Int32.Parse(result));

            result = db.ExecuteToString(getScheduleQueryString(schedId));
            Debug.WriteLine("THIS IS THE OUTPUT for ID" + schedId + " " + result);
        }
Ejemplo n.º 2
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.ViewChallengeList);

            prefHelper  = new PreferenceHelper(this);
            dataManager = new DataManger(this);

            var recyclerView  = FindViewById <RecyclerView>(Resource.Id.recyclerView);
            var toolbar       = FindViewById <Android.Widget.Toolbar>(Resource.Id.toolbar);
            var addItemButton = FindViewById <com.refractored.fab.FloatingActionButton>(Resource.Id.addItemButton);

            SetActionBar(toolbar);
            ActionBar.Title = "Check It";
            ActionBar.SetDisplayHomeAsUpEnabled(true);
            ActionBar.SetHomeButtonEnabled(true);

            var layoutManager = new LinearLayoutManager(this, LinearLayoutManager.Vertical, false);

            recyclerView.SetLayoutManager(layoutManager);

            //Get challenges from database
            challenges = dataManager.ChallangeData.GetChallanges();

            adapter = new ChallengeAdapter(this, challenges.Where(w => !w.IsCompleted).ToList());

            recyclerView.SetAdapter(adapter);

            adapter.ItemClick   += Challenge_ItemClick;
            addItemButton.Click += AddItemButton_Click;
        }
Ejemplo n.º 3
0
 public override void OnBackPressed()
 {
     PreferenceHelper.PutBoolean("dialogShown", false);
     Finish();
     OverridePendingTransition(Resource.Animation.push_down_in, Resource.Animation.push_down_out);
     base.OnBackPressed();
 }
Ejemplo n.º 4
0
 private void GeneratePlan(List <CourseObject> courseObj, List <int> insertedList)
 {
     foreach (var courseObject in courseObj)
     {
         var insertedId = PreferenceHelper.ProcessPreference(courseObject, true);
         insertedId.Should().NotBe(0);
         insertedList.Add(insertedId);
     }
 }
Ejemplo n.º 5
0
        private View SetupView(View aView)
        {
            Switch lSwAskNonStdAdapter = aView.FindViewById <Switch>(Resource.Id.swAskNonStandardAdapter);

            lSwAskNonStdAdapter.Checked        = PreferenceHelper.GetValue <bool>(ExtContext, PreferenceKeys.ASK_NON_STD_ADAPTER, false);
            lSwAskNonStdAdapter.CheckedChange += (sender, e) =>
            {
                PreferenceHelper.SetValue(ExtContext, PreferenceKeys.ASK_NON_STD_ADAPTER, e.IsChecked);
            };

            return(aView);
        }
 public string Post(CourseObject content)
 {
     try
     {
         int id = PreferenceHelper.ProcessPreference(content);
         return(id.ToString());
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Ejemplo n.º 7
0
        private Preference()
        {
            var tmp = new PreferenceHelper();

            _typeFoto   = tmp.GetSetings("Type");
            _defaulPath = tmp.GetSetings("Path");
            _lag        = tmp.GetSetings("Lang");
#if DEBUG
            _defaulPath = @"C:\";
            _lag        = "pl_PL";
            _typeFoto   = "jpg/tif/raw/psd";
#endif
        }
Ejemplo n.º 8
0
        private void ResetDefaults_PreferenceClick(object sender, Preference.PreferenceClickEventArgs e)
        {
            AlertDialogHelper.DisplayDialog(Activity, "Reset settings to default", "This will reset ALL settings to default values! Are you sure?", () =>
            {
                ProgressDialogHelper.RunTask(Activity, "Resetting settings...", () =>
                {
                    PreferenceHelper.ResetToDefaults();

                    PreferenceScreen = null;
                    SetPreferencesFromResource(Resource.Xml.preferences, _rootKey);
                    //InitializePreferences();
                });
            });
        }
Ejemplo n.º 9
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            bundle = Intent.Extras;

            SetContentView(Resource.Layout.ViewChallenge);

            prefHelper  = new PreferenceHelper(this);
            dataManager = new DataManger(this);

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            checkButton = FindViewById <BiggerFloatingActionButton>(Resource.Id.checkButton);
            var challengeName = FindViewById <TextView>(Resource.Id.challengeName);

            challange = new ChallengeDto
            {
                Id               = bundle.GetInt("CHALLENGE_ID"),
                Name             = bundle.GetString("NAME"),
                Duration         = bundle.GetInt("DURATION"),
                EntriesCompleted = bundle.GetInt("ENTRIES_COMPLETED"),
                LastEntryDate    = Utils.ToDateTimeNull(bundle.GetString("LAST_ENTRY_DATE"))
            };

            position = bundle.GetInt("POSITION");

            if (challange.CanCheck)
            {
                checkButton.BackgroundTintList = ColorStateList.ValueOf(Resources.GetColor(Resource.Color.colorPrimary));
                checkButton.Clickable          = true;
                checkButton.Click += CheckButton_Click;
            }
            else
            {
                checkButton.BackgroundTintList = ColorStateList.ValueOf(Resources.GetColor(Resource.Color.lightGray));
                checkButton.Clickable          = false;
            }

            challengeName.Text = challange.Name;

            SetActionBar(toolbar);

            ActionBar.Title = "Check It";
            ActionBar.SetDisplayHomeAsUpEnabled(true);
            ActionBar.SetHomeButtonEnabled(true);
        }
Ejemplo n.º 10
0
        private void ShowDisclaimerDialog()
        {
            var dialogAlreadyShown = GetPreferences(FileCreationMode.Private).GetBoolean("dialogShown", false);

            if (!dialogAlreadyShown)
            {
                new Android.App.AlertDialog.Builder(this)
                .SetTitle("Important info")
                .SetMessage(Resources.GetString(Resource.String.donateText))
                .SetPositiveButton("I understand", (s, e) => { return; })
                .SetCancelable(false)
                .Create()
                .Show();

                PreferenceHelper.PutBoolean("dialogShown", true);
            }
        }
Ejemplo n.º 11
0
        private async void SetupUI()
        {
            PreferenceHelper.Init(this);
            loadingCircle.Visibility = ViewStates.Visible;

            if (File.Exists(ideasdbPath))
            {
                var cachedDb = await DBAssist.DeserializeDBAsync <List <Category> >(ideasdbPath);

                if (cachedDb != null)
                {
                    Global.Categories = cachedDb;
                    categoryList.AddRange(cachedDb);
                    SetupList();
                    CloudDBManager.StartLowkeyInvalidation();
                }

                else
                {
                    File.Delete(ideasdbPath);
                    SetupUI();
                }
            }

            else
            {
                var snack = Snackbar.Make(bookmarksFab, "Getting ideas from server. Please wait.", Snackbar.LengthIndefinite);
                snack.Show();
                var db = await CloudDBManager.DownloadDB(SetupUI, snack);

                if (db != null)
                {
                    Global.Categories = db;
                    snack.Dismiss();
                    categoryList = db;
                    SetupList();
                }
                else
                {
                    loadingCircle.Visibility = ViewStates.Gone;
                }
            }
        }
Ejemplo n.º 12
0
        private void SelectOtherDevice(Action aCallbackError)
        {
            if (PreferenceHelper.GetValue <bool>(Activity, PreferenceKeys.ASK_NON_STD_ADAPTER, false) == false)
            {
                return;
            }

            RunOnUiThread(() =>
            {
                DialogHelper.ShowToast(Activity, Resource.String.standard_device_not_found, ToastLength.Long);
                List <IListPrompt> lItems = new List <IListPrompt>(AndroidOBDBluetoothConnection.Current.BondedDeviceNames);
                if (lItems.Count > 0)
                {
                    DialogHelper.DisplayListPrompt(Activity, lItems, (sender, e) =>
                    {
                        AndroidOBDBluetoothConnection.Current.Start(lItems[e.Which].Text, aCallbackError);
                    });
                }
                else
                {
                    DialogHelper.ShowToast(Activity, Resource.String.no_devices_found, ToastLength.Long);
                }
            });
        }
Ejemplo n.º 13
0
        public void OkPath()
        {
            var tmp = new PreferenceHelper();

            tmp.UpdateSetings("Path", DefaultPath);
        }
Ejemplo n.º 14
0
        public void OkLang()
        {
            var tmp = new PreferenceHelper();

            tmp.UpdateSetings("Lang", Lang);
        }
Ejemplo n.º 15
0
        public void OkType()
        {
            var tmp = new PreferenceHelper();

            tmp.UpdateSetings("Type", TypeFile);
        }
        public static async Task <ConversationViewModel> FillConversationFromTask(long taskId, ServiceGateWayClient gatewayITask, EnvironmentViewModel environnement, TaskUser user, List <ClAgent> fullAgents, ClTaskDocument currentTask = null)
        {
            var model = new ConversationViewModel();
            var task  = new ClTaskDocument();

            //On va chercher les préférences utilisateurs, comme l'affichage chronologique, les couleurs...
            var userPreference = await PreferenceHelper.GetPreferenceSettings(gatewayITask, user);

            //pour pouvoir avoir les quelques infos de la tâche (description, employeur et travailleur de la tâche)
            if (currentTask != null)
            {
                task = currentTask;
            }
            else
            {
                //on va récupérer les documents attachés à la tâche
                task = await Task.Run(() => gatewayITask.SearchDocumentTask(taskId, environnement.language, true,
                                                                            MapClRessourcesToRessourcesViewModel.Map(user.RessourcesListWithAccess).ToArray(), long.Parse(user.Id)));
            }

            //On va cherché les éléments de conversations liés à la tâche et on les trie par date d'envoi
            var contentConversation = gatewayITask.GetTaskConversation(task).OrderBy(a => a.SentDate);


            if (taskId == -1)
            {
                //Actuellement aucunes tâches sans identifiant...une sécurité inutile?
                //todo something
            }
            else
            {
                model.TaskId              = taskId;
                model.CurrentStatus       = task.CurrentStatus;
                model.Description         = task.Task.Description;
                model.TaskEmployerNumber  = task.Task.EmployerNumber;
                model.TaskEmployerName    = task.Task.EmployerDenomination;
                model.TaskWorkerNumber    = task.Task.WorkerNumber;
                model.TaskWorkerName      = task.Task.WorkerName;
                model.DialogDisplayChrono = userPreference.DialogDisplayChrono;
                model.IsStatusVisible     = true;

                //on construit la conversation
                foreach (var elem in contentConversation)
                {
                    //Filtre en fonction des droits de l'utilisateur connecté
                    if (CanSeeMessage(elem, user, gatewayITask))
                    {
                        var senderMail = CreateALiasFormated(elem.AuthorAgent.Mail, elem.AliasFrom);
                        var mess       = new MessageConversationViewModel
                        {
                            TypeOfMessage             = elem.ContributionType.ToString(),
                            DateOfMessage             = elem.SentDate,
                            Sender                    = senderMail,
                            Subject                   = elem.Subject,
                            MessageContentText        = elem.MailBodyText,
                            MessageContentHtml        = elem.MailBody,
                            IsConfidential            = elem.Confidential == 1,
                            FilesAssociatedToMessage  = new List <DocumentViewModel>(),
                            FullHtmlToRecover         = "<div style=\"color:black;\">" + elem.MailBody + "</div>",
                            PermIdMainMessage         = elem.PermIdMainMessage,
                            TechnicalIdContributeTask = elem.IdTechnic,
                            MailBodyIsHtml            = elem.MailBodyIsHtml,
                            AliasCopyCc               = new List <string>(elem.AliasCopyCc),
                            AliasRecipient            = new List <string>(elem.AliasRecipient),
                            AliasFrom                 = elem.AliasFrom
                        };

                        // 10/09/2019, toujours prendre le contenu html du mail
                        if (string.IsNullOrEmpty(mess.MessageContentHtml))
                        {
                            mess.MessageContentHtml = mess.MessageContentText;
                        }

                        // Lors de l'envoi du mail, le tag GroupSMailExternTask a été rajouté
                        // Donc on peut couper pour l'affichage tout ce qui se trouve dans cette Div
                        try
                        {
                            //Nugget pour parcourir HTML sous forme hierarchique
                            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                            doc.LoadHtml(mess.MessageContentHtml);
                            var divs = doc.DocumentNode.SelectNodes("//div");
                            if (divs != null)
                            {
                                foreach (var tag in divs)
                                {
                                    if (tag.Attributes["id"] != null && tag.Attributes["id"].Value.Contains("MailExternTask"))
                                    {
                                        tag.Remove();
                                    }
                                }
                                mess.MessageContentHtml = doc.DocumentNode.InnerHtml;
                            }
                        }
                        catch { }
                        //

                        mess.AgentVm = MapClAgentToAgentViewModel.Map(elem.AuthorAgent);

                        //on construit les CC
                        foreach (var cc in elem.CopyCc)
                        {
                            if (cc != "0")
                            {
                                mess.CopyTo += cc + ", ";
                            }
                        }


                        if (!string.IsNullOrEmpty(mess.CopyTo))
                        {
                            mess.CopyTo = mess.CopyTo.Substring(0, mess.CopyTo.Length);
                        }

                        foreach (var rc in elem.Recipient)
                        {
                            if (rc != "0")
                            {
                                mess.Receiver += rc + ", ";
                            }
                        }

                        if (!string.IsNullOrEmpty(mess.Receiver))
                        {
                            mess.Receiver = mess.Receiver.Substring(0, mess.Receiver.Length);
                        }

                        //Permet de savoir si il y a plus d'une seule addresse dans le to
                        var isManyReceiver = mess.Receiver != null?mess.Receiver.Split(',') : new string [1];

                        List <string> listReceiver = new List <string>(isManyReceiver);

                        //Supprime la derniere cellule car elle est egale a " " comme on split sur les ','
                        listReceiver.RemoveAt(listReceiver.Count() - 1);

                        //savoir si on doit afficher le bouton reply all ou pas
                        mess.CanSeeReplyAllButton = listReceiver.Count() > 1 || mess.CopyTo != null ? true : false;

                        //si ce n'est pas un commentaire
                        if (mess.TypeOfMessage != "2")
                        {
                            var adrTo = CreateChainOfAddressMailWithAlias(elem.AliasRecipient, elem.Recipient);
                            if (adrTo.Length > 0)
                            {
                                //Retire la derniere virgule inutile
                                adrTo = adrTo.Remove(adrTo.Length - 1);
                                mess.MoreInfosAboutMessage = "TO : " + adrTo;
                            }

                            var adrCC = CreateChainOfAddressMailWithAlias(elem.AliasCopyCc, elem.CopyCc);
                            if (adrCC.Length > 0)
                            {
                                //Retire la derniere virgule inutile
                                adrCC = adrCC.Remove(adrCC.Length - 1);
                                mess.MoreInfosAboutMessage += ",CC : " + adrCC;
                            }


                            // Il arrive que des mails ont été archivés sans adresses dans To et sans CC
                            if (mess.MoreInfosAboutMessage != null)
                            {
                                mess.MoreInfosAboutMessage = mess.MoreInfosAboutMessage.Replace(";", ";\n");
                            }
                        }

                        foreach (var file in elem.joinFiles)
                        {
                            mess.FilesAssociatedToMessage.Add(new DocumentViewModel
                            {
                                DocumentName = file.FileName,
                                PermId       = file.PermId
                            });
                        }

                        //Adaptation pour le CSS sous forme de bulle de conversation => preferences
                        switch (elem.ContributionType)
                        {
                        case 1:    //TASK_TYPE_CONTRIBUTION 1 Mail provenant de l'extérieur
                            mess.BubbleCss = "bubble-left mail-content";
                            break;

                        case 2:    //TASK_TYPE_CONTRIBUTION 2 Commentaire
                            mess.BubbleCss = "bubble-comment comment-content";
                            break;

                        case 3:    //TASK_TYPE_CONTRIBUTION 3 Mail interne
                                   //si c'est message interne mais c'est la réponse d'un collègue --> bubble-left-internal
                            mess.BubbleCss = elem.AuthorCreation == user.Id ? "bubble-right-internal dialog-content" : "bubble-left-internal dialog-content";
                            break;

                        case 8:    //TASK_TYPE_CONTRIBUTION 10 Mail destiné à l'extérieur
                            mess.BubbleCss = elem.AuthorCreation == user.Id ? "bubble-right-draft mail-content" : "bubble-left-draft mail-content";
                            break;

                        case 10:    //TASK_TYPE_CONTRIBUTION 10 Mail destiné à l'extérieur
                            mess.BubbleCss = elem.AuthorCreation == user.Id ? "bubble-right-external mail-content" : "bubble-left-external mail-content";
                            break;
                        }
                        model.MessageConversationList.Add(mess);
                    }
                }

                //mettre le dernier mail externe en reply si il existe
                var lastExt = model.MessageConversationList.LastOrDefault(x => x.TypeOfMessage == "1");
                if (lastExt != null)
                {
                    lastExt.LastExternReply = true;
                }

                //mettre le dernier mail interne en reply si il existe
                var lastInt = model.MessageConversationList.LastOrDefault(x => x.TypeOfMessage == "3");
                if (lastInt != null)
                {
                    lastInt.LastInternReply = true;
                }
            }

            model.Environment = new EnvironmentViewModel
            {
                _listLabels = environnement._listLabels,
                language    = environnement.language
            };


            if (userPreference.DialogDisplayChrono)
            {
                model.MessageConversationList = model.MessageConversationList.OrderBy(a => a.DateOfMessage).ToList();
            }
            else
            {
                model.MessageConversationList = model.MessageConversationList.OrderByDescending(a => a.DateOfMessage).ToList();
            }

            return(model);
        }