コード例 #1
0
        protected void Add_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                Taxi taxi = new Taxi();

                taxi.MATRICULE = ((TextBox)GridView1.FooterRow.FindControl("matricule")).Text;
                taxi.TYPE      = ((DropDownList)GridView1.FooterRow.FindControl("type")).Text;

                taxi.driver_ID = Int32.Parse(((DropDownList)GridView1.FooterRow.FindControl("driver")).SelectedValue);


                if (taxi.MATRICULE == "")
                {
                    ((Label)GridView1.FooterRow.FindControl("Required")).Text = " ***Tous les champs doivent être remplis";
                }
                else
                {
                    try
                    {
                        ctx.Taxis.Add(taxi);
                        ctx.SaveChanges();
                        GridView1.DataBind();
                    }
                    catch
                    {
                        ((Label)GridView1.FooterRow.FindControl("Required")).Text = " ***Error - TaxiDriver déjà affecté";
                    }
                }
            }
        }
コード例 #2
0
        protected static bool isPossibleCourse(List <Cours> list, Taxi t, Cours c, DateTime d)
        {
            bool veracity = false;

            using (var ctx = new TaxiTraficEntities())
            {
                TimeSpan timeDistance = TimeSpan.Zero;
                Cours    lastOfTaxi   = null;
                try
                {
                    lastOfTaxi = list.Where(l => l.STARTING_DAY == d).Where(l => l.taxi_ID == t.ID)
                                 .OrderByDescending(l => l.STARTING_TIME).First();

                    timeDistance = GetMatrixDistance(lastOfTaxi.ARRIVAL_ADDRESS, c.STARTING_ADDRESS);
                }
                catch
                {
                    veracity = true;
                }

                if (lastOfTaxi == null)
                {
                    veracity = true;
                }
                else if ((lastOfTaxi.ARRIVAL_TIME.Value.TimeOfDay + timeDistance) <= (c.STARTING_TIME + toleranceTime()))
                {
                    veracity = true;
                }
            }

            return(veracity);
        }
コード例 #3
0
        protected void Ajout_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                User user = new User();

                user.LAST_NAME  = ((TextBox)GridView1.FooterRow.FindControl("nom")).Text;
                user.FIRST_NAME = ((TextBox)GridView1.FooterRow.FindControl("prenom")).Text;
                user.PHONE      = ((TextBox)GridView1.FooterRow.FindControl("phone")).Text;
                user.EMAIL      = ((TextBox)GridView1.FooterRow.FindControl("email")).Text;

                user.PASSWORD = TaxiTraficSecurity.getPasswordMD5Hash(((TextBox)GridView1.FooterRow.FindControl("password")).Text);


                if (user.LAST_NAME == "" || user.FIRST_NAME == "" || user.PHONE == "" || user.EMAIL == "" || user.PASSWORD == "" || ((DropDownList)GridView1.FooterRow.FindControl("profil")).SelectedValue == "")
                {
                    ((Label)GridView1.FooterRow.FindControl("Required")).Text = " ***Tous les champs doivent être remplis";
                }
                else
                {
                    try
                    {
                        user.PROFIL = Int32.Parse(((DropDownList)GridView1.FooterRow.FindControl("profil")).SelectedValue);
                        ctx.Users.Add(user);
                        ctx.SaveChanges();
                        GridView1.DataBind();
                    }
                    catch
                    {
                        ((Label)GridView1.FooterRow.FindControl("Required")).Text = " ***ERREUR !!!! (@-mail doit être unique)";
                    }
                }
            }
        }
コード例 #4
0
        protected static bool TryAssignment(DateTime d)
        {
            try
            {
                using (var ctx = new TaxiTraficEntities())
                {
                    var courses = ctx.Courses.Where(c => c.STARTING_DAY == d).OrderBy(c => c.STARTING_TIME).ToList();

                    foreach (var c in courses)
                    {
                        int idTaxi = FindPossibleTaxi(courses, c, d);
                        if (idTaxi > 0)
                        {
                            c.taxi_ID = idTaxi;
                        }
                    }
                    ctx.SaveChanges();
                    return(true);
                }
            }

            catch
            {
                return(false);
            }
        }
