Exemplo n.º 1
0
        /// <summary>
        /// Executes the load items command.
        /// </summary>
        /// <param name="source">The source.</param>
        async Task ExecuteLoadItemsCommand(string source = "")
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                if (source == _origin_notprovided)
                {
                    _drivers = await App.RestService.GetDriversAsync();
                }

                _drivers.Drivers = _drivers.Drivers.OrderBy(o => o.Fullname).ToList();
                LoadItemsFromData();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 2
0
        public Driver Get(int id)
        {
            DriverFactory        driverFactory  = new DriverFactory();
            DriverTable <Driver> instanceDriver = (DriverTable <Driver>)driverFactory.GetDriverInstance();

            return(instanceDriver.Select(id));
        }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DriversViewModel"/> class for display only the drivers passed as arguments.
 /// </summary>
 /// <param name="drivers">The driver list</param>
 /// <param name="title">Title of the content page.</param>
 public DriversViewModel(DriverTable drivers, string title)
 {
     _drivers         = drivers;
     Title            = title;
     Items            = new ObservableCollection <Driver>();
     LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand());
 }
Exemplo n.º 4
0
        public Collection <T> Select()
        {
            RouteFactory       routeFactory  = new RouteFactory();
            RouteTable <Route> instanceRoute = (RouteTable <Route>)routeFactory.GetRouteInstance();

            DriverFactory        driverFactory  = new DriverFactory();
            DriverTable <Driver> instanceDriver = (DriverTable <Driver>)driverFactory.GetDriverInstance();

            VehicleFactory         vehicleFactory  = new VehicleFactory();
            VehicleTable <Vehicle> instanceVehicle = (VehicleTable <Vehicle>)vehicleFactory.GetVehicleInstance();


            XDocument      xDoc       = XDocument.Load(Configuration.XMLFILEPATH);
            Collection <T> timetables = new Collection <T>();

            List <XElement> elements = xDoc.Descendants("Timetables").Descendants("Timetable").ToList();

            foreach (var element in elements)
            {
                Timetable timetable = new Timetable();
                timetable.id        = int.Parse(element.Attribute("id").Value);
                timetable.name      = element.Attribute("name").Value;
                timetable.departure = DateTime.Parse(element.Attribute("departure").Value);
                timetable.arrival   = DateTime.Parse(element.Attribute("arrival").Value);
                timetable.route     = instanceRoute.Select(int.Parse(element.Attribute("routeId").Value));
                timetable.driver    = instanceDriver.Select(int.Parse(element.Attribute("driverId").Value));
                timetable.vehicle   = instanceVehicle.Select(int.Parse(element.Attribute("vehicleId").Value));

                timetables.Add((T)timetable);
            }

            return(timetables);
        }
Exemplo n.º 5
0
        public IEnumerable <Driver> Get()
        {
            DriverFactory        driverFactory  = new DriverFactory();
            DriverTable <Driver> instanceDriver = (DriverTable <Driver>)driverFactory.GetDriverInstance();

            return(instanceDriver.Select());
        }
        /// <summary>
        /// Executes the load items command.
        /// </summary>
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Races = await App.RestService.RacesByCircuit(dataoriginal.Id);

                DriverWinners = await App.RestService.GetDriversWinnerCircuitAsync(dataoriginal.Id);

                Circuit = dataoriginal;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// Open a driver list with the drivers provided.
 /// </summary>
 /// <param name="page">Current ContentPage</param>
 /// <param name="drivers">List of drivers.</param>
 /// <param name="title">Title to display in the bar.</param>
 /// <param name="warning">Indicates if show a warning if no data provided.</param>
 public static void OpenDriver(ContentPage page, DriverTable drivers, string title, bool warning = true)
 {
     if (drivers != null)
     {
         page.Navigation.PushAsync(new DriversPage(new DriversViewModel(drivers, title)));
     }
     else
     {
         ShowWarning(page, warning);
     }
 }
