public ActionResult SetOrderMarkPaidAgent(GutterCleanOrderModel model)
        {
            var order = _orderService.GetOrderById(model.Id);

            if (order == null || order.Deleted)
                return new HttpUnauthorizedResult();

            if (_workContext.CurrentCustomer.IsAdmin())
            {

            }
            else if (_workContext.CurrentCustomer.IsAgent() && order.AgentId != _workContext.CurrentCustomer.Id)
            {
                return RedirectToAction("OrderDetail");
            }

            if (model.AgentId > 0)
            {

                order.IsPayAgentWorker = true;
                order.LastUpdatedDateUtc = DateTime.UtcNow;
                _orderService.UpdateOrder(order);

                //_workflowMessageService.SendOrderPlacedWorkCompletedCustomerNotification(order);
            }

            return RedirectToAction("OrderDetail", new { orderId = model.Id });
        }
        protected virtual GutterCleanOrderModel PrepareOrderDetailsModel(GutterCleanOrder order)
        {
            if (order == null)
                throw new ArgumentNullException("order");
            var model = new GutterCleanOrderModel();
            model.Id = order.Id;
            model.OrderGuid =(Guid) order.OrderGuid;
            model.QuestionSquareFootage = order.QuestionSquareFootage;
            model.QuestionStyleOfGutter = order.QuestionStyleOfGutter;
            model.CustomerId = order.CustomerId;
            model.CustomerName = order.Customer.FirstName + " " + order.Customer.LastName;

            var r = _questionAnswerEntityDataService.StyleOfGuttersAnswer().Where(i => i.Value == order.QuestionStyleOfGutter).SingleOrDefault();
            model.QuestionStyleOfGutterStr = r.Text;

            model.QuestionYearBuilt = order.QuestionYearBuilt;

            var year = _questionAnswerEntityDataService.YearBuiltAnswer().Where(i => i.Value == order.QuestionYearBuilt.ToString()).SingleOrDefault();
            model.QuestionYearBuiltStr = year.Text;

            model.RoofMaterial = order.RoofMaterial;

            model.QuestionDeliveryTimeStr = "5 business days";
            if (order.QuestionDeliveryTime == 1)
                model.QuestionDeliveryTimeStr = "5 business days";

            if (order.QuestionDeliveryTime == 2)
                model.QuestionDeliveryTimeStr = "8 hours";

            if (order.QuestionDeliveryTime == 3)
                model.QuestionDeliveryTimeStr = "4 hours";

            model.OrderTotal = order.OrderTotal;

            model.Address = order.Address;

            model.City = order.City;
            model.State = order.State;

            model.Zipcode = order.Zipcode;
            model.AgentId = order.AgentId.HasValue ? (int)order.AgentId.Value : 0;

            model.PaymentStatusId = order.PaymentStatusId;
            model.OrderStatusId = order.OrderStatusId;
            model.CaptureTransactionId = order.CaptureTransactionId;
            model.CaptureTransactionResult = order.CaptureTransactionResult;
            //model.CreatedOnUtc = order.CreatedOnUtc;
            model.CreatedOnUtc = _dateTimeHelper.ConvertToUserTime(order.CreatedOnUtc, DateTimeKind.Utc);
            if (order.CompletionDateUtc.HasValue)
                model.CompletionDateUtc = _dateTimeHelper.ConvertToUserTime(order.CompletionDateUtc.Value, DateTimeKind.Utc);

            // This button only show 'Admin User'
            model.HideSetAgentButton = _workContext.CurrentCustomer.IsAgent();

            // agent Mark Paid Button
            model.HideMarkPaidButton = true;

            model.IsAgentPaid = order.IsPayAgentWorker.HasValue ? order.IsPayAgentWorker.Value : false;

            if (_workContext.CurrentCustomer.IsAdmin())
                model.orderViewByAdmin = true;

            if (order.AgentId <= 0)
                model.HideSetWorkedCompletedButton = true;
            else
            {
                if (((OrderStatus)model.OrderStatusId).ToString() == OrderStatus.Complete.ToString())
                {
                    model.HideSetWorkedCompletedButton = true;
                    model.HideSetAgentButton = true;

                    if (!model.IsAgentPaid && !_workContext.CurrentCustomer.IsAgent())
                    {
                        model.HideMarkPaidButton = false;
                    }
                }
            }

            if (order.IsCustomerQa.HasValue)
            {
                if (order.IsCustomerQa.Value)
                {
                    model.ShowRating = true;

                    var orderSurvey=order.Surveries.FirstOrDefault();
                    if(orderSurvey!=null)
                    {
                        //model.Question1 =Convert.ToString( orderSurvey.Question1);
                        model.Question2 = Convert.ToString(orderSurvey.Question2);
                        model.Question3 = Convert.ToString(orderSurvey.Question3);
                        model.Question4 = Convert.ToString(orderSurvey.Question4);
                    }

                    // Rating detail will not show to agent.
                    if (_workContext.CurrentCustomer.IsAgent())
                    {
                        model.ShowRating = false;
                    }
                }

            }

            return model;
        }
        public ActionResult OrderDetail(GutterCleanOrderModel model)
        {
            var order = _orderService.GetOrderById(model.Id);

            if (order == null || order.Deleted)
                return new HttpUnauthorizedResult();

            if (_workContext.CurrentCustomer.IsAdmin())
            {

            }
            else if (_workContext.CurrentCustomer.IsAgent() && order.AgentId != _workContext.CurrentCustomer.Id)
            {
                return RedirectToAction("OrderDetail");
            }

            var customerList = _customerService.GetAllCustomers(new int[] { 4,1 });
            if (customerList.Count > 0)
            {
                foreach (var customer in customerList)
                    model.AvailableAgents.Add(new SelectListItem() { Text = customer.FirstName + " " + customer.LastName, Value = customer.Id.ToString() });
            }
            return View(model);
        }