Esempio n. 1
0
 public static void EmailPassword(string userEmailRecover) // Method takes email of the user to recover password, and send him/her a email with the password
 {
     SetHostValuesFromXml();
     foreach (XElement xe in (XDocument.Load(XmlParser.xmlUsers).XPathSelectElements($"//RegisteredUser")))
     {
         if (xe.Element("Email").Value.Equals(userEmailRecover))
         {
             using (StreamReader reader = File.OpenText(XmlParser.recoverTempl))
             {
                 try
                 {
                     VipCustomer recoUser = new VipCustomer();
                     recoUser.FirstName = xe.Element("FirstName").Value;
                     recoUser.Email     = xe.Element("Email").Value;
                     recoUser.PassWord  = xe.Element("PassWord").Value;
                     message.From       = new MailAddress("*****@*****.**");
                     message.To.Add(new MailAddress($"{recoUser.Email}"));
                     message.Subject    = $"Password recovery for {recoUser.FirstName}";
                     message.IsBodyHtml = true;                //to make message body as html
                     string templateHtml = reader.ReadToEnd(); //Makes used of the NutGet packaged called Nustage who takes the HTML template in Resources and bind the information accordantly in the {{TAGS}}
                     message.Body = Render.StringToString(templateHtml, recoUser);
                     LoadClientAndSendEmail();
                 }
                 catch (Exception e) { Console.WriteLine(e.Message); }
             }
         }
     }
 }
        public void VipLoan_Create_Succeeds()
        {
            var loan = new VipLoan
            {
                CustomerId   = 1,
                InterestRate = 0.02,
                LoanAmount   = 6000,
                LoanStart    = DateTime.Now,
                LoanEnd      = DateTime.Now.AddYears(2)
            };

            var customer = new VipCustomer
            {
                FirstName      = "Arnas",
                LastName       = "Danaitis",
                MonthlySalary  = 2000,
                PersonalNumber = "12345678101"
            };

            var customerLoans = new List <Loan>
            {
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                }
            };

            Assert.True(_loanDomainService.CanCreateLoan(loan, customer, customerLoans));
        }
Esempio n. 3
0
        public static bool EmailPassword(string userEmailRecover)
        {
            bool passSent = false;

            foreach (XElement xe in (XDocument.Load(XmlParser.xmlUsers).XPathSelectElements($"//RegisteredUser")))
            {
                if (xe.Element("Email").Value.Equals(userEmailRecover))
                {
                    using (StreamReader reader = File.OpenText(XmlParser.recoverTempl)) // Path to your
                    {
                        try
                        {
                            VipCustomer recoUser = new VipCustomer();
                            recoUser.FirstName = xe.Element("FirstName").Value;
                            recoUser.Email     = xe.Element("Email").Value;
                            recoUser.PassWord  = xe.Element("PassWord").Value;
                            message.From       = new MailAddress("*****@*****.**");
                            message.To.Add(new MailAddress($"{recoUser.Email}"));
                            message.Subject    = $"Password recovery for {recoUser.FirstName}";
                            message.IsBodyHtml = true; //to make message body as html
                            string templateHtml = reader.ReadToEnd();
                            message.Body = Render.StringToString(templateHtml, recoUser);
                            passSent     = true;
                            return(passSent);
                        }
                        catch (Exception) { }
                    }
                }
            }
            return(passSent);
        }
Esempio n. 4
0
        public void VipCustomer_Create_Fails()
        {
            var customer = new VipCustomer
            {
                FirstName      = "Deividas",
                LastName       = "Brazenas",
                MonthlySalary  = 1000,
                PersonalNumber = "12345678901"
            };

            var existingCustomers = new List <Customer>
            {
                new StandardCustomer
                {
                    FirstName      = "Tomas",
                    LastName       = "Drasutis",
                    MonthlySalary  = 1100,
                    PersonalNumber = "12345678101"
                },
                new VipCustomer
                {
                    FirstName      = "Arnas",
                    LastName       = "Danaitis",
                    MonthlySalary  = 1000,
                    PersonalNumber = "12345678901"
                }
            };

            Assert.Throws <BusinessException>(() => _customerDomainService.CanCreateCustomer(customer, existingCustomers));
        }
        public void Is_Should_Return_True_On_Objects_Derived_From_Specific_Types()
        {
            var vipCustomer = new VipCustomer();

            var result = vipCustomer.Is <Customer>();

            result.Should().BeTrue();
        }