Exemplo n.º 8
0
        public void CreateTable(DriverTable schema)
        {
            string sqlString = "create table " + schema.TableName + "( ";

            for (var i = 0; i < schema.Columns.Count(); i++)
            {
                sqlString += schema.Columns.ElementAt(i).ColumnName + " ";
                switch (schema.Columns.ElementAt(i).ColumnType)
                {
                case ColumnDataType.INTEGER:
                    sqlString += "integer";
                    break;

                case ColumnDataType.REAL:
                    sqlString += "real";
                    break;

                case ColumnDataType.TEXT:
                    sqlString += "text";
                    break;

                case ColumnDataType.BLOB:
                    sqlString += "blob";
                    break;

                default:
                    throw new Exception("Create table: Column type invalid.");
                }

                if (schema.Columns.ElementAt(i).Constraints.Count() > 0)
                {
                    sqlString += " ";
                    for (var j = 0; j < schema.Columns.ElementAt(i).Constraints.Count(); j++)
                    {
                        switch (schema.Columns.ElementAt(i).Constraints.ElementAt(j).ConstraintType)
                        {
                        case ColumnConstraintType.PRIMARY:
                            sqlString += "primary key";
                            if (schema.Columns.ElementAt(i).Constraints.ElementAt(j).AutoIncrementColumn == true)
                            {
                                sqlString += " " + "autoincrement";
                            }
                            break;

                        case ColumnConstraintType.NOTNULL:
                            sqlString += "not null";
                            break;

                        case ColumnConstraintType.UNIQUE:
                            sqlString += "unique";
                            break;

                        case ColumnConstraintType.CHECK:
                            sqlString += "check (" + schema.Columns.ElementAt(i).Constraints.ElementAt(j).DefaultValueOrExpr + ")";
                            break;

                        case ColumnConstraintType.DEFAULT:
                            sqlString += "default (" + schema.Columns.ElementAt(i).Constraints.ElementAt(j).DefaultValueOrExpr + ")";
                            break;

                        case ColumnConstraintType.FOREIGN:
                            sqlString += "references " + schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialTable + "(";
                            for (var k = 0; k < schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.Count(); k++)
                            {
                                sqlString += schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.ElementAt(k);
                                if (k != schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.Count() - 1)
                                {
                                    sqlString += ", ";
                                }
                            }
                            sqlString += ")";
                            break;

                        default:
                            throw new Exception("Create table:  Column constraint type invalid.");
                        }
                        if (j != schema.Columns.ElementAt(i).Constraints.Count() - 1)
                        {
                            sqlString += " ";
                        }
                    }
                }

                if (i != schema.Columns.Count() - 1)
                {
                    sqlString += ", ";
                }
            }

            if (schema.Keys.Count() > 0)
            {
                for (var i = 0; i < schema.Keys.Count(); i++)
                {
                    switch (schema.Keys.ElementAt(i).ConstraintType)
                    {
                    case TableConstraintType.CHECK:
                        sqlString += "check (" + schema.Keys.ElementAt(i).DefaultValueOrExpr + ")";
                        break;

                    case TableConstraintType.UNIQUE:
                        sqlString += "unique";
                        break;

                    case TableConstraintType.FOREIGN:
                        sqlString += "foreign key (";
                        for (var k = 0; k < schema.Keys.ElementAt(i).AppliedColumns.Count(); k++)
                        {
                            sqlString += schema.Keys.ElementAt(i).AppliedColumns.ElementAt(k);
                            if (k != schema.Keys.ElementAt(i).AppliedColumns.Count() - 1)
                            {
                                sqlString += ", ";
                            }
                        }
                        sqlString += ")";
                        sqlString += "references " + schema.Keys.ElementAt(i).ReferentialTable + "(";
                        for (var k = 0; k < schema.Keys.ElementAt(i).ReferentialColumns.Count(); k++)
                        {
                            sqlString += schema.Keys.ElementAt(i).ReferentialColumns.ElementAt(k);
                            if (k != schema.Keys.ElementAt(i).ReferentialColumns.Count() - 1)
                            {
                                sqlString += ", ";
                            }
                        }
                        sqlString += ")";
                        break;

                    case TableConstraintType.PRIMARY:
                        break;
                    }

                    if (i != schema.Keys.Count() - 1)
                    {
                        sqlString += " ";
                    }
                }
            }
            sqlString += " );";

            // now run
            RunNonQuery(sqlString);
        }
Exemplo n.º 9
0
        private async void LoadDriverFromId()
        {
            _drivers = await App.RestService.GetDriverInfoAsync(DriverId);

            original = _drivers.Drivers[0];
        }