コード例 #5
0
 protected void Page_Load(object sender, EventArgs e)
 {
     name.Text  = Session["FIRST_NAME"] + " " + Session["LAST_NAME"];
     email.Text = (string)Session["EMAIL"];
     phone.Text = (string)Session["PHONE"];
     if (Session["taxi_ID"] != null)
     {
         taxi_id.Text        = Session["taxi_ID"].ToString();
         taxi_matricule.Text = (string)Session["taxi_matricule"];
         taxi_type.Text      = (string)Session["taxi_type"];
     }
     else
     {
         taxi_id.Text        = "NON AFFECTEE";
         taxi_matricule.Text = "NON AFFECTEE";
         taxi_type.Text      = "NON AFFECTEE";
     }
     using (var ctx = new TaxiTraficEntities())
     {
         int idTaxi = Int32.Parse(taxi_id.Text);
         try
         {
             Label1.Text = ctx.Courses.Where(c => c.taxi_ID == idTaxi).Count().ToString();
             Label2.Text = ctx.Courses.Where(c => c.taxi_ID == idTaxi).Where(c => c.STARTING_DAY == DateTime.Today).Count().ToString();
         }
         catch
         {
             Label1.Text = "-";
             Label2.Text = "-";
         }
     }
 }
コード例 #6
0
 protected static bool isNotAffected(DateTime D)
 {
     using (var ctx = new TaxiTraficEntities())
     {
         AffectedDay x = ctx.AffectedDays.Where(a => a.ID == 1).FirstOrDefault();
         return((x == null) || (x.AFFECTED < D.Date));
     }
 }
コード例 #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (var ctx = new TaxiTraficEntities())
     {
         var lu = ctx.Users.ToList();
         foreach (var user in lu)
         {
             user.PASSWORD = TaxiTraficSecurity.getPasswordMD5Hash("123456");
         }
         ctx.SaveChanges();
     }
 }
コード例 #8
0
 public static void InitTaxiCourses(DateTime D)
 {
     using (var ctx = new TaxiTraficEntities())
     {
         var courses = ctx.Courses.Where(c => c.STARTING_DAY == D).OrderBy(c => c.STARTING_TIME).ToList();
         foreach (var c in courses)
         {
             c.taxi_ID = null;
         }
         ctx.SaveChanges();
         AssignmentOLD(D);
     }
 }
コード例 #9
0
        protected static bool GenerateCoursesFromPeriodicCourses(DateTime D)
        {
            int day = (int)D.DayOfWeek - 1;

            using (var ctx = new TaxiTraficEntities())
            {
                List <Periodic_Courses> list = ctx.Periodic_Courses.Where(c => c.DAY == day).Where(c => c.LIMIT_DATE >= D.Date)
                                               .OrderBy(c => c.STARTING_TIME).ToList();
                List <Periodic_Courses> list2 = ctx.Periodic_Courses.Where(c => c.DAY == day).Where(c => c.LIMIT_DATE == null)
                                                .OrderBy(c => c.STARTING_TIME).ToList();
                list.AddRange(list2);
                foreach (var cp in list)
                {
                    TimeSpan debutTravail = new TimeSpan(7, 0, 0);
                    TimeSpan finTravail   = new TimeSpan(20, 0, 0);

                    Cours c = new Cours();
                    c.STARTING_ADDRESS = cp.STARTING_ADDRESS;
                    c.ARRIVAL_ADDRESS  = cp.ARRIVAL_ADDRESS;
                    c.STARTING_DAY     = D.Date;
                    c.STARTING_TIME    = cp.STARTING_TIME;
                    if (c.STARTING_TIME < debutTravail || c.STARTING_TIME > finTravail)
                    {
                        throw new InvalidTimeZoneException("HORS PERIODE DE TRAVAIL");
                    }

                    c.client_ID = cp.client_ID;
                    TimeSpan time = TaxiTraficAffectation.GetMatrixDistance(c.STARTING_ADDRESS, c.ARRIVAL_ADDRESS) + c.STARTING_TIME;
                    DateTime date = c.STARTING_DAY;
                    c.ARRIVAL_TIME = new DateTime(date.Year, date.Month, date.Day, time.Hours, time.Minutes, time.Seconds);
                    var x = ctx.Courses.Where(r => r.STARTING_DAY == c.STARTING_DAY)
                            .Where(r => r.client_ID == c.client_ID)
                            .Where(r => r.STARTING_TIME >= c.STARTING_TIME)
                            .Where(r => r.STARTING_TIME <= time).FirstOrDefault();
                    DateTime dep = c.STARTING_DAY;
                    dep = dep.Add(c.STARTING_TIME);
                    var y = ctx.Courses.Where(r => r.STARTING_DAY == c.STARTING_DAY)
                            .Where(r => r.client_ID == c.client_ID)
                            .Where(r => r.ARRIVAL_TIME >= dep)
                            .Where(r => r.ARRIVAL_TIME <= c.ARRIVAL_TIME).FirstOrDefault();


                    if (x == null && y == null)
                    {
                        ctx.Courses.Add(c);
                    }
                }
                ctx.SaveChanges();
            }
            return(false);
        }
