Esempio n. 1
0
        private void ActivityDetailForm_Load(object sender, EventArgs e)
        {
            DataRowView view = this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].Current as DataRowView;

            ADAScheduleDataSet.ActivityRow activityRow = view.Row as ADAScheduleDataSet.ActivityRow;

            if (!activityRow.IsSymbolIdNull())
            {
                if (!activityRow.SymbolRow.IsImageNull())
                {
                    byte[] image = activityRow.SymbolRow.Image;
                    this.pictureBoxImage.Image = ImageEngine.Resize(ImageEngine.FromArray(image), this.pictureBoxImage.Size);
                }
            }

            ADAScheduleDataSet.Activity_ReminderRow[] activityReminderRows = activityRow.GetActivity_ReminderRows();

            foreach (ADAScheduleDataSet.Activity_ReminderRow activityReminderRow in activityReminderRows)
            {
                if (!activityReminderRow.IsTimeNull() &&
                    activityReminderRow.ReminderId == ADADataAccess.Constants.ALARM_REMINDER_ID)
                {
                    this.dateTimePickerAlarm.Value = activityReminderRow.Time;
                    _alarmTimeSpan = activityReminderRow.Time - activityRow.EndTime;
                }
            }

            buttonPlaySound.Enabled = (!activityRow.IsSymbolIdNull() && !activityRow.SymbolRow.IsSoundNull());
        }
Esempio n. 2
0
        private void buttonChangeSymbol_Click(object sender, EventArgs e)
        {
            DataRowView view = this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].Current as DataRowView;

            ADAScheduleDataSet.ActivityRow activityRow = view.Row as ADAScheduleDataSet.ActivityRow;

            SymbolPicker picker = new SymbolPicker();

            SymbolDataSet.LocalizedSymbolRow symbolRow = picker.PickSymbol(this,
                                                                           activityRow.IsSymbolIdNull() ? -1 : activityRow.SymbolId);

            if (symbolRow != null)
            {
                if (adaScheduleDataSet1.Symbol.FindBySymbolId(symbolRow.SymbolId) == null)
                {
                    ADAScheduleDataSet.SymbolRow newRow = adaScheduleDataSet1.Symbol.NewSymbolRow();
                    newRow.SymbolId = symbolRow.SymbolId;

                    if (!symbolRow.IsSoundNull())
                    {
                        newRow.Sound = symbolRow.Sound;
                    }

                    if (!symbolRow.IsImageNull())
                    {
                        newRow.Image = symbolRow.Image;
                    }

                    adaScheduleDataSet1.Symbol.AddSymbolRow(newRow);
                }

                byte[] image = symbolRow.Image;
                if (image != null)
                {
                    this.pictureBoxImage.Image = ImageEngine.Resize(ImageEngine.FromArray(image), this.pictureBoxImage.Size);
                }

                buttonPlaySound.Enabled = !symbolRow.IsSoundNull();

                this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].EndCurrentEdit();

                view.BeginEdit();
                activityRow.Name     = symbolRow.Name;
                activityRow.SymbolId = symbolRow.SymbolId;
                activityRow.Image    = image;
                view.EndEdit();
            }
        }
Esempio n. 3
0
        private void buttonEdit_Click(object sender, EventArgs e)
        {
            DataRowView view = this.BindingContext[adaScheduleDataSet1, "User.FK_Schedule_User.FK_Activity_Schedule"].Current as DataRowView;

            ADAScheduleDataSet.ActivityRow row = view.Row as ADAScheduleDataSet.ActivityRow;

            ActivityDetailForm f = new ActivityDetailForm();

            f.ScheduleDataSet.Merge(adaScheduleDataSet1);

            f.ScheduleDataSet.DefaultViewManager.DataViewSettings["Activity"].RowFilter = "ActivityId=" + row.ActivityId;

            if (f.ShowDialog() == DialogResult.OK)
            {
                adaScheduleDataSet1.Merge(f.ScheduleDataSet);
            }
        }
