Ejemplo n.º 1
0
        public void CreateIntervention_OnApprovedStateWithInsufficientMaxLabourHours_ReturnNullAndFalse()
        {
            bool             result = false;
            string           msg    = "";
            InterventionType type   = new InterventionType
            {
                DefaultCost        = 10000,
                DefaultLabourHours = 100,
                InterventionTypeId = 1,
                Name = "Supply and Install Portable Toilet"
            };
            Client client = new Client
            {
                Address  = "Pitt St",
                ClientId = 1,
                District = "Rural Indonesia",
                Name     = "John Lennon"
            };

            ENETCareGlobal.CurrentUser = new SiteEngineer
            {
                District       = "Rural Indonesia",
                MaxHours       = 1,
                MaxCost        = 10000,
                Name           = "Neil",
                SiteEngineerId = 1,
                UserId         = 1
            };
            DateTime     dateToPerform = new DateTime(2991, 9, 23);
            Intervention intervention  = new InterventionManager().CreateIntervention(type, "Approved", 100, 10000,
                                                                                      "OK", dateToPerform, client, out msg, out result);

            Assert.IsFalse(result);
            Assert.IsNull(intervention);
        }
Ejemplo n.º 2
0
        //*****************************************************************************************************************
        void listerInterventionsTechnicienDate()
        {
            Intervention uneIntervention = new Intervention();

            uneIntervention.DebutIntervention = DateTime.Now.Date;
            uneIntervention.FkLoginT          = "tvsilvestre";
            try
            {
                using (InterventionManager interventionManager = new InterventionManager())
                {
                    List <Intervention> listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention);
                    foreach (Intervention chaqueIntervention in listIntervention)
                    {
                        Console.Write(chaqueIntervention.NomContact + "  " + chaqueIntervention.FkLoginT
                                      + "  " + chaqueIntervention.DebutIntervention.ToString()
                                      + "  " + chaqueIntervention.FinIntervention.ToString());
                        Console.WriteLine();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 3
0
        protected void CreateBtn_Click(object sender, EventArgs e)
        {
            InterventionType selectedType = null;

            foreach (InterventionType type in ENETCareGlobal.allInterventionTypes)
            {
                if (type.Name == InterventionTypeDropDownList.SelectedValue)
                {
                    selectedType = type;
                }
            }

            int labourHours = -1;

            int.TryParse(LabourHoursTextBox.Text, out labourHours);
            decimal cost = -1;

            decimal.TryParse(CostTextBox.Text, out cost);

            if (DateToPerformTextBox.Text != "")
            {
                if (NoteTextBox.Text.Length < 100)
                {
                    DateTime dt = Convert.ToDateTime(DateToPerformTextBox.Text);

                    bool   result = false;
                    string msg    = "";

                    if (Session["selectedClientIdx"] != null)
                    {
                        Intervention newIntervention = new InterventionManager().CreateIntervention(selectedType,
                                                                                                    StateDropDownList.SelectedValue, labourHours, cost, NoteTextBox.Text, dt,
                                                                                                    ENETCareGlobal.allClients[(int)Session["selectedClientIdx"]], out msg,
                                                                                                    out result);
                        if (result)
                        {
                            new InterventionRepository().Insert(newIntervention);
                            ErrorLabel.Text = "Success!";
                        }
                        else
                        {
                            ErrorLabel.Text = msg;
                        }
                    }
                    else
                    {
                        ErrorLabel.Text = "Please select a client!";
                    }
                }
                else
                {
                    ErrorLabel.Text = "Note too long, character limit is 100";
                }
            }
            else
            {
                ErrorLabel.Text = "Please select a date!";
            }
        }
Ejemplo n.º 4
0
        //*****************************************************************************************************************
        void peuplerTableIntervention()
        {
            DateTime dateDuJour = DateTime.Now.Date.AddHours(8); // la journée débute à 8 heures

            String[]     tabLines     = System.IO.File.ReadAllLines(@"..\..\..\DonneesInitialesBdd\Interventions.csv", Encoding.GetEncoding("iso-8859-1"));
            Intervention intervention = new Intervention();

            using (InterventionManager interventionManager = new InterventionManager()) // appel automatique de la methode dispose qui ferme la connexion
            {
                foreach (String line in tabLines)                                       // pour toutes les lignes du jeux d'essais
                {
                    String[] str = line.Split(';');                                     // on a choisi ";" comme séparateur csv
                    if (str[0] != "#")                                                  // si oui c'est une ligne de commentaire
                    {
                        intervention.CompteRendu       = str[0];
                        intervention.DebutIntervention = dateDuJour.AddDays(Convert.ToDouble(str[1]));
                        intervention.DebutIntervention = intervention.DebutIntervention.AddHours(Convert.ToDouble(str[2]));
                        intervention.FinIntervention   = dateDuJour.AddDays(Convert.ToDouble(str[1]));
                        intervention.FinIntervention   = intervention.FinIntervention.AddHours(Convert.ToDouble(str[3]));
                        intervention.ObjectifVisite    = str[4];
                        if (str[5] != "") // y a t il une image correspondant à l'intervention
                        {
                            // il faut charger et convertir l'image
                            // Conversion fichier photo en tableau de byte pour enregistrement en BDD
                            FileStream fs         = new FileStream(str[5], FileMode.OpenOrCreate, FileAccess.Read); // on ouvre le fichier de la photo
                            byte[]     imageBytes = new byte[fs.Length];                                            // tableau de byte pour recevoir le contenu des octets de la photo
                            fs.Read(imageBytes, 0, Convert.ToInt32(fs.Length));                                     // on place le contenu des octes de la photo dans le tableau
                            intervention.PhotoLieu = imageBytes;                                                    // on enregistre dans l'entité
                        }
                        else
                        {
                            intervention.PhotoLieu = new Byte[0];
                        }
                        intervention.NomContact    = str[6];
                        intervention.PrenomContact = str[7];
                        intervention.TelContact    = str[8];
                        intervention.EtatVisite    = str[9];
                        intervention.FkLoginE      = str[10];
                        if (str[11] != "")
                        {
                            intervention.FkIdClient = Convert.ToInt32(str[11]); // on doit affecter d'office un client à l'intervention
                        }
                        intervention.FkLoginT = str[12];

                        // On persiste l'entité en BDD
                        interventionManager.ajouterIntervention(intervention);
                    }
                }
            }
        }
        //**************************************************************************************************
        private void affichePlanningTechnicien(Technicien technicien)
        {
            // RAZ des listes de rendez-vous et d'interventions
            listRdv.Clear();
            // Raz affichage
            lblValDebInter.ResetText();
            lblValFinInterv.ResetText();
            lblValDureeInterv.ResetText();

            // Chargement des interventions du jour d'un technicien et peuplement de la liste des rdv à afficher
            Intervention uneIntervention = new Intervention();

            uneIntervention.DebutIntervention = dayView.StartDate.Date;
            uneIntervention.FkLoginT          = technicien.LoginT;
            try
            {
                using (InterventionManager interventionManager = new InterventionManager())
                {
                    listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention);
                    if (listIntervention != null)
                    {
                        foreach (Intervention chaqueIntervention in listIntervention)
                        {
                            // on peuple la liste des rdv a afficher
                            Appointment rdv = new Appointment();
                            rdv.StartDate   = chaqueIntervention.DebutIntervention;
                            rdv.EndDate     = chaqueIntervention.FinIntervention;
                            rdv.BorderColor = Color.Red;                         // la couleur de l'entourage
                            rdv.Title       = chaqueIntervention.ObjectifVisite; // le texte à l'intérieur du rdv
                            listRdv.Add(rdv);
                            // On ajoute un tag (l'IdIntervention sur chaque rdv)
                            // IdIntervention sera récupérer grace à rdv.Layer de chaque rendez-vous
                            rdv.Layer = chaqueIntervention.IdIntervention;
                        }
                    }
                    else
                    {
                        Appointment rdv = new Appointment();
                        rdv.StartDate = dayView.StartDate;
                        rdv.EndDate   = dayView.StartDate;
                        rdv.Title     = String.Empty;
                    }
                    dayView.Invalidate(); // On force le conrole à ce redessiner
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        //**************************************************************************************************
        // Cette méthode récupère les rdv d'un technicien en BDD pour peupler la liste des rendez-vous à afficher
        //**************************************************************************************************
        private void affichePlanningTechnicien(Technicien technicien)
        {
            // Raz des listes contenant les rdv affichées et les instreventions d'un technicien récupérées en BDD
            listRdvBdd.Clear();

            // Raz de l'affichage
            clearTextBox();

            // On charge la liste des rendez-vous d'un technicien pour un jour donné
            Intervention uneIntervention = new Intervention();

            uneIntervention.DebutIntervention = dayView.StartDate.Date;
            uneIntervention.FkLoginT          = technicien.LoginT;
            try
            {
                using (InterventionManager interventionManager = new InterventionManager())
                {
                    listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention);
                    if (listIntervention != null)
                    {
                        foreach (Intervention chaqueIntervention in listIntervention)
                        {
                            // on peuple la liste des rdv a afficher
                            Appointment rdv = new Appointment();
                            rdv.StartDate   = chaqueIntervention.DebutIntervention;
                            rdv.EndDate     = chaqueIntervention.FinIntervention;
                            rdv.BorderColor = Color.Red;                         // la couleur de l'entourage
                            rdv.Title       = chaqueIntervention.ObjectifVisite; // le texte à l'intérieur du rdv
                            listRdvBdd.Add(rdv);
                            // On ajoute un tag (l'IdIntervention sur chaque rdv)
                            // IdIntervention sera récupérer grace à rdv.Layer de chaque rendez-vous
                            rdv.Layer = chaqueIntervention.IdIntervention;
                        }
                    }
                    else
                    {
                        Appointment rdv = new Appointment();
                        rdv.StartDate = dayView.StartDate;
                        rdv.EndDate   = dayView.StartDate;
                        rdv.Title     = String.Empty;
                    }
                    dayView.Invalidate(); // On force le controle à se redessiner
                }
            }
            catch (Exception ex)
            {
            }
        }
Ejemplo n.º 7
0
        public void EngineerApproveIntervention_OnLifeInputInvalid_ReturnFalse()
        {
            ENETCareGlobal.CurrentUser = new SiteEngineer
            {
                District       = "Rural Indonesia",
                MaxHours       = 1000,
                MaxCost        = 100000,
                Name           = "Neil",
                SiteEngineerId = 1,
                UserId         = 1
            };
            string msg    = "";
            bool   result = new InterventionManager().EvaluateUpdates(1, "Invalid", "Approved", "Proposed", "Rural Indonesia", 100, 10000, out msg);

            Assert.IsFalse(result);
        }
Ejemplo n.º 8
0
        public void EngineerCancelIntervention_OnCurrentEngineerDifferentThanProposedBy_ReturnFalse()
        {
            ENETCareGlobal.CurrentUser = new SiteEngineer
            {
                District       = "Rural Indonesia",
                MaxHours       = 1000,
                MaxCost        = 100000,
                Name           = "Neil",
                SiteEngineerId = 2,
                UserId         = 2
            };
            string msg    = "";
            bool   result = new InterventionManager().EvaluateUpdates(1, "1", "Cancelled", "Approved", "Rural Indonesia", 100, 10000, out msg);

            Assert.IsFalse(result);
        }
 //**************************************************************************************************
 // Enregistrement des nouvelles données de l'intervention
 //**************************************************************************************************
 private void BtnModificationIntervention_Click(object sender, EventArgs e)
 {
     if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null) &&
         (interventionRdvSelectionne != null))
     {
         interventionRdvSelectionne.EtatVisite = cboxEtatIntervention.SelectedItem.ToString();
         if (interventionRdvSelectionne.EtatVisite != String.Empty) // EtatVisite doit être renseigné
         {
             interventionRdvSelectionne.DebutIntervention = debutRdv;
             interventionRdvSelectionne.FinIntervention   = finRdv;
             interventionRdvSelectionne.ObjectifVisite    = txtBoxObjetVisite.Text;
             // récupération image
             if (pictureBoxImageIntervention.Image == null)
             {
                 interventionRdvSelectionne.PhotoLieu = new Byte[0];  // tableau de byte vide
             }
             else
             {
                 interventionRdvSelectionne.PhotoLieu = Utils.imageToByteArray(pictureBoxImageIntervention.Image);
             }
             // les champs des textBox
             interventionRdvSelectionne.PrenomContact = txtBoxPrenomContact.Text.Trim();
             interventionRdvSelectionne.NomContact    = txtBoxNomContact.Text.Trim();
             interventionRdvSelectionne.TelContact    = mTxtBoxTelephone.Text.Trim();
             interventionRdvSelectionne.FkLoginE      = UtilisateurConnecte.Login;
             using (InterventionManager interventionManager = new InterventionManager())
             {
                 // On persiste l'entité en BDD
                 interventionManager.updateIntervention(interventionRdvSelectionne);
             }
             affichePlanningTechnicien(technicienSelectionne);
             interventionRdvSelectionne = null;
         }
         else
         {
             MessageToast.Show("Ne pas laisser l'état visite vide");
         }
     }
     else
     {
         MessageToast.Show("sélectionner un rendez-vous, un technicien");
     }
 }
        //**************************************************************************************************
        private void BtnSupprimerIntervention_Click(object sender, EventArgs e)
        {
            Intervention interventionASupprimer = new Intervention();

            if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null))
            {
                interventionASupprimer.FkLoginT          = technicienSelectionne.LoginT;
                interventionASupprimer.DebutIntervention = debutRdv;

                using (InterventionManager interventionManager = new InterventionManager())
                {
                    interventionManager.supprimerIntervention(interventionASupprimer);
                }
                affichePlanningTechnicien(technicienSelectionne);
            }
            else
            {
                MessageToast.Show("Sélectionner technicien et rendez-vous");
            }
        }
        protected void InterventionsGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string district     = e.OldValues["ProposedBy.District"].ToString();
            string msg          = "";
            int    proposedById = int.Parse(e.OldValues["ProposedBy.SiteEngineerId"].ToString());
            bool   result       = new InterventionManager().EvaluateUpdates(proposedById, e.NewValues["Life"].ToString(), e.NewValues["State"] as string, e.OldValues["State"] as string, district,
                                                                            int.Parse(e.OldValues["LabourHours"] as string), decimal.Parse(e.OldValues["Cost"] as string), out msg);

            if (e.NewValues["Note"].ToString().Length >= 100)
            {
                ErrorLabel.Text = "Note too long, character limit is 100";
                e.Cancel        = true;
            }

            if (result == false)
            {
                ErrorLabel.Text = msg;
                e.Cancel        = true;
            }
        }