Esempio n. 6
0
        public void A_class_should_map_its_parents_properties_and_get_the_new_value(
            Customer myClass, DateTime time)
        {
            VipCustomer ret = myClass.As <VipCustomer>()
                              .Eql(p => p.Since, time);

            Assert.Equal(myClass.Id, ret.Id);
            Assert.Equal(myClass.Name, ret.Name);
            Assert.Equal(time, ret.Since);
        }
        public IActionResult GetFromVipCustomer(int key)
        {
            VipCustomer vipCustomer = _customers.OfType <VipCustomer>().FirstOrDefault(d => d.Id == key);

            if (vipCustomer == null)
            {
                return(NotFound($"Cannot found the VipCustomer with id '{key}'"));
            }

            return(Ok(vipCustomer));
        }
    public void AddVipCustomer(VipCustomer customer)
    {
        CustomValidator.ValidateObject(customer);
        var exists = Exists(customer.Id);

        if (!exists)
        {
            var enState = _context.VipCustomers.Add(new VipCustomerDbModel(customer.Id, customer.Name, customer.Balance,
                                                                           customer.CashBack, customer.CashBackPercent, customer.Points));
            enState.State = EntityState.Added;
            _context.SaveChanges();
        }
    }
        public void VipLoan_Create_TooManyLoans_Fails()
        {
            var loan = new VipLoan
            {
                CustomerId   = 1,
                InterestRate = 0.02,
                LoanAmount   = 10000,
                LoanStart    = DateTime.Now,
                LoanEnd      = DateTime.Now.AddYears(1)
            };

            var customer = new VipCustomer
            {
                FirstName      = "Arnas",
                LastName       = "Danaitis",
                MonthlySalary  = 1000,
                PersonalNumber = "12345678101"
            };

            var customerLoans = new List <Loan>
            {
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                },
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                },
                new VipLoan
                {
                    CustomerId   = 1,
                    InterestRate = 0.02,
                    LoanAmount   = 30000,
                    LoanStart    = DateTime.Now.AddYears(-1),
                    LoanEnd      = DateTime.Now.AddYears(1)
                }
            };

            Assert.Throws <BusinessException>(() => _loanDomainService.CanCreateLoan(loan, customer, customerLoans));
        }
Esempio n. 10
0
        public void TestMethod()
        {
            //普通客户
            Customer normalCustomer = new NormalCustomer();

            normalCustomer.Money = 100m;
            normalCustomer.SetChargeBehavior(new NormalChargeBehavior());
            normalCustomer.CustomerPay(normalCustomer.Money);

            //Vip客户
            Customer vipCustomer = new VipCustomer();

            normalCustomer.Money = 100m;
            vipCustomer.SetChargeBehavior(new VipChargeBehavior());
            vipCustomer.CustomerPay(normalCustomer.Money);
        }
