public ActionResult SecurityCodeCorrect(string order, string item)
        {
            var getOrder = market.Orders.Find(order);

            if (getOrder == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var orderDetail = getOrder.OrderDetails.SingleOrDefault(m => m.OrderDetailId.ToString() == item);

            if (orderDetail == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var result = new ProcessSecurityCodeViewModel
            {
                Order       = getOrder,
                OrderDetail = orderDetail,
            };

            if (User.Identity.Name == getOrder.User.Email)
            {
                result.IsOwner = false;
            }
            else if (User.Identity.Name == orderDetail.Item.Owner.Email)
            {
                result.IsOwner = true;
            }

            return(View(result));
        }
        public ActionResult RentalAlreadyComplete(string order, string item)
        {
            var getOrder = market.Orders.Find(order);

            if (getOrder == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }
            var orderDetail = getOrder.OrderDetails.SingleOrDefault(m => m.OrderDetailId.ToString() == item);

            if (orderDetail == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var result = new ProcessSecurityCodeViewModel
            {
                Order       = getOrder,
                OrderDetail = orderDetail,
            };

            return(View(result));
        }
        public ActionResult ProcessSecurityCode(string order, string item)
        {
            var getOrder = market.Orders.SingleOrDefault(o => o.OrderId == order);

            if (getOrder == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var orderDetail = getOrder.OrderDetails.SingleOrDefault(m => m.OrderDetailId.ToString() == item);

            if (orderDetail == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            else if (orderDetail.Status == (int)OrderStatus.ORDER_COMPLETE)
            {
                return(RedirectToAction("RentalAlreadyComplete", new { Order = getOrder.OrderId, Item = orderDetail.OrderDetailId }));
            }

            var result = new ProcessSecurityCodeViewModel
            {
                Order       = getOrder,
                OrderDetail = orderDetail,
            };

            if (User.Identity.Name == getOrder.User.Email)
            {
                result.IsOwner = false;
            }
            else if (User.Identity.Name == orderDetail.Item.Owner.Email)
            {
                result.IsOwner = true;
            }
            return(View(result));
        }
        public ActionResult ProcessSecurityCode(string order, string item, ProcessSecurityCodeViewModel UserCode)
        {
            var getOrder = market.Orders.SingleOrDefault(o => o.OrderId == order);

            if (getOrder == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var orderDetail = getOrder.OrderDetails.SingleOrDefault(m => m.OrderDetailId.ToString() == item);

            if (orderDetail == null)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            var result = new ProcessSecurityCodeViewModel
            {
                Order       = getOrder,
                OrderDetail = orderDetail
            };

            var changedOrder = orderDetail;

            try
            {
                if (User.Identity.Name == changedOrder.Item.Owner.Email)
                {
                    if (UserCode.SecurityCode == changedOrder.RenterCode)
                    {
                        changedOrder.Status = (int)OrderStatus.ORDER_COMPLETE;
                        market.Entry(changedOrder).Property(o => o.Status).IsModified = true;
                        market.SaveChanges();
                        PayOwner(changedOrder);
                        return(RedirectToAction("SecurityCodeCorrect", new { Order = getOrder.OrderId, Item = orderDetail.OrderDetailId }));
                        //return Redirect("/PostCheckOut/SecurityCodeCorrect/?Order=" + getOrder.OrderId + "&Item=" + orderDetail.ToList()[0].OrderDetailId);
                    }
                    else
                    {
                        ModelState.AddModelError("", "The Security Code you entered is not valid. Please enter the correct Security Code");
                        return(View(result));
                    }
                }
                else if (User.Identity.Name == getOrder.User.Email)
                {
                    if (UserCode.SecurityCode == orderDetail.OwnerCode)
                    {
                        changedOrder.Status = (int)OrderStatus.ORDER_COMPLETE;
                        market.Entry(changedOrder).Property(o => o.Status).IsModified = true;
                        market.SaveChanges();
                        PayOwner(changedOrder);
                        return(RedirectToAction("SecurityCodeCorrect", new { Order = getOrder.OrderId, Item = orderDetail.OrderDetailId }));
                    }
                    else
                    {
                        ModelState.AddModelError("", "The Security Code you entered is not valid. Please enter the correct Security Code");
                        return(View(result));
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage.ErrorCode = ErrorCode.UNKNOWN;
                return(View("ErrorMessage", ErrorMessage));
            }

            return(View(result));
        }