コード例 #10
0
        protected void AddButton_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                Client client = new Client();
                client.FIRST_NAME = first_name.Text;
                client.LAST_NAME  = last_name.Text;
                client.PHONE      = phone.Text;

                ctx.Clients.Add(client);
                ctx.SaveChanges();
                Response.Redirect("~/ManageClients.aspx");
            }
        }
コード例 #11
0
 protected void Page_Load(object sender, EventArgs e)
 {
     name.Text  = Session["FIRST_NAME"] + " " + Session["LAST_NAME"];
     email.Text = (string)Session["EMAIL"];
     phone.Text = (string)Session["PHONE"];
     using (var ctx = new TaxiTraficEntities())
     {
         Label1.Text = ctx.Users.Count().ToString();
         Label2.Text = ctx.Taxis.Count().ToString();
         Label3.Text = ctx.Clients.Count().ToString();
         Label4.Text = ctx.Courses.Count().ToString();
         Label5.Text = ctx.Periodic_Courses.Count().ToString();
         //DateTime Today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
         Label6.Text = ctx.Courses.Where(c => c.STARTING_DAY == DateTime.Today).Count().ToString();
     }
 }
コード例 #12
0
        protected static int FindPossibleTaxi(List <Cours> list, Cours c, DateTime d)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                var taxis = ctx.Taxis.ToList();

                foreach (var t in taxis)
                {
                    if (isPossibleCourse(list, t, c, d))
                    {
                        return(t.ID);
                    }
                }
            }

            return(-1);
        }
コード例 #13
0
        protected static void AssignmentOLD(DateTime D)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                AffectedDay x = ctx.AffectedDays.Where(a => a.ID == 1).FirstOrDefault();
                if (x != null)
                {
                    x.AFFECTED = D.AddDays(-1);
                }
                else
                {
                    x          = new AffectedDay();
                    x.AFFECTED = D.AddDays(-1);
                    ctx.AffectedDays.Add(x);
                }

                ctx.SaveChanges();
            }
        }
コード例 #14
0
        protected void Add_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                Client client = new Client();

                client.LAST_NAME  = ((TextBox)ClientGrid.FooterRow.FindControl("nomAdd")).Text;
                client.FIRST_NAME = ((TextBox)ClientGrid.FooterRow.FindControl("prenomAdd")).Text;
                client.PHONE      = ((TextBox)ClientGrid.FooterRow.FindControl("phoneAdd")).Text;
                if (client.LAST_NAME == "" || client.FIRST_NAME == "" || client.PHONE == "")
                {
                    ((Label)ClientGrid.FooterRow.FindControl("Required")).Text = " ***Tous les champs doivent être remplis";
                }
                else
                {
                    ctx.Clients.Add(client);
                    ctx.SaveChanges();
                    ClientGrid.DataBind();
                }
            }
        }