Exemplo n.º 10
0
        public LoginResponse Post([FromBody] User u)
        {
            DispatcherFactory            dispatcherFactory  = new DispatcherFactory();
            DispatcherTable <Dispatcher> instanceDispatcher = (DispatcherTable <Dispatcher>)dispatcherFactory.GetDispatcherInstance();

            ManagerFactory         managerFactory  = new ManagerFactory();
            ManagerTable <Manager> instanceManager = (ManagerTable <Manager>)managerFactory.GetManagerInstance();

            DriverFactory        driverFactory  = new DriverFactory();
            DriverTable <Driver> instanceDriver = (DriverTable <Driver>)driverFactory.GetDriverInstance();

            SessionFactory          sessionFactory  = new SessionFactory();
            SessionsTable <Session> instanceSession = (SessionsTable <Session>)sessionFactory.GetSessionInstance();

            var dispatcher = instanceDispatcher.Login(u.email, u.password);
            var driver     = instanceDriver.Login(u.email, u.password);
            var manager    = instanceManager.Login(u.email, u.password);

            if (dispatcher != null)
            {
                var     token = GenerateToken().ToString();
                Session s     = new Session();
                s.token   = token;
                s.type    = "DISPATCHER";
                s.user_id = dispatcher.id;
                instanceSession.CreateSession(s);
                LoginResponse lr = new LoginResponse();
                lr.token = token;
                lr.type  = "DISPATCHER";
                lr.email = dispatcher.email;
                return(lr);
            }

            if (driver != null)
            {
                var     token = GenerateToken().ToString();
                Session s     = new Session();
                s.token   = token;
                s.type    = "DRIVER";
                s.user_id = driver.id;
                instanceSession.CreateSession(s);
                LoginResponse lr = new LoginResponse();
                lr.token = token;
                lr.type  = "DRIVER";
                lr.email = driver.email;
                return(lr);
            }

            if (manager != null)
            {
                var     token = GenerateToken().ToString();
                Session s     = new Session();
                s.token   = token;
                s.type    = "MANAGER";
                s.user_id = manager.id;
                instanceSession.CreateSession(s);
                LoginResponse lr = new LoginResponse();
                lr.token = token;
                lr.type  = "MANAGER";
                lr.email = manager.email;
                return(lr);
            }
            LoginResponse lr1 = new LoginResponse();

            lr1.token = null;
            lr1.type  = "Užívatel neexistuje!";
            lr1.email = null;
            return(lr1);
        }
Exemplo n.º 11
0
        public void CreateTable(DriverTable schema)
        {
            string sqlString = "create table " + schema.TableName + "( ";
            for (var i = 0; i < schema.Columns.Count(); i++)
            {
                sqlString += schema.Columns.ElementAt(i).ColumnName + " ";
                switch (schema.Columns.ElementAt(i).ColumnType)
                {
                    case ColumnDataType.INTEGER:
                        sqlString += "integer";
                        break;
                    case ColumnDataType.REAL:
                        sqlString += "real";
                        break;
                    case ColumnDataType.TEXT:
                        sqlString += "text";
                        break;
                    case ColumnDataType.BLOB:
                        sqlString += "blob";
                        break;
                    default:
                        throw new Exception("Create table: Column type invalid.");
                }

                if (schema.Columns.ElementAt(i).Constraints.Count() > 0)
                {
                    sqlString += " ";
                    for (var j = 0; j < schema.Columns.ElementAt(i).Constraints.Count(); j++)
                    {
                        switch (schema.Columns.ElementAt(i).Constraints.ElementAt(j).ConstraintType)
                        {
                            case ColumnConstraintType.PRIMARY:
                                sqlString += "primary key";
                                if (schema.Columns.ElementAt(i).Constraints.ElementAt(j).AutoIncrementColumn == true)
                                {
                                    sqlString += " " + "autoincrement";
                                }
                                break;
                            case ColumnConstraintType.NOTNULL:
                                sqlString += "not null";
                                break;
                            case ColumnConstraintType.UNIQUE:
                                sqlString += "unique";
                                break;
                            case ColumnConstraintType.CHECK:
                                sqlString += "check (" + schema.Columns.ElementAt(i).Constraints.ElementAt(j).DefaultValueOrExpr + ")";
                                break;
                            case ColumnConstraintType.DEFAULT:
                                sqlString += "default (" + schema.Columns.ElementAt(i).Constraints.ElementAt(j).DefaultValueOrExpr + ")";
                                break;
                            case ColumnConstraintType.FOREIGN:
                                sqlString += "references " + schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialTable + "(";
                                for (var k = 0; k < schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.Count(); k++)
                                {
                                    sqlString += schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.ElementAt(k);
                                    if (k != schema.Columns.ElementAt(i).Constraints.ElementAt(j).ReferentialColumns.Count() - 1)
                                    {
                                        sqlString += ", ";
                                    }
                                }
                                sqlString += ")";
                                break;
                            default:
                                throw new Exception("Create table:  Column constraint type invalid.");
                        }
                        if (j != schema.Columns.ElementAt(i).Constraints.Count() - 1)
                        {
                            sqlString += " ";
                        }
                    }
                }

                if (i != schema.Columns.Count() - 1)
                {
                    sqlString += ", ";
                }
            }

            if (schema.Keys.Count() > 0)
            {
                for (var i = 0; i < schema.Keys.Count(); i++)
                {
                    switch (schema.Keys.ElementAt(i).ConstraintType)
                    {
                        case TableConstraintType.CHECK:
                            sqlString += "check (" + schema.Keys.ElementAt(i).DefaultValueOrExpr + ")"; 
                            break;
                        case TableConstraintType.UNIQUE:
                            sqlString += "unique";
                            break;
                        case TableConstraintType.FOREIGN:
                            sqlString += "foreign key (";
                            for (var k = 0; k < schema.Keys.ElementAt(i).AppliedColumns.Count(); k++)
                            {
                                sqlString += schema.Keys.ElementAt(i).AppliedColumns.ElementAt(k);
                                if (k != schema.Keys.ElementAt(i).AppliedColumns.Count() - 1)
                                {
                                    sqlString += ", ";
                                }
                            }
                            sqlString += ")";
                            sqlString += "references " + schema.Keys.ElementAt(i).ReferentialTable + "(";
                                for (var k = 0; k < schema.Keys.ElementAt(i).ReferentialColumns.Count(); k++)
                                {
                                    sqlString += schema.Keys.ElementAt(i).ReferentialColumns.ElementAt(k);
                                    if (k != schema.Keys.ElementAt(i).ReferentialColumns.Count() - 1)
                                    {
                                        sqlString += ", ";
                                    }
                                }
                                sqlString += ")";
                            break;
                        case TableConstraintType.PRIMARY:
                            break;
                    }

                    if (i != schema.Keys.Count() - 1)
                    {
                        sqlString += " ";
                    }
                }
            }
            sqlString += " );";

            // now run
            RunNonQuery(sqlString);
        }
