Example #1
0
 // Метод проверяет не занято ли время
 public bool IntersectionEvents(DateTime start, DateTime end)
 {
     using (LdapDbContext db = new LdapDbContext())
     {
         bool result = db.Events.Any(a => a.StartTime < end && a.EndTime >= start);
         return(result);
     }
 }
Example #2
0
 // Метод возвращает всех юзеров из БД
 public List <User> GetAllUsers()
 {
     using (LdapDbContext db = new LdapDbContext())
     {
         List <User> userList = db.Users
                                .OrderBy(c => c.FirstName).ToList();
         return(userList);
     }
 }
Example #3
0
 // Метод возвращает список событий для календаря
 public List <Event> GetAllEventsOfPeriod(DateTime fromDate, DateTime toDate)
 {
     using (LdapDbContext db = new LdapDbContext())
     {
         List <Event> eventList = db.Events
                                  .Where(c => c.StartTime < toDate && c.EndTime >= fromDate).OrderBy(c => c.StartTime).ToList();
         return(eventList);
     }
 }
Example #4
0
        // Метод добавляет участников  нового мероприятия в таблицу Members
        private static void WriteEventMember(int[] array, int eventId)
        {
            using (LdapDbContext db = new LdapDbContext())
            {
                for (int i = 0; i < array.Length; i++)
                {
                    Member newEvent = new Member {
                        EventId = eventId, UserId = array[i],
                    };

                    db.Members.Add(newEvent);
                    db.SaveChanges();
                }
            }
        }
Example #5
0
        // Метод для удаления события из БД
        public void DeleteEvent(int eventId)
        {
            using (LdapDbContext db = new LdapDbContext())
            {
                Event item = db.Events
                             .FirstOrDefault(o => o.Id == eventId);

                if (item == null)
                {
                    throw new ArgumentException("Переданный параметр eventId не существует");
                }

                db.Events.Remove(item);
                db.SaveChanges();
            }
        }
Example #6
0
        // Метод получает id текущего пользователя
        public int GetCurrentUserId()
        {
            string username = HttpContext.Current.User.Identity.Name;

            if (username != string.Empty)
            {
                using (LdapDbContext db = new LdapDbContext())
                {
                    IQueryable <User> users = db.Users.Where(c => c.Login == username);
                    int currentUserId       = users.Single().Id;
                    return(currentUserId);
                }
            }

            return(0);
        }
Example #7
0
        // Метод выдаёт список имён участников события по id события
        public List <string> GetEventMembers(int eventId)
        {
            using (LdapDbContext db = new LdapDbContext())
            {
                var membersList = db.Members
                                  .Where(k => k.EventId == eventId)
                                  .Include(c => c.User).ToList();

                List <string> firstNameList = new List <string>();
                foreach (var item in membersList)
                {
                    firstNameList.Add(item.User.FirstName);
                }

                return(firstNameList);
            }
        }
Example #8
0
        // Метод записывает новое мероприятие в БД
        public void WriteToDatabase(string title, DateTime startTime, DateTime endTime, string descriptionEvent, string color, int userId, int roomId, int[] memberList)
        {
            if (title == null || title.IsEmpty())
            {
                throw new ArgumentException("Наименование события не указано", "descriptionEvent");
            }

            if (startTime == default(DateTime))
            {
                throw new ArgumentException("Не указано \"Начало события\"", "startTime");
            }

            if (endTime == default(DateTime))
            {
                throw new ArgumentException("Не указано\"Конец события\"", "endTime");
            }

            if (userId == 0)
            {
                throw new ArgumentException("Похоже, что вы не авторизованы", "userId");
            }

            using (LdapDbContext db = new LdapDbContext())
            {
                Event newEvent = new Event
                {
                    Title       = title,
                    StartTime   = startTime,
                    EndTime     = endTime,
                    Description = descriptionEvent,
                    Color       = color,
                    UserId      = userId,
                    RoomId      = roomId
                };
                db.Events.Add(newEvent);
                db.SaveChanges();

                if (memberList != null)
                {
                    WriteEventMember(memberList, newEvent.Id);
                }
            }
        }