コード例 #15
0
        protected void ButtonLogin_Click(object sender, EventArgs e)
        {
            //bool isAuth = false;
            using (var ctx = new TaxiTraficEntities())
            {
                string hash    = TaxiTraficSecurity.getPasswordMD5Hash(password.Text);
                User   pretend = ctx.Users.Where(u => u.EMAIL == email.Text).Where(u => u.PASSWORD == hash).FirstOrDefault();

                if (pretend != null)
                {
                    Session["EMAIL"]      = pretend.EMAIL;
                    Session["ID"]         = pretend.ID;
                    Session["LAST_NAME"]  = pretend.LAST_NAME;
                    Session["FIRST_NAME"] = pretend.FIRST_NAME;
                    Session["PROFIL"]     = pretend.PROFIL;
                    Session["PHONE"]      = pretend.PHONE;

                    if (pretend.PROFIL == 1)
                    {
                        Response.Redirect(@"~\HomeAdmin.aspx");
                    }
                    else if (pretend.PROFIL == 2)
                    {
                        if (pretend.Taxis.Count > 0)
                        {
                            Session["taxi_ID"]        = pretend.Taxis.ElementAt(0).ID;
                            Session["taxi_matricule"] = pretend.Taxis.ElementAt(0).MATRICULE;
                            Session["taxi_type"]      = pretend.Taxis.ElementAt(0).TYPE;
                        }
                        Response.Redirect(@"~\HomeTaxiDriver.aspx");
                    }
                }
                else
                {
                    ErrorTOP.Text    = "*** LOGIN ou MOT DE PASSE invalide !!!!";
                    ErrorButtom.Text = "*** invalide !!!!";
                }
            }
        }
コード例 #16
0
        protected void AddButton_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                try
                {
                    Taxi taxi = new Taxi();

                    taxi.MATRICULE = matricule.Text;
                    taxi.TYPE      = type.Text;

                    taxi.driver_ID = Int32.Parse(driver.SelectedValue);
                    ctx.Taxis.Add(taxi);
                    ctx.SaveChanges();
                    Response.Redirect("~/ManageTaxis.aspx");
                }
                catch
                {
                    ErrorTOP.Text  = " ***Error - TaxiDriver déjà affecté";
                    ErrorLast.Text = " ***Error - TaxiDriver déjà affecté !!!    *** RETRY !!!!";
                }
            }
        }
コード例 #17
0
 protected void AddButton_Click(object sender, EventArgs e)
 {
     using (var ctx = new TaxiTraficEntities())
     {
         try
         {
             User u = new User();
             u.FIRST_NAME = first_name.Text;
             u.LAST_NAME  = last_name.Text;
             u.PHONE      = phone.Text;
             u.EMAIL      = email.Text;
             u.PASSWORD   = password.Text;
             u.PROFIL     = Int32.Parse(profil.SelectedValue);
             ctx.Users.Add(u);
             ctx.SaveChanges();
             Response.Redirect("~/ManageUsers.aspx");
         }
         catch
         {
             ErrorLast.Text = "** ERROR ADDING USER - RETRY !! **";
             ErrorTOP.Text  = "** ERROR ADDING USER **";
         }
     }
 }
コード例 #18
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (var ctx = new TaxiTraficEntities())
     {
         var user = ctx.Users.Where(u => u.EMAIL == "*****@*****.**").FirstOrDefault();
         if (user != null)
         {
             user.PASSWORD = TaxiTraficSecurity.getPasswordMD5Hash("123456");
         }
         else
         {
             User u = new User();
             u.FIRST_NAME = "ADMIN";
             u.LAST_NAME  = "SYSTEM";
             u.PHONE      = "06XXXXXX32";
             u.EMAIL      = "*****@*****.**";
             u.PASSWORD   = TaxiTraficSecurity.getPasswordMD5Hash("123456");
             u.PROFIL     = 1;
             ctx.Users.Add(u);
         }
         Label1.Text = TaxiTraficSecurity.getPasswordMD5Hash("123456");
         ctx.SaveChanges();
     }
 }