Esempio n. 11
0
        public static void XmlParserVipCustomer(VipCustomer vip)//Receives a VipCustomer instance and writes to its respective XML file
        {
            XDocument doc    = XDocument.Load(xmlUsers);
            XElement  school = doc.Element("Users");

            school.Add(new XElement("RegisteredUser",
                                    new XElement("FirstName", vip.FirstName),
                                    new XElement("LastName", vip.LastName),
                                    new XElement("Type", vip.userType),
                                    new XElement("UserName", vip.UserName),
                                    new XElement("PassWord", vip.PassWord),
                                    new XElement("Email", vip.Email),
                                    new XElement("Address", vip.Address),
                                    new XElement("PhoneNumber", vip.PhoneNumber)));

            doc.Save(xmlUsers);
        }
        public static void XmlParserVipCustomer(VipCustomer vip)
        {
            XDocument doc    = XDocument.Load(xmlVipUsers);
            XElement  school = doc.Element("VIPCustomers");

            school.Add(new XElement("VIPCustomer",
                                    new XElement("FirstName", vip.FirstName),
                                    new XElement("LastName", vip.LastName),
                                    new XElement("UserName", vip.UserName),
                                    new XElement("PassWord", vip.PassWord),
                                    new XElement("Email", vip.Email),
                                    new XElement("Adress", vip.adress),
                                    new XElement("PhoneNumber", vip.PhoneNumber),
                                    new XElement("CreditCard", vip.CreditCard)));

            doc.Save(xmlVipUsers);
        }
        private void SignUpButton_Click(object sender, EventArgs e)
        {
            if (AviableUserNameName1.Visible && textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "" && textBox6.Text != "" &&
                RegisterEmail1ComboBox.Text != "" && RegisterEmail1TextBox.Text != "" && RegisterPassWord1TextBox.Text != "" && RegisterPhone1ComboBox.Text != "" && RegisterPhone1TextBox.Text != "" && RegisterStreet1TextBox.Text != "")
            {
                VipCustomer vip = new VipCustomer();
                vip.FirstName   = textBox1.Text;
                vip.LastName    = textBox2.Text;
                vip.UserName    = RegisterUserName1TextBox.Text;
                vip.PassWord    = RegisterPassWord1TextBox.Text;
                vip.Email       = RegisterEmail1TextBox.Text + "@" + RegisterEmail1ComboBox.Text;
                vip.adress      = RegisterStreet1TextBox.Text;
                vip.PhoneNumber = RegisterPhone1ComboBox.Text + RegisterPhone1TextBox.Text;
                vip.CreditCard  = textBox3.Text + textBox4.Text + textBox5.Text + textBox6.Text;

                XmlParser.XmlParserVipCustomer(vip);

                MessageBox.Show("Succesfully Registered", "WOOHOO");
                this.Close();
            }
        }
Esempio n. 14
0
    public bool TryUpdateCustomerStatus(Guid customerId, int daysInApplication)
    {
        CustomValidator.ValidateId(customerId);
        if (daysInApplication < 0)
        {
            throw new ArgumentException();
        }
        var customer = _customerRepository.GetOne(customerId);

        if (customer != null)
        {
            double sum          = 0;
            var    purchaseList = _purchaseRepository.GetCustomerPurchases(customer.Id);
            if (purchaseList.Count != 0)
            {
                var purchasedProducts =
                    (from purchase in purchaseList
                     where _productRepository.Exists(purchase.ProductId)
                     select _productRepository.GetOne(purchase.ProductId))
                    .ToList();
                sum = purchasedProducts.Sum(pr => pr.PriceInUAH);
            }

            var checkCashBackPercent = _propertyGetter.GetProperty <int>(EntityNames.Customer,
                                                                         nameof(VipCustomer.CashBackPercent),
                                                                         EntityNames.CustomerId, customer.Id);
            var checkDiscountPercent = _propertyGetter.GetProperty <int>(EntityNames.Customer,
                                                                         nameof(VipCustomer.DiscountPercent),
                                                                         EntityNames.CustomerId, customer.Id);

            if (daysInApplication > 60 && checkCashBackPercent == 0)
            {
                _customerRepository.DeleteOne(customer.Id);
                var reliable = new ReliableCustomer(customer.Id, customer.Name, customer.Balance, 0, 5);
                _customerRepository.AddReliableCustomer(reliable);
            }

            if (daysInApplication > 60 && sum >= 200_000 && checkDiscountPercent == 0 && checkCashBackPercent != 0)
            {
                var currentReliableCustomer = (ReliableCustomer)customer;
                _customerRepository.DeleteOne(currentReliableCustomer.Id);
                var vip = new VipCustomer
                          (
                    currentReliableCustomer.Id,
                    currentReliableCustomer.Name,
                    currentReliableCustomer.Balance,
                    currentReliableCustomer.CashBack,
                    10, 0
                          );
                _customerRepository.AddReliableCustomer(vip);
            }

            if (daysInApplication > 60 && sum >= 200_000 && checkDiscountPercent == 0 && checkCashBackPercent == 0)
            {
                _customerRepository.DeleteOne(customer.Id);
                var vip = new VipCustomer(customer.Id, customer.Name, customer.Balance, 0, 10, 0);
                _customerRepository.AddVipCustomer(vip);
            }

            return(true);
        }

        return(false);
    }
