public void TerritoryTypeReturnsSalesRep()
        {
            const TerritoryType expectedTerritoryType = TerritoryType.SalesRep;

            Territory territory = new SalesRepTerritory();

            Assert.AreEqual(expectedTerritoryType, territory.TerritoryType);
        }
Exemple #2
0
        public SalesRepTerritory CreateSalesRepTerritory(TerritoryEntity territoryEntity,
                                                         List <OrderedPair <OrganizationRoleUser, RegistrationMode> > owningUsersAndEventTypes,
                                                         List <OrderedPair <long, long> > userSalesReps)
        {
            List <SalesRepTerritoryAssignment> salesRepTerritoryAssignments =
                _salesRepTerritoryAssignmentFactory.CreateSalesRepTerritoryAssignments
                    (owningUsersAndEventTypes, userSalesReps).ToList();
            SalesRepTerritory salesRepTerritory = _salesRepTerritoryMapper.Map(territoryEntity);

            salesRepTerritory.SalesRepTerritoryAssignments = salesRepTerritoryAssignments;
            return(salesRepTerritory);
        }
Exemple #3
0
        public void CreateSalesRepTerritorySetsSalesRepTerritoryAssignemntsToEmptyWhenEntityHasNoOwners()
        {
            var territoryEntity = new TerritoryEntity {
                Type = (byte)TerritoryType.SalesRep
            };

            SalesRepTerritory territory = _territoryFactory.CreateSalesRepTerritory(territoryEntity,
                                                                                    new List <OrderedPair <OrganizationRoleUser, RegistrationMode> >(),
                                                                                    new List <OrderedPair <long, long> >());

            Assert.IsNotNull(territory.SalesRepTerritoryAssignments,
                             "Null list of Sales Rep Owner IDs returned.");
            Assert.IsEmpty(territory.SalesRepTerritoryAssignments,
                           "Incorrect Sales Rep Owner ID list returned.");
        }
        public void GetTerritoryReturnsWhatRepositoryGetTerritoryReturnsForTerritory()
        {
            const long territoryId       = 3;
            Territory  expectedTerritory = new SalesRepTerritory(territoryId);

            Expect.Call(_territoryRepository.GetTerritory(territoryId)).Return(expectedTerritory);
            Expect.Call(_territoryRepository.GetOwnerNamesForTerritory(expectedTerritory)).Return(new List <string>());

            _mocks.ReplayAll();
            OrderedPair <Territory, List <string> > territoryAndOwnerNames = _territoryController.
                                                                             GetTerritoryAndOwnerNames(territoryId);

            _mocks.VerifyAll();

            Assert.AreEqual(expectedTerritory, territoryAndOwnerNames.FirstValue, "Incorrect territory returned.");
        }
Exemple #5
0
        public void SaveTerritorySavesSalesRepTerritory()
        {
            var salesRepTerritory = new SalesRepTerritory
            {
                Description = "Sales Rep Territory test description 233.",
                SalesRepTerritoryAssignments = new List <SalesRepTerritoryAssignment>
                {
                    new SalesRepTerritoryAssignment {
                        EventTypeSetupPermission = RegistrationMode.Public, SalesRep = new SalesRepresentative()
                    }
                },
                Name = "Integration Test Saving Sales Rep Territory",
                ParentTerritoryId = VALID_SALES_REP_PARENT_TERRITORY_ID,
                ZipCodes          = GetListOfValidZipCodes()
            };

            _territoryRepository.SaveTerritory(salesRepTerritory);
        }
