예제 #1
0
 public void EmptyListSetTagsTest()
 {
     Report r = new Report();
     List<String> tags = new List<String>();
     r.setTags(tags);
     Assert.AreNotEqual(r.isTagsReady(), true);
 }
예제 #2
0
 public void NonEmptyListSetTagsTest()
 {
     Report r = new Report();
     List<String> tags = new List<String>();
     tags.Add("Vandalism");
     r.setTags(tags);
     Assert.AreEqual(r.isTagsReady(), true);
 }
예제 #3
0
 public async Task MinimalReportTest()
 {
     String date = dt.ToString("dd_MM_yyyy_H_mm_ss");
     Report r = new Report();
     var localStorage = ApplicationData.Current.LocalFolder;
     var file = await localStorage.CreateFileAsync("RiverWatchImage_" + date + ".jpg");
     r.setImage(file);            
    while (!r.isGeolocationReady())
    {
        await Task.Delay(2000);
    }
     Assert.AreEqual(r.isReportReady(), true);
 }
예제 #4
0
        internal static async Task<Report> GenerateFromString(string savedReportString)
        {
            Report newReport = new Report();
            int count = 0;
            string[] reportComponents = savedReportString.Split(new String[] { ":~:" }, StringSplitOptions.None);
            newReport.setImage(await ApplicationData.Current.LocalFolder.GetFileAsync(reportComponents[count++]));

            string logit = reportComponents[count++];
            string latit = reportComponents[count++];
            newReport.setGeolocation(logit, latit);

            int noTags = Int32.Parse(reportComponents[count++]);

            try
            {
                List<string> tags = new List<string>();
                for (int i = 0; i < noTags; i++)
                {
                    tags.Add(reportComponents[count++]);
                }
                newReport.setTags(tags);
                newReport.setDescription(reportComponents[count]);
            }
            catch (NullReferenceException) { Debug.WriteLine("Reached end of input String"); }

            return newReport;
        }
        private async Task DisplayReportContent()
        {
            string fileContent;
            using (StreamReader s = new StreamReader(await currentReportFile.OpenStreamForReadAsync()))
            {
                fileContent = await s.ReadToEndAsync();
                s.Dispose();
            }
            //Report currReport = new Report(fileContent);
            currentReport = await Report.GenerateFromString(fileContent);
            
            PageTitle.Text = currentReport.getReportName();
            imagePreview.Source = new BitmapImage(new Uri(currentReport.getImage().Path));
            GeolocationToolTip.FontSize = 15;
            GeolocationToolTip.Text = "Latitude: " + currentReport.getLatitude() + "\n\nLongitude: " + currentReport.getLongitude();
            if (!currentReport.isTagsReady())
            {
                TagsToolTip.FontSize = 20;
                TagsToolTip.Text = "No tags";
            }
            else
            {
                // display as much selected tags
                String t = "";
                int NoOfTags = currentReport.getTags().Count;

                if (NoOfTags == 0)
                {
                    TagsToolTip.FontSize = 20;
                    TagsToolTip.Text = "No tags";
                    currentReport.setTagsNotReady();
                }
                else
                {
                    int TagCount = 0;
                    int TagLimit = 8;

                    int LineCount = 0;
                    int LineLimit = 3;

                    foreach (String element in currentReport.getTags())
                    {
                        // if we've displayed 6 tags
                        if (TagCount >= TagLimit)
                        {
                            break;
                        }

                        // if we've got two tags on a line
                        if (!(LineCount < LineLimit))
                        {
                            t += "\n";
                            LineCount = 0;
                        }

                        // append tag
                        t += "#" + element + ", ";
                        LineCount++;
                        TagCount++;
                    }

                    // remove extra comma
                    t = t.Substring(0, t.Length - 2);

                    // if user selected more than 6 tags, add a ...
                    if (NoOfTags > TagLimit)
                    {
                        t += "...";
                    }

                    // display tags
                    TagsToolTip.FontSize = 15;
                    TagsToolTip.Text = t;
                }
            }

            // display description
            if (!currentReport.isDescriptionReady())
            {
                DescriptionToolTip.FontSize = 20;
                DescriptionToolTip.Text = "No description";
            }
            else
            {
                String desc = currentReport.getDescription();

                if (desc.Length == 0)
                {
                    DescriptionToolTip.FontSize = 20;
                    DescriptionToolTip.Text = "No description";
                    currentReport.setDescriptionNotReady();
                }
                else
                {
                    // need to parse out trailing whitespace
                    DescriptionToolTip.FontSize = 15;
                    DescriptionToolTip.Text = desc.Trim();
                }
            }
        }
예제 #6
0
        public async Task DiscardReportTest()
        {
            String date = dt.ToString("dd_MM_yyyy_H_mm_ss");
            Report r = new Report();
            var localStorage = ApplicationData.Current.LocalFolder;
            var file = await localStorage.CreateFileAsync("RiverWatchImage_" + date + ".jpg");
            r.setImage(file);
            while (!r.isGeolocationReady())
            {
                await Task.Delay(2000);
            }
            r.discardReport(true);
            bool filePresent = await IsFilePresent("RiverWatchImage_" + date + ".jpg");

            Assert.AreEqual(filePresent, false);
        }
예제 #7
0
 public void SetDescriptionTest()
 {
     Report r = new Report();
     r.setDescription("A Description");
     Assert.AreEqual(r.isDescriptionReady(), true);
 }