Esempio n. 15
0
        private void SignUpButton_Click(object sender, EventArgs e)// על ההתחלה מגדיר את כל הלייבלים של הטעות להיות ניראים
        {
            UnSuccesEmailCheckLabel.Visible          = true;
            UnSuccesFirstNameCheckLabel.Visible      = true;
            UnSuccesLastNameCheckLabel.Visible       = true;
            UnSuccesPassWordCheckLabel.Visible       = true;
            UnSuccesPhoneCheckLabel.Visible          = true;
            UnSuccesStreetCheckLabel.Visible         = true;
            UnSuccesUserNameCheckLabel.Visible       = true;
            UnSuccesVerifyPassWordCheckLabel.Visible = true;
            if (AviableUserNameName1.Visible == true)//אם רואים את לייבל היוזר אפשרי אז ידלק לייבל ההצלחה
            {
                SuccesUserNameCheckLabel.Visible   = true;
                UnSuccesUserNameCheckLabel.Visible = false;
            }
            if (RegisterPassWord1TextBox.Text.Length <= 14 && RegisterPassWord1TextBox.Text.Length >= 4)//אם אורך הטקסט נכון אז הלייבל של הטעות יוסתר והלייבל של ההצלחיה יודלק
            {
                SuccesPassWordCheckLabel.Visible   = true;
                UnSuccesPassWordCheckLabel.Visible = false;
            }
            if (VerfyPassWordTextBox.Text == RegisterPassWord1TextBox.Text)// אם הטקסט של תיבת הסיסמה ותיבת האימות סיסמה שוות אז תידלק ליילב ההצלחה
            {
                SuccesVerifyPassWordCheckLabel.Visible   = true;
                UnSuccesVerifyPassWordCheckLabel.Visible = false;
            }
            if (RegisterEmail1TextBox.Text.Length >= 4 && RegisterEmail1TextBox.Text.Length <= 14 && RegisterEmail1ComboBox.Text != "")//אם טקסט של האימייל באורך מתאים ונבחר משהו מהקובו בוקס אז תידלק לייבל ההצלחה
            {
                SuccesEmailCheckLabel.Visible   = true;
                UnSuccesEmailCheckLabel.Visible = false;
            }
            if (PhoneNumberReg.IsMatch(RegisterPhone1TextBox.Text) && RegisterPhone1ComboBox.Text != "")// אם הטקס של הפלאפון מתאים למבנה של השדה המוגדר בחלון זה מתאים וגם נבחר משהו מהקומבו בוקס תידלק לייבל ההצלחה
            {
                SuccesPhoneCheckLabel.Visible   = true;
                UnSuccesPhoneCheckLabel.Visible = false;
            }
            if (RegisterStreet1TextBox.Text != "")// אם הטקסט  לא ריק תידלק לייבל ההצלחה
            {
                SuccesStreetCheckLabel.Visible   = true;
                UnSuccesStreetCheckLabel.Visible = false;
            }
            if (textBox1.Text != "")// אם הטקסט  לא ריק תידלק לייבל ההצלחה
            {
                SuccesFirstNameCheckLabel.Visible   = true;
                UnSuccesFirstNameCheckLabel.Visible = false;
            }
            if (textBox2.Text != "")// אם הטקסט  לא ריק תידלק לייבל ההצלחה
            {
                SuccesLastNameCheckLabel.Visible   = true;
                UnSuccesLastNameCheckLabel.Visible = false;
            }
            if (SuccesEmailCheckLabel.Visible == true && SuccesFirstNameCheckLabel.Visible == true && SuccesLastNameCheckLabel.Visible == true && SuccesPassWordCheckLabel.Visible == true && SuccesPhoneCheckLabel.Visible == true && SuccesStreetCheckLabel.Visible == true && SuccesUserNameCheckLabel.Visible == true && SuccesVerifyPassWordCheckLabel.Visible == true) //אם כל הלייבלים של ההצלחה ניראות , אז יתווסף יוזר חדש מסוג וי איי פי לתוך האסאמאל , החלון יסגר ויפתח חלון חדש של לוגין סקרין
            {
                VipCustomer vip = new VipCustomer();                                                                                                                                                                                                                                                                                                                         //מופע היקבל את כל הערכים הנדרשים על מנת ליצור משתמש
                vip.FirstName   = textBox1.Text;
                vip.LastName    = textBox2.Text;
                vip.UserName    = RegisterUserName1TextBox.Text;
                vip.PassWord    = RegisterPassWord1TextBox.Text;
                vip.Email       = RegisterEmail1TextBox.Text + "@" + RegisterEmail1ComboBox.Text;
                vip.Address     = RegisterStreet1TextBox.Text;
                vip.PhoneNumber = RegisterPhone1ComboBox.Text + RegisterPhone1TextBox.Text;
                vip.userType    = "Vipuser";

                XmlParser.XmlParserVipCustomer(vip);//שיטה היוצרת משתמש

                MessageBox.Show("Successfully Registered", "WOOHOO");

                this.Close();
            }
        }
 public WriteXmlFile(VipCustomer vipCustomer)
 {
     vip = vipCustomer;
 }