Exemple #6
0
        private Core.Geo.Domain.Territory GetTerritory()
        {
            long territoryId;
            long parentTerritoryId;

            long.TryParse(Request.QueryString["tid"], out territoryId);
            long.TryParse(Request.QueryString["ftid"], out parentTerritoryId);

            switch ((TerritoryType)(byte.Parse(TerritoryTypeDDL.SelectedValue)))
            {
            case TerritoryType.SalesRep:
                var salesRepTerritory = new SalesRepTerritory(territoryId)
                {
                    SalesRepTerritoryAssignments = new List <SalesRepTerritoryAssignment>(), ParentTerritoryId = parentTerritoryId
                };
                return(salesRepTerritory);
            }
            return(null);
        }
        public void GetTerritorySetsListOfOwnersToWhatGetOwnersRepositoryMethodReturns()
        {
            const long territoryId        = 3;
            Territory  expectedTerritory  = new SalesRepTerritory(territoryId);
            var        expectedOwnerNames = new List <string> {
                "Bob", "Alice"
            };

            Expect.Call(_territoryRepository.GetTerritory(territoryId)).Return(expectedTerritory);
            Expect.Call(_territoryRepository.GetOwnerNamesForTerritory(expectedTerritory)).Return(expectedOwnerNames);

            _mocks.ReplayAll();
            OrderedPair <Territory, List <string> > territoryAndOwnerNames = _territoryController.
                                                                             GetTerritoryAndOwnerNames(territoryId);

            _mocks.VerifyAll();

            Assert.AreEqual(expectedOwnerNames, territoryAndOwnerNames.SecondValue, "Incorrect owner list returned.");
        }
Exemple #8
0
        public void CreateSalesRepTerritoryMapsEventTypeSetupPermissionsToTerritoryAssignments()
        {
            var owningUsersAndEventTypes = new List <OrderedPair <OrganizationRoleUser, RegistrationMode> >
            {
                new OrderedPair <OrganizationRoleUser, RegistrationMode>(
                    new OrganizationRoleUser(2, (long)Roles.SalesRep, 3),
                    RegistrationMode.Public),
            };
            var userSalesRepIds = new List <OrderedPair <long, long> >
            {
                new OrderedPair <long, long>(2, 7)
            };
            RegistrationMode expectedEventType = owningUsersAndEventTypes.Single().SecondValue;

            SalesRepTerritory salesRepTerritory = _territoryFactory.CreateSalesRepTerritory
                                                      (new TerritoryEntity(), owningUsersAndEventTypes, userSalesRepIds);

            Assert.AreEqual(expectedEventType,
                            salesRepTerritory.SalesRepTerritoryAssignments.Single().EventTypeSetupPermission,
                            "Sales Rep Territory Event Type Setup Permission was mapped incorrectly.");
        }
Exemple #9
0
        public void CreateSalesRepTerritoryMapsOrganizationRoleUsersToSalesRepTerritoryAssignments()
        {
            var owningUsersAndEventTypes = new List <OrderedPair <OrganizationRoleUser, RegistrationMode> >
            {
                //TODO: SRE ... NEEd to check these
                new OrderedPair <OrganizationRoleUser, RegistrationMode>(
                    new OrganizationRoleUser
                {
                    OrganizationId = 1, UserId = 2, RoleId = (long)Roles.SalesRep
                },
                    RegistrationMode.Public),
                new OrderedPair <OrganizationRoleUser, RegistrationMode>(
                    new OrganizationRoleUser
                {
                    OrganizationId = 3, UserId = 4, RoleId = (long)Roles.SalesRep
                },
                    RegistrationMode.Private)
            };

            var userSalesRepIds = new List <OrderedPair <long, long> >
            {
                new OrderedPair <long, long>(2, 7), new OrderedPair <long, long>(4, 8)
            };
            var expectedsalesRepIds = userSalesRepIds.Select(usr => usr.SecondValue);
            var expectedUserIds     = owningUsersAndEventTypes.Select(ouet => ouet.FirstValue.UserId);

            SalesRepTerritory salesRepTerritory = _territoryFactory.
                                                  CreateSalesRepTerritory(new TerritoryEntity(), owningUsersAndEventTypes,
                                                                          userSalesRepIds);

            Assert.IsTrue(salesRepTerritory.SalesRepTerritoryAssignments.
                          Where(srta => expectedsalesRepIds.Contains
                                    (srta.SalesRep.SalesRepresentativeId)).Count() == 2,
                          "Owning Sales Representatives' Sales Rep IDs mapped incorrectly.");
            Assert.IsTrue(salesRepTerritory.SalesRepTerritoryAssignments.
                          Where(osr => expectedUserIds.Contains
                                    (osr.SalesRep.Id)).Count() == 2,
                          "Owning Sales Representatives' User IDs mapped incorrectly.");
        }
