public ActionResult CancellationRequest(SupportRequest supportrequest, FormCollection collection)
        {
            if (ModelState.IsValid && collection != null)
            {
                Audit audit = new Audit();
                audit.ByUserID       = user.ID;
                audit.DateCreated    = System.DateTimeWithZone.Now;
                audit.DateModified   = System.DateTimeWithZone.Now;
                audit.HttpHeaderDump = HttpUtility.UrlDecode(System.Web.HttpContext.Current.Request.Headers.ToString());
                audit.IP             = System.Web.HttpContext.Current.Request.UserHostAddress;

                SupportRequest sr = new SupportRequest();
                sr.isOpen             = true;
                sr.OrderDetailID      = Convert.ToInt32(collection["requestid"]);
                sr.RefundStatusID     = Convert.ToInt16(collection["RefundStatusID"]);
                sr.SiteID             = Site.ID;
                sr.SupportTypeID      = (int)SupportType.REFUNDREQUEST;
                sr.UserID             = user.ID;
                sr.ExternalIncidentID = string.Empty;
                sr.AuditDetails       = audit;
                sr.Subject            = @WBSSLStore.Resources.GeneralMessage.Message.RefundRequest_Caption + "-" + @WBSSLStore.Resources.GeneralMessage.Message.Invoice_Header + "#" + (collection["IncidentID"]);
                sr.User   = user;
                sr.Reason = collection["ddlReason"];

                SupportDetail sd = new SupportDetail();
                sd.AuditDetails   = audit;
                sd.SupportRequest = sr;
                sd.StaffNote      = "";
                sd.Comments       = "<span><b>" + user.FirstName + " " + user.LastName + " ( " + DateTimeWithZone.Now + " )</b></span><p>" + collection["txtcomment"] + "<p/>";
                _viewModel.Add(sd);
                _unitOfWork.Commit();

                var _newsupportdetail = _viewModel.Find(d => d.ID == sd.ID)
                                        .EagerLoad(d => d.SupportRequest, d => d.SupportRequest.User, d => d.SupportRequest.OrderDetail)
                                        .FirstOrDefault();
                _newsupportdetail.SupportRequest.OrderDetail.InvoiceNumber = WBHelper.InvoicePrefix(Site) + _newsupportdetail.SupportRequest.OrderDetail.OrderID;

                var _emailService = DependencyResolver.Current.GetService <IEmailQueueService>();
                if (sd.SupportRequest.User.UserType == UserType.RESELLER)
                {
                    _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.RESELLER_SUPPORT_NOTIFICATION, SMTPID, sd.SupportRequest.User.Email, _newsupportdetail);
                }
                else
                {
                    _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.CUSTOMER_SUPPORT_NOTIFICATION, SMTPID, sd.SupportRequest.User.Email, _newsupportdetail);
                }
                //send mail to admin
                _emailService.PrepareEmailQueue(Site.ID, LangID, EmailType.ADMIN_SUPPORT_NOTIFICATION, SMTPID, WBHelper.SiteAdminEmail(Site), _newsupportdetail);
                _unitOfWork.Commit();
            }

            return(RedirectToAction("index"));
        }
        //
        // GET: /Client/Support/Create

        public ActionResult CancellationRequest(int id)
        {
            OrderDetail ord = _service.FindByID(id);

            if (ord != null)
            {
                ViewBag.OrderDetailID = ord.ID;
                ViewBag.IncidentID    = WBHelper.InvoicePrefix(Site) + ord.OrderID;
                ViewBag.ProductName   = ord.ProductName;
                ViewBag.ExOrderID     = ord.ExternalOrderID;
            }
            ViewBag.Username = user != null ? user.FirstName + " " + user.LastName : string.Empty;
            SupportRequest _supportrequest = DependencyResolver.Current.GetService <SupportRequest>();

            return(View(_supportrequest));
        }