Пример #1
0
		public ConsumerDetailsViewModel(Consumer consumer, bool isReadOnly, bool isNew = false)
		{
			Title = isNew ? "Создание абонента" : "Редактирование абонента";
			Update(consumer);
			InitializeBill(consumer);
			IsReadOnly = isReadOnly;
		}
		public void Update(Consumer consumer)
		{
			Uid = consumer.UID;
			ParentUid = consumer.ParentUID;
			Name = consumer.Name;
			Description = consumer.Description;
		}
Пример #3
0
		private FilterConsumerViewModel AddConsumerInternal(Consumer consumer, FilterConsumerViewModel parentConsumerViewModel= null)
		{
			var consumerViewModel = new FilterConsumerViewModel(consumer);
			if (parentConsumerViewModel != null)
				parentConsumerViewModel.AddChild(consumerViewModel);

			foreach (var childConsumer in consumer.Children)
				AddConsumerInternal(childConsumer, consumerViewModel);
			return consumerViewModel;
		}
Пример #4
0
		static DbCache()
		{
			RootDevice = GetRootDevice();
			if (RootDevice == null)
				CreateSystem();
			if(GetAllUsers()!= null)
			Users = GetAllUsers();
			RootConsumer = GetRootConsumer();
			Tariffs = ReadAllTariffs();
		}
Пример #5
0
		public DepositsViewModel(Consumer consumer)
		{
			Title = "История пополнения баланса";
			Consumer = consumer;
			Deposits = new ObservableCollection<DepositViewModel>(consumer.Deposits.Select(x => new DepositViewModel(x)));

			AddCommand = new RelayCommand(OnAdd, CanAdd);
			EditCommand = new RelayCommand(OnEdit, CanEdit);
			RemoveCommand = new RelayCommand(OnRemove, CanRemove);
		}
		void InitializeBill(Consumer consumer)
		{
			ShowReceiptCommand = new RelayCommand(OnShowReceipt, CanShowReceipt);

			Receipts = ReceiptHelper.GetAllTemplate();
			SelectedReceipt = Receipts.FirstOrDefault();
			AddDeviceCommand = new RelayCommand(OnAddDevice);
			RemoveDeviceCommand = new RelayCommand<DeviceViewModel>(OnRemoveDevice);
			SelectDeviceCommand = new RelayCommand<Guid>(OnSelectDevice);
			AddDepositCommand = new RelayCommand(OnAddDeposit);
			ShowDepositsCommand = new RelayCommand(OnShowDeposits);

			DepositsViewModel = new DepositsViewModel(consumer);
		}
Пример #7
0
		public void Update(Consumer consumer)
		{
			UID = consumer.UID;
			ParentUID = consumer.ParentUID;
			Name = consumer.Name;
			Address = consumer.Address;
			Description = consumer.Description;
			Phone = consumer.Phone;
			Email = consumer.Email;
			Login = consumer.Login;
			Password = consumer.Password;
			IsSendEmail = consumer.IsSendEmail;
			Number = consumer.Number;
			Balance = consumer.Balance;
			Devices = new ObservableCollection<DeviceViewModel>(consumer.Devices.Select(x => new DeviceViewModel(x)));
		}
		public ConsumersFolderDetailsViewModel(Consumer consumer, bool isReadOnly, bool isNew = false)
		{
			Title = isNew ? "Создание группы абонентов" : "Редактирование группы абонентов";
			Update(consumer);
			IsReadOnly = isReadOnly;
		}
Пример #9
0
		void UpdateConsumerDetailsViewModels(Device device, Consumer oldConsumer = null)
		{
			var newConsumer = device.Consumer;
			if (oldConsumer == newConsumer)
				return;
			if (oldConsumer != null)
			{
				var consumerDetailsViewModel = Bootstrapper.MainViewModel.ConsumersViewModel.FindConsumerDetailsViewModel(oldConsumer.UID);
				if (consumerDetailsViewModel != null)
				{
					var deviceViewModel = consumerDetailsViewModel.Devices.FirstOrDefault(x => x.Device.UID == device.UID);
					if (deviceViewModel != null)
						consumerDetailsViewModel.Devices.Remove(deviceViewModel);
				}
			}
			if (newConsumer != null)
			{
				var consumerDetailsViewModel = Bootstrapper.MainViewModel.ConsumersViewModel.FindConsumerDetailsViewModel(newConsumer.UID);
				if (consumerDetailsViewModel != null)
				{
					var deviceViewModel = consumerDetailsViewModel.Devices.FirstOrDefault(x => x.Device.UID == device.UID);
					if (deviceViewModel == null)
						consumerDetailsViewModel.Devices.Add(new DeviceViewModel(device));
				}
			}
		}