Esempio n. 4
0
        private void buttonOK_Click(object sender, EventArgs e)
        {
            this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].EndCurrentEdit();

            DataRowView view = this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].Current as DataRowView;

            ADAScheduleDataSet.ActivityRow activityRow = view.Row as ADAScheduleDataSet.ActivityRow;

            DataRow[] rows = adaScheduleDataSet1.Activity.Select(
                "ActivityId <> " + activityRow.ActivityId + " AND ScheduleId = " + activityRow.ScheduleId,
                "Sequence DESC");

            foreach (ADAScheduleDataSet.ActivityRow row in rows)
            {
                if (row.Sequence < activityRow.Sequence)
                {
                    break;
                }

                row.Sequence++;
            }

            rows = adaScheduleDataSet1.Activity.Select("ScheduleId = " + activityRow.ScheduleId,
                                                       "Sequence ASC");

            int i = 1;

            foreach (ADAScheduleDataSet.ActivityRow row in rows)
            {
                row.Sequence = i++;
            }

            ADAScheduleDataSet.Activity_ReminderRow[] activityReminderRows = activityRow.GetActivity_ReminderRows();

            foreach (ADAScheduleDataSet.Activity_ReminderRow activityReminderRow in activityReminderRows)
            {
                if (!activityReminderRow.IsTimeNull() &&
                    activityReminderRow.ReminderId == ADADataAccess.Constants.ALARM_REMINDER_ID)
                {
                    activityReminderRow.Time = this.dateTimePickerAlarm.Value;
                }
            }
        }
Esempio n. 5
0
        private void buttonDelete_Click(object sender, EventArgs e)
        {
            DataRowView view = this.BindingContext[adaScheduleDataSet1, "User.FK_Schedule_User.FK_Activity_Schedule"].Current as DataRowView;

            ADAScheduleDataSet.ActivityRow row = view.Row as ADAScheduleDataSet.ActivityRow;
            int scheduleId = row.ScheduleId;

            row.Delete();

            DataRow[] rows = adaScheduleDataSet1.Activity.Select("ScheduleId = " + scheduleId,
                                                                 "Sequence ASC");

            int i = 1;

            foreach (ADAScheduleDataSet.ActivityRow activityRow in rows)
            {
                activityRow.Sequence = i++;
            }
        }
Esempio n. 6
0
        private void buttonPlaySound_Click(object sender, EventArgs e)
        {
            try
            {
                using (SoundPlayer player = new SoundPlayer())
                {
                    DataRowView view = this.BindingContext[adaScheduleDataSet1, ACTIVITY_TABLE].Current as DataRowView;
                    ADAScheduleDataSet.ActivityRow activityRow = view.Row as ADAScheduleDataSet.ActivityRow;

                    using (MemoryStream ms = new MemoryStream(activityRow.SymbolRow.Sound))
                    {
                        player.Stream = ms;
                        player.Play();
                    }
                }
            }
            catch (Exception ex)
            {
                ReportError(ex);
            }
        }
