예제 #1
0
        private Location InsertLocations(Mongo.Mongo mongo, DataRow row, string Creator)
        {
            Location conjunto     = mongo.GetLocationByName(row["AF_NOMBRE_CONJUNTO"].ToString());
            Location ubicacion    = mongo.GetLocation(row["UB_ID_UBICACION"].ToString());
            Location sububicacion = mongo.GetLocation(row["UB_ID_SUBUBICACION"].ToString());

            //Buscar Conjunto
            if (conjunto == null)
            {
                conjunto = new Location(row["AF_NOMBRE_CONJUNTO"].ToString(), Creator, Region, mongo.ConjuntoProfile);
                mongo.Insert(conjunto);
            }
            //Buscar Ubicación
            if (ubicacion == null)
            {
                ubicacion = new Location(row["UB_ID_UBICACION"].ToString(), row["AF_UBICACION"].ToString(), Creator, conjunto, mongo.UbicacionProfile);
                mongo.Insert(ubicacion);
            }
            //BuscarSubUbicacion
            if (sububicacion == null)
            {
                sububicacion = new Location(row["UB_ID_SUBUBICACION"].ToString(), row["AF_SUBUBICACION"].ToString(), Creator, ubicacion, mongo.SubUbicacionProfile);
                mongo.Insert(sububicacion);
            }
            return(sububicacion);
        }
예제 #2
0
        private void AddToUpdateList(Mongo.Mongo mongo, DataRow row, string creator)
        {
            ObjectReal      asset     = CastAsset(row, creator);
            Location        location  = InsertLocations(mongo, row, creator);
            ReferenceObject reference = InsertReference(mongo, row, creator);

            mongo.ChangeSerial(asset, row["AF_NUM_SERIE"].ToString(), true);
            mongo.ChangeLocation(asset, location, true);
            mongo.ChangeReference(asset, reference, true);
        }
예제 #3
0
        public void Update(DataTable data, string db, string user, string pwd, string host)
        {
            Mongo.Mongo mongo         = new Mongo.Mongo(db, user, pwd, host);
            bool        regionChecked = false;

            Region = mongo.GetFirstRegion();
            string Creator = mongo.GetAdminUser();

            int total  = data.Rows.Count + 9;
            int faltan = data.Rows.Count;

            foreach (DataRow row in data.Rows)
            {
                faltan--;
                if (!regionChecked)
                {
                    var changeRegion = mongo.GetRegionOfSub(row["UB_ID_SUBUBICACION"].ToString());

                    if (changeRegion != null)
                    {
                        Region = changeRegion;
                    }
                    regionChecked = true;
                }
                string     assetType = mongo.GetAssetType(row["AF_ID_ARTICULO"].ToString());
                ObjectReal asset     = CastAsset(row, Creator, assetType);
                if (mongo.ExistsEPC(row["AF_EPC_COMPLETO"].ToString()))
                {
                    AddToUpdateList(mongo, row, Creator);
                }
                else
                {
                    if (mongo.ExistsRegister(row["ID_REGISTRO"].ToString()))
                    {
                        mongo.ChangeTag(row["ID_REGISTRO"].ToString(), row["AF_EPC_COMPLETO"].ToString(), true);
                        AddToUpdateList(mongo, row, Creator);
                    }
                    else
                    {
                        mongo.Insert(asset);
                        InsertLocations(mongo, row, Creator);
                        InsertReference(mongo, row, Creator);
                    }
                }
                int progress = (total - faltan) * 100 / total;
                OnProgress(progress);
            }

            mongo.UpdateBulkLocations();
            OnProgress(93);
            mongo.UpdateBulkReferenceObjects();
            OnProgress(96);
            mongo.UpdateBulkObjectsReal();
            OnProgress(100);
        }
예제 #4
0
        private ReferenceObject InsertReference(Mongo.Mongo mongo, DataRow row, string creator)
        {
            string          id        = row["AF_ID_ARTICULO"].ToString();
            ReferenceObject reference = mongo.GetReferenceObject(id);

            if (reference == null)
            {
                Category noCategory = new Category("Sin Categoría", creator, "null");
                noCategory = mongo.Insert(noCategory);
                reference  = new ReferenceObject(
                    id,
                    row["AF_DESC_ARTICULO"].ToString(),
                    row["AF_MARCA"].ToString(),
                    row["AF_MODELO"].ToString(),
                    creator,
                    noCategory
                    );
                mongo.Insert(reference);
            }
            return(reference);
        }