Exemple #1
0
        private static void SendManagerDailyLogs()
        {
            var entities = new accessControlManagementEntities();
            var managers = entities.user.Where(x => (Roles)x.Role_Id == Roles.Manager);

            foreach (var manager in managers)
            {
                ExtMailHelper.SendReport(manager, ManagerDailyLog(manager));
            }
        }
Exemple #2
0
        public static OperationResult <user> GainAccessByAccessPoint(int userId, int accessPointId, string description)
        {
            try
            {
                var user = Entities.user.SingleOrDefault(x => x.Id == userId);
                if (user == null)
                {
                    throw new NullReferenceException("No such user");
                }

                var accessPoint = Entities.accessPoint.SingleOrDefault(x => x.Id == accessPointId);
                if (accessPoint == null)
                {
                    throw new NullReferenceException("No such access point");
                }

                if (accessPoint.IsOn == 0)
                {
                    throw new UnauthorizedAccessException("Access point is turned off");
                }

                string err = string.Empty;
                if (accessPoint.department_accessPoint.Count(x => x.Department_Id == user.Department_Id) == 0)
                {
                    err = "Denied: AP is not assigned user's department";
                    Entities.accessLog.Add(new accessLog
                    {
                        accessPoint = accessPoint,
                        user        = user,
                        Description = err,
                        role        = user.role,
                        Time        = DateTime.Now,
                        Action_Id   = 0
                    });
                    Entities.SaveChanges();
                    ExtMailHelper.SendUnauthorizedAccessMail(getManagerOfUser(user), user, accessPoint);
                    return(new OperationResult <user>
                    {
                        Success = false,
                        ReturnValue = user,
                        Message = err
                    });
                }
                else if (user.WorkEndTime < DateTime.Now.TimeOfDay || user.WorkStartTime > DateTime.Now.TimeOfDay)
                {
                    err = "Denied: User is outside of working time";
                    Entities.accessLog.Add(new accessLog
                    {
                        accessPoint = accessPoint,
                        user        = user,
                        Description = err,
                        role        = user.role,
                        Time        = DateTime.Now,
                        Action_Id   = 0
                    });
                    Entities.SaveChanges();
                    ExtMailHelper.SendUnauthorizedAccessMail(getManagerOfUser(user), user, accessPoint);
                    return(new OperationResult <user>
                    {
                        Success = false,
                        ReturnValue = user,
                        Message = err
                    });
                }
                else
                {
                    err = "Granted:" + description;
                    Entities.accessLog.Add(new accessLog
                    {
                        accessPoint = accessPoint,
                        user        = user,
                        Description = err,
                        role        = user.role,
                        Time        = DateTime.Now,
                        Action_Id   = 1
                    });
                    Entities.SaveChanges();
                    return(new OperationResult <user>
                    {
                        Success = true,
                        ReturnValue = user,
                        Message = err
                    });
                }
            }
            catch (Exception ex)
            {
                return(new OperationResult <user>
                {
                    Success = false,
                    Message = ex.Message
                });
            }
        }