コード例 #1
0
        /// <summary>
        /// Check user rights and execute command with logging
        /// </summary>
        /// <param name="commandType"></param>
        /// <param name="user"></param>
        /// <param name="CommandExecutor"></param>
        /// <returns></returns>
        public virtual LogCommand ExecuteNewCommand(CommandTypes commandType, FaceRecognitionUser user, Func <CommandTypes, CommandResults> CommandExecutor = null)
        {
            var command = new LogCommand(commandType);

            command.StartCommandDate = DateTime.UtcNow;
            LogCommandDAL.Add(command);

            if (!IsExecutionAllowed(user))
            {
                command.CommandResult = CommandResults.Fail;
                return(command);
            }

            if (CommandExecutor == null)
            {
                command.FinishCommandDate = DateTime.UtcNow;
                command.CommandResult     = CommandResults.Undefined;
                LogCommandDAL.Update(command);
                return(command);
            }

            if (command.CommandType == CommandTypes.DoNothingLogOnly)
            {
                command.FinishCommandDate = DateTime.UtcNow;
                command.CommandResult     = CommandResults.Success;
                LogCommandDAL.Update(command);
                return(command);
            }

            var result = CommandExecutor(commandType);

            command.CommandResult     = result;
            command.FinishCommandDate = DateTime.UtcNow;
            LogCommandDAL.Update(command);
            return(command);
        }
コード例 #2
0
 /// <summary>
 /// Override this to check user rights
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public virtual bool IsExecutionAllowed(FaceRecognitionUser user)
 {
     return(true);
 }