private void SaveGiftCertificateOrderforRequest()
        {
            if (Session[RefundRequest.ProcessRequestId] == null)
            {
                return;
            }
            var requestId = Convert.ToInt64(Session[RefundRequest.ProcessRequestId]);

            if (requestId < 1)
            {
                return;
            }

            var refundRepository = IoC.Resolve <IRefundRequestRepository>();
            var refundRequest    = refundRepository.Get(requestId);

            var forOrganizationRoleUser = new OrganizationRoleUser(refundRequest.CustomerId);
            var userSession             = IoC.Resolve <ISessionContext>().UserSession;

            var giftCertificateRepository = IoC.Resolve <IGiftCertificateRepository>();

            try
            {
                giftCertificateRepository.ActivateGiftCertificate(GiftCertificate.Id);
            }
            catch (Exception)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "js_alerterror",
                                                             "alert('OOPS! Some error occured while saving details.');",
                                                             true);
                return;
            }

            var orderRepository = IoC.Resolve <IOrderRepository>();
            var order           = orderRepository.GetOrder(refundRequest.OrderId);
            IOrderController orderController = new OrderController();

            orderController.AddItem(GiftCertificate, 1, forOrganizationRoleUser.Id,
                                    userSession.CurrentOrganizationRole.OrganizationRoleUserId, OrderStatusState.FinalSuccess);

            if (refundRequest.RefundRequestType == RefundRequestType.CustomerCancellation || refundRequest.RefundRequestType == RefundRequestType.EventCancellation || refundRequest.RefundRequestType == RefundRequestType.ForcedCancellation)
            {
                orderController.NegateAppointmentOrderagainstGiftCertificate(order, refundRequest.CustomerId, userSession.CurrentOrganizationRole.OrganizationRoleUserId);
            }
            else
            {
                orderController.AdjustOrderagainstGiftCertificate(order, refundRequest.CustomerId, userSession.CurrentOrganizationRole.OrganizationRoleUserId);
            }

            if (order == null || order.Id < 1)
            {
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "js_alerterror", "alert('OOPS! Some error occured while saving details.');", true);
                return;
            }

            var customerRepository = IoC.Resolve <ICustomerRepository>();
            var customer           = customerRepository.GetCustomer(refundRequest.CustomerId);

            //var notifier = IoC.Resolve<INotifier>();
            //var emailNotificationModelsFactory = IoC.Resolve<IEmailNotificationModelsFactory>();

            //var acknowledgmentmail = emailNotificationModelsFactory.GetGiftCertificateNotificationModel(GiftCertificate.ClaimCode, GiftCertificate.FromName, GiftCertificate.ToName, GiftCertificate.Message, GiftCertificate.Price);
            //notifier.NotifySubscribersViaEmail(NotificationTypeAlias.GiftCertificateAcknowledgmentEmail, EmailTemplateAlias.GiftCertificateAcknowledgmentEmail, acknowledgmentmail, customer.Id, userSession.CurrentOrganizationRole.OrganizationRoleUserId, Request.Url.AbsolutePath);

            refundRequest.RefundRequestResult.ProcessedOn = DateTime.Now;
            refundRequest.RequestStatus = (long)RequestStatus.Resolved;
            refundRequest.RefundRequestResult.ProcessedByOrgRoleUserId =
                userSession.CurrentOrganizationRole.OrganizationRoleUserId;
            refundRequest.RefundRequestResult.RequestResultType = RequestResultType.IssueGiftCertificate;

            ((IRepository <RefundRequest>)refundRepository).Save(refundRequest);
            refundRepository.SaveRequestandGiftCertificateMapping(refundRequest.Id, GiftCertificateId);
            Session["CustomerId"] = customer.CustomerId;
        }