private EventCustomer SaveEventCustomer(OrganizationRoleUser organizationRoleUser)
        {
            var eventAppointmentService = IoC.Resolve <IEventAppointmentService>();
            var appointment             = eventAppointmentService.CreateAppointment(AppointmentSlotIds, organizationRoleUser.Id);

            var eventCustomer = new EventCustomer
            {
                AppointmentId        = appointment.Id,
                EventId              = EventId.Value,
                CustomerId           = CustomerId.Value,
                DataRecorderMetaData = new DataRecorderMetaData
                {
                    DataRecorderCreator = organizationRoleUser,
                    DateCreated         = DateTime.Now
                },
                OnlinePayment   = false,
                MarketingSource = MarketingSource,
                NoShow          = false,
                LeftWithoutScreeningReasonId = null,
                LeftWithoutScreeningNotesId  = null,
                TestConducted        = false,
                HIPAAStatus          = RegulatoryState.Unknown,
                PcpConsentStatus     = RegulatoryState.Unknown,
                EnableTexting        = Customer.EnableTexting,
                PreferredContactType = Customer.PreferredContactType,
            };

            IUniqueItemRepository <EventCustomer> itemRepository = new EventCustomerRepository();

            eventCustomer = itemRepository.Save(eventCustomer);

            return(eventCustomer);
        }
 private void TagUpdatedMail(string previousTag)
 {
     if (previousTag.Trim() == string.Empty)
     {
         return;
     }
     try
     {
         IEventCustomerRepository itemRepository = new EventCustomerRepository();
         var eventCustomer = itemRepository.GetCustomersPreviousEventId(EventId.Value, CustomerId.Value);
         var oldEventId    = eventCustomer != null ? eventCustomer.EventId : 0;
         if (oldEventId != EventId.Value)
         {
             var emailNotificationModelsFactory = IoC.Resolve <IEmailNotificationModelsFactory>();
             var emailNotification = emailNotificationModelsFactory.GetCustomerTagChangeNotificationViewModel(oldEventId, EventId.Value, CustomerId.Value, previousTag);
             var notifier          = IoC.Resolve <INotifier>();
             var currentSession    = IoC.Resolve <ISessionContext>().UserSession;
             if (emailNotification.PreviousTag != emailNotification.NewTag)
             {
                 notifier.NotifySubscribersViaEmail(NotificationTypeAlias.CustomerTagUpdated, EmailTemplateAlias.CustomerTagUpdated, emailNotification, 0, currentSession.CurrentOrganizationRole.OrganizationRoleUserId, "Technician Event Registration");
             }
         }
     }
     catch (Exception ex)
     {
         IoC.Resolve <ILogManager>().GetLogger <Global>().Error("EXCEPTION " + ex.Message + " Stack Trace - " + ex.StackTrace);
     }
 }
        public CallCenterRepStatisticsViewData GetClosedEventCustomerStatisticsForCallCenterRep(long callCenterCallCenterUserId,
                                                                                                DateTime startDate, DateTime endDate)
        {
            List <Core.Finance.Domain.Order> orders =
                _orderRepository.GetAllOrdersCreatedByCallCenterRep(callCenterCallCenterUserId, startDate, endDate);

            IUniqueItemRepository <EventCustomer> eventCustomerRepository = new EventCustomerRepository();

            int totalCustomers, totalCancelled, totalNoShow, totalAttended;

            totalCustomers = totalCancelled = totalNoShow = totalAttended = 0;

            decimal totalAmount = 0m;

            foreach (var order in orders)
            {
                Core.Finance.Domain.Order currentOrder = order;

                //It will ignore 100% discounted orders.
                if (GetTotalPackagePriceDiscountPredicate(order))
                {
                    continue;
                }

                if (currentOrder != null && !GetReSchedulePredicate(currentOrder) && order.PaymentsApplied.Any(GetClosingCountPredicate(currentOrder)))
                {
                    totalCustomers++;

                    // It will eliminate cancelled records. But add to the the cancelled records.
                    if (!order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted))
                    {
                        totalCancelled++;
                        continue;
                    }

                    var activeOrderDetail = _orderController.GetActiveOrderDetail(order);

                    if (activeOrderDetail != null && activeOrderDetail.EventCustomerOrderDetail != null)
                    {
                        var eventCustomer =
                            eventCustomerRepository.GetById(
                                activeOrderDetail.EventCustomerOrderDetail.EventCustomerId);

                        if (eventCustomer.AppointmentId.HasValue && eventCustomer.NoShow)
                        {
                            totalNoShow++;
                            continue;
                        }
                        if (eventCustomer.TestConducted)
                        {
                            totalAttended++;
                        }
                    }
                    totalAmount += order.DiscountedTotal;
                }
            }
            return(new CallCenterRepStatisticsViewData(totalCustomers, totalCancelled, totalNoShow, totalAttended,
                                                       totalAmount));
        }
        public override async Task CreateWorksAsync()
        {
            Customers     customerSaved      = null;
            Event         EventSaved         = null;
            EventCustomer eventCustomerSaved = null;

            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_create").Options;

            using (var db = new Project15Context(options));

            // act (for act, only use the repo, to test it)
            using (var db = new Project15Context(options))
            {
                var repo = new EventCustomerRepository(db);

                //Create customer
                Customers customer = new Customers {
                    Name = "Axel", Address1 = "111 Address"
                };
                await repo.SaveChangesAsync();

                Event Event = new Event {
                    Name = "Jazz Fest", Type = "Music", Cost = 40
                };
                await repo.SaveChangesAsync();

                EventCustomer eventCustomer = new EventCustomer
                {
                    CustomerId = customer.Id,
                    EventId    = Event.Id,
                    Paid       = true
                };
                eventCustomerSaved = await repo.CreateAsync(eventCustomer);

                await repo.SaveChangesAsync();

                customerSaved = customer;
                EventSaved    = Event;
            }

            // assert (for assert, once again use the context directly for verify.)
            using (var db = new Project15Context(options))
            {
                var           repo          = new EventCustomerRepository(db);
                EventCustomer eventCustomer = Mapper.Map <EventsCustomers, EventCustomer>(db.EventsCustomers.First(m => m.Paid == true));

                Assert.Equal(customerSaved.Id, eventCustomer.CustomerId);
                Assert.Equal(EventSaved.Id, eventCustomer.EventId);
                Assert.True(eventCustomer.Paid);
                Assert.NotEqual(0, eventCustomer.Id);
            }
        }
