Пример #1
0
        public async Task AssignUserToManager(ManagementAreaRequest request)
        {
            Check.Value(request, "Request").NotNull();
            request.Validate(ImmediateValidator.Instance);

            using (var conn = _dbConnFactory.CreateConnection())
            {
                var user = await conn.GetUserByEmail(request.UserEmail);

                var manager = await conn.GetUserByEmail(request.ManagerEmail);

                Check.Value(user).NotNull("User doesn't exist");
                Check.Value(manager).NotNull("Manager doesn't exist");

                var checkExist = await conn.QueryFirstOrDefaultAsync <ManagementArea>("select * from management_areas " +
                                                                                      $"where user_id='{user.Id}' and manager_id='{manager.Id}'");

                if (checkExist != null)
                {
                    checkExist.User    = null;
                    checkExist.Manager = null;
                }

                Check.Value(checkExist).IsNull("This user already belongs to this manager");

                await conn.ExecuteAsync(
                    "INSERT INTO management_areas (user_id, manager_id) VALUES (@UserId, @ManagerId)",
                    new ManagementArea()
                {
                    UserId    = user.Id,
                    ManagerId = manager.Id
                });
            }
        }
Пример #2
0
        public async Task CancelUserFromManager(ManagementAreaRequest request)
        {
            Check.Value(request, "Request").NotNull();
            request.Validate(ImmediateValidator.Instance);

            using (var conn = _dbConnFactory.CreateConnection())
            {
                var user = await conn.GetUserByEmail(request.UserEmail);

                var manager = await conn.GetUserByEmail(request.ManagerEmail);

                Check.Value(user).NotNull("User doesn't exist");
                Check.Value(manager).NotNull("Manager doesn't exist");

                var checkExist = await conn.QueryFirstOrDefaultAsync <ManagementArea>("select * from management_areas " +
                                                                                      $"where user_id='{user.Id}' and manager_id='{manager.Id}'");

                Check.Value(checkExist).NotNull("This user already unassigned to this manager");

                await conn.ExecuteAsync($"DELETE FROM management_areas WHERE user_id='{checkExist.UserId}' " +
                                        $"and manager_id='{checkExist.ManagerId}'");
            }
        }