Esempio n. 7
0
        private void copyToAntherUserToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Data.DataRowView userRowView = this.BindingContext[adaScheduleDataSet1, "User"].Current as System.Data.DataRowView;
            if (userRowView != null)
            {
                ADAScheduleDataSet.UserRow currentUserRow = userRowView.Row as ADAScheduleDataSet.UserRow;
                SelectUserForm             f = new SelectUserForm();

                f.ScheduleDataSet.Merge(adaScheduleDataSet1);
                DataRow[] rows = f.ScheduleDataSet.User.Select("UserId=" + currentUserRow.UserId);
                if (rows.Length > 0)
                {
                    rows[0].Delete();
                }

                if (f.ShowDialog(this) == DialogResult.OK)
                {
                    DataRow[] scheduleRows = adaScheduleDataSet1.Schedule.Select("UserId=" + f.SelectedUser.UserId);
                    ADAScheduleDataSet.ScheduleRow currentScheduleRow = null;
                    foreach (ADAScheduleDataSet.ScheduleRow scheduleRow in scheduleRows)
                    {
                        if (scheduleRow.Type == (int)ScheduleType.Normal)
                        {
                            currentScheduleRow = scheduleRow;
                            break;
                        }
                    }

                    if (currentScheduleRow == null)
                    {
                        currentScheduleRow          = adaScheduleDataSet1.Schedule.NewScheduleRow();
                        currentScheduleRow.UserId   = f.SelectedUser.UserId;
                        currentScheduleRow.Type     = (int)ScheduleType.Normal;
                        currentScheduleRow.Date     = monthCalendar1.SelectionStart;
                        currentScheduleRow.IsActive = true;
                        adaScheduleDataSet1.Schedule.AddScheduleRow(currentScheduleRow);
                    }
                    else
                    {
                        foreach (ADAScheduleDataSet.ActivityRow activityRow in currentScheduleRow.GetActivityRowsByFK_Activity_Schedule())
                        {
                            ADAScheduleDataSet.Activity_ReminderRow[] remiderRows = activityRow.GetActivity_ReminderRows();
                            foreach (ADAScheduleDataSet.Activity_ReminderRow reminderRow in remiderRows)
                            {
                                reminderRow.Delete();
                            }

                            activityRow.Delete();
                        }
                    }

                    int count = this.BindingContext[adaScheduleDataSet1, "User.FK_Schedule_User.FK_Activity_Schedule"].Count;
                    for (int i = 0; i < count; i++)
                    {
                        this.BindingContext[adaScheduleDataSet1, "User.FK_Schedule_User.FK_Activity_Schedule"].Position = i;

                        DataRowView activityRowView = this.BindingContext[adaScheduleDataSet1, "User.FK_Schedule_User.FK_Activity_Schedule"].Current as DataRowView;
                        ADAScheduleDataSet.ActivityRow currentActivityRow = activityRowView.Row as ADAScheduleDataSet.ActivityRow;

                        ADAScheduleDataSet.ActivityRow newActivityRow = adaScheduleDataSet1.Activity.NewActivityRow();
                        newActivityRow.ScheduleId = currentScheduleRow.ScheduleId;
                        newActivityRow.Sequence   = currentActivityRow.Sequence;
                        newActivityRow.StartTime  = currentActivityRow.StartTime;
                        newActivityRow.EndTime    = currentActivityRow.EndTime;
                        newActivityRow.Name       = currentActivityRow.Name;
                        newActivityRow.SymbolId   = currentActivityRow.SymbolId;
                        newActivityRow.Image      = currentActivityRow.Image;

                        adaScheduleDataSet1.Activity.AddActivityRow(newActivityRow);

                        ADAScheduleDataSet.Activity_ReminderRow[] remiderRows = currentActivityRow.GetActivity_ReminderRows();
                        foreach (ADAScheduleDataSet.Activity_ReminderRow reminderRow in remiderRows)
                        {
                            ADAScheduleDataSet.Activity_ReminderRow activityReminderRow = adaScheduleDataSet1.Activity_Reminder.NewActivity_ReminderRow();
                            activityReminderRow.ActivityId = newActivityRow.ActivityId;
                            activityReminderRow.ReminderId = ADADataAccess.Constants.ALARM_REMINDER_ID;
                            activityReminderRow.Time       = reminderRow.Time;
                            adaScheduleDataSet1.Activity_Reminder.AddActivity_ReminderRow(activityReminderRow);
                        }
                    }

                    count = this.BindingContext[adaScheduleDataSet1, "User"].Count;
                    for (int i = 0; i < count; i++)
                    {
                        this.BindingContext[adaScheduleDataSet1, "User"].Position = i;
                        userRowView    = this.BindingContext[adaScheduleDataSet1, "User"].Current as System.Data.DataRowView;
                        currentUserRow = userRowView.Row as ADAScheduleDataSet.UserRow;
                        if (currentUserRow.UserId == f.SelectedUser.UserId)
                        {
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 8
0
        private void buttonAddActivity_Click(object sender, EventArgs e)
        {
            ActivityDetailForm f = new ActivityDetailForm();

            f.ScheduleDataSet.Merge(adaScheduleDataSet1);

            DataRowView view = this.BindingContext[adaScheduleDataSet1, "User"].Current as DataRowView;

            ADAScheduleDataSet.UserRow userRow = view.Row as ADAScheduleDataSet.UserRow;

            DataRow[] scheduleRows = f.ScheduleDataSet.Schedule.Select("UserId=" + userRow.UserId);
            ADAScheduleDataSet.ScheduleRow currentScheduleRow = null;
            foreach (ADAScheduleDataSet.ScheduleRow scheduleRow in scheduleRows)
            {
                if (scheduleRow.Type == (int)ScheduleType.Normal)
                {
                    currentScheduleRow = scheduleRow;
                    break;
                }
            }

            if (currentScheduleRow == null)
            {
                currentScheduleRow          = f.ScheduleDataSet.Schedule.NewScheduleRow();
                currentScheduleRow.UserId   = userRow.UserId;
                currentScheduleRow.Type     = (int)ScheduleType.Normal;
                currentScheduleRow.Date     = monthCalendar1.SelectionStart;
                currentScheduleRow.IsActive = true;
                f.ScheduleDataSet.Schedule.AddScheduleRow(currentScheduleRow);
            }

            int      sequenceMax  = 0;
            DateTime startTimeMax = currentScheduleRow.Date;
            DateTime endTimeMax   = currentScheduleRow.Date;

            ADAScheduleDataSet.ActivityRow lastActivityRow = null;

            foreach (ADAScheduleDataSet.ActivityRow activityRow in
                     currentScheduleRow.GetActivityRowsByFK_Activity_Schedule())
            {
                if (sequenceMax < activityRow.Sequence)
                {
                    sequenceMax     = activityRow.Sequence;
                    lastActivityRow = activityRow;

                    if (!activityRow.IsStartTimeNull() && startTimeMax.CompareTo(activityRow.StartTime) < 0)
                    {
                        startTimeMax = activityRow.StartTime;
                    }

                    if (!activityRow.IsEndTimeNull() && endTimeMax.CompareTo(activityRow.EndTime) < 0)
                    {
                        endTimeMax = activityRow.EndTime;
                    }
                }
            }

            ADAScheduleDataSet.ActivityRow currentActivityRow = f.ScheduleDataSet.Activity.NewActivityRow();
            currentActivityRow.ScheduleId = currentScheduleRow.ScheduleId;
            currentActivityRow.Sequence   = sequenceMax + 1;
            currentActivityRow.StartTime  = endTimeMax;
            currentActivityRow.EndTime    = endTimeMax + endTimeMax.Subtract(startTimeMax);

            if (currentActivityRow.EndTime == currentActivityRow.StartTime)
            {
                currentActivityRow.EndTime = currentActivityRow.StartTime.Add(new TimeSpan(1, 0, 0));
            }

            currentActivityRow.Name = string.Format("Step {0}", currentActivityRow.Sequence);

            if (lastActivityRow != null)
            {
                currentActivityRow.SymbolId = lastActivityRow.SymbolId;
                currentActivityRow.Image    = lastActivityRow.Image;
            }

            f.ScheduleDataSet.Activity.AddActivityRow(currentActivityRow);

            ADAScheduleDataSet.Activity_ReminderRow activityReminderRow = f.ScheduleDataSet.Activity_Reminder.NewActivity_ReminderRow();
            activityReminderRow.ActivityId = currentActivityRow.ActivityId;
            activityReminderRow.ReminderId = ADADataAccess.Constants.ALARM_REMINDER_ID;
            activityReminderRow.Time       = currentActivityRow.EndTime.Subtract(new TimeSpan(0, 15, 0));
            f.ScheduleDataSet.Activity_Reminder.AddActivity_ReminderRow(activityReminderRow);

            f.ScheduleDataSet.DefaultViewManager.DataViewSettings["Activity"].RowFilter = "ActivityId=" + currentActivityRow.ActivityId;

            if (f.ShowDialog() == DialogResult.OK)
            {
                adaScheduleDataSet1.Merge(f.ScheduleDataSet);
            }
        }