Example #1
0
        public static Holiday UpdateHoliday(Holiday holiday)
        {
            using (var entity = new StaffingModelContainer())
            {
                entity.VacanceTable.Single(o => o.ID == holiday.Id).Update(holiday);
                entity.SaveChanges();

                holiday = entity.VacanceTable.Single(o => o.ID == holiday.Id).CreateHoliday();
            }

            switch (holiday.Status)
            {
                case ItemStatus.Waiting:
                    Mail.Send(holiday.ConsultantId, MailType.HolidayRequest, holiday);
                    break;
                case ItemStatus.Refused:
                    Mail.Send(holiday.ConsultantId, MailType.HolidayRefused, holiday);
                    break;
                case ItemStatus.Validate:
                    Mail.Send(holiday.ConsultantId, MailType.HolidayValidated, holiday);
                    break;
            }

            return holiday;
        }
Example #2
0
 public static void DeleteHoliday(Holiday holiday)
 {
     using (var entity = new StaffingModelContainer())
     {
         entity.VacanceTable.Single(o => o.ID == holiday.Id).Actif = false;
         entity.SaveChanges();
     }
 }
Example #3
0
        internal static IEnumerable<Client> AddClient(Client newClient)
        {
            using (var entity = new StaffingModelContainer())
            {
                entity.ClientTable.Add(newClient.CreateDatabaseClient());
                entity.SaveChanges();
            }

            return GetClients();
        }
Example #4
0
        public static IEnumerable<Client> UpdateClient(Client client)
        {
            using (var entity = new StaffingModelContainer())
            {
                entity.ClientTable.Single(o => o.ID == client.Id).Update(client);
                entity.SaveChanges();
            }

            return GetClients();
        }
Example #5
0
        internal static Holiday AddHoliday(Holiday newHoliday)
        {
            using (var entity = new StaffingModelContainer())
            {
                var result = entity.VacanceTable.Add(newHoliday.CreateDatabaseHoliday());
                entity.SaveChanges();

                return result.CreateHoliday();
            }
        }
Example #6
0
        internal static IEnumerable<Client> GetClients()
        {
            IEnumerable<Client> clients;
            using (var entity = new StaffingModelContainer())
            {
                var items = entity.ClientTable.ToList();
                clients = items.OrderByDescending(o => o.Actif).Select(o => o.CreateApplicationClient()).ToList();
            }

            return clients;
        }
Example #7
0
        internal static IEnumerable<Holiday> GetHolidays(int? consultantId)
        {
            IEnumerable<Holiday> holidays;
            using (var entity = new StaffingModelContainer())
            {
                var items = entity.VacanceTable.Where(
                    o => !consultantId.HasValue || o.ConsultantTableID == consultantId).ToList();
                holidays = items.Where(o => o.Actif).Select(o => o.CreateHoliday()).ToList();
            }

            return holidays;
        }
Example #8
0
        internal static CompteRenduActivite CreateCra(int consultantId, int year, int month)
        {
            using (var entity = new StaffingModelContainer())
            {
                var item = (from cra in entity.CompteRenduActiviteTable.Where(o => o.ConsultantTableID == consultantId
                                                                                   && o.Month == month &&
                                                                                   o.Year == year)
                            select cra).SingleOrDefault();

                if (item != null)
                {
                    var result = item.CreateCompteRenduActivite();
                    result.ActivityWeeks = GetActivities(result.Id).ToList();
                    return result;
                }

                entity.CompteRenduActiviteTable.Add(new CompteRenduActiviteTable
                                                        {
                                                            ConsultantTableID = consultantId,
                                                            Month = month,
                                                            Year = year,
                                                            Status = (int)ItemStatus.Editing
                                                        });
                entity.SaveChanges();

                item = (from cra in entity.CompteRenduActiviteTable.Where(o => o.ConsultantTableID == consultantId
                                                                               && o.Month == month &&
                                                                               o.Year == year)
                        select cra).Single();

                var activityDays = CreateMonthDays(consultantId, year, month);
                foreach (var activityDay in activityDays)
                {
                    entity.ActiviteTable.Add(activityDay.MorningActivity.CreateDataActivity(item.ID, false));
                    entity.ActiviteTable.Add(activityDay.AfternoonActivity.CreateDataActivity(item.ID, true));
                }

                entity.SaveChanges();

                return item.CreateCompteRenduActivite();
            }
        }