コード例 #19
0
        protected void AddButton_Click(object sender, EventArgs e)
        {
            using (var ctx = new TaxiTraficEntities())
            {
                if (type.SelectedValue == "1")
                {
                    try
                    {
                        TimeSpan debutTravail = new TimeSpan(7, 0, 0);
                        TimeSpan finTravail   = new TimeSpan(20, 0, 0);

                        Cours c = new Cours();
                        c.STARTING_ADDRESS = (string)Request.Form["origin"];
                        c.ARRIVAL_ADDRESS  = (string)Request.Form["destination"];
                        c.STARTING_DAY     = DateTime.Parse(DateDepart.Text);
                        c.STARTING_TIME    = TimeSpan.Parse(TimeDepart.Text);
                        if (c.STARTING_TIME < debutTravail || c.STARTING_TIME > finTravail)
                        {
                            throw new InvalidTimeZoneException("HORS PERIODE DE TRAVAIL");
                        }
                        c.client_ID = Int32.Parse(client.SelectedValue);
                        TimeSpan time = TaxiTraficAffectation.GetMatrixDistance(c.STARTING_ADDRESS, c.ARRIVAL_ADDRESS) + c.STARTING_TIME;
                        DateTime date = c.STARTING_DAY;
                        c.ARRIVAL_TIME = new DateTime(date.Year, date.Month, date.Day, time.Hours, time.Minutes, time.Seconds);
                        var x = ctx.Courses.Where(r => r.STARTING_DAY == c.STARTING_DAY)
                                .Where(r => r.client_ID == c.client_ID)
                                .Where(r => r.STARTING_TIME >= c.STARTING_TIME)
                                .Where(r => r.STARTING_TIME <= time).FirstOrDefault();
                        DateTime dep = c.STARTING_DAY;

                        dep = dep.Add(c.STARTING_TIME);
                        var y = ctx.Courses.Where(r => r.STARTING_DAY == c.STARTING_DAY)
                                .Where(r => r.client_ID == c.client_ID)
                                .Where(r => r.ARRIVAL_TIME >= dep)
                                .Where(r => r.ARRIVAL_TIME <= c.ARRIVAL_TIME).FirstOrDefault();


                        if (x == null && y == null)
                        {
                            ctx.Courses.Add(c);
                            ctx.SaveChanges();
                            Error.Text  = "";
                            ERRORX.Text = "";
                            Response.Redirect("~/ManageCourses.aspx");
                        }
                        else
                        {
                            Error.Text  = "*** ERROR ADDING COURSE - CHEVAUCHEMENT !!!!";
                            ERRORX.Text = "*** ERROR ADDING COURSE - CHEVAUCHEMENT !!!!";
                        }
                    }
                    catch
                    {
                        Error.Text  = "*** ERROR ADDING COURSE !!!!";
                        ERRORX.Text = "*** ERROR ADDING COURSE !!!!";
                    }
                }
                else if (type.SelectedValue == "2")
                {
                    try
                    {
                        TimeSpan debutTravail = new TimeSpan(7, 0, 0);
                        TimeSpan finTravail   = new TimeSpan(20, 0, 0);

                        foreach (ListItem item in DAYS.Items)
                        {
                            if (item.Selected)
                            {
                                Periodic_Courses c = new Periodic_Courses();
                                c.STARTING_ADDRESS = (string)Request.Form["origin"];
                                c.ARRIVAL_ADDRESS  = (string)Request.Form["destination"];
                                c.DAY           = Int32.Parse(item.Value);
                                c.STARTING_TIME = TimeSpan.Parse(TimePeriod.Text);

                                if (c.STARTING_TIME < debutTravail || c.STARTING_TIME > finTravail)
                                {
                                    throw new InvalidTimeZoneException("HORS PERIODE DE TRAVAIL");
                                }

                                DateTime d;
                                if (DateTime.TryParse(limite.Text, out d))
                                {
                                    c.LIMIT_DATE = d;
                                }
                                else
                                {
                                    c.LIMIT_DATE = null;
                                }



                                var x = ctx.Periodic_Courses.Where(r => (r.DAY == c.DAY))
                                        .Where(r => r.client_ID == c.client_ID)
                                        .Where(r => r.STARTING_TIME == c.STARTING_TIME).FirstOrDefault();



                                if (c.LIMIT_DATE == null || d.Date > DateTime.Now)
                                {
                                    c.client_ID = Int32.Parse(client.SelectedValue);

                                    if (x == null)
                                    {
                                        ctx.Periodic_Courses.Add(c);

                                        Error.Text  = "";
                                        ERRORX.Text = "";
                                    }
                                }
                                else
                                {
                                    Error.Text  = "*** ERROR ADDING COURSE !!!!";
                                    ERRORX.Text = "*** ERROR ADDING COURSE !!!!";
                                }
                            }
                        }

                        ctx.SaveChanges();
                        Response.Redirect("~/ManagePeriodicCourses.aspx");
                    }
                    catch
                    {
                        Error.Text  = "*** ERROR ADDING COURSE !!!!";
                        ERRORX.Text = "*** ERROR ADDING COURSE !!!!";
                    }
                }
            }
        }