Esempio n. 17
0
        private void SignUpButton_Click(object sender, EventArgs e)
        {
            UnSuccesEmailCheckLabel.Visible          = true;
            UnSuccesFirstNameCheckLabel.Visible      = true;
            UnSuccesLastNameCheckLabel.Visible       = true;
            UnSuccesPassWordCheckLabel.Visible       = true;
            UnSuccesPhoneCheckLabel.Visible          = true;
            UnSuccesStreetCheckLabel.Visible         = true;
            UnSuccesUserNameCheckLabel.Visible       = true;
            UnSuccesVerifyPassWordCheckLabel.Visible = true;
            if (AviableUserNameName1.Visible == true)
            {
                SuccesUserNameCheckLabel.Visible   = true;
                UnSuccesUserNameCheckLabel.Visible = false;
            }
            if (RegisterPassWord1TextBox.Text.Length <= 14 && RegisterPassWord1TextBox.Text.Length >= 4)
            {
                SuccesPassWordCheckLabel.Visible   = true;
                UnSuccesPassWordCheckLabel.Visible = false;
            }
            if (VerfyPassWordTextBox.Text == RegisterPassWord1TextBox.Text)
            {
                SuccesVerifyPassWordCheckLabel.Visible   = true;
                UnSuccesVerifyPassWordCheckLabel.Visible = false;
            }
            if (RegisterEmail1TextBox.Text.Length >= 4 && RegisterEmail1TextBox.Text.Length <= 14 && RegisterEmail1ComboBox.Text != "")
            {
                SuccesEmailCheckLabel.Visible   = true;
                UnSuccesEmailCheckLabel.Visible = false;
            }
            if (PhoneNumberReg.IsMatch(RegisterPhone1TextBox.Text) && RegisterPhone1ComboBox.Text != "")
            {
                SuccesPhoneCheckLabel.Visible   = true;
                UnSuccesPhoneCheckLabel.Visible = false;
            }
            if (RegisterStreet1TextBox.Text != "")
            {
                SuccesStreetCheckLabel.Visible   = true;
                UnSuccesStreetCheckLabel.Visible = false;
            }
            if (textBox1.Text != "")
            {
                SuccesFirstNameCheckLabel.Visible   = true;
                UnSuccesFirstNameCheckLabel.Visible = false;
            }
            if (textBox2.Text != "")
            {
                SuccesLastNameCheckLabel.Visible   = true;
                UnSuccesLastNameCheckLabel.Visible = false;
            }
            if (SuccesEmailCheckLabel.Visible == true && SuccesFirstNameCheckLabel.Visible == true && SuccesLastNameCheckLabel.Visible == true && SuccesPassWordCheckLabel.Visible == true && SuccesPhoneCheckLabel.Visible == true && SuccesStreetCheckLabel.Visible == true && SuccesUserNameCheckLabel.Visible == true && SuccesVerifyPassWordCheckLabel.Visible == true)
            {
                VipCustomer vip = new VipCustomer();
                vip.FirstName   = textBox1.Text;
                vip.LastName    = textBox2.Text;
                vip.UserName    = RegisterUserName1TextBox.Text;
                vip.PassWord    = RegisterPassWord1TextBox.Text;
                vip.Email       = RegisterEmail1TextBox.Text + "@" + RegisterEmail1ComboBox.Text;
                vip.Address     = RegisterStreet1TextBox.Text;
                vip.PhoneNumber = RegisterPhone1ComboBox.Text + RegisterPhone1TextBox.Text;
                vip.userType    = "Vipuser";

                XmlParser.XmlParserVipCustomer(vip);

                MessageBox.Show("Successfully Registered", "WOOHOO");

                this.Close();
            }
        }
        protected override void PopulateData()
        {
            using (var session = Domain.OpenSession())
                using (var t = session.OpenTransaction()) {
                    // Branches
                    var southBranch = new Branch(session)
                    {
                        Name = "South"
                    };
                    var northBranch = new Branch(session)
                    {
                        Name = "North"
                    };

                    // Customers
                    _ = new Customer(session)
                    {
                        IsAutomobileIndustry = true, Branch = southBranch
                    };
                    _ = new VipCustomer(session)
                    {
                        IsAircraftIndustry = true, Reason = "High sales", Branch = southBranch
                    };
                    _ = new VipCustomer(session)
                    {
                        Reason = "Relative", Branch = northBranch
                    };

                    // Roles
                    var salesPersonRole          = new SalesPersonRole(session);
                    var salesManagerRole         = new SalesManagerRole(session);
                    var automobileManagerRole    = new AutomobileManagerRole(session);
                    var aircraftManagerRole      = new AircraftManagerRole(session);
                    var southBranchOfficeManager = new BranchOfficeManagerRole(session, southBranch);
                    var northBranchOfficeManager = new BranchOfficeManagerRole(session, northBranch);

                    // Employees
                    var u1 = new Employee(session);
                    _       = u1.Roles.Add(salesPersonRole);
                    u1.Name = "SalesPerson";

                    var u2 = new Employee(session);
                    _       = u2.Roles.Add(salesManagerRole);
                    u2.Name = "SalesManager";

                    var u3 = new Employee(session);
                    _       = u3.Roles.Add(automobileManagerRole);
                    u3.Name = "AutomobileManager";

                    var u4 = new Employee(session);
                    _       = u4.Roles.Add(aircraftManagerRole);
                    u4.Name = "AircraftManager";

                    var u5 = new Employee(session);
                    _       = u5.Roles.Add(southBranchOfficeManager);
                    u5.Name = "SouthBranchOfficeManager";

                    var u6 = new Employee(session);
                    _       = u6.Roles.Add(northBranchOfficeManager);
                    u6.Name = "NorthBranchOfficeManager";

                    var u7 = new Employee(session);
                    _       = u7.Roles.Add(southBranchOfficeManager);
                    _       = u7.Roles.Add(northBranchOfficeManager);
                    u7.Name = "AllBranchOfficeManager";
                    t.Complete();
                }
        }