Exemple #10
0
        private void GetEventDataByDate(DateTime startDate, DateTime endDate)
        {
            List <EEvent> eventForCalendar;

            if (IoC.Resolve <ISessionContext>().UserSession.CurrentOrganizationRole.CheckRole((long)Roles.SalesRep))
            {
                eventForCalendar = _masterDal.GetEventForCalendar(0, startDate.ToShortDateString(), endDate.ToShortDateString(), 0, HostName, FranchiseeId, PodIds, TerritoryIds);
            }
            else
            {
                eventForCalendar = _masterDal.GetEventForCalendar(SalesRepId, startDate.ToShortDateString(), endDate.ToShortDateString(), 0, HostName, FranchiseeId, PodIds, TerritoryIds);
            }
            var eventIds = new List <long>();
            ITerritoryRepository territoryRepository = new TerritoryRepository();

            if (!string.IsNullOrEmpty(TerritoryIds) && TerritoryIds != "0")
            {
                var territoryIds                   = TerritoryIds.Split(',').ToList().Select(ti => Convert.ToInt64(ti)).ToList();
                List <Territory> territories       = territoryRepository.GetTerritories(territoryIds);
                List <string>    territoryZipCodes =
                    territories.SelectMany(territory => territory.ZipCodes.Select(zipCode => zipCode.Zip)).ToList();
                eventForCalendar =
                    eventForCalendar.Where(eventData => territoryZipCodes.Contains(eventData.Host.Address.Zip)).ToList();

                if (SalesRepId > 0)
                {
                    var salesRepTerritories =
                        territoryRepository.GetTerritoriesForSalesRep(SalesRepId).Where(t => territoryIds.Contains(t.Id))
                        .ToList();

                    foreach (var calenderEvent in eventForCalendar)
                    {
                        var @event = calenderEvent;

                        var filteredSalesRepTerritories =
                            salesRepTerritories.Where(
                                st => st.ZipCodes.Select(z => z.Zip).Contains(@event.Host.Address.Zip));

                        foreach (var filteredSalesRepTerritory in filteredSalesRepTerritories)
                        {
                            SalesRepTerritory territory = filteredSalesRepTerritory;
                            if (filteredSalesRepTerritories.All(fstpt => fstpt.ParentTerritoryId != territory.Id))
                            {
                                var territoryAssignment = territory.SalesRepTerritoryAssignments.SingleOrDefault(srta => srta.SalesRep.SalesRepresentativeId == SalesRepId);

                                if (territoryAssignment != null && (int)territoryAssignment.EventTypeSetupPermission != 0 && calenderEvent.EventType.EventTypeID != (int)territoryAssignment.EventTypeSetupPermission)
                                {
                                    eventIds.Add(@event.EventID);
                                }
                            }
                        }
                    }
                }
            }

            if (eventForCalendar != null)
            {
                for (int count = 0; count < eventForCalendar.Count; count++)
                {
                    string eventData   = "\"" + eventForCalendar[count].Name.Replace("\n", "").Replace("'", "") + " \"";
                    string eventStatus = "\"" + Convert.ToString(Enum.Parse(typeof(EventStatus), eventForCalendar[count].EventStatus.ToString())).Replace("\n", "").Replace("'", "") + " \"";

                    string eventDate      = "\"" + Convert.ToDateTime(eventForCalendar[count].EventDate).ToLongDateString() + " \"";
                    string eventStartTime = "\"" + Convert.ToDateTime(eventForCalendar[count].EventStartTime).ToShortTimeString() + " \"";
                    string eventEndTime   = "\"" + Convert.ToDateTime(eventForCalendar[count].EventEndTime).ToShortTimeString() + " \"";
                    string timeZone       = "\"" + eventForCalendar[count].TimeZone + " \"";
                    string address1       = "\"" + eventForCalendar[count].Host.Address.Address1.Replace("\n", "").Replace("'", "") + " \"";
                    string address2       = "\"" + eventForCalendar[count].Host.Address.Address2.Replace("\n", "").Replace("'", "") + " \"";
                    string city           = "\"" + eventForCalendar[count].Host.Address.City + " \"";
                    string state          = "\"" + eventForCalendar[count].Host.Address.State + " \"";
                    string country        = "\"" + eventForCalendar[count].Host.Address.Country + " \"";
                    string zip            = "\"" + eventForCalendar[count].Host.Address.Zip + " \"";
                    string franchisee     = "\"" + eventForCalendar[count].Franchisee.Name.Replace("\n", "").Replace("'", "") + " \"";

                    string salesRep  = "\"" + eventForCalendar[count].FranchiseeFranchiseeUser.FranchiseeUser.User.FirstName + "  " + eventForCalendar[count].FranchiseeFranchiseeUser.FranchiseeUser.User.LastName + " \"";
                    string controlId = "\"Event" + eventForCalendar[count].EventID + "\"";

                    string   customerCount;
                    TimeSpan dateDifference = Convert.ToDateTime(eventForCalendar[count].EventDate).Subtract(DateTime.Now);
                    int      days           = dateDifference.Days;

                    if (days < 0)
                    {
                        customerCount = "\" Registered:" + eventForCalendar[count].RegisteredCustomersCount + " | Attended:" + eventForCalendar[count].AttendedCustomersCount + " | Cancel:" + eventForCalendar[count].CancelCustomersCount + " \"";
                    }
                    else if (days == 0)
                    {
                        customerCount = "\"Registered:" + eventForCalendar[count].RegisteredCustomersCount + " | Attended:" + eventForCalendar[count].AttendedCustomersCount + " | On Site :" + eventForCalendar[count].OnSiteCustomersCount + " \"";
                    }
                    else
                    {
                        customerCount = "\"Registered:" + eventForCalendar[count].RegisteredCustomersCount + " | Paid:" + eventForCalendar[count].PaidCustomersCount + " | UnPaid :" + eventForCalendar[count].UnpaidCustomersCount + " |Cancel :" + eventForCalendar[count].CancelCustomersCount + " \"";
                    }

                    string strAddress = CommonCode.AddressMultiLine(eventForCalendar[count].Host.Address.Address1, eventForCalendar[count].Host.Address.Address2, eventForCalendar[count].Host.Address.City, eventForCalendar[count].Host.Address.State, eventForCalendar[count].Host.Address.Zip);
                    strAddress = "\"" + strAddress.Replace("\n", "").Replace("'", "") + " \"";

                    string strEventDescription = eventData + "," + eventStatus + "," + eventDate + "," + eventStartTime + "," + eventEndTime + "," + timeZone + "," + customerCount + "," + strAddress.Trim() + "," + address2 + "," + city + "," + state + "," + country + "," + zip + "," + franchisee + "," + salesRep + "," + controlId;
                    string strEventView        = string.Empty;

                    if (!eventIds.Contains(eventForCalendar[count].EventID))
                    {
                        strEventView = "onclick = 'window.location=\"EventDetails.aspx?EventID=" + eventForCalendar[count].EventID.ToString() + "\"'";
                    }

                    //}

                    string salesRepInitials =
                        eventForCalendar[count].FranchiseeFranchiseeUser.FranchiseeUser.User.FirstName.Substring(0, 1) +
                        eventForCalendar[count].FranchiseeFranchiseeUser.FranchiseeUser.User.LastName.Substring(0, 1);
                    string podName  = string.Empty;
                    var    jTipData = "Event Details for " + eventData.Replace("\"", string.Empty) + "[" + eventForCalendar[count].EventID + "] " + "<span class=\"whitetxt12\">(" + eventStatus.Replace("\"", string.Empty).Trim() + ")</span>" +
                                      "|<p class=\"jtprowtop \"><span class=\"lbljtip\"> Date &amp; Time: </span>" +
                                      "<span class=\"dtlsjtip\">" +
                                      eventDate.Replace("\"", string.Empty) + "<br />" +
                                      eventStartTime.Replace("\"", string.Empty) + "&ndash;" + eventEndTime.Replace("\"", string.Empty) + "<br />" +
                                      timeZone.Replace("\"", string.Empty) +
                                      "</span>" +
                                      "</p><p class=\"jtprow\"><span class=\"lbljtip\"> Address: </span>" +
                                      "<span class=\"dtlsjtip\">" +
                                      strAddress.Replace("\"", string.Empty) +
                                      "</span></p><p class=\"jtprow\"><span class=\"lbljtip\"> Owner: </span>" +
                                      "<span class=\"dtlsjtip\">" +
                                      salesRep.Replace("\"", string.Empty) + "<br />(" + franchisee.Replace("\"", string.Empty) + ")" +
                                      "</span></p>";

                    podName = "<p class=\"jtprow\"><span class=\"lbljtip\"> Pod Name: </span>";
                    podName = podName + "<span class=\"dtlsjtip\">";
                    if (eventForCalendar[count].EventPod != null)
                    {
                        for (int podcount = 0; podcount < eventForCalendar[count].EventPod.Count; podcount++)
                        {
                            podName = podName + eventForCalendar[count].EventPod[podcount].Pod.Name.Replace("\"", string.Empty) + "<br />";
                        }
                    }
                    podName = podName + "</span></p>";

                    eventStatus  = "<p class=\"jtprow\"><span class=\"lbljtip\"> Event Status: </span>";
                    eventStatus += "<span class=\"dtlsjtip\">" + ((EventStatus)eventForCalendar[count].EventStatus).ToString() + "</span></p>";

                    jTipData = jTipData + podName + eventStatus +
                               "<p class=\"jtprow\"><span class=\"lbljtip\"> Statistics/Health: </span> </p>" +
                               "<p class=\"jtprowtop\"><span class=\"custcauntjtp\"><span class=\"ttxt\"> Registered Customers </span>" + "<span class=\"dtxt\">" + ":&nbsp;" + eventForCalendar[count].RegisteredCustomersCount.ToString().Replace("\"", string.Empty) + "</span>" + "<br />" +
                               "<span class=\"ttxt\"> Attended Customers</span>" + "<span class=\"dtxt\">" + ":&nbsp;" + eventForCalendar[count].AttendedCustomersCount.ToString().Replace("\"", string.Empty) + "</span>" + "<br />" +
                               "<span class=\"ttxt\"> Canceled Customers</span>" + "<span class=\"dtxt\">" + ":&nbsp;" + eventForCalendar[count].CancelCustomersCount.ToString().Replace("\"", string.Empty) + "</span></span></p>";

                    string strEventName = "<a  class='jtip'  title='" + jTipData + "'" + strEventView + " ><img src='../Images/addevent-square.gif' /><span class='celltxt_clnder'>" + salesRepInitials + " " + eventForCalendar[count].Host.Name + "<br>" + eventForCalendar[count].Host.Address.City + ", " + eventForCalendar[count].Host.Address.State + " - " + eventForCalendar[count].Host.Address.Zip + "</span></a>";

                    _tblAppointments.Rows.Add(new object[] { "Event" + eventForCalendar[count].EventID.ToString(), "Event", strEventName, eventForCalendar[count].EventDate, strEventDescription });
                }
            }
        }