示例#1
0
        protected void SaveOrUpdateWithoutTransaction(Odometro obj, IEnumerable <TipoCoche> tiposVehiculo, Usuario user)
        {
            var cocheDao = new CocheDAO();

            if (obj.Id > 0)
            {
                RemoveObsoleteOdometers(obj);
            }

            SaveOrUpdate(obj);

            GenerateNewOdometers(obj, obj.TiposDeVehiculo.OfType <TipoCoche>(), cocheDao, user);
        }
示例#2
0
        private void RemoveObsoleteOdometers(Odometro odometro)
        {
            var movOdometroDao = new MovOdometroVehiculoDAO();
            var odometros      = movOdometroDao.GetByOdometro(odometro.Id);
            var cocheDao       = new CocheDAO();

            foreach (var ov in odometros)
            {
                var vehiculo = ov.Vehiculo;
                vehiculo.RemoveOdometro(ov);
                cocheDao.SaveOrUpdate(vehiculo);
            }
        }
示例#3
0
        public void SaveOrUpdateWithoutTransaction(Odometro obj, IEnumerable <int> vehiculos, Usuario user)
        {
            var cocheDao = new CocheDAO();

            SaveOrUpdate(obj);

            foreach (var id in vehiculos)
            {
                if (id == 0)
                {
                    break;
                }
                var vehiculo = cocheDao.FindById(id);
                var odometro = new MovOdometroVehiculo {
                    Vehiculo = vehiculo, Odometro = obj
                };

                if (!vehiculo.Odometros.Contains(odometro))
                {
                    vehiculo.AddOdometro(odometro);
                    cocheDao.SaveOrUpdate(vehiculo);
                }
            }
        }
示例#4
0
        private static void GenerateNewOdometers(Odometro obj, IEnumerable <TipoCoche> tiposVehiculo, CocheDAO cocheDAO, Usuario user)
        {
            var empresas = new List <int> {
                obj.Empresa != null ? obj.Empresa.Id : 0
            };
            var lineas = new List <int> {
                obj.Linea != null ? obj.Linea.Id : 0
            };

            var typesToRemove = tiposVehiculo.Select(t => t.Id).ToList();

            foreach (var vehiculo in cocheDAO.FindList(empresas, lineas, typesToRemove, user))
            {
                var odometro = new MovOdometroVehiculo {
                    Vehiculo = vehiculo, Odometro = obj
                };

                if (!vehiculo.Odometros.Contains(odometro))
                {
                    vehiculo.AddOdometro(odometro);
                    cocheDAO.SaveOrUpdate(vehiculo);
                }
            }
        }