protected void LoadUserData()
        {
            var    credentials = GetCredentialsFrom(User.Identity.Name);
            string path        = string.Format(
                options.AlbaUsersHtmlPath,
                credentials.AlbaAccountId);

            if (io.File.Exists(path))
            {
                io.File.Delete(path);
            }

            var client = AuthClient();

            client.Authenticate(credentials);

            var assignedHtml = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignmentsPage());

            string usersHtml = cuc.DownloadUsers.GetUsersHtml(assignedHtml);

            if (!io.Directory.Exists(io.Path.GetDirectoryName(path)))
            {
                io.Directory.CreateDirectory(io.Path.GetDirectoryName(path));
            }

            io.File.WriteAllText(path, usersHtml);
        }
Exemple #2
0
        public void Upload(string path, string languageFilePath)
        {
            if (client.BasePath == null)
            {
                throw new UserException("You are not logged on to Alba.  Please Logon.");
            }

            if (string.IsNullOrWhiteSpace(path))
            {
                return;
            }

            var languages = LanguageDownloader.LoadLanguagesFrom(languageFilePath);

            using (var reader = new StreamReader(path))
                using (CsvReader csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                {
                    csv.Configuration.Delimiter             = ",";
                    csv.Configuration.PrepareHeaderForMatch = (string header, int index) => header.ToLower();
                    var addresses = csv.GetRecords <AlbaAddressImport>();
                    foreach (var address in addresses)
                    {
                        Thread.Sleep(msDelay);

                        int languageId = languages
                                         .First(l => string.Equals(
                                                    l.Name,
                                                    address.Language,
                                                    System.StringComparison.OrdinalIgnoreCase))
                                         .Id;

                        int statusId = AddressStatusText.Status[address.Status];

                        var save = new AlbaAddressSave
                        {
                            Address_ID    = address.Address_ID,
                            Territory_ID  = address.Territory_ID,
                            LanguageId    = languageId,
                            StatusId      = statusId,
                            Name          = address.Name,
                            Suite         = address.Suite,
                            Address       = address.Address,
                            City          = address.City,
                            Province      = address.Province,
                            Postal_code   = address.Postal_code,
                            Country       = address.Country,
                            Latitude      = address.Latitude,
                            Longitude     = address.Longitude,
                            Telephone     = address.Telephone,
                            Notes         = address.Notes,
                            Notes_private = address.Notes_private
                        };

                        var saveUrl      = RelativeUrlBuilder.SaveAddress(save);
                        var resultString = client.DownloadString(saveUrl);

                        // TODO: Need to geocode
                    }
                }
        }
        protected void LoadUserManagementData()
        {
            var    credentials = GetCredentialsFrom(User.Identity.Name);
            string path        = string.Format(
                options.AlbaUserManagementHtmlPath,
                credentials.AlbaAccountId);

            if (io.File.Exists(path))
            {
                io.File.Delete(path);
            }

            var client = AuthClient();

            client.Authenticate(credentials);

            var json = client.DownloadString(
                RelativeUrlBuilder.GetUserManagementPage());

            string html = AlbaJsonResultParser.ParseDataHtml(json, "users");

            if (!io.Directory.Exists(io.Path.GetDirectoryName(path)))
            {
                io.Directory.CreateDirectory(io.Path.GetDirectoryName(path));
            }

            io.File.WriteAllText(path, html);
        }
        public void SaveAs(string path)
        {
            var html = client.DownloadString(
                RelativeUrlBuilder.GetLanguages());

            File.WriteAllText(path, html);
        }
Exemple #5
0
        public void SaveAs(string fileName)
        {
            var html = client.DownloadString(
                RelativeUrlBuilder.GetUserManagementPage());

            List <AlbaHtmlUser> users = GetUsers(html);
        }
        public void SaveAs(string fileName, int accountId)
        {
            var resultString = client.DownloadString(
                RelativeUrlBuilder.ExportAllAddresses(accountId));

            string text = AddressExportParser.Parse(resultString);

            TextFileGateway.Save(fileName, text);
        }
Exemple #7
0
        public void SaveAs(string fileName)
        {
            var resultString = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignments());

            string html = TerritoryAssignmentParser.Parse(resultString);

            SaveAs(html, fileName);
        }
Exemple #8
0
        public void Authorize_WithAllCredentials_ReturnsCorrectHash()
        {
            var credentials = new Credentials("account1", "user1", "P@ssw0rd");

            credentials.K1MagicString = "test-string-to-hash-with";

            var url = RelativeUrlBuilder.AuthenticationUrlFrom(credentials);

            Assert.AreEqual("ce24996002987b88a0cab15bf7538b4ee649ce19", ExtractHashFrom(url));
        }