Exemple #5
0
        // Used by Win Service - Upload Result
        public bool IsCustomerRegisteredfortheGivenEvent(long customerId, long eventId)
        {
            try
            {
                var eventCustomer = new EventCustomerRepository().GetRegisteredEventForUser(customerId, eventId);

                if (eventCustomer != null)
                {
                    return(true);
                }
            }
            catch (ObjectNotFoundInPersistenceException <EventCustomer> )
            {
                return(false);
            }
            return(true);
        }
        public override async Task GetByIdThatDoesntExistReturnsNullAsync()
        {
            int id = 1000;

            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_getId").Options;

            // arrange (use the context directly - we assume that works)
            using (var db = new Project15Context(options));

            // assert (for assert, once again use the context directly for verify.)
            using (var db = new Project15Context(options))
            {
                var repo = new EventCustomerRepository(db);

                EventCustomer eventCustomer = await repo.GetByIdAsync(id);

                Assert.Null(eventCustomer);
            }
        }
        public override async Task DeleteWithIdThatDoesntExistThrowsExceptionAsync()
        {
            int id = 1000;
            // arrange (use the context directly - we assume that works)
            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_delete").Options;

            using (var db = new Project15Context(options));

            // assert (for assert, once again use the context directly for verify.)
            using (var db = new Project15Context(options))
            {
                var repo = new EventCustomerRepository(db);

                EventCustomer eventCustomer = await repo.GetByIdAsync(id);

                Assert.Null(eventCustomer);

                await Assert.ThrowsAsync <ArgumentException>(() => repo.DeleteAsync(id));
            }
        }
        private EventCustomer UpdateEventCustomer(OrderDetail orderDetail, bool isOrderCancelled)
        {
            IUniqueItemRepository <EventCustomer> itemRepository = new EventCustomerRepository();
            var eventCustomer = itemRepository.GetById(orderDetail.EventCustomerOrderDetail.EventCustomerId);

            if (eventCustomer == null)
            {
                return(null);
            }

            if (isOrderCancelled)
            {
                var eventCustomerRepository = new EventCustomerRepository();
                eventCustomerRepository.UpdateAppointmentId(orderDetail.EventCustomerOrderDetail.EventCustomerId);

                if (eventCustomer.AppointmentId != null)
                {
                    _eventAppointmentService.DeleteAppointment(eventCustomer.AppointmentId.Value);
                }
            }
            return(eventCustomer);
        }
        private EventCustomer UpdateEventCustomer(OrganizationRoleUser organizationRoleUser)
        {
            IEventCustomerRepository eventCustomerRepository = new EventCustomerRepository();
            var eventAppointmentService = IoC.Resolve <IEventAppointmentService>();

            try
            {
                var eventCustomer = eventCustomerRepository.GetCancelledEventForUser(Customer.CustomerId, EventId.Value);
                var appointment   = eventAppointmentService.CreateAppointment(AppointmentSlotIds, organizationRoleUser.Id);
                eventCustomer.AppointmentId = appointment.Id;
                eventCustomer.NoShow        = false;
                eventCustomer.LeftWithoutScreeningReasonId = null;
                eventCustomer.LeftWithoutScreeningNotesId  = null;
                eventCustomer.EnableTexting = Customer.EnableTexting;
                IUniqueItemRepository <EventCustomer> itemRepository = new EventCustomerRepository();
                eventCustomer = itemRepository.Save(eventCustomer);

                return(eventCustomer);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        //TODO: This will be pulled into the UpdateSourceCode in EventCustomerRepository once old order system is removed.
        private bool UpdateSourceCodeForExistingOrder(long eventCustomerId, string sourceCode, long userId, long shellId, long roleId)
        {
            IUniqueItemRepository <EventCustomer> itemRepository = new EventCustomerRepository();
            EventCustomer eventCustomer = itemRepository.GetById(eventCustomerId);

            var creatorOrganizationRoleUser = IoC.Resolve <IOrgRoleUserModelBinder>().ToDomain(
                IoC.Resolve <ISessionContext>().UserSession.CurrentOrganizationRole,
                IoC.Resolve <ISessionContext>().UserSession.UserId);

            var newSourceCode = _sourceCodeRepository.GetSourceCodeByCode(sourceCode);

            if (creatorOrganizationRoleUser == null || newSourceCode == null)
            {
                return(false);
            }

            try
            {
                var order = _orderRepository.GetOrder(eventCustomer.CustomerId, eventCustomer.EventId);

                OrderDetail orderDetail = _orderController.GetActiveOrderDetail(order);

                if (orderDetail == null)
                {
                    return(false);
                }

                newSourceCode.CouponValue = orderDetail.SourceCodeOrderDetail != null ? orderDetail.SourceCodeOrderDetail.Amount : 0.00m;

                return(_orderController.UpdateOrder(order, newSourceCode, creatorOrganizationRoleUser.Id) != null);
            }
            catch (ObjectNotFoundInPersistenceException <Order> )
            {
                return(false);
            }
        }
        public override async Task DeleteWorksAsync()
        {
            int id = 0;

            Customer      customerSaved      = null;
            Event         EventSaved         = null;
            EventCustomer eventCustomerSaved = null;

            // arrange (use the context directly - we assume that works)
            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_delete_2").Options;

            using (var db = new Project15Context(options));

            // act (for act, only use the repo, to test it)
            using (var db = new Project15Context(options))
            {
                var customerRepo = new CustomerRepository(db);
                var eventRepo    = new EventRepository(db);
                var repo         = new EventCustomerRepository(db);

                //Create customer
                Customer customer = new Customer {
                    Name = "Axel", Address1 = "111 Address"
                };
                customer = await customerRepo.CreateAsync(customer);

                await customerRepo.SaveChangesAsync();

                Event Event = new Event {
                    Name = "Jazz Fest", Type = "Music", Cost = 40
                };
                Event = await eventRepo.CreateAsync(Event);

                await eventRepo.SaveChangesAsync();

                EventCustomer eventCustomer = new EventCustomer
                {
                    CustomerId = customer.Id,
                    EventId    = Event.Id,
                    Paid       = true
                };

                eventCustomerSaved = await repo.CreateAsync(eventCustomer);

                await repo.SaveChangesAsync();

                EventSaved    = Event;
                customerSaved = customer;

                id = eventCustomerSaved.Id;
            }

            // assert (for assert, once again use the context directly for verify.)
            using (var db = new Project15Context(options))
            {
                var           repo          = new EventCustomerRepository(db);
                EventCustomer eventCustomer = await repo.GetByIdAsync(id);

                Assert.NotEqual(0, eventCustomer.Id);
                Assert.Equal(eventCustomerSaved.Id, eventCustomer.Id);
                Assert.True(eventCustomer.Paid);

                await repo.DeleteAsync(id);

                await repo.SaveChangesAsync();

                eventCustomer = await repo.GetByIdAsync(id);

                Assert.Null(eventCustomer);
            }
        }
        public override async Task UpdateWorksAsync()
        {
            int id      = 0;
            int wrongId = 10;

            EventCustomer eventCustomerSaved = null;
            Event         EventSaved         = null;
            Customer      customerSaved      = null;

            // arrange (use the context directly - we assume that works)
            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_updatebyid").Options;

            // act (for act, only use the repo, to test it)
            using (var db = new Project15Context(options));

            using (var db = new Project15Context(options))
            {
                var customerRepo = new CustomerRepository(db);
                var eventRepo    = new EventRepository(db);
                var repo         = new EventCustomerRepository(db);

                Customer customer = new Customer {
                    Name = "Axel", Address1 = "111 Address"
                };
                customer = await customerRepo.CreateAsync(customer);

                await customerRepo.SaveChangesAsync();

                Event Event = new Event {
                    Name = "Jazz Fest", Type = "Music", Cost = 40
                };
                Event = await eventRepo.CreateAsync(Event);

                await eventRepo.SaveChangesAsync();

                EventCustomer eventCustomer = new EventCustomer
                {
                    CustomerId = customer.Id,
                    EventId    = Event.Id,
                    Paid       = true
                };

                eventCustomerSaved = await repo.CreateAsync(eventCustomer);

                await repo.SaveChangesAsync();

                EventSaved    = Event;
                customerSaved = customer;

                id = eventCustomerSaved.Id;
            }
            using (var db = new Project15Context(options))
            {
                var           repo          = new EventCustomerRepository(db);
                EventCustomer eventCustomer = await repo.GetByIdAsync(id);

                Assert.NotEqual(0, eventCustomer.Id); // should get some generated ID
                Assert.Equal(eventCustomerSaved.Id, eventCustomer.Id);
                Assert.Equal(EventSaved.Id, eventCustomer.EventId);

                eventCustomer.Paid = false;

                await repo.UpdateAsync(eventCustomer, id);

                await repo.SaveChangesAsync();

                eventCustomer = await repo.GetByIdAsync(eventCustomer.Id);

                Assert.NotEqual(wrongId, eventCustomer.Id); // should get some generated ID
                Assert.False(eventCustomer.Paid);
            }
        }
        public override async Task GetAllWorksAsync()
        {
            List <EventCustomer> eventCustomersList = new List <EventCustomer>();
            EventCustomer        eventCustomerSaved = null;
            Customer             customerSaved      = null;
            Event EventSaved = null;

            var options = new DbContextOptionsBuilder <Project15Context>()
                          .UseInMemoryDatabase("db_eventcustomer_test_getall").Options;

            using (var db = new Project15Context(options));

            using (var db = new Project15Context(options))
            {
                var customerRepo = new CustomerRepository(db);
                var eventRepo    = new EventRepository(db);
                var repo         = new EventCustomerRepository(db);

                //Create customer
                Customer customer = new Customer {
                    Name = "Axel", Address1 = "111 Address"
                };
                customer = await customerRepo.CreateAsync(customer);

                await customerRepo.SaveChangesAsync();

                Event Event = new Event {
                    Name = "Jazz Fest", Type = "Music", Cost = 40
                };
                Event = await eventRepo.CreateAsync(Event);

                await eventRepo.SaveChangesAsync();

                for (int i = 0; i < 5; i++)
                {
                    EventCustomer eventCustomer = new EventCustomer
                    {
                        CustomerId = customer.Id,
                        EventId    = Event.Id,
                    };
                    eventCustomerSaved = await repo.CreateAsync(eventCustomer);

                    await repo.SaveChangesAsync();

                    eventCustomersList.Add(eventCustomerSaved);
                }

                EventSaved    = Event;
                customerSaved = customer;
            }
            using (var db = new Project15Context(options))
            {
                var repo = new EventCustomerRepository(db);
                List <EventCustomer> list = (List <EventCustomer>) await repo.GetAllAsync();

                Assert.Equal(eventCustomersList.Count, list.Count);

                for (int i = 0; i < 5; i++)
                {
                    Assert.Equal(eventCustomersList[i].CustomerId, list[i].CustomerId);
                    Assert.Equal(eventCustomersList[i].EventId, list[i].EventId);
                    Assert.NotEqual(0, list[i].Id);
                }
            }
        }
        private void LoadEventInformation()
        {
            IUniqueItemRepository <EventCustomer> eventCustomerRepository = new EventCustomerRepository();
            var eventCustomer = eventCustomerRepository.GetById(EventCustomerId.Value);

            var eventService            = IoC.Resolve <IEventService>();
            var eventBasicInfoViewModel = eventService.GetEventBasicInfoFor(eventCustomer.EventId);

            EventNameLabel.Text = System.Web.Security.AntiXss.AntiXssEncoder.HtmlEncode(eventBasicInfoViewModel.HostName + " On: " +
                                                                                        eventBasicInfoViewModel.EventDate.ToShortDateString() + " At: " +
                                                                                        CommonCode.AddressSingleLine(eventBasicInfoViewModel.HostAddress.StreetAddressLine1,
                                                                                                                     eventBasicInfoViewModel.HostAddress.StreetAddressLine2,
                                                                                                                     eventBasicInfoViewModel.HostAddress.City,
                                                                                                                     eventBasicInfoViewModel.HostAddress.State,
                                                                                                                     eventBasicInfoViewModel.HostAddress.ZipCode), true);
            EventIdLabel.Text     = eventCustomer.EventId.ToString();
            EventStatusLabel.Text = eventBasicInfoViewModel.Status.ToString();

            if (eventCustomer.AppointmentId.HasValue)
            {
                var appointmentRepository = IoC.Resolve <IAppointmentRepository>();
                var appointment           = appointmentRepository.GetById(eventCustomer.AppointmentId.Value);

                AppointmentTimeLabel.Text = appointment.StartTime.ToShortTimeString() + " On: " +
                                            eventBasicInfoViewModel.EventDate.ToShortDateString();
            }


            try
            {
                IOrderController orderController = new OrderController();
                var orderRepository = IoC.Resolve <IOrderRepository>();
                var order           = orderRepository.GetOrder(eventCustomer.CustomerId, eventCustomer.EventId);

                PackageCostLabel.Text = order.OrderDetails.Where(od =>
                                                                 (od.DetailType == OrderItemType.EventPackageItem && od.IsCompleted) ||
                                                                 (od.DetailType == OrderItemType.EventTestItem && od.IsCompleted))
                                        .Sum(od => od.Price).ToString("C2");

                var totalAmount = order.DiscountedTotal.ToString("0.00");
                var amountPaid  = order.TotalAmountPaid.ToString("0.00");
                var amountDue   = (order.DiscountedTotal - order.TotalAmountPaid).ToString("0.00");

                var activeOrderDetail = orderController.GetActiveOrderDetail(order.Id);

                var shippingDetails = _shippingDetailRepository.GetShippingDetailsForOrder(activeOrderDetail.Id);

                var orderId = order.Id;

                var orgRoleUserRepository = IoC.Resolve <IOrganizationRoleUserRepository>();

                var idNamePairs  = orgRoleUserRepository.GetNameIdPairofUsers(new[] { eventCustomer.CustomerId });
                var customerName = idNamePairs.First().SecondValue;
                var customerId   = eventCustomer.CustomerId;

                if (!shippingDetails.IsNullOrEmpty())
                {
                    foreach (var shippingOption in shippingDetails)
                    {
                        if (shippingOption != null)
                        {
                            ShippingOptionLabel.Text += shippingOption.ShippingOption.Name + "<br />";
                        }
                    }
                    ShippingOptionLabel.Text.Remove(ShippingOptionLabel.Text.LastIndexOf("<br />"));
                }
                // set order details tooltip.
                customerName = customerName.Replace("'", "\\'");
                customerName = customerName.Replace("\"", "\\\"");
                var functionToCall = "javascript:return ShowOrderDetailPopUp(" +
                                     HttpUtility.HtmlEncode(orderId) + "," + HttpUtility.HtmlEncode(totalAmount) + "," + HttpUtility.HtmlEncode(amountPaid) + "," +
                                     HttpUtility.HtmlEncode(amountDue) + ",'" + HttpUtility.HtmlEncode(customerName) + "'," +
                                     HttpUtility.HtmlEncode(customerId) + ");";
                _orderLinkAnchor.Attributes.Add("onClick", functionToCall);
            }
            catch
            {
                ShippingOptionLabel.Text = string.Empty;
            }
        }
Exemple #15
0
        private bool SetCustomerDetail()
        {
            IUniqueItemRepository <EventCustomer> eventCustomerRepository = new EventCustomerRepository();
            var eventCustomer = eventCustomerRepository.GetById(EventCustomerId);

            if (eventCustomer != null)
            {
                CustomerId = eventCustomer.CustomerId;
                EventId    = eventCustomer.EventId;
                var organizationRoleUserRepository = IoC.Resolve <IOrganizationRoleUserRepository>();
                var orgRoleUser = organizationRoleUserRepository.GetOrganizationRoleUser(eventCustomer.DataRecorderMetaData.DataRecorderCreator.Id);

                EventRegisteredBy = (Roles)Enum.Parse(typeof(Roles), orgRoleUser.RoleId.ToString());

                speventid.InnerText = EventId.ToString();

                if (Customer != null && Customer.Address != null)
                {
                    spcustomerdetail.InnerText = " " + "-" + " " + Customer.Name + "(ID:" + Customer.CustomerId + ")";
                }

                var eventService            = IoC.Resolve <IEventService>();
                var eventBasicInfoViewModel = eventService.GetEventBasicInfoFor(eventCustomer.EventId);

                speventid.InnerText  = EventId.ToString();
                sphostname.InnerText = eventBasicInfoViewModel.HostName;
                spaddress.InnerText  =
                    CommonCode.AddressSingleLine(eventBasicInfoViewModel.HostAddress.StreetAddressLine1,
                                                 eventBasicInfoViewModel.HostAddress.StreetAddressLine2,
                                                 eventBasicInfoViewModel.HostAddress.City,
                                                 eventBasicInfoViewModel.HostAddress.State,
                                                 eventBasicInfoViewModel.HostAddress.ZipCode);

                if (eventCustomer.AppointmentId.HasValue)
                {
                    var appointmentRepository = IoC.Resolve <IAppointmentRepository>();
                    var appointment           = appointmentRepository.GetById(eventCustomer.AppointmentId.Value);
                    spapptime.InnerText = appointment.StartTime.ToShortTimeString();
                }

                speventdate.InnerText  = eventBasicInfoViewModel.EventDate.ToShortDateString();
                ViewState["EventDate"] = eventBasicInfoViewModel.EventDate.ToShortDateString();


                IOrderRepository orderRepository = new OrderRepository();
                var order = orderRepository.GetOrder(CustomerId.Value, EventId.Value);
                if (order != null && !order.OrderDetails.IsEmpty())
                {
                    hfPackageCost.Value = order.OrderDetails.Where(od =>
                                                                   (od.DetailType == OrderItemType.EventPackageItem && od.IsCompleted) ||
                                                                   (od.DetailType == OrderItemType.EventTestItem && od.IsCompleted))
                                          .Sum(od => od.Price).ToString();

                    sppackagecost.InnerText =
                        order.OrderDetails.Where(od =>
                                                 (od.DetailType == OrderItemType.EventPackageItem && od.IsCompleted) ||
                                                 (od.DetailType == OrderItemType.EventTestItem && od.IsCompleted))
                        .Sum(od => od.Price).ToString("C2");

                    OrderId = order.Id;
                    SetRefundRequestAmount(OrderId);
                    SetPaymentDetails(order);

                    IOrderController orderController = new OrderController();
                    var orderDetail = orderController.GetActiveOrderDetail(order);
                    IOrderItemRepository orderItemRepository = new OrderItemRepository();
                    var orderItem = orderItemRepository.GetOrderItem(orderDetail.OrderItemId);
                    if (orderItem is EventPackageItem)
                    {
                        var eventPackageItem = orderItem as EventPackageItem;

                        var itemRepository = IoC.Resolve <IEventPackageRepository>();
                        var eventPackage   = itemRepository.GetById(eventPackageItem.ItemId);
                        PackageId = eventPackage.PackageId;
                    }
                    if (orderDetail.SourceCodeOrderDetail != null)
                    {
                        if (Customer != null)
                        {
                            ViewState["DateApplied"] = Customer.DateCreated;
                        }

                        ISourceCodeRepository sourceCodeRepository = new SourceCodeRepository();
                        var sourceCode =
                            sourceCodeRepository.GetSourceCodeById(orderDetail.SourceCodeOrderDetail.SourceCodeId);
                        spcoupon.InnerText = sourceCode.CouponCode;

                        if (!string.IsNullOrEmpty(sourceCode.CouponCode))
                        {
                            rbtreplaceexisting.Checked  = true;
                            hfcurrentcoupon.Value       = sourceCode.CouponCode;
                            hfcurrentcouponamount.Value = orderDetail.SourceCodeOrderDetail.Amount.ToString("N2");
                        }
                        else
                        {
                            rbtapplycoupon.Checked = true;
                        }
                    }
                    else
                    {
                        spcoupon.InnerText     = "N/A";
                        rbtapplycoupon.Checked = true;
                    }
                }
                return(true);
            }
            return(false);
        }
Exemple #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ddlpaymentmode.Attributes.Add("onChange", "OpenCloseDiv('" + ddlpaymentmode.ClientID + "')");

            if (!IsPostBack)
            {
                txtCashAmount.ReadOnly = true;

                BindAllDropDowns();

                if (IsFullfillmentOption)
                {
                    if (!string.IsNullOrEmpty(Request.QueryString["EventId"]))
                    {
                        ShippingOption.EventId = Convert.ToInt64(Request.QueryString["EventId"]);
                    }

                    EventCustomerId = Convert.ToInt64(Request.QueryString["EventCustomerID"]);
                    DivAcceptPayment.Style.Add(HtmlTextWriterStyle.Display, "none");
                    DivFullfillmentOption.Style.Add(HtmlTextWriterStyle.Display, "block");

                    _customer = ShippingOption.GetCustomerData();

                    FillShippingAddress();

                    ShippingOption.ShowOnlineOption = false;
                    Page.Title = "Fulfillment Option";

                    PartialPaymentDiv.Style.Add(HtmlTextWriterStyle.Display, "none");
                    var orderRepository = IoC.Resolve <IOrderRepository>();
                    var order           = orderRepository.GetOrder(CustomerId.Value, EventId.Value);
                    if (order != null && !order.OrderDetails.IsEmpty())
                    {
                        SetCreditCardOnFileDetails(order);
                    }
                }
                else
                {
                    EventCustomerId = Convert.ToInt64(Request.QueryString["EventCustomerID"]);
                    DivAcceptPayment.Style.Add(HtmlTextWriterStyle.Display, "block");
                    DivFullfillmentOption.Style.Add(HtmlTextWriterStyle.Display, "none");

                    IUniqueItemRepository <EventCustomer> eventCustomerRepository = new EventCustomerRepository();
                    var eventCustomer = eventCustomerRepository.GetById(EventCustomerId);
                    if (eventCustomer != null)
                    {
                        var organizationRoleUserRepository = IoC.Resolve <IOrganizationRoleUserRepository>();
                        var orgRoleUser = organizationRoleUserRepository.GetOrganizationRoleUser(eventCustomer.DataRecorderMetaData.DataRecorderCreator.Id);

                        EventRegisteredBy = (Roles)Enum.Parse(typeof(Roles), orgRoleUser.RoleId.ToString());
                    }

                    if (EventCustomerId > 0 && CheckValidCoupon())
                    {
                        var orderRepository        = IoC.Resolve <IOrderRepository>();
                        var orderId                = orderRepository.GetOrderIdByEventCustomerId(EventCustomerId);
                        var eventPackageRepository = IoC.Resolve <IEventPackageRepository>();
                        var eventPackage           = eventPackageRepository.GetPackageForOrder(orderId);

                        if (eventPackage != null)
                        {
                            PackageCost         = eventPackage.Package.Price;
                            hfpackagecost.Value = eventPackage.Package.Price.ToString();
                            hfeventid.Value     = eventPackage.EventId.ToString();
                        }
                    }
                    else
                    {
                        divapplycoupon.Visible = false;
                    }

                    GetCustomerBillingDetail();

                    if (CurrentRole == Roles.CallCenterRep)
                    {
                        PartialPaymentDiv.Style.Add(HtmlTextWriterStyle.Display, "block");
                    }
                    else if (CurrentRole == Roles.Technician)
                    {
                        PartialPaymentDiv.Style.Add(HtmlTextWriterStyle.Display, "none");
                    }
                }

                RegisterJavaScriptEvents();
            }
        }