Exemplo n.º 1
0
        /// <summary>
        /// Genera los inserts de cada job y los guarda en DB STC
        /// </summary>
        /// <param name="JobList">Lista de jobs que tiene la unidad en VT</param>
        /// <param name="IdVehicleSTC">Id de esta unidad en tabla vehiculos de STC</param>
        private void SaveResultToDB(List <JobsInVT> JobList, int IdVehicleSTC)
        {
            //Genera el insert de todos los jobs
            //Guarda en DB
            try
            {
                StringBuilder Sb = new StringBuilder();
                //Por cada Job genera un insert y lo guarda en el builder
                foreach (JobsInVT Job in JobList)
                {
                    Sb.Append(string.Format("{0}{1}{2}{3}",
                                            "INSERT INTO  JobsInVt ",
                                            "(`RouteName`,`ScheduledTime`,`RouteId`,`JobId`,`UserIdVT`,`IdVehicleSTC`,",
                                            "`CreatedBy`,`Created`,`ModifiedBy`,`Modified`)",
                                            string.Format(" VALUES('{0}','{1}','{2}','{3}',{4},{5},'JobsApp',UTC_TIMESTAMP(),'JobsApp',UTC_TIMESTAMP()); ",
                                                          Job.description.Replace("'", @"\'"), Job.scheduledTime, Job.routeId, Job.id, Job.workerId, IdVehicleSTC)));
                }

                StcDataBase DB = new StcDataBase();
                DB.SaveJobsToDB(Sb);
            }
            catch (Exception ex)
            {
                logger.Error("Error al consutar DB, cuando guarda los jobs {0}", ex.Message);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Filtra los jobs y rutas para identificar si existen en DB y no duplicar
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        private List <JobsInVT> FilterRouteExist(List <JobsInVT> allJobs)
        {
            List <JobsInVT> FullList = new List <JobsInVT>();

            try
            {
                StringBuilder Sb = new StringBuilder();
                //Agrupa para sacar los id's de ruta
                List <string> RouteGroup = (from x in allJobs
                                            group x by x.routeId into DGroup
                                            orderby DGroup.Key
                                            select DGroup.Key).ToList();

                //se van a buscar los jobs de cada ruta
                foreach (string Route in RouteGroup)
                {
                    List <JobsInVT> JobsInRoute = (from x in allJobs
                                                   where x.routeId.Equals(Route)
                                                   select x).ToList();
                    Sb.Append(string.Format("SELECT JobId FROM JobsInVt WHERE RouteId = '{0}' AND JobId IN (", Route));
                    foreach (JobsInVT Job in JobsInRoute)
                    {
                        Sb.Append(string.Format("'{0}',", Job.id));
                    }

                    Sb.Remove(Sb.Length - 1, 1);
                    Sb.Append(");");

                    StcDataBase DB = new StcDataBase();
                    //Va a buscar si estos jobs ya existen en la DB para no duplicarlos
                    List <string> JobsInDB = DB.ValidateExistJobs(Sb.ToString());
                    //Los jobs que trae la lista son los que si existen en la DB
                    //Hay que filtrarlos a la lista completa para que no se dupliquen al hacer insert
                    List <JobsInVT> allJobsFilter = (from x in allJobs
                                                     where x.routeId.Equals(Route) &&
                                                     !JobsInDB.Contains(x.id)
                                                     select x).ToList();
                    if (allJobsFilter.Count() > 0)
                    {
                        FullList.AddRange(allJobs);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error al buscar jobs/rutas existentes en STC {0}", ex.Message);
            }
            return(FullList);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Obtiene la lista de unidades existentes en STC
        /// </summary>
        /// <returns></returns>
        private List <Vehicle> getSTCVehicles()
        {
            List <Vehicle> Veh = null;

            try
            {
                StcDataBase DB = new StcDataBase();
                Veh = DB.GetVehicleList();
            }
            catch (Exception ex)
            {
                logger.Error("Error al consutar DB, cuando pide los vehiculos {0}", ex.Message);
            }
            return(Veh);
        }