Exemple #9
0
        static void Main(string[] args)
        {
            var url2 = RouteBuilder.ResolveRoute <FakeController2>(c => c.GetStuff());
            var fail = RouteBuilder.Fill("foo/{id}", "id", "world");

            var url1 = RouteBuilder.ResolveRoute <FakeController1>(c => c.GetStuff("foo"))
                       .Fill("id", "1212");


            var linker = new RelativeUrlBuilder("/myapproot");
            var rel    = linker.To <FakeController3>(c => c.ManyVars("", "", 0)).Fill("a", "12", "b", "13", "c", "14");
        }
        public List <Territory> SaveAs(string fileName)
        {
            var resultString = client.DownloadString(RelativeUrlBuilder.GetAllTerritories());

            AllTerritories = TerritoryResultParser.Parse(resultString);

            var assignmentsResultString = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignments());

            string assignmentsHtml = TerritoryAssignmentParser.Parse(assignmentsResultString);

            var assignments = new DownloadTerritoryAssignments(client).GetAssignments(assignmentsHtml);

            foreach (var t in AllTerritories)
            {
                var assignment = assignments.FirstOrDefault(a => string.Equals(a.Number, t.Number, StringComparison.OrdinalIgnoreCase));

                if (assignment != null)
                {
                    int monthsAgoCompleted = assignment.MonthsAgoCompleted ?? 0;
                    int yearsAgoCompleted  = monthsAgoCompleted / 12;

                    t.Status             = assignment.Status;
                    t.MobileLink         = assignment.MobileLink;
                    t.SignedOutTo        = assignment.SignedOutTo;
                    t.SignedOut          = assignment.SignedOut;
                    t.LastCompletedBy    = assignment.LastCompletedBy;
                    t.LastCompleted      = assignment.LastCompleted;
                    t.MonthsAgoCompleted = assignment.MonthsAgoCompleted;
                    t.YearsAgoCompleted  = assignment.LastCompleted == null
                        ? 99
                        : yearsAgoCompleted;
                    t.NeverCompleted = assignment.LastCompleted == null;
                }
            }

            var filteredTerritories = Filter(AllTerritories);

            foreach (var t in filteredTerritories)
            {
                t.FillColor = FillColorFor(t);
            }

            var kml = new TerritoryToKmlConverter().KmlFrom(filteredTerritories);

            new KmlGateway().Save(fileName, kml);

            return(filteredTerritories.ToList());
        }
Exemple #11
0
        public void SaveAs(string fileName)
        {
            // Downloads html instead of json Territory Assignments
            var resultString = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignmentsPage());

            List <User> users = GetUsers(GetUsersHtml(resultString));

            using (var writer = new StreamWriter(fileName))
                using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))

                {
                    csv.WriteRecords(users);
                }
        }
Exemple #12
0
        public void RequestToAddNew_WithTestTerritory_ReturnsCorrectlyEncodedUrl()
        {
            string expected = @"/ts?mod=territories&cmd=add&kind=0&number=TestNumber-123&notes=Test+Notes&description=Test+Description&border=1.11+-2.22%2c-3.33+-4.44";

            var territory = new Territory("TestId")
            {
                Number      = "TestNumber-123",
                Description = "Test Description",
                Notes       = "Test Notes",
            };

            territory.Border.Vertices.Add(new Vertex(1.11, -2.22));
            territory.Border.Vertices.Add(new Vertex(-3.33, -4.44));

            string url = RelativeUrlBuilder.RequestToAddNew(territory);

            Assert.AreEqual(expected, url);
        }
        void LoadUserData(Guid albaAccountId)
        {
            string path = string.Format(options.AlbaUsersHtmlPath, albaAccountId);

            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }

            // TODO: Get credentials with albaAccountId
            var credentials = albaCredentialService.GetCredentialsFrom(User.Identity.Name);

            var client = AuthorizationClient();

            client.Authenticate(credentials);

            var assignedHtml = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignmentsPage());

            string usersHtml = cuc.DownloadUsers.GetUsersHtml(assignedHtml);

            System.IO.File.WriteAllText(path, usersHtml);
        }
        private void Load(Guid albaAccountId)
        {
            string path = string.Format(options.AlbaAssignmentsHtmlPath, albaAccountId);

            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }

            var client = AuthorizationClient();

            var useCase = new DownloadTerritoryAssignments(client);

            var credentials = albaCredentialService.GetCredentialsFrom(User.Identity.Name);

            client.Authenticate(credentials);

            var resultString = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignments());

            string html = TerritoryAssignmentParser.Parse(resultString);

            System.IO.File.WriteAllText(path, html);
        }
        public void Upload()
        {
            if (client.BasePath == null)
            {
                view.ShowMessageBox("You are not logged on to Alba.  Please Logon.");
                return;
            }

            string fileName = view.OpenFileDialog("kml");

            if (string.IsNullOrWhiteSpace(fileName))
            {
                return;
            }

            var kml         = new KmlGateway().Load(fileName);
            var territories = new KmlToTerritoryConverter()
                              .TerritoryListFrom(kml)
                              .Where(t => t.Border != null && t.Border.Vertices != null && t.Border.Vertices.Count > 0)
                              .ToList();

            view.AppendResultText("Uploading " + territories.Count + " territory borders...");

            foreach (var territory in territories)
            {
                int count = territory.Border.Vertices.Count;

                var url          = RelativeUrlBuilder.RequestToAddNew(territory);
                var resultString = client.DownloadString(url);

                view.AppendResultText("Territory: " + territory.Number);
                view.AppendResultText(count + " vertices where uploaded..." + Environment.NewLine);
                view.AppendResultText(resultString + Environment.NewLine + Environment.NewLine);
                Thread.Sleep(delay);
            }
        }