Example #9
0
        public static IEnumerable<CompteRenduActivite> UpdateCra(CompteRenduActivite compteRenduActivite)
        {
            using (var entity = new StaffingModelContainer())
            {
                entity.CompteRenduActiviteTable.Single(o => o.ID == compteRenduActivite.Id).Update(compteRenduActivite);
                entity.SaveChanges();
            }

            switch (compteRenduActivite.Status)
            {
                case ItemStatus.Waiting:
                    Mail.Send(compteRenduActivite.ConsultantId, MailType.CRASubmited, compteRenduActivite);
                    break;
                case ItemStatus.Refused:
                    Mail.Send(compteRenduActivite.ConsultantId, MailType.CRARefused, compteRenduActivite);
                    break;
                case ItemStatus.Validate:
                    Mail.Send(compteRenduActivite.ConsultantId, MailType.CRAValidated, compteRenduActivite);
                    break;
            }

            return GetCra(null, null, null);
        }
Example #10
0
        internal static IEnumerable<ActivityWeek> GetActivities(int craId)
        {
            var cra = GetCraFromId(craId);

            if (cra == null)
            {
                return null;
            }

            var days = CreateMonthDays(cra.ConsultantId, cra.Year, cra.Month);

            var weeks = new List<ActivityWeek>();

            using (var entity = new StaffingModelContainer())
            {
                CultureInfo ci = Thread.CurrentThread.CurrentCulture;

                var week = new ActivityWeek
                {
                    WeekNumber = ci.Calendar.GetWeekOfYear(new DateTime(cra.Year, cra.Month, 1),
                                                      ci.DateTimeFormat.CalendarWeekRule,
                                                      ci.DateTimeFormat.FirstDayOfWeek)
                };

                foreach (var activityDay in days)
                {
                    if (activityDay.Date.DayOfWeek == DayOfWeek.Monday)
                    {
                        if (week.Activities.Count > 0)
                        {
                            weeks.Add(week);
                        }

                        week = new ActivityWeek
                                   {
                                       WeekNumber = ci.Calendar.GetWeekOfYear(activityDay.Date,
                                                                              ci.DateTimeFormat.CalendarWeekRule,
                                                                              ci.DateTimeFormat.FirstDayOfWeek)
                                   };
                    }

                    var items = entity.ActiviteTable.Where(o => o.CompteRenduActiviteTableID == craId
                        && o.Day == activityDay.Date.Day).ToList();

                    foreach (var activity in items)
                    {
                        if (activity.Afternoon)
                        {
                            activityDay.AfternoonActivity = activity.CreateActivity(activityDay.ConsultantId, activityDay.Date);
                        }
                        else
                        {
                            activityDay.MorningActivity = activity.CreateActivity(activityDay.ConsultantId, activityDay.Date);
                        }
                    }

                    week.Activities.Add(activityDay);
                }

                weeks.Add(week);

                return weeks;
            }
        }
Example #11
0
        internal static void UpdateActivities(IEnumerable<ActivityDay> days)
        {
            using (var entity = new StaffingModelContainer())
            {
                foreach (var day in days)
                {
                    entity.ActiviteTable.First(o => o.ID == day.MorningActivity.Id).Update(day.MorningActivity);
                    entity.ActiviteTable.First(o => o.ID == day.AfternoonActivity.Id).Update(day.AfternoonActivity);

                    entity.SaveChanges();
                }
            }
        }
Example #12
0
        internal static CompteRenduActivite GetCraFromId(int craId)
        {
            using (var entity = new StaffingModelContainer())
            {
                var item = entity.CompteRenduActiviteTable.SingleOrDefault(o => o.ID == craId);

                if (item != null)
                {
                    return item.CreateCompteRenduActivite();
                }

                return null;
            }
        }
Example #13
0
        internal static IEnumerable<CompteRenduActivite> GetCra(int? consultantId, int? year, int? month)
        {
            IEnumerable<CompteRenduActivite> cras;

            using (var entity = new StaffingModelContainer())
            {
                var items =
                    (from cra in
                         entity.CompteRenduActiviteTable.Where(
                             o => (!consultantId.HasValue || o.ConsultantTableID == consultantId)
                                  && (!year.HasValue || o.Year == year)
                                  && (!month.HasValue || o.Month == month))
                     select cra).ToList();

                cras = items.Select(o => o.CreateCompteRenduActivite()).ToList();
                foreach (var compteRenduActivite in cras)
                {
                    compteRenduActivite.ActivityWeeks = GetActivities(compteRenduActivite.Id).ToList();
                }
            }

            return cras;
        }