예제 #1
0
        public void GetToy_Should_Return_Toy()
        {
            var db  = new Classes.MongoDB();
            var toy = db.GetToy(testId);

            Assert.IsNotNull(toy);
        }
예제 #2
0
        public void GetAllToys_Should_Return_A_List()
        {
            var db   = new Classes.MongoDB();
            var list = db.GetAllToys();

            Assert.AreEqual(1, list.Count());
        }
예제 #3
0
        void AddToy(Classes.MongoDB db, Classes.Order order, List <Toy> toys)
        {
            bool result;
            int  toyCount = 0;

            foreach (var toyOrder in order.Toys)
            {
                foreach (var toyForCount in order.Toys)
                {
                    if (toyOrder.Equals(toyForCount))
                    {
                        toyCount++;
                    }
                }
                foreach (var toy in toys)
                {
                    if (toy.Name.Equals(toyOrder.Name))
                    {
                        result = db.UpdateToy(new Toy
                        {
                            Name   = toy.Name,
                            Amount = toy.Amount + toyCount
                        });
                    }
                }
            }
        }
예제 #4
0
        public void GetOrder_Should_Return_Order()
        {
            var db    = new Classes.MongoDB();
            var order = db.GetOrder(testId);

            Assert.IsNotNull(order);
        }
예제 #5
0
        public ActionResult Login(User user)
        {
            string Encrypt(string text)
            {
                byte[] data = Encoding.UTF8.GetBytes(text);
                byte[] resultHash;
                SHA512 shaM = new SHA512Managed();

                resultHash = shaM.ComputeHash(data);
                StringBuilder result = new StringBuilder();

                for (int i = 0; i < resultHash.Length; i++)
                {
                    result.Append(resultHash[i].ToString("X2").ToLower());
                }
                return(result.ToString());
            }

            Classes.MongoDB db = new Classes.MongoDB();
            user.Password = Encrypt(user.Password);
            var usr = db.GetUser(user);

            if (usr != null)
            {
                Session["ScreenName"] = usr.ScreenName.ToString();
                Session["IsAdmin"]    = Convert.ToBoolean(usr.IsAdmin.ToString());
                return(RedirectToAction("../Home"));
            }
            else
            {
                ModelState.AddModelError("", "Username or Password Error");
            }
            return(View());
        }
예제 #6
0
        public void GetParamChecker_Should_Throw_Exception_When_objectParam_Is_Null()
        {
            // arrange
            Classes.MongoDB db = new Classes.MongoDB();

            // act
            db.GetParamChecker(null);
        }
예제 #7
0
        public void OrderStatusChecker_Should_Throw_Exception_When_statusParam_is_Out_Of_Range()
        {
            // arrange
            Classes.MongoDB db = new Classes.MongoDB();

            // act
            db.OrderStatusChecker((OrderStatus)77);
        }
예제 #8
0
        public void IdChecker_Should_Throw_Exception_When_idParam_Is_WhiteSpaced()
        {
            // arrange
            Classes.MongoDB db = new Classes.MongoDB();

            // act
            db.IdChecker("  ");
        }
예제 #9
0
        public void IdChecker_Should_Throw_Exception_When_idParam_Is_Empty()
        {
            // arrange
            Classes.MongoDB db = new Classes.MongoDB();

            // act
            db.IdChecker(null);
        }
예제 #10
0
        public void UpdateOrder_Should_Return_True()
        {
            var db    = new Classes.MongoDB();
            var order = db.GetOrder(testId);

            order.Status = StatusType.InProgress;
            Assert.IsTrue(db.UpdateOrder(order));
        }
예제 #11
0
 public ActionResult Index()
 {
     if (Session["IsAdmin"] != null)
     {
         Classes.MongoDB db    = new Classes.MongoDB();
         var             toys  = db.GetAllToys();
         Toys            model = new Toys();
         model.ToysList = toys.ToList();
         return(View(model));
     }
     else
     {
         return(RedirectToAction("../Users/Login"));
     }
 }
예제 #12
0
        public void GetUser_Should_Return_User()
        {
            var db   = new Classes.MongoDB();
            var test = new User
            {
                ScreenName        = TEST_SCREEN_NAME,
                Email             = TEST_EMAIL,
                IsAdmin           = TEST_ISADMIN,
                Password          = TEST_PASSWORD,
                PasswordClearText = TEST_PASSWORD_CLEAR
            };
            var user = db.GetUser(test);

            Assert.IsNotNull(user);
        }
예제 #13
0
 public ActionResult Details(string id)
 {
     if (Session["IsAdmin"] != null)
     {
         Classes.MongoDB db    = new Classes.MongoDB();
         var             order = db.GetOrder(id);
         var             toys  = db.GetAllToys();
         Models.Order    model = new Models.Order();
         model.Id              = order.Id;
         model.Kid             = order.Kid;
         model.Status          = order.Status;
         model.Date            = order.Date;
         model.Toys            = order.Toys;
         model.ToyList         = toys.ToList();
         model.EditToys        = true;
         model.MissingToysList = MissingToy(order, toys.ToList()).ToList();
         return(View(model));
     }
     else
     {
         return(RedirectToAction("../Users/Login"));
     }
 }
예제 #14
0
        public ActionResult Save(string id, StatusType statusType)
        {
            if (Session["IsAdmin"] != null || statusType.Equals(StatusType.Done))
            {
                Classes.MongoDB db = new Classes.MongoDB();
                bool            result;
                var             order            = db.GetOrder(id);
                var             toys             = db.GetAllToys().ToList();
                bool            allToysIsPresent = ControlToy(order, toys);
                if (allToysIsPresent == true || statusType.Equals(StatusType.InProgress))
                {
                    switch (order.Status)
                    {
                    case StatusType.InProgress:
                        if (!statusType.Equals(StatusType.InProgress))
                        {
                            RemoveToy(db, order, toys);
                            result = db.UpdateOrder(new Classes.Order
                            {
                                Id     = id,
                                Status = statusType
                            });
                        }
                        break;

                    case StatusType.Ready:
                        if (statusType.Equals(StatusType.InProgress))
                        {
                            AddToy(db, order, toys);
                            result = db.UpdateOrder(new Classes.Order
                            {
                                Id     = id,
                                Status = statusType
                            });
                        }
                        else if (statusType.Equals(StatusType.Done))
                        {
                            if (!statusType.Equals(StatusType.InProgress))
                            {
                                RemoveToy(db, order, toys);
                                result = db.UpdateOrder(new Classes.Order
                                {
                                    Id     = id,
                                    Status = statusType
                                });
                            }
                        }
                        break;
                    }
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("../Toys/MissingToy"));
                }
            }
            else
            {
                return(RedirectToAction("../Users/Login"));
            }
        }