Exemplo n.º 1
0
        static void Main(string[] args)
        {
            #region Lab_1
            var customerObesrver = new CustomerObserver();
            var employeeObserver = new EmployeeObserver();

            ProductSubject productSubject = new ProductSubject();

            productSubject.Attached(customerObesrver);
            productSubject.Attached(employeeObserver);

            productSubject.Update();

            #endregion


            Console.WriteLine("\n");

            #region Lab_2
            ConcreteProduct concreteProduct = new ConcreteProduct("HP Laptop", 12);

            concreteProduct.members.Add(new ConcreteMember {
                EmailAddress = "*****@*****.**"
            });
            concreteProduct.members.Add(new ConcreteMember {
                EmailAddress = "*****@*****.**"
            });

            concreteProduct.Price = 15;
            #endregion

            Console.ReadKey();
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index()
        {
            try
            {
                ProductSubject subject   = new ProductSubject();
                IObserver      observer1 = new Observer("observer1");
                subject.Register(observer1);
                IObserver observer2 = new Observer("observer2");
                subject.Register(observer2);
                //subject.ProductCount++;
                //Product is added to the inventory and it will notified to all subscribers
                IObserver observer3 = new Observer("observer3");
                subject.Register(observer3);
                subject.Unregister(observer1);
                subject.ProductCount++;

                var observers = subject.GetObservers();
                return(View(observers));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Internal Server Error during implementation of Solid principle and  Observer pattern : {ex}");
                return(StatusCode(StatusCodes.Status500InternalServerError, "Internal server Error"));
            }
        }