コード例 #1
0
        public void addEvent(object sender, EventArgs e)
        {
            if (entryName.Text == null)
            {
                this.DisplayAlert("Error", "Event name cannot be empty", "Ok");
                return;
            }
            for (int i = 0; i < GlobalVariables.myEvents.Count; i++)
            {
                if (string.Compare(GlobalVariables.myEvents[i].getName(), entryName.Text, true) == 0)
                {
                    this.DisplayAlert("Error", "An event with that name already exists", "Ok");
                    return;
                }
            }
            for (int i = 0; i < GlobalVariables.storedEvents.Count; i++)
            {
                if (string.Compare(GlobalVariables.storedEvents[i].getName(), entryName.Text, true) == 0)
                {
                    this.DisplayAlert("Error", "An event with that name already exists", "Ok");
                    return;
                }
            }
            Event newEvent = new Event(entryName.Text, datePicked.Date);

            newEvent.setOneTimeEvent(oneTimeEvent);
            GlobalVariables.resetEvent(newEvent);
            GlobalVariables.myEvents.Add(newEvent);

            //save event to file
            try {
                FileHandler fileHandler = new FileHandler();
                fileHandler.appendEventToFile(newEvent);
            } catch (Exception ex) {
                Debug.WriteLine("Exception caught!");
                Debug.WriteLine(ex.Message);
            }
            mainPage.populateGrid();
            Navigation.PopModalAsync();
        }
コード例 #2
0
        public void readMyEventsFile()
        {
            var filePath = pathToMyEventsFile();

            //values for an event
            string name, source;
            int    year, month, day, hour, minute, second;
            bool   visible;
            bool   oneTimeEvent;

            //read in stored events from text file
            string text, entryType, entryValue;

            if (!System.IO.File.Exists(filePath))
            {
                return;
            }
            string[] reader = System.IO.File.ReadAllLines(filePath);
            int      i      = 0;

            while (i < reader.Length)
            {
                //values for an event
                name         = "";
                source       = "";
                year         = 2016; //2016 used to prevent impossible date due to leap day, the year value will be reset anyhow
                month        = 1;
                day          = 1;
                hour         = 0;
                minute       = 0;
                second       = 0;
                visible      = false;
                oneTimeEvent = false;

                text = convertEntry(reader[i]);
                switch (text)
                {
                case "Event":
                    i++;
                    text = convertEntry(reader[i]);
                    while (!text.Equals("/Event"))
                    {
                        entryType  = getEntryType(text);
                        entryValue = getEntryValue(text);
                        switch (entryType)
                        {
                        case "Name":
                            name = entryValue;
                            break;

                        case "Source":
                            source = entryValue;
                            break;

                        case "Year":
                            year = Int32.Parse(entryValue);
                            break;

                        case "Month":
                            month = Int32.Parse(entryValue);
                            break;

                        case "Day":
                            day = Int32.Parse(entryValue);
                            break;

                        case "Hour":
                            hour = Int32.Parse(entryValue);
                            break;

                        case "Minute":
                            minute = Int32.Parse(entryValue);
                            break;

                        case "Visible":
                            visible = bool.Parse(entryValue);
                            break;

                        case "OneTimeEvent":
                            oneTimeEvent = bool.Parse(entryValue);
                            break;
                        }
                        i++;
                        text = convertEntry(reader[i]);
                    }

                    //add the new event to list(s)
                    Event newEvent = new Event(name, new DateTime(year, month, day, hour, minute, second), visible);
                    newEvent.setOneTimeEvent(oneTimeEvent);
                    GlobalVariables.resetEvent(newEvent);
                    GlobalVariables.myEvents.Add(newEvent);

                    break;

                case "LastDate":
                    i++;
                    text = convertEntry(reader[i]);
                    while (!text.Equals("/LastDate"))
                    {
                        entryType  = getEntryType(text);
                        entryValue = getEntryValue(text);
                        switch (entryType)
                        {
                        case "Year":
                            GlobalVariables.lastRecordedYear = Int32.Parse(entryValue);
                            break;

                        case "Month":
                            GlobalVariables.lastRecordedMonth = Int32.Parse(entryValue);
                            break;

                        case "Day":
                            GlobalVariables.lastRecordedDay = Int32.Parse(entryValue);
                            break;
                        }
                        i++;
                        text = convertEntry(reader[i]);
                    }

                    break;
                }
                i++;
            }
        }
コード例 #3
0
        public async void addEvent(object sender, EventArgs e)
        {
            if (entryName.Text == null)
            {
                await this.DisplayAlert("Error", "Event name cannot be empty.", "Ok");

                return;
            }

            //remove white space on ends
            while (entryName.Text.Length > 0 && entryName.Text[0] == ' ')
            {
                entryName.Text = entryName.Text.Substring(1);
            }
            while (entryName.Text.Length > 0 && entryName.Text[entryName.Text.Length - 1] == ' ')
            {
                entryName.Text = entryName.Text.Substring(0, entryName.Text.Length - 1);
            }

            if (entryName.Text.Length == 0)
            {
                await this.DisplayAlert("Error", "Event name cannot be empty.", "Ok");

                return;
            }
            for (int i = 0; i < GlobalVariables.myEvents.Count; i++)
            {
                if (string.Compare(GlobalVariables.myEvents[i].getName(), entryName.Text, true) == 0)
                {
                    await this.DisplayAlert("Error", "An event with that name already exists.", "Ok");

                    return;
                }
            }
            for (int i = 0; i < GlobalVariables.storedEvents.Count; i++)
            {
                if (string.Compare(GlobalVariables.storedEvents[i].getName(), entryName.Text, true) == 0)
                {
                    await this.DisplayAlert("Error", "An event with that name already exists.", "Ok");

                    return;
                }
            }

            displayActivityIndicator();

            await Task.Run(() => {
                DateTime eventDate = new DateTime(datePicked.Date.Year, datePicked.Date.Month, datePicked.Date.Day, timePicked.Time.Hours, timePicked.Time.Minutes, 0);
                Event newEvent     = new Event(entryName.Text, eventDate);
                newEvent.setAllDayEvent(allDayEvent);
                newEvent.setOneTimeEvent(oneTimeEvent);
                GlobalVariables.resetEvent(newEvent);
                GlobalVariables.myEvents.Add(newEvent);

                //save event to file
                FileHandler fileHandler = new FileHandler();
                fileHandler.appendEventToFile(newEvent);

                Device.BeginInvokeOnMainThread(() => {
                    mainPage.refreshGrid();
                    mainPage.populateGrid();
                    Navigation.PopModalAsync();
                });
            });
        }