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; }