Exemplo n.º 12
0
        public Overview Get()
        {
            SessionFactory          sessionsFactory = new SessionFactory();
            SessionsTable <Session> instance        = (SessionsTable <Session>)sessionsFactory.GetSessionInstance();
            var list  = Request.Headers.ToList();
            var token = list.Where(a => a.Key == "token")?.FirstOrDefault().Value.FirstOrDefault()?.Replace("\"", string.Empty);

            if (token == null)
            {
                return(new Overview());
            }
            var dispatcher = instance.SelectDispatcherSession(token);
            var driver     = instance.SelectDriverSession(token);
            var manager    = instance.SelectManagerSession(token);

            if (dispatcher == null && driver == null && manager == null)
            {
                return(new Overview());
            }

            Overview obj = new Overview();

            RequestFactory         requestFactory  = new RequestFactory();
            RequestTable <Request> instanceRequest = (RequestTable <Request>)requestFactory.GetRequestInstance();
            var requests = instanceRequest.Select();

            obj.acceptedRequests = requests.Where(r => r.state == RequestState.ACCEPTED).Count();
            obj.declinedRequests = requests.Where(r => r.state == RequestState.DECLINED).Count();
            obj.newRequests      = requests.Where(r => r.state == RequestState.NEW).Count();


            decimal              salary         = 0;
            DriverFactory        driverFactory  = new DriverFactory();
            DriverTable <Driver> instanceDriver = (DriverTable <Driver>)driverFactory.GetDriverInstance();
            var listDrivers = instanceDriver.Select();

            obj.driverCount = listDrivers.Count();
            salary         += listDrivers.Sum(dr => dr.salary);

            DispatcherFactory            dispatcherFactory  = new DispatcherFactory();
            DispatcherTable <Dispatcher> instanceDispatcher = (DispatcherTable <Dispatcher>)dispatcherFactory.GetDispatcherInstance();
            var listDispatchers = instanceDispatcher.Select();

            obj.dispatcherCount = listDispatchers.Count();
            salary += listDispatchers.Sum(dis => dis.salary);

            obj.monthSalary = salary;


            VehicleFactory vehicleFactory  = new VehicleFactory();
            var            instanceVehicle = vehicleFactory.GetVehicleInstance();

            obj.vehicleCount = instanceVehicle.Select().Count();

            FailureFactory         failureFactory  = new FailureFactory();
            FailureTable <Failure> instanceFailure = (FailureTable <Failure>)failureFactory.GetFailureInstance();
            var      listFailures = instanceFailure.Select();
            DateTime lastMonth    = DateTime.Now.AddMonths(-1);

            obj.failurestInLastMonth = listFailures.Where(d => d.created > lastMonth).Count();
            obj.failures             = listFailures.Count();
            return(obj);
        }