Ejemplo n.º 1
0
        public CallCenterRep Save(CallCenterRep callCenterRep, long organizationRoleUserId)
        {
            //TODO: Temp patch, as from create user callcenter profile is not created.

            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                //TODO: remove - Temp Patch to check idf the profile is created or not
                var orgRoleuser = new LinqMetaData(adapter).OrganizationRoleUser
                                  .WithPath(prefetchPath => prefetchPath.Prefetch(org => org.CallCenterRepProfile))
                                  .Where(
                    oru =>
                    (oru.RoleId == (long)Roles.CallCenterRep) &&
                    callCenterRep.CallCenterRepId == oru.OrganizationRoleUserId)
                                  .FirstOrDefault();
                if (orgRoleuser != null && orgRoleuser.CallCenterRepProfile == null)
                {
                    callCenterRep.CallCenterRepId = 0;
                }

                // Might add a mapper class going forward, when there are a number of Profile Attributes. (Sandeep)
                var callCenterRepEntity = new CallCenterRepProfileEntity(organizationRoleUserId)
                {
                    CanRefund      = callCenterRep.CanRefund,
                    CanChangeNotes = callCenterRep.CanChangeNotes,
                    IsNew          = callCenterRep.CallCenterRepId > 0 ? false : true
                };
                if (!adapter.SaveEntity(callCenterRepEntity))
                {
                    throw new PersistenceFailureException();
                }

                return(callCenterRep);
            }
        }
Ejemplo n.º 2
0
        public CallCenterRep SaveCallCenterRep(CallCenterRep callCenterRep, long organizationId)
        {
            if (callCenterRep == null)
            {
                throw new ArgumentNullException("CallCenterRep");
            }

            if (callCenterRep.Address != null)
            {
                callCenterRep.Address = _addressService.SaveAfterSanitizing(callCenterRep.Address);
            }
            callCenterRep.DefaultRole = Roles.CallCenterRep;
            callCenterRep             = _userRepository.SaveUser(callCenterRep);
            var orgRoleUser = _orgRoleUserRepository.SaveOrganizationRoleUser(new OrganizationRoleUser(callCenterRep.Id, (long)Roles.CallCenterRep,
                                                                                                       organizationId));

            _callcenterRepository.Save(callCenterRep, orgRoleUser.Id);
            return(callCenterRep);
        }
Ejemplo n.º 3
0
        public List <CallCenterRep> GetCallCenterReps(List <long> callCenterRepIds)
        {
            List <OrderedPair <long, long> > orgRolesUsersforCCRep;

            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(myAdapter);
                orgRolesUsersforCCRep = linqMetaData.OrganizationRoleUser.Where(oru => (oru.RoleId == (long)Roles.CallCenterRep || oru.Role.ParentId == (long)Roles.CallCenterRep) && callCenterRepIds.Contains(oru.OrganizationRoleUserId)).
                                        Select(oru => new OrderedPair <long, long>(oru.UserId, oru.OrganizationRoleUserId)).ToList();
            }

            List <CallCenterRep> callCenterReps = _userRepository.GetUsers(orgRolesUsersforCCRep.Select(oru => oru.FirstValue).ToList());

            foreach (var callCenterRep in callCenterReps)
            {
                CallCenterRep rep = callCenterRep;
                callCenterRep.CallCenterRepId = orgRolesUsersforCCRep.Single(oru => oru.FirstValue == rep.Id).SecondValue;
            }
            return(callCenterReps);
        }