Пример #10
0
		void UpdateDeviceViewModels(Consumer oldConsumer, Consumer newConsumer)
		{
			if (oldConsumer == null && newConsumer == null)
				return;

			var devicesToRemove = oldConsumer == null ?
				null :
				newConsumer == null ?
				oldConsumer.Devices :
				oldConsumer.Devices.Except(newConsumer.Devices);

			var devicesToAdd = newConsumer == null ?
				null :
				oldConsumer == null ?
				newConsumer.Devices :
				newConsumer.Devices.Except(oldConsumer.Devices);

			if (devicesToRemove != null)
				foreach (var device in devicesToRemove)
				{
					var deviceViewModel = Bootstrapper.MainViewModel.DevicesViewModel.AllDevices.FirstOrDefault(x => x.Device.UID == device.UID);
					if (deviceViewModel != null)
					{
						deviceViewModel.Device.Consumer = null;
						deviceViewModel.Device.ConsumerUID = null;
						DbCache.AddJournalForUser(JournalType.EditDevice, deviceViewModel.Device, string.Format("Разорвана связь с лицевым счетом [{0}]{1}", oldConsumer.Number, oldConsumer.Name));
					}
				}

			if (devicesToAdd != null)
				foreach (var device in devicesToAdd)
				{
					var deviceViewModel = Bootstrapper.MainViewModel.DevicesViewModel.AllDevices.FirstOrDefault(x => x.Device.UID == device.UID);
					if (deviceViewModel != null)
					{
						deviceViewModel.Device.Consumer = newConsumer;
						deviceViewModel.Device.ConsumerUID = newConsumer.UID;
						DbCache.AddJournalForUser(JournalType.EditDevice, deviceViewModel.Device, string.Format("Добавлена связь с лицевым счетом [{0}]{1}", newConsumer.Number, newConsumer.Name));
					}
				}
		}
Пример #11
0
		public static void CreateConsumers()
		{
			if (RootConsumer == null)
				RootConsumer = GetRootConsumer();
			using (var context = DatabaseContext.Initialize())
			{
				context.Configuration.AutoDetectChangesEnabled = false;
				Random random = new Random();
				for (int x = 1; x <= 10; x++)
				{
					var a = new Consumer
					{ 
						ParentUID = RootConsumer.UID, 
						IsFolder = true, 
						Name = "ДОМ №" + x, 
						Description = 
						"Описание дома №" + x 
					};
					context.Consumers.Add(a);
					for (int y = 1; y <= 4; y++)
					{
						var b = new Consumer 
						{ 
							ParentUID = a.UID, 
							IsFolder = true, 
							Name = "Подъезд №" + y, 
							Description = "Описание подъезда №" + y
						};
						context.Consumers.Add(b);
						for (int z = (y - 1) * 50 + 1; z <= y * 50; z++)
						{
							var c = new Consumer
							{
								ParentUID = b.UID,
								Name = "Квартира №" + z,
								Address = string.Format("410012, г. Саратов, ул. Московская, д. {0}, кв. {1}", x, z),
								Phone = string.Format("(8452) {0:00-00-00}", random.Next(200000, 799999)),
								Password = "******" + x + y + z,
								Login = "******" + x + y + z,
								Number = string.Format("{0:00000000}", random.Next(99999999)),
								Email = "consumer" + x + y + z + "@gmail.com",
								IsSendEmail = random.Next(2) == 1,
								Description = "Описание квартриры №" + z,
								Balance = (decimal)random.Next(-500000, 2000000) / 100
							};
							context.Consumers.Add(c);
						}
					}
				}
				context.ChangeTracker.DetectChanges();
				context.SaveChanges();
			}

		}
Пример #12
0
		public static void DeleteConsumer(Consumer consumer)
		{
			using (var context = DatabaseContext.Initialize())
			{
				var dbConsumer = context.Consumers.Where(x => x.UID == consumer.UID).FirstOrDefault();
				if (dbConsumer != null)
				{
					context.Devices.Where(x => x.ConsumerUID == dbConsumer.UID).ToList().ForEach(x => x.ConsumerUID = null);
					context.Consumers.Remove(dbConsumer);
				}
				context.SaveChanges();
			}
		}
Пример #13
0
		public static void SaveConsumer(Consumer consumer)
		{
			using (var context = DatabaseContext.Initialize())
			{
				var dbConsumer = context.Consumers.Where(x => x.UID == consumer.UID).FirstOrDefault();
								
				if (dbConsumer == null)
				{
					dbConsumer = context.Consumers.Add(consumer);
					foreach (var device in consumer.Devices)
					{
						var dbDevice = context.Devices.FirstOrDefault(x => x.UID == device.UID);
						if (dbDevice != null)
							dbDevice.ConsumerUID = consumer.UID;
					}
				}
				else
				{
					dbConsumer.Devices.AddRange(context.Devices.Where(x => x.ConsumerUID == consumer.UID));
					dbConsumer.Address = consumer.Address;
					dbConsumer.Description = consumer.Description;
					dbConsumer.Email = consumer.Email;
					dbConsumer.Number = consumer.Number;
					dbConsumer.IsFolder = consumer.IsFolder;
					dbConsumer.IsSendEmail = consumer.IsSendEmail;
					dbConsumer.Login = consumer.Login;
					dbConsumer.Name = consumer.Name;
					dbConsumer.Parent = consumer.Parent;
					dbConsumer.Password = consumer.Password;
					dbConsumer.Phone = consumer.Phone;
					dbConsumer.ParentUID = consumer.ParentUID;

					dbConsumer.Devices.Except(consumer.Devices).ToList().ForEach(x => x.ConsumerUID = null);
					
					foreach (var device in consumer.Devices.Except(dbConsumer.Devices).ToList())
					{
						var dbDevice = context.Devices.FirstOrDefault(x => x.UID == device.UID);
						if (dbDevice != null)
							dbDevice.ConsumerUID = consumer.UID;
					}

				}
				dbConsumer.Parent = dbConsumer.ParentUID == null ? null : context.Consumers.FirstOrDefault(x => x.UID == dbConsumer.ParentUID);
				context.SaveChanges();
			}
		}