private void UpdateActivityNumbers()
        {
            try
            {
                int      numberToAdd = 0;
                DateTime dateOfActivityToAdd;

                if (int.TryParse(textBoxNumber.Text, out numberToAdd) && DateTime.TryParse(dateEditEditActivity.Text, out dateOfActivityToAdd))
                {
                    if (numberToAdd > 0)
                    {
                        using (var context = new LorikeetAppEntities())
                        {
                            var updateOrAddActivityNumbers = (from a in context.AppointmentsNumbers
                                                              join l in context.Labels on a.LabelID equals l.LabelID
                                                              where DbFunctions.TruncateTime(a.Date) == DbFunctions.TruncateTime(dateOfActivityToAdd) && l.DisplayName == comboBoxEditLabels.Text
                                                              select a).DefaultIfEmpty().First();
                            if (updateOrAddActivityNumbers != null)
                            {
                                updateOrAddActivityNumbers.Number = numberToAdd;
                            }
                            else
                            {
                                var getLabelID = (from l in context.Labels
                                                  where l.DisplayName == comboBoxEditLabels.Text
                                                  select l).DefaultIfEmpty().First();

                                if (getLabelID != null)
                                {
                                    var activityToAdd = new AppointmentsNumber();
                                    activityToAdd.Number  = numberToAdd;
                                    activityToAdd.Date    = dateOfActivityToAdd;
                                    activityToAdd.LabelID = getLabelID.LabelID;
                                    context.AppointmentsNumbers.Add(activityToAdd);
                                }
                            }
                            context.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(MiscStuff.GetAllMessages(ex));
            }
        }
Пример #2
0
        private void bbiSaveAndClose_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            int apptID = GetAppointmentID();

            if (apptID != -1)
            {
                using (var context = new LorikeetAppEntities())
                {
                    try
                    {
                        var appointmentName = (from an in context.Appointments
                                               where an.UniqueID == apptID
                                               select an).First();

                        var appointmentsToRemove = (from atr in context.AppointmentMembers
                                                    where atr.AppointmentsID == apptID
                                                    select atr).ToList();

                        var notesToRemove = (from ntr in context.Notes
                                             join a in context.Members on ntr.MemberID equals a.MemberID
                                             where DbFunctions.TruncateTime(ntr.Date) == DbFunctions.TruncateTime(apt.Start) && ntr.Notes == "Member attended " + apt.Subject + " group" && ntr.MemberID == a.MemberID
                                             select ntr).ToList();

                        if (appointmentsToRemove.Count > 0)
                        {
                            foreach (var atr in appointmentsToRemove)
                            {
                                context.AppointmentMembers.Remove(atr);
                                context.SaveChanges();
                            }

                            foreach (var ntr in notesToRemove)
                            {
                                context.Notes.Remove(ntr);
                                context.SaveChanges();
                            }
                        }

                        foreach (var m in membersToAdd)
                        {
                            var memberAppointmentTemp = new AppointmentMember();
                            memberAppointmentTemp.AppointmentsID = apptID;
                            memberAppointmentTemp.MemberID       = m.MemberID;

                            context.AppointmentMembers.Add(memberAppointmentTemp);
                            context.SaveChanges();

                            var notesTemp = new Note();
                            notesTemp.Date     = appointmentName.StartDate.Value;
                            notesTemp.MemberID = m.MemberID;
                            notesTemp.StaffID  = 0;
                            notesTemp.Notes    = "Member attended " + appointmentName.Subject + " group";
                            context.Notes.Add(notesTemp);
                            context.SaveChanges();
                        }

                        var activity = (from an in context.AppointmentsNumbers
                                        join l in context.Labels on an.LabelID equals l.LabelID
                                        where DbFunctions.TruncateTime(an.Date) == DbFunctions.TruncateTime(apt.Start) && l.DisplayName == apt.Subject
                                        select an).DefaultIfEmpty().First();

                        var labelID = (from l in context.Labels
                                       where l.DisplayName == apt.Subject
                                       select l).DefaultIfEmpty().First();

                        if (activity != null)
                        {
                            activity.Number = membersToAdd.Count();
                        }
                        else
                        {
                            if (labelID != null)
                            {
                                var activityNumberToAdd = new AppointmentsNumber();
                                activityNumberToAdd.Date    = this.apt.Start;
                                activityNumberToAdd.LabelID = labelID.LabelID;
                                activityNumberToAdd.Number  = membersToAdd.Count();

                                context.AppointmentsNumbers.Add(activityNumberToAdd);
                            }
                        }

                        context.SaveChanges();

                        Logging.AddLogEntry(staffID, Logging.ErrorCodes.Broadcast, Logging.RefreshCodes.Schedule, "Changed Appointments in Schedule", false);
                    }
                    catch (Exception ex)
                    {
                        Logging.AddLogEntry(staffID, Logging.ErrorCodes.Error, Logging.RefreshCodes.None, "Tried Changing Appointments in Schedule - Error - " + ex.Message, false);
                        MessageBox.Show(MiscStuff.GetAllMessages(ex));
                    }
                }
            }
            this.Close();
        }