Ejemplo n.º 12
0
        //**************************************************************************************************
        private void BtnValidationIntervention_Click(object sender, EventArgs e)
        {
            Intervention intervention = new Intervention();

            intervention.CompteRendu = string.Empty;
            if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null) && (clientSelectionne != null))
            {
                intervention.DebutIntervention = debutRdv;
                intervention.FinIntervention   = finRdv;
                intervention.ObjectifVisite    = txtBoxObjetVisite.Text;
                // récupération image
                if (pictureBoxImageIntervention.Image == null)
                {
                    intervention.PhotoLieu = new Byte[0];  // null
                }
                else
                {
                    intervention.PhotoLieu = Utils.imageToByteArray(pictureBoxImageIntervention.Image);
                }
                // les champs des textBox
                intervention.PrenomContact = txtBoxPrenomContact.Text.Trim();
                intervention.NomContact    = txtBoxNomContact.Text.Trim();
                intervention.TelContact    = mTxtBoxTelephone.Text.Trim();
                intervention.EtatVisite    = "planifiée";

                intervention.FkLoginE   = UtilisateurConnecte.Login;
                intervention.FkIdClient = clientSelectionne.IdClient;
                intervention.FkLoginT   = technicienSelectionne.LoginT;
                using (InterventionManager interventionManager = new InterventionManager())
                {
                    // On persiste l'entité en BDD
                    interventionManager.ajouterIntervention(intervention);
                }
                affichePlanningTechnicien(technicienSelectionne);
            }
            else
            {
                MessageToast.Show("sélectionner l'heure RDV, technicien et client");
            }
        }
Ejemplo n.º 13
0
        //**************************************************************************************************
        private void affichePlanningTechnicien(Technicien technicien)
        {
            listRdv.Clear();

            dayView.Refresh();
            dayView.Invalidate(); // On force le controle à ce redessiner

            if (listIntervention == null)
            {
                listIntervention = new List <Intervention>();
            }
            listIntervention.Clear();
            Intervention uneIntervention = new Intervention();

            uneIntervention.DebutIntervention = dayView.StartDate.Date;
            uneIntervention.FkLoginT          = technicien.LoginT;
            try
            {
                using (InterventionManager interventionManager = new InterventionManager())
                {
                    listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention);

                    foreach (Intervention chaqueIntervention in listIntervention)
                    {
                        Appointment rdv = new Appointment();
                        rdv.StartDate   = chaqueIntervention.DebutIntervention;
                        rdv.EndDate     = chaqueIntervention.FinIntervention;
                        rdv.BorderColor = Color.Red;
                        rdv.Title       = chaqueIntervention.ObjectifVisite;
                        listRdv.Add(rdv);
                    }
                    dayView.Invalidate(); // On force le controle à ce redessiner
                }
            }
            catch (Exception ex)
            {
            }
        }