示例#1
0
        public PlantModel GetPlant(int plantId)
        {
            PlantModel result = null;

            try
            {
                var plant = _context.Set <Plant>().FirstOrDefault(f => f.Id == plantId);
                if (plant == null)
                {
                    return(result);
                }

                result = plant.Adapt <Plant, PlantModel>();

                // Recupero le sue macchine ed il customer associato
                using (FomMonitoringEntities entUM = new FomMonitoringEntities())
                {
                    entUM.Configuration.LazyLoadingEnabled = false;
                    var customerName = entUM.Users.FirstOrDefault(f => f.ID == plant.UserId)?.Username;
                    result.CustomerName = customerName;
                }
            }
            catch (Exception ex)
            {
                string errMessage = string.Format(ex.GetStringLog(), plantId.ToString());
                LogService.WriteLog(errMessage, LogService.TypeLevel.Error, ex);
            }

            return(result);
        }
示例#2
0
        public List <PlantModel> GetPlants(string usernameCustomer)
        {
            List <PlantModel> result = null;

            try
            {
                using (FomMonitoringEntities entUM = new FomMonitoringEntities())
                {
                    //ent.Configuration.LazyLoadingEnabled = false;
                    // Recupero la lista degli utenti associati al cliente
                    List <Plant> customerPlants = new List <Plant>();
                    if (!string.IsNullOrWhiteSpace(usernameCustomer))
                    {
                        var gc = entUM.Users.FirstOrDefault(f => f.Username == usernameCustomer)?.ID;

                        customerPlants = _context.Set <Plant>().Where(w => w.UserId == gc).Distinct().ToList();
                        if (customerPlants.Count == 0)
                        {
                            return(result);
                        }
                    }
                    else
                    {
                        customerPlants = _context.Set <Plant>().Include("Machine").ToList();
                    }

                    result = customerPlants.Adapt <List <Plant>, List <PlantModel> >();
                    // Associo il cliente all'utente
                    if (!string.IsNullOrWhiteSpace(usernameCustomer))
                    {
                        result.ForEach(fe => fe.CustomerName = usernameCustomer);
                    }
                    else
                    {
                        var userCustomer = _context.Set <UserCustomerMapping>().ToList();
                        result.ForEach(fe => fe.CustomerName = userCustomer.FirstOrDefault(w => w.UserId == fe.UserId)?.CustomerName);
                    }
                }
            }
            catch (Exception ex)
            {
                string errMessage = string.Format(ex.GetStringLog(), usernameCustomer);
                LogService.WriteLog(errMessage, LogService.TypeLevel.Error, ex);
            }

            return(result);
        }
示例#3
0
        public bool ModifyPlant(PlantModel plant)
        {
            try
            {
                Guid?customerId;
                using (var entUm = new FomMonitoringEntities())
                {
                    entUm.Configuration.LazyLoadingEnabled = false;
                    customerId = entUm.Users.FirstOrDefault(f => f.Username == plant.CustomerName)?.ID;
                }
                var updPlant = _context.Set <Plant>().Find(plant.Id) ?? new Plant();

                updPlant.Id      = plant.Id;
                updPlant.Name    = plant.Name;
                updPlant.Address = plant.Address;
                updPlant.UserId  = customerId;

                _context.Set <Plant>().AddOrUpdate(updPlant);
                _context.SaveChanges();

                var idsMachines = plant.Machines.Select(i => i.Id).ToList();
                var oldMachine  = updPlant.Machine.Where(m => idsMachines.All(mi => mi != m.Id)).ToList();
                oldMachine.ForEach(m => {
                    m.Plant   = null;
                    m.PlantId = null;
                });

                var newMachine = _context.Set <Machine>().Where(m => idsMachines.Any(mi => mi == m.Id)).ToList();
                newMachine.ForEach(m => {
                    m.Plant   = updPlant;
                    m.PlantId = updPlant.Id;
                });

                _context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                string errMessage = ex.GetStringLog();
                LogService.WriteLog(errMessage, LogService.TypeLevel.Error, ex);
                throw ex;
            }
        }
示例#4
0
        public int CreatePlant(PlantModel plant)
        {
            try
            {
                Guid?customerId = null;
                using (FomMonitoringEntities entUM = new FomMonitoringEntities())
                {
                    entUM.Configuration.LazyLoadingEnabled = false;
                    customerId = entUM.Users.FirstOrDefault(f => f.Username == plant.CustomerName)?.ID;
                }

                var addPlant = new Plant
                {
                    Id      = plant.Id,
                    Address = plant.Address,
                    Name    = plant.Name,
                    UserId  = customerId
                };

                _context.Set <Plant>().Add(addPlant);
                _context.SaveChanges();

                var idsMachines = plant.Machines.Select(i => i.Id).ToList();

                var newMachine = _context.Set <Machine>().Where(m => idsMachines.Any(mi => mi == m.Id)).ToList();
                newMachine.ForEach(m => {
                    m.Plant   = addPlant;
                    m.PlantId = addPlant.Id;
                });

                _context.SaveChanges();


                return(addPlant.Id);
            }
            catch (Exception ex)
            {
                string errMessage = ex.GetStringLog();
                LogService.WriteLog(errMessage, LogService.TypeLevel.Error, ex);
                throw ex;
            }
        }