Ejemplo n.º 4
0
        public CallCenterRep GetCallCenterRep(long callCenterRepId)
        {
            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(myAdapter);

                var orgRoleUserEntity = linqMetaData.OrganizationRoleUser.WithPath(prefetchPath => prefetchPath.Prefetch(org => org.CallCenterRepProfile))
                                        .Where(oru => (oru.RoleId == (long)Roles.CallCenterRep || oru.Role.ParentId == (long)Roles.CallCenterRep) &&
                                               callCenterRepId == oru.OrganizationRoleUserId).FirstOrDefault();

                if (orgRoleUserEntity == null)
                {
                    throw new ObjectNotFoundInPersistenceException <CallCenterRep>();
                }

                CallCenterRep callCenterRep = _userRepository.GetUser(orgRoleUserEntity.UserId);
                callCenterRep.CallCenterRepId = orgRoleUserEntity.OrganizationRoleUserId;
                callCenterRep.CanRefund       = orgRoleUserEntity.CallCenterRepProfile != null ? orgRoleUserEntity.CallCenterRepProfile.CanRefund : false;
                callCenterRep.CanChangeNotes  = orgRoleUserEntity.CallCenterRepProfile != null ? orgRoleUserEntity.CallCenterRepProfile.CanChangeNotes : false;
                return(callCenterRep);
            }
        }
        public CallCenterRepMetricDetailViewData CreateCallCenterRepMetricDetailViewDatum(EventCustomerRegistrationViewData eventCustomer,
                                                                                          Order order, CallCenterRep callCenterRep)
        {
            // It is a cancelled record.
            if (order == null || !order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted))
            {
                order = null;
            }

            var amount    = order != null ? order.DiscountedTotal : 0m;
            var isPrePaid = order != null && order.TotalAmountPaid >= order.DiscountedTotal;

            var paymentDate = isPrePaid && order.DataRecorderMetaData != null
                                  ? (DateTime?)order.DataRecorderMetaData.DateCreated
                                  : null;

            var packageName = eventCustomer.PackageName;

            packageName = !string.IsNullOrEmpty(packageName)
                              ? !string.IsNullOrEmpty(eventCustomer.AdditinalTest)
                                    ? packageName + ", " + eventCustomer.AdditinalTest
                                    : packageName
                              : eventCustomer.AdditinalTest;


            return(new CallCenterRepMetricDetailViewData
            {
                EventSignUp = eventCustomer.EventSignupDate,
                EventDate = eventCustomer.EventDate,
                Customer =
                    eventCustomer.FirstName + " " +
                    eventCustomer.LastName,
                AttendedState =
                    eventCustomer.EventDate > DateTime.Now
                                   ? "Scheduled"
                                   : "Attended",
                CustomerId = eventCustomer.CustomerId,
                Package = packageName,
                EventId = eventCustomer.EventId,
                Amount = amount,
                CallCenterRep = callCenterRep.NameAsString,
                PaymentDate = paymentDate,
                IsPrePaid = isPrePaid,
                CustomerAddress = null
            });
        }
        public List <CallCenterRepMetricDetailViewData> CreateCallCenterRepMetricDetailViewData(List <EventCustomerRegistrationViewData> eventCustomers,
                                                                                                List <Order> orders, CallCenterRep callCenterRep)
        {
            var callCenterRepMetricDetailViewData = new List <CallCenterRepMetricDetailViewData>();

            foreach (var eventCustomer in eventCustomers)
            {
                var aggregate = eventCustomer;

                Order currentOrder = null;
                foreach (var order in orders)
                {
                    if (order.OrderDetails.Any(od => (od.DetailType == OrderItemType.EventPackageItem || od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted))
                    {
                        var activeOrderDetail =
                            order.OrderDetails.SingleOrDefault(
                                od =>
                                (od.DetailType == OrderItemType.EventPackageItem ||
                                 od.DetailType == OrderItemType.EventTestItem) && od.IsCompleted &&
                                od.EventCustomerOrderDetail != null);

                        if (activeOrderDetail != null && activeOrderDetail.EventCustomerOrderDetail != null &&
                            activeOrderDetail.EventCustomerOrderDetail.EventCustomerId == aggregate.EventCustomerId)
                        {
                            currentOrder = order;
                        }
                    }
                }
                var callCenterRepMetricDetailViewDatum = CreateCallCenterRepMetricDetailViewDatum(aggregate,
                                                                                                  currentOrder,
                                                                                                  callCenterRep);
                callCenterRepMetricDetailViewData.Add(callCenterRepMetricDetailViewDatum);
            }

            return(callCenterRepMetricDetailViewData);
        }
Ejemplo n.º 7
0
    private CallCenterRep BuildUserModel(User callCenterRep)
    {
        var userRepository    = IoC.Resolve <IUserRepository <User> >();
        var countryRepository = IoC.Resolve <ICountryRepository>();
        var addressRepository = IoC.Resolve <IAddressRepository>();

        var user = new CallCenterRep();

        if (callCenterRep != null)
        {
            user.Id = callCenterRep.Id;
        }

        user.Name = new Name(txtfname.Text, txtMiddleName.Text, txtlname.Text);

        var userAddress = new Address();

        userAddress.StreetAddressLine1 = txtaddress1.Text;
        userAddress.StreetAddressLine2 = txtAddress2.Text;
        userAddress.Country            = countryRepository.GetAll().FirstOrDefault().Name;
        userAddress.State   = ddlState.SelectedItem.Text;
        userAddress.City    = txtCity.Text;
        userAddress.ZipCode = new ZipCode {
            Zip = txtzip1.Text
        };

        try
        {
            if (!addressRepository.ValidateAddress(userAddress))
            {
                return(null);
            }
        }
        catch (InvalidAddressException exception)
        {
            ClientScript.RegisterStartupScript(typeof(string), "bijscode", "alert('" + exception.Message + "');", true);
            return(null);
        }

        if (callCenterRep != null)
        {
            userAddress.Id = callCenterRep.Address.Id;
        }
        user.Address = userAddress;

        user.HomePhoneNumber = new PhoneNumber {
            Number = txtphonehome.Text
        }.ToNumber();
        user.OfficePhoneNumber = new PhoneNumber {
            Number = txtphoneother.Text
        }.ToNumber();
        user.MobilePhoneNumber = new PhoneNumber {
            Number = txtphonecell.Text
        }.ToNumber();

        if (!string.IsNullOrWhiteSpace(txtEmail1.Text))
        {
            user.Email = new Email(txtEmail1.Text);
        }

        if (!string.IsNullOrWhiteSpace(txtEmail2.Text))
        {
            user.AlternateEmail = new Email(txtEmail2.Text);
        }

        if ((callCenterRep == null) || (callCenterRep.Email.ToString() != txtEmail1.Text))
        {
            if (!userRepository.UniqueEmail(user.Email.ToString()))
            {
                errordiv.Visible   = true;
                errordiv.InnerText = "Contact email already exists. Please try another email.";
                return(null);
            }
        }

        if ((callCenterRep == null) || (callCenterRep.AlternateEmail != null) && (callCenterRep.AlternateEmail.ToString() != txtEmail2.Text))
        {
            if (user.AlternateEmail != null && !userRepository.UniqueEmail(user.AlternateEmail.ToString()))
            {
                errordiv.Visible   = true;
                errordiv.InnerText = "Contact email already exists. Please try another email.";
                return(null);
            }
        }

        if (!string.IsNullOrWhiteSpace(txtDob.Text))
        {
            user.DateOfBirth = Convert.ToDateTime(txtDob.Text);
        }

        user.CanRefund      = chkCanDoRefund.Checked;
        user.CanChangeNotes = chkChangeNotes.Checked;

        user.UserLogin = callCenterRep == null ? new UserLogin {
            UserName = txtUserName.Text, Password = txtPassword.Text, IsSecurityQuestionVerified = false
        } : callCenterRep.UserLogin;


        return(user);
    }